Improve binapi generator
[govpp.git] / binapi / interface / interface.ba.go
diff --git a/binapi/interface/interface.ba.go b/binapi/interface/interface.ba.go
new file mode 100644 (file)
index 0000000..9c2dd23
--- /dev/null
@@ -0,0 +1,2542 @@
+// Code generated by GoVPP's binapi-generator. DO NOT EDIT.
+// versions:
+//  binapi-generator: v0.4.0-dev
+//  VPP:              20.05-release
+// source: /usr/share/vpp/api/core/interface.api.json
+
+// Package interfaces contains generated bindings for API file interface.api.
+//
+// Contents:
+//  57 messages
+//
+package interfaces
+
+import (
+       api "git.fd.io/govpp.git/api"
+       ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
+       interface_types "git.fd.io/govpp.git/binapi/interface_types"
+       ip_types "git.fd.io/govpp.git/binapi/ip_types"
+       codec "git.fd.io/govpp.git/codec"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the GoVPP api package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// GoVPP api package needs to be updated.
+const _ = api.GoVppAPIPackageIsVersion2
+
+const (
+       APIFile    = "interface"
+       APIVersion = "3.2.2"
+       VersionCrc = 0x58d4cf5a
+)
+
+// CollectDetailedInterfaceStats defines message 'collect_detailed_interface_stats'.
+type CollectDetailedInterfaceStats struct {
+       SwIfIndex     interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       EnableDisable bool                           `binapi:"bool,name=enable_disable" json:"enable_disable,omitempty"`
+}
+
+func (m *CollectDetailedInterfaceStats) Reset() { *m = CollectDetailedInterfaceStats{} }
+func (*CollectDetailedInterfaceStats) GetMessageName() string {
+       return "collect_detailed_interface_stats"
+}
+func (*CollectDetailedInterfaceStats) GetCrcString() string { return "5501adee" }
+func (*CollectDetailedInterfaceStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *CollectDetailedInterfaceStats) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 1 // m.EnableDisable
+       return size
+}
+func (m *CollectDetailedInterfaceStats) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeBool(m.EnableDisable)
+       return buf.Bytes(), nil
+}
+func (m *CollectDetailedInterfaceStats) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.EnableDisable = buf.DecodeBool()
+       return nil
+}
+
+// CollectDetailedInterfaceStatsReply defines message 'collect_detailed_interface_stats_reply'.
+type CollectDetailedInterfaceStatsReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *CollectDetailedInterfaceStatsReply) Reset() { *m = CollectDetailedInterfaceStatsReply{} }
+func (*CollectDetailedInterfaceStatsReply) GetMessageName() string {
+       return "collect_detailed_interface_stats_reply"
+}
+func (*CollectDetailedInterfaceStatsReply) GetCrcString() string { return "e8d4e804" }
+func (*CollectDetailedInterfaceStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *CollectDetailedInterfaceStatsReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *CollectDetailedInterfaceStatsReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *CollectDetailedInterfaceStatsReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// CreateLoopback defines message 'create_loopback'.
+type CreateLoopback struct {
+       MacAddress ethernet_types.MacAddress `binapi:"mac_address,name=mac_address" json:"mac_address,omitempty"`
+}
+
+func (m *CreateLoopback) Reset()               { *m = CreateLoopback{} }
+func (*CreateLoopback) GetMessageName() string { return "create_loopback" }
+func (*CreateLoopback) GetCrcString() string   { return "42bb5d22" }
+func (*CreateLoopback) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *CreateLoopback) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 1 * 6 // m.MacAddress
+       return size
+}
+func (m *CreateLoopback) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeBytes(m.MacAddress[:], 6)
+       return buf.Bytes(), nil
+}
+func (m *CreateLoopback) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       copy(m.MacAddress[:], buf.DecodeBytes(6))
+       return nil
+}
+
+// CreateLoopbackInstance defines message 'create_loopback_instance'.
+type CreateLoopbackInstance struct {
+       MacAddress   ethernet_types.MacAddress `binapi:"mac_address,name=mac_address" json:"mac_address,omitempty"`
+       IsSpecified  bool                      `binapi:"bool,name=is_specified" json:"is_specified,omitempty"`
+       UserInstance uint32                    `binapi:"u32,name=user_instance" json:"user_instance,omitempty"`
+}
+
+func (m *CreateLoopbackInstance) Reset()               { *m = CreateLoopbackInstance{} }
+func (*CreateLoopbackInstance) GetMessageName() string { return "create_loopback_instance" }
+func (*CreateLoopbackInstance) GetCrcString() string   { return "d36a3ee2" }
+func (*CreateLoopbackInstance) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *CreateLoopbackInstance) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 1 * 6 // m.MacAddress
+       size += 1     // m.IsSpecified
+       size += 4     // m.UserInstance
+       return size
+}
+func (m *CreateLoopbackInstance) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeBytes(m.MacAddress[:], 6)
+       buf.EncodeBool(m.IsSpecified)
+       buf.EncodeUint32(uint32(m.UserInstance))
+       return buf.Bytes(), nil
+}
+func (m *CreateLoopbackInstance) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       copy(m.MacAddress[:], buf.DecodeBytes(6))
+       m.IsSpecified = buf.DecodeBool()
+       m.UserInstance = buf.DecodeUint32()
+       return nil
+}
+
+// CreateLoopbackInstanceReply defines message 'create_loopback_instance_reply'.
+type CreateLoopbackInstanceReply struct {
+       Retval    int32                          `binapi:"i32,name=retval" json:"retval,omitempty"`
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *CreateLoopbackInstanceReply) Reset()               { *m = CreateLoopbackInstanceReply{} }
+func (*CreateLoopbackInstanceReply) GetMessageName() string { return "create_loopback_instance_reply" }
+func (*CreateLoopbackInstanceReply) GetCrcString() string   { return "5383d31f" }
+func (*CreateLoopbackInstanceReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *CreateLoopbackInstanceReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       size += 4 // m.SwIfIndex
+       return size
+}
+func (m *CreateLoopbackInstanceReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       return buf.Bytes(), nil
+}
+func (m *CreateLoopbackInstanceReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       return nil
+}
+
+// CreateLoopbackReply defines message 'create_loopback_reply'.
+type CreateLoopbackReply struct {
+       Retval    int32                          `binapi:"i32,name=retval" json:"retval,omitempty"`
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *CreateLoopbackReply) Reset()               { *m = CreateLoopbackReply{} }
+func (*CreateLoopbackReply) GetMessageName() string { return "create_loopback_reply" }
+func (*CreateLoopbackReply) GetCrcString() string   { return "5383d31f" }
+func (*CreateLoopbackReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *CreateLoopbackReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       size += 4 // m.SwIfIndex
+       return size
+}
+func (m *CreateLoopbackReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       return buf.Bytes(), nil
+}
+func (m *CreateLoopbackReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       return nil
+}
+
+// CreateSubif defines message 'create_subif'.
+type CreateSubif struct {
+       SwIfIndex   interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       SubID       uint32                         `binapi:"u32,name=sub_id" json:"sub_id,omitempty"`
+       SubIfFlags  interface_types.SubIfFlags     `binapi:"sub_if_flags,name=sub_if_flags" json:"sub_if_flags,omitempty"`
+       OuterVlanID uint16                         `binapi:"u16,name=outer_vlan_id" json:"outer_vlan_id,omitempty"`
+       InnerVlanID uint16                         `binapi:"u16,name=inner_vlan_id" json:"inner_vlan_id,omitempty"`
+}
+
+func (m *CreateSubif) Reset()               { *m = CreateSubif{} }
+func (*CreateSubif) GetMessageName() string { return "create_subif" }
+func (*CreateSubif) GetCrcString() string   { return "cb371063" }
+func (*CreateSubif) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *CreateSubif) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 4 // m.SubID
+       size += 4 // m.SubIfFlags
+       size += 2 // m.OuterVlanID
+       size += 2 // m.InnerVlanID
+       return size
+}
+func (m *CreateSubif) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeUint32(uint32(m.SubID))
+       buf.EncodeUint32(uint32(m.SubIfFlags))
+       buf.EncodeUint16(uint16(m.OuterVlanID))
+       buf.EncodeUint16(uint16(m.InnerVlanID))
+       return buf.Bytes(), nil
+}
+func (m *CreateSubif) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.SubID = buf.DecodeUint32()
+       m.SubIfFlags = interface_types.SubIfFlags(buf.DecodeUint32())
+       m.OuterVlanID = buf.DecodeUint16()
+       m.InnerVlanID = buf.DecodeUint16()
+       return nil
+}
+
+// CreateSubifReply defines message 'create_subif_reply'.
+type CreateSubifReply struct {
+       Retval    int32                          `binapi:"i32,name=retval" json:"retval,omitempty"`
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *CreateSubifReply) Reset()               { *m = CreateSubifReply{} }
+func (*CreateSubifReply) GetMessageName() string { return "create_subif_reply" }
+func (*CreateSubifReply) GetCrcString() string   { return "5383d31f" }
+func (*CreateSubifReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *CreateSubifReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       size += 4 // m.SwIfIndex
+       return size
+}
+func (m *CreateSubifReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       return buf.Bytes(), nil
+}
+func (m *CreateSubifReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       return nil
+}
+
+// CreateVlanSubif defines message 'create_vlan_subif'.
+type CreateVlanSubif struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       VlanID    uint32                         `binapi:"u32,name=vlan_id" json:"vlan_id,omitempty"`
+}
+
+func (m *CreateVlanSubif) Reset()               { *m = CreateVlanSubif{} }
+func (*CreateVlanSubif) GetMessageName() string { return "create_vlan_subif" }
+func (*CreateVlanSubif) GetCrcString() string   { return "af34ac8b" }
+func (*CreateVlanSubif) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *CreateVlanSubif) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 4 // m.VlanID
+       return size
+}
+func (m *CreateVlanSubif) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeUint32(uint32(m.VlanID))
+       return buf.Bytes(), nil
+}
+func (m *CreateVlanSubif) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.VlanID = buf.DecodeUint32()
+       return nil
+}
+
+// CreateVlanSubifReply defines message 'create_vlan_subif_reply'.
+type CreateVlanSubifReply struct {
+       Retval    int32                          `binapi:"i32,name=retval" json:"retval,omitempty"`
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *CreateVlanSubifReply) Reset()               { *m = CreateVlanSubifReply{} }
+func (*CreateVlanSubifReply) GetMessageName() string { return "create_vlan_subif_reply" }
+func (*CreateVlanSubifReply) GetCrcString() string   { return "5383d31f" }
+func (*CreateVlanSubifReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *CreateVlanSubifReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       size += 4 // m.SwIfIndex
+       return size
+}
+func (m *CreateVlanSubifReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       return buf.Bytes(), nil
+}
+func (m *CreateVlanSubifReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       return nil
+}
+
+// DeleteLoopback defines message 'delete_loopback'.
+type DeleteLoopback struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *DeleteLoopback) Reset()               { *m = DeleteLoopback{} }
+func (*DeleteLoopback) GetMessageName() string { return "delete_loopback" }
+func (*DeleteLoopback) GetCrcString() string   { return "f9e6675e" }
+func (*DeleteLoopback) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *DeleteLoopback) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       return size
+}
+func (m *DeleteLoopback) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       return buf.Bytes(), nil
+}
+func (m *DeleteLoopback) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       return nil
+}
+
+// DeleteLoopbackReply defines message 'delete_loopback_reply'.
+type DeleteLoopbackReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *DeleteLoopbackReply) Reset()               { *m = DeleteLoopbackReply{} }
+func (*DeleteLoopbackReply) GetMessageName() string { return "delete_loopback_reply" }
+func (*DeleteLoopbackReply) GetCrcString() string   { return "e8d4e804" }
+func (*DeleteLoopbackReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *DeleteLoopbackReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *DeleteLoopbackReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *DeleteLoopbackReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// DeleteSubif defines message 'delete_subif'.
+type DeleteSubif struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *DeleteSubif) Reset()               { *m = DeleteSubif{} }
+func (*DeleteSubif) GetMessageName() string { return "delete_subif" }
+func (*DeleteSubif) GetCrcString() string   { return "f9e6675e" }
+func (*DeleteSubif) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *DeleteSubif) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       return size
+}
+func (m *DeleteSubif) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       return buf.Bytes(), nil
+}
+func (m *DeleteSubif) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       return nil
+}
+
+// DeleteSubifReply defines message 'delete_subif_reply'.
+type DeleteSubifReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *DeleteSubifReply) Reset()               { *m = DeleteSubifReply{} }
+func (*DeleteSubifReply) GetMessageName() string { return "delete_subif_reply" }
+func (*DeleteSubifReply) GetCrcString() string   { return "e8d4e804" }
+func (*DeleteSubifReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *DeleteSubifReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *DeleteSubifReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *DeleteSubifReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// HwInterfaceSetMtu defines message 'hw_interface_set_mtu'.
+type HwInterfaceSetMtu struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       Mtu       uint16                         `binapi:"u16,name=mtu" json:"mtu,omitempty"`
+}
+
+func (m *HwInterfaceSetMtu) Reset()               { *m = HwInterfaceSetMtu{} }
+func (*HwInterfaceSetMtu) GetMessageName() string { return "hw_interface_set_mtu" }
+func (*HwInterfaceSetMtu) GetCrcString() string   { return "e6746899" }
+func (*HwInterfaceSetMtu) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *HwInterfaceSetMtu) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 2 // m.Mtu
+       return size
+}
+func (m *HwInterfaceSetMtu) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeUint16(uint16(m.Mtu))
+       return buf.Bytes(), nil
+}
+func (m *HwInterfaceSetMtu) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.Mtu = buf.DecodeUint16()
+       return nil
+}
+
+// HwInterfaceSetMtuReply defines message 'hw_interface_set_mtu_reply'.
+type HwInterfaceSetMtuReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *HwInterfaceSetMtuReply) Reset()               { *m = HwInterfaceSetMtuReply{} }
+func (*HwInterfaceSetMtuReply) GetMessageName() string { return "hw_interface_set_mtu_reply" }
+func (*HwInterfaceSetMtuReply) GetCrcString() string   { return "e8d4e804" }
+func (*HwInterfaceSetMtuReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *HwInterfaceSetMtuReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *HwInterfaceSetMtuReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *HwInterfaceSetMtuReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// InterfaceNameRenumber defines message 'interface_name_renumber'.
+type InterfaceNameRenumber struct {
+       SwIfIndex          interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       NewShowDevInstance uint32                         `binapi:"u32,name=new_show_dev_instance" json:"new_show_dev_instance,omitempty"`
+}
+
+func (m *InterfaceNameRenumber) Reset()               { *m = InterfaceNameRenumber{} }
+func (*InterfaceNameRenumber) GetMessageName() string { return "interface_name_renumber" }
+func (*InterfaceNameRenumber) GetCrcString() string   { return "2b8858b8" }
+func (*InterfaceNameRenumber) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *InterfaceNameRenumber) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 4 // m.NewShowDevInstance
+       return size
+}
+func (m *InterfaceNameRenumber) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeUint32(uint32(m.NewShowDevInstance))
+       return buf.Bytes(), nil
+}
+func (m *InterfaceNameRenumber) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.NewShowDevInstance = buf.DecodeUint32()
+       return nil
+}
+
+// InterfaceNameRenumberReply defines message 'interface_name_renumber_reply'.
+type InterfaceNameRenumberReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *InterfaceNameRenumberReply) Reset()               { *m = InterfaceNameRenumberReply{} }
+func (*InterfaceNameRenumberReply) GetMessageName() string { return "interface_name_renumber_reply" }
+func (*InterfaceNameRenumberReply) GetCrcString() string   { return "e8d4e804" }
+func (*InterfaceNameRenumberReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *InterfaceNameRenumberReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *InterfaceNameRenumberReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *InterfaceNameRenumberReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceAddDelAddress defines message 'sw_interface_add_del_address'.
+type SwInterfaceAddDelAddress struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
+       DelAll    bool                           `binapi:"bool,name=del_all" json:"del_all,omitempty"`
+       Prefix    ip_types.AddressWithPrefix     `binapi:"address_with_prefix,name=prefix" json:"prefix,omitempty"`
+}
+
+func (m *SwInterfaceAddDelAddress) Reset()               { *m = SwInterfaceAddDelAddress{} }
+func (*SwInterfaceAddDelAddress) GetMessageName() string { return "sw_interface_add_del_address" }
+func (*SwInterfaceAddDelAddress) GetCrcString() string   { return "5803d5c4" }
+func (*SwInterfaceAddDelAddress) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceAddDelAddress) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4      // m.SwIfIndex
+       size += 1      // m.IsAdd
+       size += 1      // m.DelAll
+       size += 1      // m.Prefix.Address.Af
+       size += 1 * 16 // m.Prefix.Address.Un
+       size += 1      // m.Prefix.Len
+       return size
+}
+func (m *SwInterfaceAddDelAddress) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeBool(m.IsAdd)
+       buf.EncodeBool(m.DelAll)
+       buf.EncodeUint8(uint8(m.Prefix.Address.Af))
+       buf.EncodeBytes(m.Prefix.Address.Un.XXX_UnionData[:], 0)
+       buf.EncodeUint8(uint8(m.Prefix.Len))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceAddDelAddress) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.IsAdd = buf.DecodeBool()
+       m.DelAll = buf.DecodeBool()
+       m.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
+       copy(m.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
+       m.Prefix.Len = buf.DecodeUint8()
+       return nil
+}
+
+// SwInterfaceAddDelAddressReply defines message 'sw_interface_add_del_address_reply'.
+type SwInterfaceAddDelAddressReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceAddDelAddressReply) Reset() { *m = SwInterfaceAddDelAddressReply{} }
+func (*SwInterfaceAddDelAddressReply) GetMessageName() string {
+       return "sw_interface_add_del_address_reply"
+}
+func (*SwInterfaceAddDelAddressReply) GetCrcString() string { return "e8d4e804" }
+func (*SwInterfaceAddDelAddressReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceAddDelAddressReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceAddDelAddressReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceAddDelAddressReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceAddDelMacAddress defines message 'sw_interface_add_del_mac_address'.
+type SwInterfaceAddDelMacAddress struct {
+       SwIfIndex uint32                    `binapi:"u32,name=sw_if_index" json:"sw_if_index,omitempty"`
+       Addr      ethernet_types.MacAddress `binapi:"mac_address,name=addr" json:"addr,omitempty"`
+       IsAdd     uint8                     `binapi:"u8,name=is_add" json:"is_add,omitempty"`
+}
+
+func (m *SwInterfaceAddDelMacAddress) Reset() { *m = SwInterfaceAddDelMacAddress{} }
+func (*SwInterfaceAddDelMacAddress) GetMessageName() string {
+       return "sw_interface_add_del_mac_address"
+}
+func (*SwInterfaceAddDelMacAddress) GetCrcString() string { return "638bb9f4" }
+func (*SwInterfaceAddDelMacAddress) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceAddDelMacAddress) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4     // m.SwIfIndex
+       size += 1 * 6 // m.Addr
+       size += 1     // m.IsAdd
+       return size
+}
+func (m *SwInterfaceAddDelMacAddress) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeBytes(m.Addr[:], 6)
+       buf.EncodeUint8(uint8(m.IsAdd))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceAddDelMacAddress) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = buf.DecodeUint32()
+       copy(m.Addr[:], buf.DecodeBytes(6))
+       m.IsAdd = buf.DecodeUint8()
+       return nil
+}
+
+// SwInterfaceAddDelMacAddressReply defines message 'sw_interface_add_del_mac_address_reply'.
+type SwInterfaceAddDelMacAddressReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceAddDelMacAddressReply) Reset() { *m = SwInterfaceAddDelMacAddressReply{} }
+func (*SwInterfaceAddDelMacAddressReply) GetMessageName() string {
+       return "sw_interface_add_del_mac_address_reply"
+}
+func (*SwInterfaceAddDelMacAddressReply) GetCrcString() string { return "e8d4e804" }
+func (*SwInterfaceAddDelMacAddressReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceAddDelMacAddressReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceAddDelMacAddressReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceAddDelMacAddressReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceAddressReplaceBegin defines message 'sw_interface_address_replace_begin'.
+type SwInterfaceAddressReplaceBegin struct{}
+
+func (m *SwInterfaceAddressReplaceBegin) Reset() { *m = SwInterfaceAddressReplaceBegin{} }
+func (*SwInterfaceAddressReplaceBegin) GetMessageName() string {
+       return "sw_interface_address_replace_begin"
+}
+func (*SwInterfaceAddressReplaceBegin) GetCrcString() string { return "51077d14" }
+func (*SwInterfaceAddressReplaceBegin) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceAddressReplaceBegin) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       return size
+}
+func (m *SwInterfaceAddressReplaceBegin) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceAddressReplaceBegin) Unmarshal(b []byte) error {
+       return nil
+}
+
+// SwInterfaceAddressReplaceBeginReply defines message 'sw_interface_address_replace_begin_reply'.
+type SwInterfaceAddressReplaceBeginReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceAddressReplaceBeginReply) Reset() { *m = SwInterfaceAddressReplaceBeginReply{} }
+func (*SwInterfaceAddressReplaceBeginReply) GetMessageName() string {
+       return "sw_interface_address_replace_begin_reply"
+}
+func (*SwInterfaceAddressReplaceBeginReply) GetCrcString() string { return "e8d4e804" }
+func (*SwInterfaceAddressReplaceBeginReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceAddressReplaceBeginReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceAddressReplaceBeginReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceAddressReplaceBeginReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceAddressReplaceEnd defines message 'sw_interface_address_replace_end'.
+type SwInterfaceAddressReplaceEnd struct{}
+
+func (m *SwInterfaceAddressReplaceEnd) Reset() { *m = SwInterfaceAddressReplaceEnd{} }
+func (*SwInterfaceAddressReplaceEnd) GetMessageName() string {
+       return "sw_interface_address_replace_end"
+}
+func (*SwInterfaceAddressReplaceEnd) GetCrcString() string { return "51077d14" }
+func (*SwInterfaceAddressReplaceEnd) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceAddressReplaceEnd) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       return size
+}
+func (m *SwInterfaceAddressReplaceEnd) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceAddressReplaceEnd) Unmarshal(b []byte) error {
+       return nil
+}
+
+// SwInterfaceAddressReplaceEndReply defines message 'sw_interface_address_replace_end_reply'.
+type SwInterfaceAddressReplaceEndReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceAddressReplaceEndReply) Reset() { *m = SwInterfaceAddressReplaceEndReply{} }
+func (*SwInterfaceAddressReplaceEndReply) GetMessageName() string {
+       return "sw_interface_address_replace_end_reply"
+}
+func (*SwInterfaceAddressReplaceEndReply) GetCrcString() string { return "e8d4e804" }
+func (*SwInterfaceAddressReplaceEndReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceAddressReplaceEndReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceAddressReplaceEndReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceAddressReplaceEndReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceClearStats defines message 'sw_interface_clear_stats'.
+type SwInterfaceClearStats struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *SwInterfaceClearStats) Reset()               { *m = SwInterfaceClearStats{} }
+func (*SwInterfaceClearStats) GetMessageName() string { return "sw_interface_clear_stats" }
+func (*SwInterfaceClearStats) GetCrcString() string   { return "f9e6675e" }
+func (*SwInterfaceClearStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceClearStats) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       return size
+}
+func (m *SwInterfaceClearStats) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceClearStats) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceClearStatsReply defines message 'sw_interface_clear_stats_reply'.
+type SwInterfaceClearStatsReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceClearStatsReply) Reset()               { *m = SwInterfaceClearStatsReply{} }
+func (*SwInterfaceClearStatsReply) GetMessageName() string { return "sw_interface_clear_stats_reply" }
+func (*SwInterfaceClearStatsReply) GetCrcString() string   { return "e8d4e804" }
+func (*SwInterfaceClearStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceClearStatsReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceClearStatsReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceClearStatsReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceDetails defines message 'sw_interface_details'.
+type SwInterfaceDetails struct {
+       SwIfIndex        interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       SupSwIfIndex     uint32                         `binapi:"u32,name=sup_sw_if_index" json:"sup_sw_if_index,omitempty"`
+       L2Address        ethernet_types.MacAddress      `binapi:"mac_address,name=l2_address" json:"l2_address,omitempty"`
+       Flags            interface_types.IfStatusFlags  `binapi:"if_status_flags,name=flags" json:"flags,omitempty"`
+       Type             interface_types.IfType         `binapi:"if_type,name=type" json:"type,omitempty"`
+       LinkDuplex       interface_types.LinkDuplex     `binapi:"link_duplex,name=link_duplex" json:"link_duplex,omitempty"`
+       LinkSpeed        uint32                         `binapi:"u32,name=link_speed" json:"link_speed,omitempty"`
+       LinkMtu          uint16                         `binapi:"u16,name=link_mtu" json:"link_mtu,omitempty"`
+       Mtu              []uint32                       `binapi:"u32[4],name=mtu" json:"mtu,omitempty"`
+       SubID            uint32                         `binapi:"u32,name=sub_id" json:"sub_id,omitempty"`
+       SubNumberOfTags  uint8                          `binapi:"u8,name=sub_number_of_tags" json:"sub_number_of_tags,omitempty"`
+       SubOuterVlanID   uint16                         `binapi:"u16,name=sub_outer_vlan_id" json:"sub_outer_vlan_id,omitempty"`
+       SubInnerVlanID   uint16                         `binapi:"u16,name=sub_inner_vlan_id" json:"sub_inner_vlan_id,omitempty"`
+       SubIfFlags       interface_types.SubIfFlags     `binapi:"sub_if_flags,name=sub_if_flags" json:"sub_if_flags,omitempty"`
+       VtrOp            uint32                         `binapi:"u32,name=vtr_op" json:"vtr_op,omitempty"`
+       VtrPushDot1q     uint32                         `binapi:"u32,name=vtr_push_dot1q" json:"vtr_push_dot1q,omitempty"`
+       VtrTag1          uint32                         `binapi:"u32,name=vtr_tag1" json:"vtr_tag1,omitempty"`
+       VtrTag2          uint32                         `binapi:"u32,name=vtr_tag2" json:"vtr_tag2,omitempty"`
+       OuterTag         uint16                         `binapi:"u16,name=outer_tag" json:"outer_tag,omitempty"`
+       BDmac            ethernet_types.MacAddress      `binapi:"mac_address,name=b_dmac" json:"b_dmac,omitempty"`
+       BSmac            ethernet_types.MacAddress      `binapi:"mac_address,name=b_smac" json:"b_smac,omitempty"`
+       BVlanid          uint16                         `binapi:"u16,name=b_vlanid" json:"b_vlanid,omitempty"`
+       ISid             uint32                         `binapi:"u32,name=i_sid" json:"i_sid,omitempty"`
+       InterfaceName    string                         `binapi:"string[64],name=interface_name" json:"interface_name,omitempty"`
+       InterfaceDevType string                         `binapi:"string[64],name=interface_dev_type" json:"interface_dev_type,omitempty"`
+       Tag              string                         `binapi:"string[64],name=tag" json:"tag,omitempty"`
+}
+
+func (m *SwInterfaceDetails) Reset()               { *m = SwInterfaceDetails{} }
+func (*SwInterfaceDetails) GetMessageName() string { return "sw_interface_details" }
+func (*SwInterfaceDetails) GetCrcString() string   { return "17b69fa2" }
+func (*SwInterfaceDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceDetails) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4     // m.SwIfIndex
+       size += 4     // m.SupSwIfIndex
+       size += 1 * 6 // m.L2Address
+       size += 4     // m.Flags
+       size += 4     // m.Type
+       size += 4     // m.LinkDuplex
+       size += 4     // m.LinkSpeed
+       size += 2     // m.LinkMtu
+       size += 4 * 4 // m.Mtu
+       size += 4     // m.SubID
+       size += 1     // m.SubNumberOfTags
+       size += 2     // m.SubOuterVlanID
+       size += 2     // m.SubInnerVlanID
+       size += 4     // m.SubIfFlags
+       size += 4     // m.VtrOp
+       size += 4     // m.VtrPushDot1q
+       size += 4     // m.VtrTag1
+       size += 4     // m.VtrTag2
+       size += 2     // m.OuterTag
+       size += 1 * 6 // m.BDmac
+       size += 1 * 6 // m.BSmac
+       size += 2     // m.BVlanid
+       size += 4     // m.ISid
+       size += 64    // m.InterfaceName
+       size += 64    // m.InterfaceDevType
+       size += 64    // m.Tag
+       return size
+}
+func (m *SwInterfaceDetails) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeUint32(uint32(m.SupSwIfIndex))
+       buf.EncodeBytes(m.L2Address[:], 6)
+       buf.EncodeUint32(uint32(m.Flags))
+       buf.EncodeUint32(uint32(m.Type))
+       buf.EncodeUint32(uint32(m.LinkDuplex))
+       buf.EncodeUint32(uint32(m.LinkSpeed))
+       buf.EncodeUint16(uint16(m.LinkMtu))
+       for i := 0; i < 4; i++ {
+               var x uint32
+               if i < len(m.Mtu) {
+                       x = uint32(m.Mtu[i])
+               }
+               buf.EncodeUint32(uint32(x))
+       }
+       buf.EncodeUint32(uint32(m.SubID))
+       buf.EncodeUint8(uint8(m.SubNumberOfTags))
+       buf.EncodeUint16(uint16(m.SubOuterVlanID))
+       buf.EncodeUint16(uint16(m.SubInnerVlanID))
+       buf.EncodeUint32(uint32(m.SubIfFlags))
+       buf.EncodeUint32(uint32(m.VtrOp))
+       buf.EncodeUint32(uint32(m.VtrPushDot1q))
+       buf.EncodeUint32(uint32(m.VtrTag1))
+       buf.EncodeUint32(uint32(m.VtrTag2))
+       buf.EncodeUint16(uint16(m.OuterTag))
+       buf.EncodeBytes(m.BDmac[:], 6)
+       buf.EncodeBytes(m.BSmac[:], 6)
+       buf.EncodeUint16(uint16(m.BVlanid))
+       buf.EncodeUint32(uint32(m.ISid))
+       buf.EncodeString(m.InterfaceName, 64)
+       buf.EncodeString(m.InterfaceDevType, 64)
+       buf.EncodeString(m.Tag, 64)
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceDetails) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.SupSwIfIndex = buf.DecodeUint32()
+       copy(m.L2Address[:], buf.DecodeBytes(6))
+       m.Flags = interface_types.IfStatusFlags(buf.DecodeUint32())
+       m.Type = interface_types.IfType(buf.DecodeUint32())
+       m.LinkDuplex = interface_types.LinkDuplex(buf.DecodeUint32())
+       m.LinkSpeed = buf.DecodeUint32()
+       m.LinkMtu = buf.DecodeUint16()
+       m.Mtu = make([]uint32, 4)
+       for i := 0; i < len(m.Mtu); i++ {
+               m.Mtu[i] = buf.DecodeUint32()
+       }
+       m.SubID = buf.DecodeUint32()
+       m.SubNumberOfTags = buf.DecodeUint8()
+       m.SubOuterVlanID = buf.DecodeUint16()
+       m.SubInnerVlanID = buf.DecodeUint16()
+       m.SubIfFlags = interface_types.SubIfFlags(buf.DecodeUint32())
+       m.VtrOp = buf.DecodeUint32()
+       m.VtrPushDot1q = buf.DecodeUint32()
+       m.VtrTag1 = buf.DecodeUint32()
+       m.VtrTag2 = buf.DecodeUint32()
+       m.OuterTag = buf.DecodeUint16()
+       copy(m.BDmac[:], buf.DecodeBytes(6))
+       copy(m.BSmac[:], buf.DecodeBytes(6))
+       m.BVlanid = buf.DecodeUint16()
+       m.ISid = buf.DecodeUint32()
+       m.InterfaceName = buf.DecodeString(64)
+       m.InterfaceDevType = buf.DecodeString(64)
+       m.Tag = buf.DecodeString(64)
+       return nil
+}
+
+// SwInterfaceDump defines message 'sw_interface_dump'.
+type SwInterfaceDump struct {
+       SwIfIndex       interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index,default=%!s(float64=4.294967295e+09)" json:"sw_if_index,omitempty"`
+       NameFilterValid bool                           `binapi:"bool,name=name_filter_valid" json:"name_filter_valid,omitempty"`
+       NameFilter      string                         `binapi:"string[],name=name_filter" json:"name_filter,omitempty"`
+}
+
+func (m *SwInterfaceDump) Reset()               { *m = SwInterfaceDump{} }
+func (*SwInterfaceDump) GetMessageName() string { return "sw_interface_dump" }
+func (*SwInterfaceDump) GetCrcString() string   { return "aa610c27" }
+func (*SwInterfaceDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceDump) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4                     // m.SwIfIndex
+       size += 1                     // m.NameFilterValid
+       size += 4 + len(m.NameFilter) // m.NameFilter
+       return size
+}
+func (m *SwInterfaceDump) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeBool(m.NameFilterValid)
+       buf.EncodeString(m.NameFilter, 0)
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceDump) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.NameFilterValid = buf.DecodeBool()
+       m.NameFilter = buf.DecodeString(0)
+       return nil
+}
+
+// SwInterfaceEvent defines message 'sw_interface_event'.
+type SwInterfaceEvent struct {
+       PID       uint32                         `binapi:"u32,name=pid" json:"pid,omitempty"`
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       Flags     interface_types.IfStatusFlags  `binapi:"if_status_flags,name=flags" json:"flags,omitempty"`
+       Deleted   bool                           `binapi:"bool,name=deleted" json:"deleted,omitempty"`
+}
+
+func (m *SwInterfaceEvent) Reset()               { *m = SwInterfaceEvent{} }
+func (*SwInterfaceEvent) GetMessageName() string { return "sw_interface_event" }
+func (*SwInterfaceEvent) GetCrcString() string   { return "f709f78d" }
+func (*SwInterfaceEvent) GetMessageType() api.MessageType {
+       return api.EventMessage
+}
+
+func (m *SwInterfaceEvent) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.PID
+       size += 4 // m.SwIfIndex
+       size += 4 // m.Flags
+       size += 1 // m.Deleted
+       return size
+}
+func (m *SwInterfaceEvent) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.PID))
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeUint32(uint32(m.Flags))
+       buf.EncodeBool(m.Deleted)
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceEvent) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.PID = buf.DecodeUint32()
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.Flags = interface_types.IfStatusFlags(buf.DecodeUint32())
+       m.Deleted = buf.DecodeBool()
+       return nil
+}
+
+// SwInterfaceGetMacAddress defines message 'sw_interface_get_mac_address'.
+type SwInterfaceGetMacAddress struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *SwInterfaceGetMacAddress) Reset()               { *m = SwInterfaceGetMacAddress{} }
+func (*SwInterfaceGetMacAddress) GetMessageName() string { return "sw_interface_get_mac_address" }
+func (*SwInterfaceGetMacAddress) GetCrcString() string   { return "f9e6675e" }
+func (*SwInterfaceGetMacAddress) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceGetMacAddress) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       return size
+}
+func (m *SwInterfaceGetMacAddress) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceGetMacAddress) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceGetMacAddressReply defines message 'sw_interface_get_mac_address_reply'.
+type SwInterfaceGetMacAddressReply struct {
+       Retval     int32                     `binapi:"i32,name=retval" json:"retval,omitempty"`
+       MacAddress ethernet_types.MacAddress `binapi:"mac_address,name=mac_address" json:"mac_address,omitempty"`
+}
+
+func (m *SwInterfaceGetMacAddressReply) Reset() { *m = SwInterfaceGetMacAddressReply{} }
+func (*SwInterfaceGetMacAddressReply) GetMessageName() string {
+       return "sw_interface_get_mac_address_reply"
+}
+func (*SwInterfaceGetMacAddressReply) GetCrcString() string { return "40ef2c08" }
+func (*SwInterfaceGetMacAddressReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceGetMacAddressReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4     // m.Retval
+       size += 1 * 6 // m.MacAddress
+       return size
+}
+func (m *SwInterfaceGetMacAddressReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       buf.EncodeBytes(m.MacAddress[:], 6)
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceGetMacAddressReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       copy(m.MacAddress[:], buf.DecodeBytes(6))
+       return nil
+}
+
+// SwInterfaceGetTable defines message 'sw_interface_get_table'.
+type SwInterfaceGetTable struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       IsIPv6    bool                           `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"`
+}
+
+func (m *SwInterfaceGetTable) Reset()               { *m = SwInterfaceGetTable{} }
+func (*SwInterfaceGetTable) GetMessageName() string { return "sw_interface_get_table" }
+func (*SwInterfaceGetTable) GetCrcString() string   { return "2d033de4" }
+func (*SwInterfaceGetTable) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceGetTable) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 1 // m.IsIPv6
+       return size
+}
+func (m *SwInterfaceGetTable) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeBool(m.IsIPv6)
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceGetTable) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.IsIPv6 = buf.DecodeBool()
+       return nil
+}
+
+// SwInterfaceGetTableReply defines message 'sw_interface_get_table_reply'.
+type SwInterfaceGetTableReply struct {
+       Retval int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
+       VrfID  uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
+}
+
+func (m *SwInterfaceGetTableReply) Reset()               { *m = SwInterfaceGetTableReply{} }
+func (*SwInterfaceGetTableReply) GetMessageName() string { return "sw_interface_get_table_reply" }
+func (*SwInterfaceGetTableReply) GetCrcString() string   { return "a6eb0109" }
+func (*SwInterfaceGetTableReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceGetTableReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       size += 4 // m.VrfID
+       return size
+}
+func (m *SwInterfaceGetTableReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       buf.EncodeUint32(uint32(m.VrfID))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceGetTableReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       m.VrfID = buf.DecodeUint32()
+       return nil
+}
+
+// SwInterfaceRxPlacementDetails defines message 'sw_interface_rx_placement_details'.
+type SwInterfaceRxPlacementDetails struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       QueueID   uint32                         `binapi:"u32,name=queue_id" json:"queue_id,omitempty"`
+       WorkerID  uint32                         `binapi:"u32,name=worker_id" json:"worker_id,omitempty"`
+       Mode      interface_types.RxMode         `binapi:"rx_mode,name=mode" json:"mode,omitempty"`
+}
+
+func (m *SwInterfaceRxPlacementDetails) Reset() { *m = SwInterfaceRxPlacementDetails{} }
+func (*SwInterfaceRxPlacementDetails) GetMessageName() string {
+       return "sw_interface_rx_placement_details"
+}
+func (*SwInterfaceRxPlacementDetails) GetCrcString() string { return "f6d7d024" }
+func (*SwInterfaceRxPlacementDetails) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceRxPlacementDetails) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 4 // m.QueueID
+       size += 4 // m.WorkerID
+       size += 4 // m.Mode
+       return size
+}
+func (m *SwInterfaceRxPlacementDetails) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeUint32(uint32(m.QueueID))
+       buf.EncodeUint32(uint32(m.WorkerID))
+       buf.EncodeUint32(uint32(m.Mode))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceRxPlacementDetails) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.QueueID = buf.DecodeUint32()
+       m.WorkerID = buf.DecodeUint32()
+       m.Mode = interface_types.RxMode(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceRxPlacementDump defines message 'sw_interface_rx_placement_dump'.
+type SwInterfaceRxPlacementDump struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *SwInterfaceRxPlacementDump) Reset()               { *m = SwInterfaceRxPlacementDump{} }
+func (*SwInterfaceRxPlacementDump) GetMessageName() string { return "sw_interface_rx_placement_dump" }
+func (*SwInterfaceRxPlacementDump) GetCrcString() string   { return "f9e6675e" }
+func (*SwInterfaceRxPlacementDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceRxPlacementDump) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       return size
+}
+func (m *SwInterfaceRxPlacementDump) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceRxPlacementDump) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceSetFlags defines message 'sw_interface_set_flags'.
+type SwInterfaceSetFlags struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       Flags     interface_types.IfStatusFlags  `binapi:"if_status_flags,name=flags" json:"flags,omitempty"`
+}
+
+func (m *SwInterfaceSetFlags) Reset()               { *m = SwInterfaceSetFlags{} }
+func (*SwInterfaceSetFlags) GetMessageName() string { return "sw_interface_set_flags" }
+func (*SwInterfaceSetFlags) GetCrcString() string   { return "6a2b491a" }
+func (*SwInterfaceSetFlags) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceSetFlags) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 4 // m.Flags
+       return size
+}
+func (m *SwInterfaceSetFlags) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeUint32(uint32(m.Flags))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetFlags) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.Flags = interface_types.IfStatusFlags(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceSetFlagsReply defines message 'sw_interface_set_flags_reply'.
+type SwInterfaceSetFlagsReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceSetFlagsReply) Reset()               { *m = SwInterfaceSetFlagsReply{} }
+func (*SwInterfaceSetFlagsReply) GetMessageName() string { return "sw_interface_set_flags_reply" }
+func (*SwInterfaceSetFlagsReply) GetCrcString() string   { return "e8d4e804" }
+func (*SwInterfaceSetFlagsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceSetFlagsReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceSetFlagsReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetFlagsReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceSetIPDirectedBroadcast defines message 'sw_interface_set_ip_directed_broadcast'.
+type SwInterfaceSetIPDirectedBroadcast struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       Enable    bool                           `binapi:"bool,name=enable" json:"enable,omitempty"`
+}
+
+func (m *SwInterfaceSetIPDirectedBroadcast) Reset() { *m = SwInterfaceSetIPDirectedBroadcast{} }
+func (*SwInterfaceSetIPDirectedBroadcast) GetMessageName() string {
+       return "sw_interface_set_ip_directed_broadcast"
+}
+func (*SwInterfaceSetIPDirectedBroadcast) GetCrcString() string { return "ae6cfcfb" }
+func (*SwInterfaceSetIPDirectedBroadcast) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceSetIPDirectedBroadcast) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 1 // m.Enable
+       return size
+}
+func (m *SwInterfaceSetIPDirectedBroadcast) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeBool(m.Enable)
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetIPDirectedBroadcast) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.Enable = buf.DecodeBool()
+       return nil
+}
+
+// SwInterfaceSetIPDirectedBroadcastReply defines message 'sw_interface_set_ip_directed_broadcast_reply'.
+type SwInterfaceSetIPDirectedBroadcastReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceSetIPDirectedBroadcastReply) Reset() {
+       *m = SwInterfaceSetIPDirectedBroadcastReply{}
+}
+func (*SwInterfaceSetIPDirectedBroadcastReply) GetMessageName() string {
+       return "sw_interface_set_ip_directed_broadcast_reply"
+}
+func (*SwInterfaceSetIPDirectedBroadcastReply) GetCrcString() string { return "e8d4e804" }
+func (*SwInterfaceSetIPDirectedBroadcastReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceSetIPDirectedBroadcastReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceSetIPDirectedBroadcastReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetIPDirectedBroadcastReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceSetMacAddress defines message 'sw_interface_set_mac_address'.
+type SwInterfaceSetMacAddress struct {
+       SwIfIndex  interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       MacAddress ethernet_types.MacAddress      `binapi:"mac_address,name=mac_address" json:"mac_address,omitempty"`
+}
+
+func (m *SwInterfaceSetMacAddress) Reset()               { *m = SwInterfaceSetMacAddress{} }
+func (*SwInterfaceSetMacAddress) GetMessageName() string { return "sw_interface_set_mac_address" }
+func (*SwInterfaceSetMacAddress) GetCrcString() string   { return "6aca746a" }
+func (*SwInterfaceSetMacAddress) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceSetMacAddress) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4     // m.SwIfIndex
+       size += 1 * 6 // m.MacAddress
+       return size
+}
+func (m *SwInterfaceSetMacAddress) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeBytes(m.MacAddress[:], 6)
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetMacAddress) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       copy(m.MacAddress[:], buf.DecodeBytes(6))
+       return nil
+}
+
+// SwInterfaceSetMacAddressReply defines message 'sw_interface_set_mac_address_reply'.
+type SwInterfaceSetMacAddressReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceSetMacAddressReply) Reset() { *m = SwInterfaceSetMacAddressReply{} }
+func (*SwInterfaceSetMacAddressReply) GetMessageName() string {
+       return "sw_interface_set_mac_address_reply"
+}
+func (*SwInterfaceSetMacAddressReply) GetCrcString() string { return "e8d4e804" }
+func (*SwInterfaceSetMacAddressReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceSetMacAddressReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceSetMacAddressReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetMacAddressReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceSetMtu defines message 'sw_interface_set_mtu'.
+type SwInterfaceSetMtu struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       Mtu       []uint32                       `binapi:"u32[4],name=mtu" json:"mtu,omitempty"`
+}
+
+func (m *SwInterfaceSetMtu) Reset()               { *m = SwInterfaceSetMtu{} }
+func (*SwInterfaceSetMtu) GetMessageName() string { return "sw_interface_set_mtu" }
+func (*SwInterfaceSetMtu) GetCrcString() string   { return "5cbe85e5" }
+func (*SwInterfaceSetMtu) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceSetMtu) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4     // m.SwIfIndex
+       size += 4 * 4 // m.Mtu
+       return size
+}
+func (m *SwInterfaceSetMtu) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       for i := 0; i < 4; i++ {
+               var x uint32
+               if i < len(m.Mtu) {
+                       x = uint32(m.Mtu[i])
+               }
+               buf.EncodeUint32(uint32(x))
+       }
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetMtu) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.Mtu = make([]uint32, 4)
+       for i := 0; i < len(m.Mtu); i++ {
+               m.Mtu[i] = buf.DecodeUint32()
+       }
+       return nil
+}
+
+// SwInterfaceSetMtuReply defines message 'sw_interface_set_mtu_reply'.
+type SwInterfaceSetMtuReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceSetMtuReply) Reset()               { *m = SwInterfaceSetMtuReply{} }
+func (*SwInterfaceSetMtuReply) GetMessageName() string { return "sw_interface_set_mtu_reply" }
+func (*SwInterfaceSetMtuReply) GetCrcString() string   { return "e8d4e804" }
+func (*SwInterfaceSetMtuReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceSetMtuReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceSetMtuReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetMtuReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceSetRxMode defines message 'sw_interface_set_rx_mode'.
+type SwInterfaceSetRxMode struct {
+       SwIfIndex    interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       QueueIDValid bool                           `binapi:"bool,name=queue_id_valid" json:"queue_id_valid,omitempty"`
+       QueueID      uint32                         `binapi:"u32,name=queue_id" json:"queue_id,omitempty"`
+       Mode         interface_types.RxMode         `binapi:"rx_mode,name=mode" json:"mode,omitempty"`
+}
+
+func (m *SwInterfaceSetRxMode) Reset()               { *m = SwInterfaceSetRxMode{} }
+func (*SwInterfaceSetRxMode) GetMessageName() string { return "sw_interface_set_rx_mode" }
+func (*SwInterfaceSetRxMode) GetCrcString() string   { return "780f5cee" }
+func (*SwInterfaceSetRxMode) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceSetRxMode) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 1 // m.QueueIDValid
+       size += 4 // m.QueueID
+       size += 4 // m.Mode
+       return size
+}
+func (m *SwInterfaceSetRxMode) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeBool(m.QueueIDValid)
+       buf.EncodeUint32(uint32(m.QueueID))
+       buf.EncodeUint32(uint32(m.Mode))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetRxMode) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.QueueIDValid = buf.DecodeBool()
+       m.QueueID = buf.DecodeUint32()
+       m.Mode = interface_types.RxMode(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceSetRxModeReply defines message 'sw_interface_set_rx_mode_reply'.
+type SwInterfaceSetRxModeReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceSetRxModeReply) Reset()               { *m = SwInterfaceSetRxModeReply{} }
+func (*SwInterfaceSetRxModeReply) GetMessageName() string { return "sw_interface_set_rx_mode_reply" }
+func (*SwInterfaceSetRxModeReply) GetCrcString() string   { return "e8d4e804" }
+func (*SwInterfaceSetRxModeReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceSetRxModeReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceSetRxModeReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetRxModeReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceSetRxPlacement defines message 'sw_interface_set_rx_placement'.
+type SwInterfaceSetRxPlacement struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       QueueID   uint32                         `binapi:"u32,name=queue_id" json:"queue_id,omitempty"`
+       WorkerID  uint32                         `binapi:"u32,name=worker_id" json:"worker_id,omitempty"`
+       IsMain    bool                           `binapi:"bool,name=is_main" json:"is_main,omitempty"`
+}
+
+func (m *SwInterfaceSetRxPlacement) Reset()               { *m = SwInterfaceSetRxPlacement{} }
+func (*SwInterfaceSetRxPlacement) GetMessageName() string { return "sw_interface_set_rx_placement" }
+func (*SwInterfaceSetRxPlacement) GetCrcString() string   { return "db65f3c9" }
+func (*SwInterfaceSetRxPlacement) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceSetRxPlacement) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 4 // m.QueueID
+       size += 4 // m.WorkerID
+       size += 1 // m.IsMain
+       return size
+}
+func (m *SwInterfaceSetRxPlacement) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeUint32(uint32(m.QueueID))
+       buf.EncodeUint32(uint32(m.WorkerID))
+       buf.EncodeBool(m.IsMain)
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetRxPlacement) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.QueueID = buf.DecodeUint32()
+       m.WorkerID = buf.DecodeUint32()
+       m.IsMain = buf.DecodeBool()
+       return nil
+}
+
+// SwInterfaceSetRxPlacementReply defines message 'sw_interface_set_rx_placement_reply'.
+type SwInterfaceSetRxPlacementReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceSetRxPlacementReply) Reset() { *m = SwInterfaceSetRxPlacementReply{} }
+func (*SwInterfaceSetRxPlacementReply) GetMessageName() string {
+       return "sw_interface_set_rx_placement_reply"
+}
+func (*SwInterfaceSetRxPlacementReply) GetCrcString() string { return "e8d4e804" }
+func (*SwInterfaceSetRxPlacementReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceSetRxPlacementReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceSetRxPlacementReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetRxPlacementReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceSetTable defines message 'sw_interface_set_table'.
+type SwInterfaceSetTable struct {
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       IsIPv6    bool                           `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"`
+       VrfID     uint32                         `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
+}
+
+func (m *SwInterfaceSetTable) Reset()               { *m = SwInterfaceSetTable{} }
+func (*SwInterfaceSetTable) GetMessageName() string { return "sw_interface_set_table" }
+func (*SwInterfaceSetTable) GetCrcString() string   { return "df42a577" }
+func (*SwInterfaceSetTable) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceSetTable) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 1 // m.IsIPv6
+       size += 4 // m.VrfID
+       return size
+}
+func (m *SwInterfaceSetTable) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeBool(m.IsIPv6)
+       buf.EncodeUint32(uint32(m.VrfID))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetTable) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.IsIPv6 = buf.DecodeBool()
+       m.VrfID = buf.DecodeUint32()
+       return nil
+}
+
+// SwInterfaceSetTableReply defines message 'sw_interface_set_table_reply'.
+type SwInterfaceSetTableReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceSetTableReply) Reset()               { *m = SwInterfaceSetTableReply{} }
+func (*SwInterfaceSetTableReply) GetMessageName() string { return "sw_interface_set_table_reply" }
+func (*SwInterfaceSetTableReply) GetCrcString() string   { return "e8d4e804" }
+func (*SwInterfaceSetTableReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceSetTableReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceSetTableReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetTableReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceSetUnnumbered defines message 'sw_interface_set_unnumbered'.
+type SwInterfaceSetUnnumbered struct {
+       SwIfIndex           interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       UnnumberedSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=unnumbered_sw_if_index" json:"unnumbered_sw_if_index,omitempty"`
+       IsAdd               bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
+}
+
+func (m *SwInterfaceSetUnnumbered) Reset()               { *m = SwInterfaceSetUnnumbered{} }
+func (*SwInterfaceSetUnnumbered) GetMessageName() string { return "sw_interface_set_unnumbered" }
+func (*SwInterfaceSetUnnumbered) GetCrcString() string   { return "938ef33b" }
+func (*SwInterfaceSetUnnumbered) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceSetUnnumbered) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.SwIfIndex
+       size += 4 // m.UnnumberedSwIfIndex
+       size += 1 // m.IsAdd
+       return size
+}
+func (m *SwInterfaceSetUnnumbered) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeUint32(uint32(m.UnnumberedSwIfIndex))
+       buf.EncodeBool(m.IsAdd)
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetUnnumbered) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.UnnumberedSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.IsAdd = buf.DecodeBool()
+       return nil
+}
+
+// SwInterfaceSetUnnumberedReply defines message 'sw_interface_set_unnumbered_reply'.
+type SwInterfaceSetUnnumberedReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceSetUnnumberedReply) Reset() { *m = SwInterfaceSetUnnumberedReply{} }
+func (*SwInterfaceSetUnnumberedReply) GetMessageName() string {
+       return "sw_interface_set_unnumbered_reply"
+}
+func (*SwInterfaceSetUnnumberedReply) GetCrcString() string { return "e8d4e804" }
+func (*SwInterfaceSetUnnumberedReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceSetUnnumberedReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceSetUnnumberedReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceSetUnnumberedReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// SwInterfaceTagAddDel defines message 'sw_interface_tag_add_del'.
+type SwInterfaceTagAddDel struct {
+       IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
+       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+       Tag       string                         `binapi:"string[64],name=tag" json:"tag,omitempty"`
+}
+
+func (m *SwInterfaceTagAddDel) Reset()               { *m = SwInterfaceTagAddDel{} }
+func (*SwInterfaceTagAddDel) GetMessageName() string { return "sw_interface_tag_add_del" }
+func (*SwInterfaceTagAddDel) GetCrcString() string   { return "426f8bc1" }
+func (*SwInterfaceTagAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *SwInterfaceTagAddDel) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 1  // m.IsAdd
+       size += 4  // m.SwIfIndex
+       size += 64 // m.Tag
+       return size
+}
+func (m *SwInterfaceTagAddDel) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeBool(m.IsAdd)
+       buf.EncodeUint32(uint32(m.SwIfIndex))
+       buf.EncodeString(m.Tag, 64)
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceTagAddDel) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.IsAdd = buf.DecodeBool()
+       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.Tag = buf.DecodeString(64)
+       return nil
+}
+
+// SwInterfaceTagAddDelReply defines message 'sw_interface_tag_add_del_reply'.
+type SwInterfaceTagAddDelReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *SwInterfaceTagAddDelReply) Reset()               { *m = SwInterfaceTagAddDelReply{} }
+func (*SwInterfaceTagAddDelReply) GetMessageName() string { return "sw_interface_tag_add_del_reply" }
+func (*SwInterfaceTagAddDelReply) GetCrcString() string   { return "e8d4e804" }
+func (*SwInterfaceTagAddDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *SwInterfaceTagAddDelReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *SwInterfaceTagAddDelReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *SwInterfaceTagAddDelReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+// WantInterfaceEvents defines message 'want_interface_events'.
+type WantInterfaceEvents struct {
+       EnableDisable uint32 `binapi:"u32,name=enable_disable" json:"enable_disable,omitempty"`
+       PID           uint32 `binapi:"u32,name=pid" json:"pid,omitempty"`
+}
+
+func (m *WantInterfaceEvents) Reset()               { *m = WantInterfaceEvents{} }
+func (*WantInterfaceEvents) GetMessageName() string { return "want_interface_events" }
+func (*WantInterfaceEvents) GetCrcString() string   { return "476f5a08" }
+func (*WantInterfaceEvents) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *WantInterfaceEvents) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.EnableDisable
+       size += 4 // m.PID
+       return size
+}
+func (m *WantInterfaceEvents) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.EnableDisable))
+       buf.EncodeUint32(uint32(m.PID))
+       return buf.Bytes(), nil
+}
+func (m *WantInterfaceEvents) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.EnableDisable = buf.DecodeUint32()
+       m.PID = buf.DecodeUint32()
+       return nil
+}
+
+// WantInterfaceEventsReply defines message 'want_interface_events_reply'.
+type WantInterfaceEventsReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *WantInterfaceEventsReply) Reset()               { *m = WantInterfaceEventsReply{} }
+func (*WantInterfaceEventsReply) GetMessageName() string { return "want_interface_events_reply" }
+func (*WantInterfaceEventsReply) GetCrcString() string   { return "e8d4e804" }
+func (*WantInterfaceEventsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *WantInterfaceEventsReply) Size() int {
+       if m == nil {
+               return 0
+       }
+       var size int
+       size += 4 // m.Retval
+       return size
+}
+func (m *WantInterfaceEventsReply) Marshal(b []byte) ([]byte, error) {
+       var buf *codec.Buffer
+       if b == nil {
+               buf = codec.NewBuffer(make([]byte, m.Size()))
+       } else {
+               buf = codec.NewBuffer(b)
+       }
+       buf.EncodeUint32(uint32(m.Retval))
+       return buf.Bytes(), nil
+}
+func (m *WantInterfaceEventsReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = int32(buf.DecodeUint32())
+       return nil
+}
+
+func init() { file_interfaces_binapi_init() }
+func file_interfaces_binapi_init() {
+       api.RegisterMessage((*CollectDetailedInterfaceStats)(nil), "collect_detailed_interface_stats_5501adee")
+       api.RegisterMessage((*CollectDetailedInterfaceStatsReply)(nil), "collect_detailed_interface_stats_reply_e8d4e804")
+       api.RegisterMessage((*CreateLoopback)(nil), "create_loopback_42bb5d22")
+       api.RegisterMessage((*CreateLoopbackInstance)(nil), "create_loopback_instance_d36a3ee2")
+       api.RegisterMessage((*CreateLoopbackInstanceReply)(nil), "create_loopback_instance_reply_5383d31f")
+       api.RegisterMessage((*CreateLoopbackReply)(nil), "create_loopback_reply_5383d31f")
+       api.RegisterMessage((*CreateSubif)(nil), "create_subif_cb371063")
+       api.RegisterMessage((*CreateSubifReply)(nil), "create_subif_reply_5383d31f")
+       api.RegisterMessage((*CreateVlanSubif)(nil), "create_vlan_subif_af34ac8b")
+       api.RegisterMessage((*CreateVlanSubifReply)(nil), "create_vlan_subif_reply_5383d31f")
+       api.RegisterMessage((*DeleteLoopback)(nil), "delete_loopback_f9e6675e")
+       api.RegisterMessage((*DeleteLoopbackReply)(nil), "delete_loopback_reply_e8d4e804")
+       api.RegisterMessage((*DeleteSubif)(nil), "delete_subif_f9e6675e")
+       api.RegisterMessage((*DeleteSubifReply)(nil), "delete_subif_reply_e8d4e804")
+       api.RegisterMessage((*HwInterfaceSetMtu)(nil), "hw_interface_set_mtu_e6746899")
+       api.RegisterMessage((*HwInterfaceSetMtuReply)(nil), "hw_interface_set_mtu_reply_e8d4e804")
+       api.RegisterMessage((*InterfaceNameRenumber)(nil), "interface_name_renumber_2b8858b8")
+       api.RegisterMessage((*InterfaceNameRenumberReply)(nil), "interface_name_renumber_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceAddDelAddress)(nil), "sw_interface_add_del_address_5803d5c4")
+       api.RegisterMessage((*SwInterfaceAddDelAddressReply)(nil), "sw_interface_add_del_address_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceAddDelMacAddress)(nil), "sw_interface_add_del_mac_address_638bb9f4")
+       api.RegisterMessage((*SwInterfaceAddDelMacAddressReply)(nil), "sw_interface_add_del_mac_address_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceAddressReplaceBegin)(nil), "sw_interface_address_replace_begin_51077d14")
+       api.RegisterMessage((*SwInterfaceAddressReplaceBeginReply)(nil), "sw_interface_address_replace_begin_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceAddressReplaceEnd)(nil), "sw_interface_address_replace_end_51077d14")
+       api.RegisterMessage((*SwInterfaceAddressReplaceEndReply)(nil), "sw_interface_address_replace_end_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceClearStats)(nil), "sw_interface_clear_stats_f9e6675e")
+       api.RegisterMessage((*SwInterfaceClearStatsReply)(nil), "sw_interface_clear_stats_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceDetails)(nil), "sw_interface_details_17b69fa2")
+       api.RegisterMessage((*SwInterfaceDump)(nil), "sw_interface_dump_aa610c27")
+       api.RegisterMessage((*SwInterfaceEvent)(nil), "sw_interface_event_f709f78d")
+       api.RegisterMessage((*SwInterfaceGetMacAddress)(nil), "sw_interface_get_mac_address_f9e6675e")
+       api.RegisterMessage((*SwInterfaceGetMacAddressReply)(nil), "sw_interface_get_mac_address_reply_40ef2c08")
+       api.RegisterMessage((*SwInterfaceGetTable)(nil), "sw_interface_get_table_2d033de4")
+       api.RegisterMessage((*SwInterfaceGetTableReply)(nil), "sw_interface_get_table_reply_a6eb0109")
+       api.RegisterMessage((*SwInterfaceRxPlacementDetails)(nil), "sw_interface_rx_placement_details_f6d7d024")
+       api.RegisterMessage((*SwInterfaceRxPlacementDump)(nil), "sw_interface_rx_placement_dump_f9e6675e")
+       api.RegisterMessage((*SwInterfaceSetFlags)(nil), "sw_interface_set_flags_6a2b491a")
+       api.RegisterMessage((*SwInterfaceSetFlagsReply)(nil), "sw_interface_set_flags_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceSetIPDirectedBroadcast)(nil), "sw_interface_set_ip_directed_broadcast_ae6cfcfb")
+       api.RegisterMessage((*SwInterfaceSetIPDirectedBroadcastReply)(nil), "sw_interface_set_ip_directed_broadcast_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceSetMacAddress)(nil), "sw_interface_set_mac_address_6aca746a")
+       api.RegisterMessage((*SwInterfaceSetMacAddressReply)(nil), "sw_interface_set_mac_address_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceSetMtu)(nil), "sw_interface_set_mtu_5cbe85e5")
+       api.RegisterMessage((*SwInterfaceSetMtuReply)(nil), "sw_interface_set_mtu_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceSetRxMode)(nil), "sw_interface_set_rx_mode_780f5cee")
+       api.RegisterMessage((*SwInterfaceSetRxModeReply)(nil), "sw_interface_set_rx_mode_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceSetRxPlacement)(nil), "sw_interface_set_rx_placement_db65f3c9")
+       api.RegisterMessage((*SwInterfaceSetRxPlacementReply)(nil), "sw_interface_set_rx_placement_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceSetTable)(nil), "sw_interface_set_table_df42a577")
+       api.RegisterMessage((*SwInterfaceSetTableReply)(nil), "sw_interface_set_table_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceSetUnnumbered)(nil), "sw_interface_set_unnumbered_938ef33b")
+       api.RegisterMessage((*SwInterfaceSetUnnumberedReply)(nil), "sw_interface_set_unnumbered_reply_e8d4e804")
+       api.RegisterMessage((*SwInterfaceTagAddDel)(nil), "sw_interface_tag_add_del_426f8bc1")
+       api.RegisterMessage((*SwInterfaceTagAddDelReply)(nil), "sw_interface_tag_add_del_reply_e8d4e804")
+       api.RegisterMessage((*WantInterfaceEvents)(nil), "want_interface_events_476f5a08")
+       api.RegisterMessage((*WantInterfaceEventsReply)(nil), "want_interface_events_reply_e8d4e804")
+}
+
+// Messages returns list of all messages in this module.
+func AllMessages() []api.Message {
+       return []api.Message{
+               (*CollectDetailedInterfaceStats)(nil),
+               (*CollectDetailedInterfaceStatsReply)(nil),
+               (*CreateLoopback)(nil),
+               (*CreateLoopbackInstance)(nil),
+               (*CreateLoopbackInstanceReply)(nil),
+               (*CreateLoopbackReply)(nil),
+               (*CreateSubif)(nil),
+               (*CreateSubifReply)(nil),
+               (*CreateVlanSubif)(nil),
+               (*CreateVlanSubifReply)(nil),
+               (*DeleteLoopback)(nil),
+               (*DeleteLoopbackReply)(nil),
+               (*DeleteSubif)(nil),
+               (*DeleteSubifReply)(nil),
+               (*HwInterfaceSetMtu)(nil),
+               (*HwInterfaceSetMtuReply)(nil),
+               (*InterfaceNameRenumber)(nil),
+               (*InterfaceNameRenumberReply)(nil),
+               (*SwInterfaceAddDelAddress)(nil),
+               (*SwInterfaceAddDelAddressReply)(nil),
+               (*SwInterfaceAddDelMacAddress)(nil),
+               (*SwInterfaceAddDelMacAddressReply)(nil),
+               (*SwInterfaceAddressReplaceBegin)(nil),
+               (*SwInterfaceAddressReplaceBeginReply)(nil),
+               (*SwInterfaceAddressReplaceEnd)(nil),
+               (*SwInterfaceAddressReplaceEndReply)(nil),
+               (*SwInterfaceClearStats)(nil),
+               (*SwInterfaceClearStatsReply)(nil),
+               (*SwInterfaceDetails)(nil),
+               (*SwInterfaceDump)(nil),
+               (*SwInterfaceEvent)(nil),
+               (*SwInterfaceGetMacAddress)(nil),
+               (*SwInterfaceGetMacAddressReply)(nil),
+               (*SwInterfaceGetTable)(nil),
+               (*SwInterfaceGetTableReply)(nil),
+               (*SwInterfaceRxPlacementDetails)(nil),
+               (*SwInterfaceRxPlacementDump)(nil),
+               (*SwInterfaceSetFlags)(nil),
+               (*SwInterfaceSetFlagsReply)(nil),
+               (*SwInterfaceSetIPDirectedBroadcast)(nil),
+               (*SwInterfaceSetIPDirectedBroadcastReply)(nil),
+               (*SwInterfaceSetMacAddress)(nil),
+               (*SwInterfaceSetMacAddressReply)(nil),
+               (*SwInterfaceSetMtu)(nil),
+               (*SwInterfaceSetMtuReply)(nil),
+               (*SwInterfaceSetRxMode)(nil),
+               (*SwInterfaceSetRxModeReply)(nil),
+               (*SwInterfaceSetRxPlacement)(nil),
+               (*SwInterfaceSetRxPlacementReply)(nil),
+               (*SwInterfaceSetTable)(nil),
+               (*SwInterfaceSetTableReply)(nil),
+               (*SwInterfaceSetUnnumbered)(nil),
+               (*SwInterfaceSetUnnumberedReply)(nil),
+               (*SwInterfaceTagAddDel)(nil),
+               (*SwInterfaceTagAddDelReply)(nil),
+               (*WantInterfaceEvents)(nil),
+               (*WantInterfaceEventsReply)(nil),
+       }
+}