Packet Decoding Functions

packet decode

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:
Decodes captured packets from a specified packet capture file

Synopsis:

Note: M indicates the argument is `Mandatory`.

    packet decode
     open_captured_file= <files>
     frame_decode_type= {contents | l2encap | hdr_fields}
     protocol_field= {ipv4 | ethernet_2 | ethernet_2_vlan | ipv6 }
     header_field_types=
     protocol_field= ipv4
                       {version | tos_reliability | tos_unused | ds_codepoint |
                        ds_unused | tot_len | identification | flags |
                        fragment_offset | ttl | protocol | header_checksum |
                        source_address | destination_address |
                        destination_address | source_address | ether_type}

     protocol_field= ethernet_2
                        {destination_address | source_address | ether_type}

     protocol_field= ethernet_2_vlan
                        {destination_address | source_address | vlan_tag_type |
                        vlan_user_priority | vlan_cfi | vlan_id | ether_type}

     protocol_field= ipv6
                        {version | traffic_class flow_label | payload_length |
                        next_header | hop_limit source_address | destination_address}]

Arguments:

open_captured_file
                Specifies a previously saved capture file you want to decode

frame_decode_type
                Specifies the method to decode individual frames, when a packet
                set is retrieved. Possible value are::


                 contents    Decodes data bytes for individual frames.
                             The returned value is a list of decimals which are
                             octets extracted from a particular capture packet.

                 l2encap     Identifies link layer frame encapsulations from
                             individual frames. The encapsulation types are listed
                             below::


                             l2_ethernet_dix             Ethernet II
                             l2_ethernet_dix_vlan        Ethernet II, with VLAN tags
                             l2_ethernet_sap             802.3 SAP
                             l2_ethernet_sap_vlan        802.3 SAP, with VLAN tags
                             l2_ethernet_snap            802.3 LLC SNAP
                             l2_ethernet_snap_vlan       802.3 LLC SNAP, with VLAN tags
                             l2_ethernet_dix_ppp         PPPoE
                             l2_ethernet_dix_ppp_vlan    PPPoE, with VLAN tags
                             l2_ethernet_sap_jumbo       802.3 SAP jumbo size (frames
                                                         longer than 9,022 bytes)
                             l2_ethernet_sap_jumbo_vlan  802.3 SAP jumbo size with VLAN tags
                             l2_ethernet_snap_jumbo      802.3 LLC SNAP jumbo size
                             l2_ethernet_snap_jumbo_vlan 802.3 LLC SNAP jumbo size
                                                         with VLAN tags
                             l2_unknown                  An unrecognized Layer 2
                                                         encapsulation

                 hdr_fields  Decodes the protocol bytes as specified by header
                             fields. If this option is used, you must also specify
                             protocol_field and header_field_types.

protocol_field
                Specifies the protocol under header fields. Possible
                values are ipv4, ethernet_2, ethernet_2_vlan and ipv6. Each
                protocol has its own set of fields. See header_field_types.

header_field_types
                Specifies the header field values corresponding to the protocol.
                When protocol_field is set to ipv4, the following fields are
                available::


                 version                 IP version
                 hlen                    Header length
                 tos_precedence          TOS precedence
                 tos_value               TOS value
                 tos_delay               TOS delay
                 tos_throughput          TOS throughput
                 tos_reliability         TOS Reliability
                 tos_unused              TOS unused
                 ds_codepoint            Differentiated Services (DS) Code Point
                 ds_unused               DS unused
                 tot_len                 Total length
                 identification          Identification
                 flags                   Flags
                 fragment_offset         Fragment offset
                 ttl                     TTL
                 protocol                Protocol
                 header_checksum         Header checksum
                 source_address          Source address
                 destination_address     Destination address

                When protocol_field is set to ethernet_2, the following fields
                are available::


                 ether_type              Ethernet type
                 destination_address     Destination address
                 source_address          Source address


                When protocol_field is set to ethernet_2_vlan, the following
                fields are available::


                 destination_address     Destination address
                 source_address          Source address
                 ether_type              Ethernet type
                 vlan_tag_type           VLAN tag type
                 vlan_user_priority      VLAN user priority
                 vlan_cfi                VLAN CFI
                 vlan_id                 VLAN ID


                When protocol_field is set to ipv6, the following fields
                are available::


                 version                 IP version
                 traffic_class           Traffic class
                 flow_label              Flow label
                 payload_length          Payload length
                 next_header             Next header
                 hop_limit               Hop limit
                 destination_address     Destination address
                 source_address          Source address
Return Values:

Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):

contents        A list of decimals which are octets extracted from
                a particular capture packet

l2encap         Identifies link layer frame encapsulations

hdr_fields      A list of header fields, in octets, specified by
                header_field_types
                status          Success (1) or failure (0) of the operation

log             An error message (if the operation failed)
Description:

The packet decode function decodes the captured packets by the specified criteria. The supported file formats include pcap, pcapnp, cap, cap.gz, etc.

Note: Tshark is required for the function. Refer to the Spirent TestCenter HLTAPI
Release Note for detailed information on supported software applications and versions.
Examples

The following example decodes individual frames in data bytes:

packet decode open_captured_file="C:/temp/default.cap"
      frame_decode_type contents

Sample Output:

{status 1} {log {}} {contents {{0 {0 17 34 51 68 102 0 17 34 51 68 85 1 238 254 224 0
0 0 0 0 0 0 0 0 0 0 254 94 149 55 110 81 124 42 141 99 5 33 8 228 217 102 183 128 85
157 48 193 135 57}} {1 {0 17 34 51 68 102 0 17 34 51 68 85 1 238 254 224 1 254 94 149
55 108 81 124 42 141 99 5 46 142 18 221 102 179 4 210 221 65 31 19 157}}}}

The following example decodes the capture packets by the specified header fields:

packet decode
   open_captured_file    "C:/temp/default.cap"
   frame_decode_type      hdr_fields
   header_field_types     "destination_address source_address"
   protocol_field "ipv4"

Sample Output:

{status 1} {log {}} {hdr_fields {{0 {{source_address {}} {destination_address {}}}}
{1 {{source_address {192 85 1 2}} {destination_address {192 0 0 1}}}}}}