+// SwVmxnet3InterfaceDetails defines message 'sw_vmxnet3_interface_details'.
+type SwVmxnet3InterfaceDetails struct {
+ SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+ IfName string `binapi:"string[64],name=if_name" json:"if_name,omitempty"`
+ HwAddr ethernet_types.MacAddress `binapi:"mac_address,name=hw_addr" json:"hw_addr,omitempty"`
+ PciAddr uint32 `binapi:"u32,name=pci_addr" json:"pci_addr,omitempty"`
+ Version uint8 `binapi:"u8,name=version" json:"version,omitempty"`
+ AdminUpDown bool `binapi:"bool,name=admin_up_down" json:"admin_up_down,omitempty"`
+ RxCount uint8 `binapi:"u8,name=rx_count" json:"rx_count,omitempty"`
+ RxList [16]Vmxnet3RxList `binapi:"vmxnet3_rx_list[16],name=rx_list" json:"rx_list,omitempty"`
+ TxCount uint8 `binapi:"u8,name=tx_count" json:"tx_count,omitempty"`
+ TxList [8]Vmxnet3TxList `binapi:"vmxnet3_tx_list[8],name=tx_list" json:"tx_list,omitempty"`
+}
+
+func (m *SwVmxnet3InterfaceDetails) Reset() { *m = SwVmxnet3InterfaceDetails{} }
+func (*SwVmxnet3InterfaceDetails) GetMessageName() string { return "sw_vmxnet3_interface_details" }
+func (*SwVmxnet3InterfaceDetails) GetCrcString() string { return "6a1a5498" }
+func (*SwVmxnet3InterfaceDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+func (m *SwVmxnet3InterfaceDetails) Size() (size int) {
+ if m == nil {
+ return 0
+ }
+ size += 4 // m.SwIfIndex
+ size += 64 // m.IfName
+ size += 1 * 6 // m.HwAddr
+ size += 4 // m.PciAddr
+ size += 1 // m.Version
+ size += 1 // m.AdminUpDown
+ size += 1 // m.RxCount
+ for j1 := 0; j1 < 16; j1++ {
+ size += 2 // m.RxList[j1].RxQsize
+ size += 2 * 2 // m.RxList[j1].RxFill
+ size += 2 // m.RxList[j1].RxNext
+ size += 2 * 2 // m.RxList[j1].RxProduce
+ size += 2 * 2 // m.RxList[j1].RxConsume
+ }
+ size += 1 // m.TxCount
+ for j1 := 0; j1 < 8; j1++ {
+ size += 2 // m.TxList[j1].TxQsize
+ size += 2 // m.TxList[j1].TxNext
+ size += 2 // m.TxList[j1].TxProduce
+ size += 2 // m.TxList[j1].TxConsume
+ }
+ return size
+}
+func (m *SwVmxnet3InterfaceDetails) Marshal(b []byte) ([]byte, error) {
+ if b == nil {
+ b = make([]byte, m.Size())
+ }
+ buf := codec.NewBuffer(b)
+ buf.EncodeUint32(uint32(m.SwIfIndex))
+ buf.EncodeString(m.IfName, 64)
+ buf.EncodeBytes(m.HwAddr[:], 6)
+ buf.EncodeUint32(m.PciAddr)
+ buf.EncodeUint8(m.Version)
+ buf.EncodeBool(m.AdminUpDown)
+ buf.EncodeUint8(m.RxCount)
+ for j0 := 0; j0 < 16; j0++ {
+ buf.EncodeUint16(m.RxList[j0].RxQsize)
+ for i := 0; i < 2; i++ {
+ var x uint16
+ if i < len(m.RxList[j0].RxFill) {
+ x = uint16(m.RxList[j0].RxFill[i])
+ }
+ buf.EncodeUint16(x)
+ }
+ buf.EncodeUint16(m.RxList[j0].RxNext)
+ for i := 0; i < 2; i++ {
+ var x uint16
+ if i < len(m.RxList[j0].RxProduce) {
+ x = uint16(m.RxList[j0].RxProduce[i])
+ }
+ buf.EncodeUint16(x)
+ }
+ for i := 0; i < 2; i++ {
+ var x uint16
+ if i < len(m.RxList[j0].RxConsume) {
+ x = uint16(m.RxList[j0].RxConsume[i])
+ }
+ buf.EncodeUint16(x)
+ }
+ }
+ buf.EncodeUint8(m.TxCount)
+ for j0 := 0; j0 < 8; j0++ {
+ buf.EncodeUint16(m.TxList[j0].TxQsize)
+ buf.EncodeUint16(m.TxList[j0].TxNext)
+ buf.EncodeUint16(m.TxList[j0].TxProduce)
+ buf.EncodeUint16(m.TxList[j0].TxConsume)
+ }
+ return buf.Bytes(), nil
+}
+func (m *SwVmxnet3InterfaceDetails) Unmarshal(b []byte) error {
+ buf := codec.NewBuffer(b)
+ m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+ m.IfName = buf.DecodeString(64)
+ copy(m.HwAddr[:], buf.DecodeBytes(6))
+ m.PciAddr = buf.DecodeUint32()
+ m.Version = buf.DecodeUint8()
+ m.AdminUpDown = buf.DecodeBool()
+ m.RxCount = buf.DecodeUint8()
+ for j0 := 0; j0 < 16; j0++ {
+ m.RxList[j0].RxQsize = buf.DecodeUint16()
+ m.RxList[j0].RxFill = make([]uint16, 2)
+ for i := 0; i < len(m.RxList[j0].RxFill); i++ {
+ m.RxList[j0].RxFill[i] = buf.DecodeUint16()
+ }
+ m.RxList[j0].RxNext = buf.DecodeUint16()
+ m.RxList[j0].RxProduce = make([]uint16, 2)
+ for i := 0; i < len(m.RxList[j0].RxProduce); i++ {
+ m.RxList[j0].RxProduce[i] = buf.DecodeUint16()
+ }
+ m.RxList[j0].RxConsume = make([]uint16, 2)
+ for i := 0; i < len(m.RxList[j0].RxConsume); i++ {
+ m.RxList[j0].RxConsume[i] = buf.DecodeUint16()
+ }
+ }
+ m.TxCount = buf.DecodeUint8()
+ for j0 := 0; j0 < 8; j0++ {
+ m.TxList[j0].TxQsize = buf.DecodeUint16()
+ m.TxList[j0].TxNext = buf.DecodeUint16()
+ m.TxList[j0].TxProduce = buf.DecodeUint16()
+ m.TxList[j0].TxConsume = buf.DecodeUint16()
+ }
+ return nil
+}
+
+// SwVmxnet3InterfaceDump defines message 'sw_vmxnet3_interface_dump'.
+type SwVmxnet3InterfaceDump struct {
+ SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index,default=4294967295" json:"sw_if_index,omitempty"`
+}
+
+func (m *SwVmxnet3InterfaceDump) Reset() { *m = SwVmxnet3InterfaceDump{} }
+func (*SwVmxnet3InterfaceDump) GetMessageName() string { return "sw_vmxnet3_interface_dump" }
+func (*SwVmxnet3InterfaceDump) GetCrcString() string { return "f9e6675e" }
+func (*SwVmxnet3InterfaceDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+func (m *SwVmxnet3InterfaceDump) Size() (size int) {
+ if m == nil {
+ return 0
+ }
+ size += 4 // m.SwIfIndex
+ return size
+}
+func (m *SwVmxnet3InterfaceDump) Marshal(b []byte) ([]byte, error) {
+ if b == nil {
+ b = make([]byte, m.Size())
+ }
+ buf := codec.NewBuffer(b)
+ buf.EncodeUint32(uint32(m.SwIfIndex))
+ return buf.Bytes(), nil
+}
+func (m *SwVmxnet3InterfaceDump) Unmarshal(b []byte) error {
+ buf := codec.NewBuffer(b)
+ m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+ return nil
+}
+