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}}}}}}