NSX-T Data Center REST API

FieldsPacketData (schema)

Name Description Type Notes
arp_header The ARP header ArpHeader
eth_header The ethernet header EthernetHeader
frame_size Requested total size of the (logical) packet in bytes

If the requested frame_size is too small (given the payload and
traceflow metadata requirement of 16 bytes), the traceflow request
will fail with an appropriate message. The frame will be zero padded to
the requested size.
integer Minimum: 60
Maximum: 1000
Default: "128"
ip_header The IPv4 header Ipv4Header
ipv6_header The IPv6 header Ipv6Header
payload RFC3548 compatible base64-encoded payload

Up to 1000 bytes of payload may be supplied (with a base64-encoded length of 1336 bytes.) Additional bytes of traceflow metadata will be appended to the payload. The payload contains any data the user wants to put after the transport header.
string Maximum length: 1336
resource_type Must be set to the value FieldsPacketData string Required
Enum: BinaryPacketData, FieldsPacketData
Default: "FieldsPacketData"
routed Awareness of logical routing

When this flag is set, traceflow packet will have its destination
overwritten as the gateway address of the logical router to which
the source logical switch is connected. More specifically:
- For ARP request, the target IP will be overwritten as gateway IP if the target
IP is not in the same subnet of gateway.
- For ARP response, the target IP and destination MAC will be overwritten as
gateway IP/MAC respectively, if the target IP is not in the same subnet of gateway.
- For IP packet, the destination MAC will be overwritten as gateway MAC.
However, this flag will not be effective when injecting the traceflow packet
to a VLAN backed port. This is because the gateway in this case is a physical
gateway that is outside the scope of NSX. Therefore, users need to manually
populate the gateway MAC address. If the user still sets this flag in this case,
a validation error will be thrown.
The scenario where a user injects a packet with a VLAN tag into a parent port is
referred to as the traceflow container case. Please note that the value of `routed`
depends on the connected network of the child segment rather than the connected
network of segment of the parent port in this case.
Here is the explanation: The parent port in this context is the port
on a segment which is referred to by a SegmentConnectionBindingMap. The bound segment
of the SegmentConnectionBindingMap is the child segment. The user-crafted traceflow packet
will be directly forwarded to the corresponding child segment of the parent port without
interacting with any layer 2 forwarding/layer 3 routing in this scenario. The crafted packet
will follow the forwarding/routing polices of the child segment's connected network.
For example, if a user injects a crafted packet to port_p, and the segment (seg_p) of port_p
is referred to by the binding map m1, where m1 is bound to segment seg_c, and the destination
port (port_d) of the packet is the VM vNIC connected to seg_p. Although port_p and port_d are
on the same segment, the 'routed' value should be set to true if the user expects the crafted packet
to be correctly delivered to the destination. This is because the child segments seg_c and seg_d
are on different segments and require router interaction to communicate.
boolean
transport_header The transport header

This field contains a protocol that is above IP. It is not restricted to the 'transport' defined by the OSI model (e.g., ICMP is supported).
TransportProtocolHeader
transport_type Transport type of the traceflow packet

This type takes effect only for IP packet.
string Enum: BROADCAST, UNICAST, MULTICAST, UNKNOWN
Default: "UNICAST"