Class BinaryPacketData

  • All Implemented Interfaces:
    com.vmware.vapi.bindings.StaticStructure, com.vmware.vapi.bindings.Structure, java.io.Serializable

    public final class BinaryPacketData
    extends java.lang.Object
    implements java.io.Serializable, com.vmware.vapi.bindings.StaticStructure
    See Also:
    Serialized Form
    • Field Detail

      • _TYPE_IDENTIFIER

        public static final java.lang.String _TYPE_IDENTIFIER
        Identifier denoting this class, when it is used in polymorphic context.

        This value should be assigned to the property which is used to discriminate the actual type used in the polymorphic context.

        See Also:
        Constant Field Values
      • __dynamicStructureFields

        protected com.vmware.vapi.data.StructValue __dynamicStructureFields
    • Constructor Detail

      • BinaryPacketData

        public BinaryPacketData()
        Default constructor.
      • BinaryPacketData

        protected BinaryPacketData​(com.vmware.vapi.data.StructValue __dynamicStructureFields)
    • Method Detail

      • getPayload

        public java.lang.String getPayload()
        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 must contain all headers (Ethernet, IP, etc). Note that VLAN is not supported in the logical space. Hence, payload must not contain 802.1Q headers.
        Returns:
        The current value of the property.
      • setPayload

        public void setPayload​(java.lang.String 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 must contain all headers (Ethernet, IP, etc). Note that VLAN is not supported in the logical space. Hence, payload must not contain 802.1Q headers.
        Parameters:
        payload - New value for the property.
      • getFrameSize

        public java.lang.Long getFrameSize()
        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. format: int64
        Returns:
        The current value of the property.
      • setFrameSize

        public void setFrameSize​(java.lang.Long frameSize)
        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. format: int64
        Parameters:
        frameSize - New value for the property.
      • getRouted

        public java.lang.Boolean getRouted()
        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.
        Returns:
        The current value of the property.
      • setRouted

        public void setRouted​(java.lang.Boolean routed)
        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.
        Parameters:
        routed - New value for the property.
      • _getType

        public com.vmware.vapi.bindings.type.StructType _getType()
        Specified by:
        _getType in interface com.vmware.vapi.bindings.StaticStructure
      • _getDataValue

        public com.vmware.vapi.data.StructValue _getDataValue()
        Specified by:
        _getDataValue in interface com.vmware.vapi.bindings.Structure
      • _updateDataValue

        protected void _updateDataValue​(com.vmware.vapi.data.StructValue structValue)
      • _validate

        public void _validate()
        Specified by:
        _validate in interface com.vmware.vapi.bindings.StaticStructure
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Specified by:
        toString in interface com.vmware.vapi.bindings.StaticStructure
        Overrides:
        toString in class java.lang.Object
      • _hasTypeNameOf

        public boolean _hasTypeNameOf​(java.lang.Class<? extends com.vmware.vapi.bindings.Structure> clazz)
        Specified by:
        _hasTypeNameOf in interface com.vmware.vapi.bindings.Structure
      • _convertTo

        public <T extends com.vmware.vapi.bindings.Structure> T _convertTo​(java.lang.Class<T> clazz)
        Specified by:
        _convertTo in interface com.vmware.vapi.bindings.Structure
      • _setDynamicField

        public void _setDynamicField​(java.lang.String fieldName,
                                     com.vmware.vapi.data.DataValue fieldValue)
        Specified by:
        _setDynamicField in interface com.vmware.vapi.bindings.StaticStructure
      • _getDynamicField

        public com.vmware.vapi.data.DataValue _getDynamicField​(java.lang.String fieldName)
        Specified by:
        _getDynamicField in interface com.vmware.vapi.bindings.StaticStructure
      • _getDynamicFieldNames

        public java.util.Set<java.lang.String> _getDynamicFieldNames()
        Specified by:
        _getDynamicFieldNames in interface com.vmware.vapi.bindings.StaticStructure
      • _getClassType

        public static com.vmware.vapi.bindings.type.StructType _getClassType()
        WARNING: Internal method, subject to change in future versions.
        Returns:
        StructType instance representing the static bindings type for this Structure.
      • _getCanonicalName

        public java.lang.String _getCanonicalName()
        Specified by:
        _getCanonicalName in interface com.vmware.vapi.bindings.Structure
      • _getCanonicalTypeName

        public static java.lang.String _getCanonicalTypeName()
        Returns the canonical type name. See _getCanonicalName().
        Returns:
        canonical type name
      • _newInstance

        public static BinaryPacketData _newInstance​(com.vmware.vapi.data.StructValue structValue)
        WARNING: Internal method, subject to change in future versions.
        Returns new instance of this binding class and injects the provided data value.
        WARNING: The returned object is not fully initialized.
        Parameters:
        structValue - the source of the data contained in the binding object. Could contain more data than fields of this class can describe i.e. newer version of the binding object. Could be null.
        Returns:
        the static bindings StructType
      • _newInstance2

        public static BinaryPacketData _newInstance2​(com.vmware.vapi.data.StructValue structValue)
        WARNING: Internal method, subject to change in future versions.
        Serves as a versioning mechanism.