Generator improvements and cleanup
[govpp.git] / examples / bin_api / ip / ip.ba.go
index c980b6a..bedb5c9 100644 (file)
@@ -1,47 +1,79 @@
 // Code generated by GoVPP binapi-generator. DO NOT EDIT.
-// source: ip.api.json
+//  source: ip.api.json
 
 /*
-Package ip is a generated VPP binary API of the 'ip' VPP module.
-
-It is generated from this file:
-       ip.api.json
-
-It contains these VPP binary API objects:
-       87 messages
-       8 types
-       1 enum
-       1 union
-       42 services
+ Package ip is a generated from VPP binary API module 'ip'.
+
+ It contains following objects:
+        44 services
+         1 enum
+         3 aliases
+        11 types
+         1 union
+        91 messages
 */
 package ip
 
-import "git.fd.io/govpp.git/api"
-import "github.com/lunixbochs/struc"
-import "bytes"
+import api "git.fd.io/govpp.git/api"
+import struc "github.com/lunixbochs/struc"
+import bytes "bytes"
 
 // Reference imports to suppress errors if they are not otherwise used.
+var _ = api.RegisterMessage
 var _ = struc.Pack
 var _ = bytes.NewBuffer
 
+// Services represents VPP binary API services:
+type Services interface {
+       DumpIP6Fib(*IP6FibDump) ([]*IP6FibDetails, error)
+       DumpIP6Mfib(*IP6MfibDump) ([]*IP6MfibDetails, error)
+       DumpIP6ndProxy(*IP6ndProxyDump) ([]*IP6ndProxyDetails, error)
+       DumpIPAddress(*IPAddressDump) ([]*IPAddressDetails, error)
+       DumpIPContainerProxy(*IPContainerProxyDump) ([]*IPContainerProxyDetails, error)
+       DumpIP(*IPDump) ([]*IPDetails, error)
+       DumpIPFib(*IPFibDump) ([]*IPFibDetails, error)
+       DumpIPMfib(*IPMfibDump) ([]*IPMfibDetails, error)
+       DumpIPNeighbor(*IPNeighborDump) ([]*IPNeighborDetails, error)
+       DumpIPPuntRedirect(*IPPuntRedirectDump) ([]*IPPuntRedirectDetails, error)
+       DumpIPUnnumbered(*IPUnnumberedDump) ([]*IPUnnumberedDetails, error)
+       DumpMfibSignal(*MfibSignalDump) ([]*MfibSignalDetails, error)
+       DumpProxyArp(*ProxyArpDump) ([]*ProxyArpDetails, error)
+       DumpProxyArpIntfc(*ProxyArpIntfcDump) ([]*ProxyArpIntfcDetails, error)
+       IoamDisable(*IoamDisable) (*IoamDisableReply, error)
+       IoamEnable(*IoamEnable) (*IoamEnableReply, error)
+       IP6ndProxyAddDel(*IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error)
+       IP6ndSendRouterSolicitation(*IP6ndSendRouterSolicitation) (*IP6ndSendRouterSolicitationReply, error)
+       IPAddDelRoute(*IPAddDelRoute) (*IPAddDelRouteReply, error)
+       IPContainerProxyAddDel(*IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error)
+       IPMrouteAddDel(*IPMrouteAddDel) (*IPMrouteAddDelReply, error)
+       IPNeighborAddDel(*IPNeighborAddDel) (*IPNeighborAddDelReply, error)
+       IPProbeNeighbor(*IPProbeNeighbor) (*IPProbeNeighborReply, error)
+       IPPuntPolice(*IPPuntPolice) (*IPPuntPoliceReply, error)
+       IPPuntRedirect(*IPPuntRedirect) (*IPPuntRedirectReply, error)
+       IPReassemblyEnableDisable(*IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error)
+       IPReassemblyGet(*IPReassemblyGet) (*IPReassemblyGetReply, error)
+       IPReassemblySet(*IPReassemblySet) (*IPReassemblySetReply, error)
+       IPScanNeighborEnableDisable(*IPScanNeighborEnableDisable) (*IPScanNeighborEnableDisableReply, error)
+       IPSourceAndPortRangeCheckAddDel(*IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error)
+       IPSourceAndPortRangeCheckInterfaceAddDel(*IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error)
+       IPSourceCheckInterfaceAddDel(*IPSourceCheckInterfaceAddDel) (*IPSourceCheckInterfaceAddDelReply, error)
+       IPTableAddDel(*IPTableAddDel) (*IPTableAddDelReply, error)
+       ProxyArpAddDel(*ProxyArpAddDel) (*ProxyArpAddDelReply, error)
+       ProxyArpIntfcEnableDisable(*ProxyArpIntfcEnableDisable) (*ProxyArpIntfcEnableDisableReply, error)
+       ResetFib(*ResetFib) (*ResetFibReply, error)
+       SetArpNeighborLimit(*SetArpNeighborLimit) (*SetArpNeighborLimitReply, error)
+       SetIPFlowHash(*SetIPFlowHash) (*SetIPFlowHashReply, error)
+       SwInterfaceIP6EnableDisable(*SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error)
+       SwInterfaceIP6ndRaConfig(*SwInterfaceIP6ndRaConfig) (*SwInterfaceIP6ndRaConfigReply, error)
+       SwInterfaceIP6ndRaPrefix(*SwInterfaceIP6ndRaPrefix) (*SwInterfaceIP6ndRaPrefixReply, error)
+       WantIP4ArpEvents(*WantIP4ArpEvents) (*WantIP4ArpEventsReply, error)
+       WantIP6NdEvents(*WantIP6NdEvents) (*WantIP6NdEventsReply, error)
+       WantIP6RaEvents(*WantIP6RaEvents) (*WantIP6RaEventsReply, error)
+}
+
 /* Enums */
 
-// AddressFamily represents the VPP binary API enum 'address_family'.
-// Generated from 'ip.api.json', line 2727:
-//
-//            "address_family",
-//            [
-//                "ADDRESS_IP4",
-//                0
-//            ],
-//            [
-//                "ADDRESS_IP6",
-//                1
-//            ],
-//            {
-//                "enumtype": "u32"
-//            }
-//
+// AddressFamily represents VPP binary API enum 'address_family':
 type AddressFamily uint32
 
 const (
@@ -49,72 +81,20 @@ const (
        ADDRESS_IP6 AddressFamily = 1
 )
 
+/* Aliases */
+
+// IP4Address represents VPP binary API alias 'ip4_address':
+type IP4Address [4]uint8
+
+// IP6Address represents VPP binary API alias 'ip6_address':
+type IP6Address [16]uint8
+
+// MacAddress represents VPP binary API alias 'mac_address':
+type MacAddress [6]uint8
+
 /* Types */
 
-// IP4Address represents the VPP binary API type 'ip4_address'.
-// Generated from 'ip.api.json', line 2743:
-//
-//            "ip4_address",
-//            [
-//                "u8",
-//                "address",
-//                4
-//            ],
-//            {
-//                "crc": "0xfc4baa28"
-//            }
-//
-type IP4Address struct {
-       Address []byte `struc:"[4]byte"`
-}
-
-func (*IP4Address) GetTypeName() string {
-       return "ip4_address"
-}
-func (*IP4Address) GetCrcString() string {
-       return "fc4baa28"
-}
-
-// IP6Address represents the VPP binary API type 'ip6_address'.
-// Generated from 'ip.api.json', line 2754:
-//
-//            "ip6_address",
-//            [
-//                "u8",
-//                "address",
-//                16
-//            ],
-//            {
-//                "crc": "0xad99ccc2"
-//            }
-//
-type IP6Address struct {
-       Address []byte `struc:"[16]byte"`
-}
-
-func (*IP6Address) GetTypeName() string {
-       return "ip6_address"
-}
-func (*IP6Address) GetCrcString() string {
-       return "ad99ccc2"
-}
-
-// Address represents the VPP binary API type 'address'.
-// Generated from 'ip.api.json', line 2765:
-//
-//            "address",
-//            [
-//                "vl_api_address_family_t",
-//                "af"
-//            ],
-//            [
-//                "vl_api_address_union_t",
-//                "un"
-//            ],
-//            {
-//                "crc": "0x09f11671"
-//            }
-//
+// Address represents VPP binary API type 'address':
 type Address struct {
        Af AddressFamily
        Un AddressUnion
@@ -127,58 +107,7 @@ func (*Address) GetCrcString() string {
        return "09f11671"
 }
 
-// Prefix represents the VPP binary API type 'prefix'.
-// Generated from 'ip.api.json', line 2779:
-//
-//            "prefix",
-//            [
-//                "vl_api_address_t",
-//                "address"
-//            ],
-//            [
-//                "u8",
-//                "address_length"
-//            ],
-//            {
-//                "crc": "0x0403aebc"
-//            }
-//
-type Prefix struct {
-       Address       Address
-       AddressLength uint8
-}
-
-func (*Prefix) GetTypeName() string {
-       return "prefix"
-}
-func (*Prefix) GetCrcString() string {
-       return "0403aebc"
-}
-
-// FibMplsLabel represents the VPP binary API type 'fib_mpls_label'.
-// Generated from 'ip.api.json', line 2793:
-//
-//            "fib_mpls_label",
-//            [
-//                "u8",
-//                "is_uniform"
-//            ],
-//            [
-//                "u32",
-//                "label"
-//            ],
-//            [
-//                "u8",
-//                "ttl"
-//            ],
-//            [
-//                "u8",
-//                "exp"
-//            ],
-//            {
-//                "crc": "0xc93bf35c"
-//            }
-//
+// FibMplsLabel represents VPP binary API type 'fib_mpls_label':
 type FibMplsLabel struct {
        IsUniform uint8
        Label     uint32
@@ -193,96 +122,7 @@ func (*FibMplsLabel) GetCrcString() string {
        return "c93bf35c"
 }
 
-// FibPath represents the VPP binary API type 'fib_path'.
-// Generated from 'ip.api.json', line 2815:
-//
-//            "fib_path",
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u32",
-//                "table_id"
-//            ],
-//            [
-//                "u8",
-//                "weight"
-//            ],
-//            [
-//                "u8",
-//                "preference"
-//            ],
-//            [
-//                "u8",
-//                "is_local"
-//            ],
-//            [
-//                "u8",
-//                "is_drop"
-//            ],
-//            [
-//                "u8",
-//                "is_udp_encap"
-//            ],
-//            [
-//                "u8",
-//                "is_unreach"
-//            ],
-//            [
-//                "u8",
-//                "is_prohibit"
-//            ],
-//            [
-//                "u8",
-//                "is_resolve_host"
-//            ],
-//            [
-//                "u8",
-//                "is_resolve_attached"
-//            ],
-//            [
-//                "u8",
-//                "is_dvr"
-//            ],
-//            [
-//                "u8",
-//                "is_source_lookup"
-//            ],
-//            [
-//                "u8",
-//                "afi"
-//            ],
-//            [
-//                "u8",
-//                "next_hop",
-//                16
-//            ],
-//            [
-//                "u32",
-//                "next_hop_id"
-//            ],
-//            [
-//                "u32",
-//                "rpf_id"
-//            ],
-//            [
-//                "u32",
-//                "via_label"
-//            ],
-//            [
-//                "u8",
-//                "n_labels"
-//            ],
-//            [
-//                "vl_api_fib_mpls_label_t",
-//                "label_stack",
-//                16
-//            ],
-//            {
-//                "crc": "0xabe483ef"
-//            }
-//
+// FibPath represents VPP binary API type 'fib_path':
 type FibPath struct {
        SwIfIndex         uint32
        TableID           uint32
@@ -297,6 +137,7 @@ type FibPath struct {
        IsResolveAttached uint8
        IsDvr             uint8
        IsSourceLookup    uint8
+       IsInterfaceRx     uint8
        Afi               uint8
        NextHop           []byte `struc:"[16]byte"`
        NextHopID         uint32
@@ -310,38 +151,36 @@ func (*FibPath) GetTypeName() string {
        return "fib_path"
 }
 func (*FibPath) GetCrcString() string {
-       return "abe483ef"
-}
-
-// IP6RaPrefixInfo represents the VPP binary API type 'ip6_ra_prefix_info'.
-// Generated from 'ip.api.json', line 2903:
-//
-//            "ip6_ra_prefix_info",
-//            [
-//                "u8",
-//                "dst_address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "dst_address_length"
-//            ],
-//            [
-//                "u8",
-//                "flags"
-//            ],
-//            [
-//                "u32",
-//                "valid_time"
-//            ],
-//            [
-//                "u32",
-//                "preferred_time"
-//            ],
-//            {
-//                "crc": "0x83d7c6e5"
-//            }
-//
+       return "ba7a81f0"
+}
+
+// IP4Prefix represents VPP binary API type 'ip4_prefix':
+type IP4Prefix struct {
+       Prefix IP4Address
+       Len    uint8
+}
+
+func (*IP4Prefix) GetTypeName() string {
+       return "ip4_prefix"
+}
+func (*IP4Prefix) GetCrcString() string {
+       return "ea8dc11d"
+}
+
+// IP6Prefix represents VPP binary API type 'ip6_prefix':
+type IP6Prefix struct {
+       Prefix IP6Address
+       Len    uint8
+}
+
+func (*IP6Prefix) GetTypeName() string {
+       return "ip6_prefix"
+}
+func (*IP6Prefix) GetCrcString() string {
+       return "779fd64f"
+}
+
+// IP6RaPrefixInfo represents VPP binary API type 'ip6_ra_prefix_info':
 type IP6RaPrefixInfo struct {
        DstAddress       []byte `struc:"[16]byte"`
        DstAddressLength uint8
@@ -357,28 +196,48 @@ func (*IP6RaPrefixInfo) GetCrcString() string {
        return "83d7c6e5"
 }
 
-// ProxyArp represents the VPP binary API type 'proxy_arp'.
-// Generated from 'ip.api.json', line 2930:
-//
-//            "proxy_arp",
-//            [
-//                "u32",
-//                "vrf_id"
-//            ],
-//            [
-//                "u8",
-//                "low_address",
-//                4
-//            ],
-//            [
-//                "u8",
-//                "hi_address",
-//                4
-//            ],
-//            {
-//                "crc": "0x6d88106e"
-//            }
-//
+// MfibPath represents VPP binary API type 'mfib_path':
+type MfibPath struct {
+       Path     FibPath
+       ItfFlags uint32
+}
+
+func (*MfibPath) GetTypeName() string {
+       return "mfib_path"
+}
+func (*MfibPath) GetCrcString() string {
+       return "4ba77d32"
+}
+
+// Mprefix represents VPP binary API type 'mprefix':
+type Mprefix struct {
+       Af               AddressFamily
+       GrpAddressLength uint16
+       GrpAddress       AddressUnion
+       SrcAddress       AddressUnion
+}
+
+func (*Mprefix) GetTypeName() string {
+       return "mprefix"
+}
+func (*Mprefix) GetCrcString() string {
+       return "1c4cba05"
+}
+
+// Prefix represents VPP binary API type 'prefix':
+type Prefix struct {
+       Address       Address
+       AddressLength uint8
+}
+
+func (*Prefix) GetTypeName() string {
+       return "prefix"
+}
+func (*Prefix) GetCrcString() string {
+       return "0403aebc"
+}
+
+// ProxyArp represents VPP binary API type 'proxy_arp':
 type ProxyArp struct {
        VrfID      uint32
        LowAddress []byte `struc:"[4]byte"`
@@ -392,24 +251,23 @@ func (*ProxyArp) GetCrcString() string {
        return "6d88106e"
 }
 
+// PuntRedirect represents VPP binary API type 'punt_redirect':
+type PuntRedirect struct {
+       RxSwIfIndex uint32
+       TxSwIfIndex uint32
+       Nh          Address
+}
+
+func (*PuntRedirect) GetTypeName() string {
+       return "punt_redirect"
+}
+func (*PuntRedirect) GetCrcString() string {
+       return "3e7a801f"
+}
+
 /* Unions */
 
-// AddressUnion represents the VPP binary API union 'address_union'.
-// Generated from 'ip.api.json', line 2562:
-//
-//            "address_union",
-//            [
-//                "vl_api_ip4_address_t",
-//                "ip4"
-//            ],
-//            [
-//                "vl_api_ip6_address_t",
-//                "ip6"
-//            ],
-//            {
-//                "crc": "0xd68a2fb4"
-//            }
-//
+// AddressUnion represents VPP binary API union 'address_union':
 type AddressUnion struct {
        Union_data [16]byte
 }
@@ -421,6 +279,10 @@ func (*AddressUnion) GetCrcString() string {
        return "d68a2fb4"
 }
 
+func AddressUnionIP4(a IP4Address) (u AddressUnion) {
+       u.SetIP4(a)
+       return
+}
 func (u *AddressUnion) SetIP4(a IP4Address) {
        var b = new(bytes.Buffer)
        if err := struc.Pack(b, &a); err != nil {
@@ -434,6 +296,10 @@ func (u *AddressUnion) GetIP4() (a IP4Address) {
        return
 }
 
+func AddressUnionIP6(a IP6Address) (u AddressUnion) {
+       u.SetIP6(a)
+       return
+}
 func (u *AddressUnion) SetIP6(a IP6Address) {
        var b = new(bytes.Buffer)
        if err := struc.Pack(b, &a); err != nil {
@@ -449,286 +315,98 @@ func (u *AddressUnion) GetIP6() (a IP6Address) {
 
 /* Messages */
 
-// IPTableAddDel represents the VPP binary API message 'ip_table_add_del'.
-// Generated from 'ip.api.json', line 4:
-//
-//            "ip_table_add_del",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "table_id"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            [
-//                "u8",
-//                "is_add"
-//            ],
-//            [
-//                "u8",
-//                "name",
-//                64
-//            ],
-//            {
-//                "crc": "0x0240c89d"
-//            }
-//
-type IPTableAddDel struct {
-       TableID uint32
-       IsIPv6  uint8
-       IsAdd   uint8
-       Name    []byte `struc:"[64]byte"`
+// IoamDisable represents VPP binary API message 'ioam_disable':
+type IoamDisable struct {
+       ID uint16
 }
 
-func (*IPTableAddDel) GetMessageName() string {
-       return "ip_table_add_del"
+func (*IoamDisable) GetMessageName() string {
+       return "ioam_disable"
 }
-func (*IPTableAddDel) GetCrcString() string {
-       return "0240c89d"
+func (*IoamDisable) GetCrcString() string {
+       return "6b16a45e"
 }
-func (*IPTableAddDel) GetMessageType() api.MessageType {
+func (*IoamDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPTableAddDel() api.Message {
-       return &IPTableAddDel{}
-}
-
-// IPTableAddDelReply represents the VPP binary API message 'ip_table_add_del_reply'.
-// Generated from 'ip.api.json', line 39:
-//
-//            "ip_table_add_del_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IPTableAddDelReply struct {
+
+// IoamDisableReply represents VPP binary API message 'ioam_disable_reply':
+type IoamDisableReply struct {
        Retval int32
 }
 
-func (*IPTableAddDelReply) GetMessageName() string {
-       return "ip_table_add_del_reply"
+func (*IoamDisableReply) GetMessageName() string {
+       return "ioam_disable_reply"
 }
-func (*IPTableAddDelReply) GetCrcString() string {
+func (*IoamDisableReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IPTableAddDelReply) GetMessageType() api.MessageType {
+func (*IoamDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPTableAddDelReply() api.Message {
-       return &IPTableAddDelReply{}
-}
-
-// IPFibDump represents the VPP binary API message 'ip_fib_dump'.
-// Generated from 'ip.api.json', line 57:
-//
-//            "ip_fib_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            {
-//                "crc": "0x51077d14"
-//            }
-//
-type IPFibDump struct{}
 
-func (*IPFibDump) GetMessageName() string {
-       return "ip_fib_dump"
+// IoamEnable represents VPP binary API message 'ioam_enable':
+type IoamEnable struct {
+       ID          uint16
+       Seqno       uint8
+       Analyse     uint8
+       PotEnable   uint8
+       TraceEnable uint8
+       NodeID      uint32
 }
-func (*IPFibDump) GetCrcString() string {
-       return "51077d14"
+
+func (*IoamEnable) GetMessageName() string {
+       return "ioam_enable"
 }
-func (*IPFibDump) GetMessageType() api.MessageType {
+func (*IoamEnable) GetCrcString() string {
+       return "9392e032"
+}
+func (*IoamEnable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPFibDump() api.Message {
-       return &IPFibDump{}
-}
-
-// IPFibDetails represents the VPP binary API message 'ip_fib_details'.
-// Generated from 'ip.api.json', line 75:
-//
-//            "ip_fib_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "table_id"
-//            ],
-//            [
-//                "u8",
-//                "table_name",
-//                64
-//            ],
-//            [
-//                "u8",
-//                "address_length"
-//            ],
-//            [
-//                "u8",
-//                "address",
-//                4
-//            ],
-//            [
-//                "u32",
-//                "count"
-//            ],
-//            [
-//                "vl_api_fib_path_t",
-//                "path",
-//                0,
-//                "count"
-//            ],
-//            {
-//                "crc": "0x99dfd73b"
-//            }
-//
-type IPFibDetails struct {
-       TableID       uint32
-       TableName     []byte `struc:"[64]byte"`
-       AddressLength uint8
-       Address       []byte `struc:"[4]byte"`
-       Count         uint32 `struc:"sizeof=Path"`
-       Path          []FibPath
+
+// IoamEnableReply represents VPP binary API message 'ioam_enable_reply':
+type IoamEnableReply struct {
+       Retval int32
 }
 
-func (*IPFibDetails) GetMessageName() string {
-       return "ip_fib_details"
+func (*IoamEnableReply) GetMessageName() string {
+       return "ioam_enable_reply"
 }
-func (*IPFibDetails) GetCrcString() string {
-       return "99dfd73b"
+func (*IoamEnableReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*IPFibDetails) GetMessageType() api.MessageType {
+func (*IoamEnableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPFibDetails() api.Message {
-       return &IPFibDetails{}
-}
-
-// IP6FibDump represents the VPP binary API message 'ip6_fib_dump'.
-// Generated from 'ip.api.json', line 117:
-//
-//            "ip6_fib_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            {
-//                "crc": "0x51077d14"
-//            }
-//
-type IP6FibDump struct{}
 
-func (*IP6FibDump) GetMessageName() string {
-       return "ip6_fib_dump"
+// IP4ArpEvent represents VPP binary API message 'ip4_arp_event':
+type IP4ArpEvent struct {
+       Address   uint32
+       PID       uint32
+       SwIfIndex uint32
+       NewMac    []byte `struc:"[6]byte"`
+       MacIP     uint8
 }
-func (*IP6FibDump) GetCrcString() string {
-       return "51077d14"
+
+func (*IP4ArpEvent) GetMessageName() string {
+       return "ip4_arp_event"
 }
-func (*IP6FibDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*IP4ArpEvent) GetCrcString() string {
+       return "ef7235f7"
+}
+func (*IP4ArpEvent) GetMessageType() api.MessageType {
+       return api.EventMessage
 }
-func NewIP6FibDump() api.Message {
-       return &IP6FibDump{}
-}
-
-// IP6FibDetails represents the VPP binary API message 'ip6_fib_details'.
-// Generated from 'ip.api.json', line 135:
-//
-//            "ip6_fib_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "table_id"
-//            ],
-//            [
-//                "u8",
-//                "table_name",
-//                64
-//            ],
-//            [
-//                "u8",
-//                "address_length"
-//            ],
-//            [
-//                "u8",
-//                "address",
-//                16
-//            ],
-//            [
-//                "u32",
-//                "count"
-//            ],
-//            [
-//                "vl_api_fib_path_t",
-//                "path",
-//                0,
-//                "count"
-//            ],
-//            {
-//                "crc": "0xabd0060e"
-//            }
-//
+
+// IP6FibDetails represents VPP binary API message 'ip6_fib_details':
 type IP6FibDetails struct {
        TableID       uint32
        TableName     []byte `struc:"[64]byte"`
        AddressLength uint8
        Address       []byte `struc:"[16]byte"`
        Count         uint32 `struc:"sizeof=Path"`
+       StatsIndex    uint32
        Path          []FibPath
 }
 
@@ -736,648 +414,102 @@ func (*IP6FibDetails) GetMessageName() string {
        return "ip6_fib_details"
 }
 func (*IP6FibDetails) GetCrcString() string {
-       return "abd0060e"
+       return "ef11e94d"
 }
 func (*IP6FibDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIP6FibDetails() api.Message {
-       return &IP6FibDetails{}
-}
-
-// IPNeighborDump represents the VPP binary API message 'ip_neighbor_dump'.
-// Generated from 'ip.api.json', line 177:
-//
-//            "ip_neighbor_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            {
-//                "crc": "0x6b7bcd0a"
-//            }
-//
-type IPNeighborDump struct {
-       SwIfIndex uint32
-       IsIPv6    uint8
-}
 
-func (*IPNeighborDump) GetMessageName() string {
-       return "ip_neighbor_dump"
+// IP6FibDump represents VPP binary API message 'ip6_fib_dump':
+type IP6FibDump struct{}
+
+func (*IP6FibDump) GetMessageName() string {
+       return "ip6_fib_dump"
 }
-func (*IPNeighborDump) GetCrcString() string {
-       return "6b7bcd0a"
+func (*IP6FibDump) GetCrcString() string {
+       return "51077d14"
 }
-func (*IPNeighborDump) GetMessageType() api.MessageType {
+func (*IP6FibDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPNeighborDump() api.Message {
-       return &IPNeighborDump{}
-}
-
-// IPNeighborDetails represents the VPP binary API message 'ip_neighbor_details'.
-// Generated from 'ip.api.json', line 203:
-//
-//            "ip_neighbor_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "is_static"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            [
-//                "u8",
-//                "mac_address",
-//                6
-//            ],
-//            [
-//                "u8",
-//                "ip_address",
-//                16
-//            ],
-//            {
-//                "crc": "0x85e32a72"
-//            }
-//
-type IPNeighborDetails struct {
-       SwIfIndex  uint32
-       IsStatic   uint8
-       IsIPv6     uint8
-       MacAddress []byte `struc:"[6]byte"`
-       IPAddress  []byte `struc:"[16]byte"`
+
+// IP6MfibDetails represents VPP binary API message 'ip6_mfib_details':
+type IP6MfibDetails struct {
+       TableID       uint32
+       AddressLength uint8
+       GrpAddress    []byte `struc:"[16]byte"`
+       SrcAddress    []byte `struc:"[16]byte"`
+       Count         uint32 `struc:"sizeof=Path"`
+       Path          []MfibPath
 }
 
-func (*IPNeighborDetails) GetMessageName() string {
-       return "ip_neighbor_details"
+func (*IP6MfibDetails) GetMessageName() string {
+       return "ip6_mfib_details"
 }
-func (*IPNeighborDetails) GetCrcString() string {
-       return "85e32a72"
+func (*IP6MfibDetails) GetCrcString() string {
+       return "738c546e"
 }
-func (*IPNeighborDetails) GetMessageType() api.MessageType {
+func (*IP6MfibDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPNeighborDetails() api.Message {
-       return &IPNeighborDetails{}
-}
-
-// IPNeighborAddDel represents the VPP binary API message 'ip_neighbor_add_del'.
-// Generated from 'ip.api.json', line 239:
-//
-//            "ip_neighbor_add_del",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "is_add"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            [
-//                "u8",
-//                "is_static"
-//            ],
-//            [
-//                "u8",
-//                "is_no_adj_fib"
-//            ],
-//            [
-//                "u8",
-//                "mac_address",
-//                6
-//            ],
-//            [
-//                "u8",
-//                "dst_address",
-//                16
-//            ],
-//            {
-//                "crc": "0x4711eb25"
-//            }
-//
-type IPNeighborAddDel struct {
-       SwIfIndex  uint32
-       IsAdd      uint8
-       IsIPv6     uint8
-       IsStatic   uint8
-       IsNoAdjFib uint8
-       MacAddress []byte `struc:"[6]byte"`
-       DstAddress []byte `struc:"[16]byte"`
-}
 
-func (*IPNeighborAddDel) GetMessageName() string {
-       return "ip_neighbor_add_del"
+// IP6MfibDump represents VPP binary API message 'ip6_mfib_dump':
+type IP6MfibDump struct{}
+
+func (*IP6MfibDump) GetMessageName() string {
+       return "ip6_mfib_dump"
 }
-func (*IPNeighborAddDel) GetCrcString() string {
-       return "4711eb25"
+func (*IP6MfibDump) GetCrcString() string {
+       return "51077d14"
 }
-func (*IPNeighborAddDel) GetMessageType() api.MessageType {
+func (*IP6MfibDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPNeighborAddDel() api.Message {
-       return &IPNeighborAddDel{}
-}
-
-// IPNeighborAddDelReply represents the VPP binary API message 'ip_neighbor_add_del_reply'.
-// Generated from 'ip.api.json', line 287:
-//
-//            "ip_neighbor_add_del_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IPNeighborAddDelReply struct {
-       Retval int32
+
+// IP6NdEvent represents VPP binary API message 'ip6_nd_event':
+type IP6NdEvent struct {
+       PID       uint32
+       SwIfIndex uint32
+       Address   []byte `struc:"[16]byte"`
+       NewMac    []byte `struc:"[6]byte"`
+       MacIP     uint8
 }
 
-func (*IPNeighborAddDelReply) GetMessageName() string {
-       return "ip_neighbor_add_del_reply"
+func (*IP6NdEvent) GetMessageName() string {
+       return "ip6_nd_event"
 }
-func (*IPNeighborAddDelReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*IPNeighborAddDelReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-func NewIPNeighborAddDelReply() api.Message {
-       return &IPNeighborAddDelReply{}
-}
-
-// SetIPFlowHash represents the VPP binary API message 'set_ip_flow_hash'.
-// Generated from 'ip.api.json', line 305:
-//
-//            "set_ip_flow_hash",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "vrf_id"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            [
-//                "u8",
-//                "src"
-//            ],
-//            [
-//                "u8",
-//                "dst"
-//            ],
-//            [
-//                "u8",
-//                "sport"
-//            ],
-//            [
-//                "u8",
-//                "dport"
-//            ],
-//            [
-//                "u8",
-//                "proto"
-//            ],
-//            [
-//                "u8",
-//                "reverse"
-//            ],
-//            {
-//                "crc": "0x32ebf737"
-//            }
-//
-type SetIPFlowHash struct {
-       VrfID   uint32
-       IsIPv6  uint8
-       Src     uint8
-       Dst     uint8
-       Sport   uint8
-       Dport   uint8
-       Proto   uint8
-       Reverse uint8
-}
-
-func (*SetIPFlowHash) GetMessageName() string {
-       return "set_ip_flow_hash"
-}
-func (*SetIPFlowHash) GetCrcString() string {
-       return "32ebf737"
-}
-func (*SetIPFlowHash) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-func NewSetIPFlowHash() api.Message {
-       return &SetIPFlowHash{}
-}
-
-// SetIPFlowHashReply represents the VPP binary API message 'set_ip_flow_hash_reply'.
-// Generated from 'ip.api.json', line 355:
-//
-//            "set_ip_flow_hash_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type SetIPFlowHashReply struct {
-       Retval int32
-}
-
-func (*SetIPFlowHashReply) GetMessageName() string {
-       return "set_ip_flow_hash_reply"
-}
-func (*SetIPFlowHashReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*SetIPFlowHashReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-func NewSetIPFlowHashReply() api.Message {
-       return &SetIPFlowHashReply{}
-}
-
-// SwInterfaceIP6ndRaConfig represents the VPP binary API message 'sw_interface_ip6nd_ra_config'.
-// Generated from 'ip.api.json', line 373:
-//
-//            "sw_interface_ip6nd_ra_config",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "suppress"
-//            ],
-//            [
-//                "u8",
-//                "managed"
-//            ],
-//            [
-//                "u8",
-//                "other"
-//            ],
-//            [
-//                "u8",
-//                "ll_option"
-//            ],
-//            [
-//                "u8",
-//                "send_unicast"
-//            ],
-//            [
-//                "u8",
-//                "cease"
-//            ],
-//            [
-//                "u8",
-//                "is_no"
-//            ],
-//            [
-//                "u8",
-//                "default_router"
-//            ],
-//            [
-//                "u32",
-//                "max_interval"
-//            ],
-//            [
-//                "u32",
-//                "min_interval"
-//            ],
-//            [
-//                "u32",
-//                "lifetime"
-//            ],
-//            [
-//                "u32",
-//                "initial_count"
-//            ],
-//            [
-//                "u32",
-//                "initial_interval"
-//            ],
-//            {
-//                "crc": "0xc3f02daa"
-//            }
-//
-type SwInterfaceIP6ndRaConfig struct {
-       SwIfIndex       uint32
-       Suppress        uint8
-       Managed         uint8
-       Other           uint8
-       LlOption        uint8
-       SendUnicast     uint8
-       Cease           uint8
-       IsNo            uint8
-       DefaultRouter   uint8
-       MaxInterval     uint32
-       MinInterval     uint32
-       Lifetime        uint32
-       InitialCount    uint32
-       InitialInterval uint32
-}
-
-func (*SwInterfaceIP6ndRaConfig) GetMessageName() string {
-       return "sw_interface_ip6nd_ra_config"
-}
-func (*SwInterfaceIP6ndRaConfig) GetCrcString() string {
-       return "c3f02daa"
-}
-func (*SwInterfaceIP6ndRaConfig) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*IP6NdEvent) GetCrcString() string {
+       return "96ab2fdd"
 }
-func NewSwInterfaceIP6ndRaConfig() api.Message {
-       return &SwInterfaceIP6ndRaConfig{}
-}
-
-// SwInterfaceIP6ndRaConfigReply represents the VPP binary API message 'sw_interface_ip6nd_ra_config_reply'.
-// Generated from 'ip.api.json', line 447:
-//
-//            "sw_interface_ip6nd_ra_config_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type SwInterfaceIP6ndRaConfigReply struct {
-       Retval int32
+func (*IP6NdEvent) GetMessageType() api.MessageType {
+       return api.EventMessage
 }
 
-func (*SwInterfaceIP6ndRaConfigReply) GetMessageName() string {
-       return "sw_interface_ip6nd_ra_config_reply"
-}
-func (*SwInterfaceIP6ndRaConfigReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*SwInterfaceIP6ndRaConfigReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-func NewSwInterfaceIP6ndRaConfigReply() api.Message {
-       return &SwInterfaceIP6ndRaConfigReply{}
-}
-
-// SwInterfaceIP6ndRaPrefix represents the VPP binary API message 'sw_interface_ip6nd_ra_prefix'.
-// Generated from 'ip.api.json', line 465:
-//
-//            "sw_interface_ip6nd_ra_prefix",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "address_length"
-//            ],
-//            [
-//                "u8",
-//                "use_default"
-//            ],
-//            [
-//                "u8",
-//                "no_advertise"
-//            ],
-//            [
-//                "u8",
-//                "off_link"
-//            ],
-//            [
-//                "u8",
-//                "no_autoconfig"
-//            ],
-//            [
-//                "u8",
-//                "no_onlink"
-//            ],
-//            [
-//                "u8",
-//                "is_no"
-//            ],
-//            [
-//                "u32",
-//                "val_lifetime"
-//            ],
-//            [
-//                "u32",
-//                "pref_lifetime"
-//            ],
-//            {
-//                "crc": "0xca763c9a"
-//            }
-//
-type SwInterfaceIP6ndRaPrefix struct {
-       SwIfIndex     uint32
-       Address       []byte `struc:"[16]byte"`
-       AddressLength uint8
-       UseDefault    uint8
-       NoAdvertise   uint8
-       OffLink       uint8
-       NoAutoconfig  uint8
-       NoOnlink      uint8
-       IsNo          uint8
-       ValLifetime   uint32
-       PrefLifetime  uint32
+// IP6RaEvent represents VPP binary API message 'ip6_ra_event':
+type IP6RaEvent struct {
+       PID                                                 uint32
+       SwIfIndex                                           uint32
+       RouterAddress                                       []byte `struc:"[16]byte"`
+       CurrentHopLimit                                     uint8
+       Flags                                               uint8
+       RouterLifetimeInSec                                 uint16
+       NeighborReachableTimeInMsec                         uint32
+       TimeInMsecBetweenRetransmittedNeighborSolicitations uint32
+       NPrefixes                                           uint32 `struc:"sizeof=Prefixes"`
+       Prefixes                                            []IP6RaPrefixInfo
 }
 
-func (*SwInterfaceIP6ndRaPrefix) GetMessageName() string {
-       return "sw_interface_ip6nd_ra_prefix"
-}
-func (*SwInterfaceIP6ndRaPrefix) GetCrcString() string {
-       return "ca763c9a"
+func (*IP6RaEvent) GetMessageName() string {
+       return "ip6_ra_event"
 }
-func (*SwInterfaceIP6ndRaPrefix) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*IP6RaEvent) GetCrcString() string {
+       return "c5e54257"
 }
-func NewSwInterfaceIP6ndRaPrefix() api.Message {
-       return &SwInterfaceIP6ndRaPrefix{}
-}
-
-// SwInterfaceIP6ndRaPrefixReply represents the VPP binary API message 'sw_interface_ip6nd_ra_prefix_reply'.
-// Generated from 'ip.api.json', line 528:
-//
-//            "sw_interface_ip6nd_ra_prefix_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type SwInterfaceIP6ndRaPrefixReply struct {
-       Retval int32
+func (*IP6RaEvent) GetMessageType() api.MessageType {
+       return api.EventMessage
 }
 
-func (*SwInterfaceIP6ndRaPrefixReply) GetMessageName() string {
-       return "sw_interface_ip6nd_ra_prefix_reply"
-}
-func (*SwInterfaceIP6ndRaPrefixReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*SwInterfaceIP6ndRaPrefixReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-func NewSwInterfaceIP6ndRaPrefixReply() api.Message {
-       return &SwInterfaceIP6ndRaPrefixReply{}
-}
-
-// IP6ndProxyAddDel represents the VPP binary API message 'ip6nd_proxy_add_del'.
-// Generated from 'ip.api.json', line 546:
-//
-//            "ip6nd_proxy_add_del",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "is_del"
-//            ],
-//            [
-//                "u8",
-//                "address",
-//                16
-//            ],
-//            {
-//                "crc": "0xd95f0fa0"
-//            }
-//
+// IP6ndProxyAddDel represents VPP binary API message 'ip6nd_proxy_add_del':
 type IP6ndProxyAddDel struct {
        SwIfIndex uint32
        IsDel     uint8
@@ -1393,30 +525,8 @@ func (*IP6ndProxyAddDel) GetCrcString() string {
 func (*IP6ndProxyAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIP6ndProxyAddDel() api.Message {
-       return &IP6ndProxyAddDel{}
-}
-
-// IP6ndProxyAddDelReply represents the VPP binary API message 'ip6nd_proxy_add_del_reply'.
-// Generated from 'ip.api.json', line 577:
-//
-//            "ip6nd_proxy_add_del_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
+
+// IP6ndProxyAddDelReply represents VPP binary API message 'ip6nd_proxy_add_del_reply':
 type IP6ndProxyAddDelReply struct {
        Retval int32
 }
@@ -1430,39 +540,8 @@ func (*IP6ndProxyAddDelReply) GetCrcString() string {
 func (*IP6ndProxyAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIP6ndProxyAddDelReply() api.Message {
-       return &IP6ndProxyAddDelReply{}
-}
-
-// IP6ndProxyDetails represents the VPP binary API message 'ip6nd_proxy_details'.
-// Generated from 'ip.api.json', line 595:
-//
-//            "ip6nd_proxy_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "address",
-//                16
-//            ],
-//            {
-//                "crc": "0xd73bf1ab"
-//            }
-//
+
+// IP6ndProxyDetails represents VPP binary API message 'ip6nd_proxy_details':
 type IP6ndProxyDetails struct {
        SwIfIndex uint32
        Address   []byte `struc:"[16]byte"`
@@ -1472,35 +551,13 @@ func (*IP6ndProxyDetails) GetMessageName() string {
        return "ip6nd_proxy_details"
 }
 func (*IP6ndProxyDetails) GetCrcString() string {
-       return "d73bf1ab"
+       return "6a47c974"
 }
 func (*IP6ndProxyDetails) GetMessageType() api.MessageType {
-       return api.RequestMessage
+       return api.ReplyMessage
 }
-func NewIP6ndProxyDetails() api.Message {
-       return &IP6ndProxyDetails{}
-}
-
-// IP6ndProxyDump represents the VPP binary API message 'ip6nd_proxy_dump'.
-// Generated from 'ip.api.json', line 622:
-//
-//            "ip6nd_proxy_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            {
-//                "crc": "0x51077d14"
-//            }
-//
+
+// IP6ndProxyDump represents VPP binary API message 'ip6nd_proxy_dump':
 type IP6ndProxyDump struct{}
 
 func (*IP6ndProxyDump) GetMessageName() string {
@@ -1512,54 +569,8 @@ func (*IP6ndProxyDump) GetCrcString() string {
 func (*IP6ndProxyDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIP6ndProxyDump() api.Message {
-       return &IP6ndProxyDump{}
-}
-
-// IP6ndSendRouterSolicitation represents the VPP binary API message 'ip6nd_send_router_solicitation'.
-// Generated from 'ip.api.json', line 640:
-//
-//            "ip6nd_send_router_solicitation",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "irt"
-//            ],
-//            [
-//                "u32",
-//                "mrt"
-//            ],
-//            [
-//                "u32",
-//                "mrc"
-//            ],
-//            [
-//                "u32",
-//                "mrd"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "stop"
-//            ],
-//            {
-//                "crc": "0xbd968917"
-//            }
-//
+
+// IP6ndSendRouterSolicitation represents VPP binary API message 'ip6nd_send_router_solicitation':
 type IP6ndSendRouterSolicitation struct {
        Irt       uint32
        Mrt       uint32
@@ -1578,30 +589,8 @@ func (*IP6ndSendRouterSolicitation) GetCrcString() string {
 func (*IP6ndSendRouterSolicitation) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIP6ndSendRouterSolicitation() api.Message {
-       return &IP6ndSendRouterSolicitation{}
-}
-
-// IP6ndSendRouterSolicitationReply represents the VPP binary API message 'ip6nd_send_router_solicitation_reply'.
-// Generated from 'ip.api.json', line 682:
-//
-//            "ip6nd_send_router_solicitation_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
+
+// IP6ndSendRouterSolicitationReply represents VPP binary API message 'ip6nd_send_router_solicitation_reply':
 type IP6ndSendRouterSolicitationReply struct {
        Retval int32
 }
@@ -1615,309 +604,8 @@ func (*IP6ndSendRouterSolicitationReply) GetCrcString() string {
 func (*IP6ndSendRouterSolicitationReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIP6ndSendRouterSolicitationReply() api.Message {
-       return &IP6ndSendRouterSolicitationReply{}
-}
-
-// SwInterfaceIP6EnableDisable represents the VPP binary API message 'sw_interface_ip6_enable_disable'.
-// Generated from 'ip.api.json', line 700:
-//
-//            "sw_interface_ip6_enable_disable",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "enable"
-//            ],
-//            {
-//                "crc": "0xa36fadc0"
-//            }
-//
-type SwInterfaceIP6EnableDisable struct {
-       SwIfIndex uint32
-       Enable    uint8
-}
-
-func (*SwInterfaceIP6EnableDisable) GetMessageName() string {
-       return "sw_interface_ip6_enable_disable"
-}
-func (*SwInterfaceIP6EnableDisable) GetCrcString() string {
-       return "a36fadc0"
-}
-func (*SwInterfaceIP6EnableDisable) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-func NewSwInterfaceIP6EnableDisable() api.Message {
-       return &SwInterfaceIP6EnableDisable{}
-}
-
-// SwInterfaceIP6EnableDisableReply represents the VPP binary API message 'sw_interface_ip6_enable_disable_reply'.
-// Generated from 'ip.api.json', line 726:
-//
-//            "sw_interface_ip6_enable_disable_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type SwInterfaceIP6EnableDisableReply struct {
-       Retval int32
-}
-
-func (*SwInterfaceIP6EnableDisableReply) GetMessageName() string {
-       return "sw_interface_ip6_enable_disable_reply"
-}
-func (*SwInterfaceIP6EnableDisableReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*SwInterfaceIP6EnableDisableReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-func NewSwInterfaceIP6EnableDisableReply() api.Message {
-       return &SwInterfaceIP6EnableDisableReply{}
-}
-
-// SwInterfaceIP6SetLinkLocalAddress represents the VPP binary API message 'sw_interface_ip6_set_link_local_address'.
-// Generated from 'ip.api.json', line 744:
-//
-//            "sw_interface_ip6_set_link_local_address",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "address",
-//                16
-//            ],
-//            {
-//                "crc": "0xd73bf1ab"
-//            }
-//
-type SwInterfaceIP6SetLinkLocalAddress struct {
-       SwIfIndex uint32
-       Address   []byte `struc:"[16]byte"`
-}
-
-func (*SwInterfaceIP6SetLinkLocalAddress) GetMessageName() string {
-       return "sw_interface_ip6_set_link_local_address"
-}
-func (*SwInterfaceIP6SetLinkLocalAddress) GetCrcString() string {
-       return "d73bf1ab"
-}
-func (*SwInterfaceIP6SetLinkLocalAddress) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-func NewSwInterfaceIP6SetLinkLocalAddress() api.Message {
-       return &SwInterfaceIP6SetLinkLocalAddress{}
-}
-
-// SwInterfaceIP6SetLinkLocalAddressReply represents the VPP binary API message 'sw_interface_ip6_set_link_local_address_reply'.
-// Generated from 'ip.api.json', line 771:
-//
-//            "sw_interface_ip6_set_link_local_address_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type SwInterfaceIP6SetLinkLocalAddressReply struct {
-       Retval int32
-}
 
-func (*SwInterfaceIP6SetLinkLocalAddressReply) GetMessageName() string {
-       return "sw_interface_ip6_set_link_local_address_reply"
-}
-func (*SwInterfaceIP6SetLinkLocalAddressReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*SwInterfaceIP6SetLinkLocalAddressReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-func NewSwInterfaceIP6SetLinkLocalAddressReply() api.Message {
-       return &SwInterfaceIP6SetLinkLocalAddressReply{}
-}
-
-// IPAddDelRoute represents the VPP binary API message 'ip_add_del_route'.
-// Generated from 'ip.api.json', line 789:
-//
-//            "ip_add_del_route",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "next_hop_sw_if_index"
-//            ],
-//            [
-//                "u32",
-//                "table_id"
-//            ],
-//            [
-//                "u32",
-//                "classify_table_index"
-//            ],
-//            [
-//                "u32",
-//                "next_hop_table_id"
-//            ],
-//            [
-//                "u32",
-//                "next_hop_id"
-//            ],
-//            [
-//                "u8",
-//                "is_add"
-//            ],
-//            [
-//                "u8",
-//                "is_drop"
-//            ],
-//            [
-//                "u8",
-//                "is_unreach"
-//            ],
-//            [
-//                "u8",
-//                "is_prohibit"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            [
-//                "u8",
-//                "is_local"
-//            ],
-//            [
-//                "u8",
-//                "is_classify"
-//            ],
-//            [
-//                "u8",
-//                "is_multipath"
-//            ],
-//            [
-//                "u8",
-//                "is_resolve_host"
-//            ],
-//            [
-//                "u8",
-//                "is_resolve_attached"
-//            ],
-//            [
-//                "u8",
-//                "is_dvr"
-//            ],
-//            [
-//                "u8",
-//                "is_source_lookup"
-//            ],
-//            [
-//                "u8",
-//                "is_udp_encap"
-//            ],
-//            [
-//                "u8",
-//                "next_hop_weight"
-//            ],
-//            [
-//                "u8",
-//                "next_hop_preference"
-//            ],
-//            [
-//                "u8",
-//                "next_hop_proto"
-//            ],
-//            [
-//                "u8",
-//                "dst_address_length"
-//            ],
-//            [
-//                "u8",
-//                "dst_address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "next_hop_address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "next_hop_n_out_labels"
-//            ],
-//            [
-//                "u32",
-//                "next_hop_via_label"
-//            ],
-//            [
-//                "vl_api_fib_mpls_label_t",
-//                "next_hop_out_label_stack",
-//                0,
-//                "next_hop_n_out_labels"
-//            ],
-//            {
-//                "crc": "0x4219d62d"
-//            }
-//
+// IPAddDelRoute represents VPP binary API message 'ip_add_del_route':
 type IPAddDelRoute struct {
        NextHopSwIfIndex     uint32
        TableID              uint32
@@ -1957,622 +645,123 @@ func (*IPAddDelRoute) GetCrcString() string {
 func (*IPAddDelRoute) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPAddDelRoute() api.Message {
-       return &IPAddDelRoute{}
-}
-
-// IPAddDelRouteReply represents the VPP binary API message 'ip_add_del_route_reply'.
-// Generated from 'ip.api.json', line 919:
-//
-//            "ip_add_del_route_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
+
+// IPAddDelRouteReply represents VPP binary API message 'ip_add_del_route_reply':
 type IPAddDelRouteReply struct {
-       Retval int32
+       Retval     int32
+       StatsIndex uint32
 }
 
 func (*IPAddDelRouteReply) GetMessageName() string {
        return "ip_add_del_route_reply"
 }
 func (*IPAddDelRouteReply) GetCrcString() string {
-       return "e8d4e804"
+       return "1992deab"
 }
 func (*IPAddDelRouteReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPAddDelRouteReply() api.Message {
-       return &IPAddDelRouteReply{}
-}
-
-// IPMrouteAddDel represents the VPP binary API message 'ip_mroute_add_del'.
-// Generated from 'ip.api.json', line 937:
-//
-//            "ip_mroute_add_del",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "next_hop_sw_if_index"
-//            ],
-//            [
-//                "u32",
-//                "table_id"
-//            ],
-//            [
-//                "u32",
-//                "entry_flags"
-//            ],
-//            [
-//                "u32",
-//                "itf_flags"
-//            ],
-//            [
-//                "u32",
-//                "rpf_id"
-//            ],
-//            [
-//                "u32",
-//                "bier_imp"
-//            ],
-//            [
-//                "u16",
-//                "grp_address_length"
-//            ],
-//            [
-//                "u8",
-//                "next_hop_afi"
-//            ],
-//            [
-//                "u8",
-//                "is_add"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            [
-//                "u8",
-//                "is_local"
-//            ],
-//            [
-//                "u8",
-//                "grp_address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "src_address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "nh_address",
-//                16
-//            ],
-//            {
-//                "crc": "0xf44c17b1"
-//            }
-//
-type IPMrouteAddDel struct {
-       NextHopSwIfIndex uint32
-       TableID          uint32
-       EntryFlags       uint32
-       ItfFlags         uint32
-       RpfID            uint32
-       BierImp          uint32
-       GrpAddressLength uint16
-       NextHopAfi       uint8
-       IsAdd            uint8
-       IsIPv6           uint8
-       IsLocal          uint8
-       GrpAddress       []byte `struc:"[16]byte"`
-       SrcAddress       []byte `struc:"[16]byte"`
-       NhAddress        []byte `struc:"[16]byte"`
-}
 
-func (*IPMrouteAddDel) GetMessageName() string {
-       return "ip_mroute_add_del"
-}
-func (*IPMrouteAddDel) GetCrcString() string {
-       return "f44c17b1"
-}
-func (*IPMrouteAddDel) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-func NewIPMrouteAddDel() api.Message {
-       return &IPMrouteAddDel{}
-}
-
-// IPMrouteAddDelReply represents the VPP binary API message 'ip_mroute_add_del_reply'.
-// Generated from 'ip.api.json', line 1014:
-//
-//            "ip_mroute_add_del_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IPMrouteAddDelReply struct {
-       Retval int32
+// IPAddressDetails represents VPP binary API message 'ip_address_details':
+type IPAddressDetails struct {
+       IP           []byte `struc:"[16]byte"`
+       PrefixLength uint8
+       SwIfIndex    uint32
+       IsIPv6       uint8
 }
 
-func (*IPMrouteAddDelReply) GetMessageName() string {
-       return "ip_mroute_add_del_reply"
+func (*IPAddressDetails) GetMessageName() string {
+       return "ip_address_details"
 }
-func (*IPMrouteAddDelReply) GetCrcString() string {
-       return "e8d4e804"
+func (*IPAddressDetails) GetCrcString() string {
+       return "9bc25966"
 }
-func (*IPMrouteAddDelReply) GetMessageType() api.MessageType {
+func (*IPAddressDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPMrouteAddDelReply() api.Message {
-       return &IPMrouteAddDelReply{}
-}
-
-// IPMfibDump represents the VPP binary API message 'ip_mfib_dump'.
-// Generated from 'ip.api.json', line 1032:
-//
-//            "ip_mfib_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            {
-//                "crc": "0x51077d14"
-//            }
-//
-type IPMfibDump struct{}
 
-func (*IPMfibDump) GetMessageName() string {
-       return "ip_mfib_dump"
+// IPAddressDump represents VPP binary API message 'ip_address_dump':
+type IPAddressDump struct {
+       SwIfIndex uint32
+       IsIPv6    uint8
 }
-func (*IPMfibDump) GetCrcString() string {
-       return "51077d14"
+
+func (*IPAddressDump) GetMessageName() string {
+       return "ip_address_dump"
 }
-func (*IPMfibDump) GetMessageType() api.MessageType {
+func (*IPAddressDump) GetCrcString() string {
+       return "6b7bcd0a"
+}
+func (*IPAddressDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPMfibDump() api.Message {
-       return &IPMfibDump{}
-}
-
-// IPMfibDetails represents the VPP binary API message 'ip_mfib_details'.
-// Generated from 'ip.api.json', line 1050:
-//
-//            "ip_mfib_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "table_id"
-//            ],
-//            [
-//                "u32",
-//                "entry_flags"
-//            ],
-//            [
-//                "u32",
-//                "rpf_id"
-//            ],
-//            [
-//                "u8",
-//                "address_length"
-//            ],
-//            [
-//                "u8",
-//                "grp_address",
-//                4
-//            ],
-//            [
-//                "u8",
-//                "src_address",
-//                4
-//            ],
-//            [
-//                "u32",
-//                "count"
-//            ],
-//            [
-//                "vl_api_fib_path_t",
-//                "path",
-//                0,
-//                "count"
-//            ],
-//            {
-//                "crc": "0x5e530d5e"
-//            }
-//
-type IPMfibDetails struct {
-       TableID       uint32
-       EntryFlags    uint32
-       RpfID         uint32
-       AddressLength uint8
-       GrpAddress    []byte `struc:"[4]byte"`
-       SrcAddress    []byte `struc:"[4]byte"`
-       Count         uint32 `struc:"sizeof=Path"`
-       Path          []FibPath
+
+// IPContainerProxyAddDel represents VPP binary API message 'ip_container_proxy_add_del':
+type IPContainerProxyAddDel struct {
+       IP        []byte `struc:"[16]byte"`
+       IsIP4     uint8
+       Plen      uint8
+       SwIfIndex uint32
+       IsAdd     uint8
 }
 
-func (*IPMfibDetails) GetMessageName() string {
-       return "ip_mfib_details"
+func (*IPContainerProxyAddDel) GetMessageName() string {
+       return "ip_container_proxy_add_del"
 }
-func (*IPMfibDetails) GetCrcString() string {
-       return "5e530d5e"
+func (*IPContainerProxyAddDel) GetCrcString() string {
+       return "0a355d39"
 }
-func (*IPMfibDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*IPContainerProxyAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
-func NewIPMfibDetails() api.Message {
-       return &IPMfibDetails{}
-}
-
-// IP6MfibDump represents the VPP binary API message 'ip6_mfib_dump'.
-// Generated from 'ip.api.json', line 1100:
-//
-//            "ip6_mfib_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            {
-//                "crc": "0x51077d14"
-//            }
-//
-type IP6MfibDump struct{}
 
-func (*IP6MfibDump) GetMessageName() string {
-       return "ip6_mfib_dump"
-}
-func (*IP6MfibDump) GetCrcString() string {
-       return "51077d14"
-}
-func (*IP6MfibDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-func NewIP6MfibDump() api.Message {
-       return &IP6MfibDump{}
-}
-
-// IP6MfibDetails represents the VPP binary API message 'ip6_mfib_details'.
-// Generated from 'ip.api.json', line 1118:
-//
-//            "ip6_mfib_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "table_id"
-//            ],
-//            [
-//                "u8",
-//                "address_length"
-//            ],
-//            [
-//                "u8",
-//                "grp_address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "src_address",
-//                16
-//            ],
-//            [
-//                "u32",
-//                "count"
-//            ],
-//            [
-//                "vl_api_fib_path_t",
-//                "path",
-//                0,
-//                "count"
-//            ],
-//            {
-//                "crc": "0xe02dcb4b"
-//            }
-//
-type IP6MfibDetails struct {
-       TableID       uint32
-       AddressLength uint8
-       GrpAddress    []byte `struc:"[16]byte"`
-       SrcAddress    []byte `struc:"[16]byte"`
-       Count         uint32 `struc:"sizeof=Path"`
-       Path          []FibPath
+// IPContainerProxyAddDelReply represents VPP binary API message 'ip_container_proxy_add_del_reply':
+type IPContainerProxyAddDelReply struct {
+       Retval int32
 }
 
-func (*IP6MfibDetails) GetMessageName() string {
-       return "ip6_mfib_details"
+func (*IPContainerProxyAddDelReply) GetMessageName() string {
+       return "ip_container_proxy_add_del_reply"
 }
-func (*IP6MfibDetails) GetCrcString() string {
-       return "e02dcb4b"
+func (*IPContainerProxyAddDelReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*IP6MfibDetails) GetMessageType() api.MessageType {
+func (*IPContainerProxyAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIP6MfibDetails() api.Message {
-       return &IP6MfibDetails{}
-}
-
-// IPAddressDetails represents the VPP binary API message 'ip_address_details'.
-// Generated from 'ip.api.json', line 1160:
-//
-//            "ip_address_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "ip",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "prefix_length"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            {
-//                "crc": "0xbc7442f2"
-//            }
-//
-type IPAddressDetails struct {
-       IP           []byte `struc:"[16]byte"`
-       PrefixLength uint8
-       SwIfIndex    uint32
-       IsIPv6       uint8
-}
 
-func (*IPAddressDetails) GetMessageName() string {
-       return "ip_address_details"
-}
-func (*IPAddressDetails) GetCrcString() string {
-       return "bc7442f2"
-}
-func (*IPAddressDetails) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-func NewIPAddressDetails() api.Message {
-       return &IPAddressDetails{}
-}
-
-// IPAddressDump represents the VPP binary API message 'ip_address_dump'.
-// Generated from 'ip.api.json', line 1195:
-//
-//            "ip_address_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            {
-//                "crc": "0x6b7bcd0a"
-//            }
-//
-type IPAddressDump struct {
+// IPContainerProxyDetails represents VPP binary API message 'ip_container_proxy_details':
+type IPContainerProxyDetails struct {
        SwIfIndex uint32
-       IsIPv6    uint8
+       Prefix    Prefix
 }
 
-func (*IPAddressDump) GetMessageName() string {
-       return "ip_address_dump"
+func (*IPContainerProxyDetails) GetMessageName() string {
+       return "ip_container_proxy_details"
 }
-func (*IPAddressDump) GetCrcString() string {
-       return "6b7bcd0a"
-}
-func (*IPAddressDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*IPContainerProxyDetails) GetCrcString() string {
+       return "d528df63"
 }
-func NewIPAddressDump() api.Message {
-       return &IPAddressDump{}
-}
-
-// IPUnnumberedDetails represents the VPP binary API message 'ip_unnumbered_details'.
-// Generated from 'ip.api.json', line 1221:
-//
-//            "ip_unnumbered_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u32",
-//                "ip_sw_if_index"
-//            ],
-//            {
-//                "crc": "0x05b717ca"
-//            }
-//
-type IPUnnumberedDetails struct {
-       SwIfIndex   uint32
-       IPSwIfIndex uint32
+func (*IPContainerProxyDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-func (*IPUnnumberedDetails) GetMessageName() string {
-       return "ip_unnumbered_details"
-}
-func (*IPUnnumberedDetails) GetCrcString() string {
-       return "05b717ca"
-}
-func (*IPUnnumberedDetails) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-func NewIPUnnumberedDetails() api.Message {
-       return &IPUnnumberedDetails{}
-}
-
-// IPUnnumberedDump represents the VPP binary API message 'ip_unnumbered_dump'.
-// Generated from 'ip.api.json', line 1247:
-//
-//            "ip_unnumbered_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            {
-//                "crc": "0x529cb13f"
-//            }
-//
-type IPUnnumberedDump struct {
-       SwIfIndex uint32
-}
+// IPContainerProxyDump represents VPP binary API message 'ip_container_proxy_dump':
+type IPContainerProxyDump struct{}
 
-func (*IPUnnumberedDump) GetMessageName() string {
-       return "ip_unnumbered_dump"
+func (*IPContainerProxyDump) GetMessageName() string {
+       return "ip_container_proxy_dump"
 }
-func (*IPUnnumberedDump) GetCrcString() string {
-       return "529cb13f"
+func (*IPContainerProxyDump) GetCrcString() string {
+       return "51077d14"
 }
-func (*IPUnnumberedDump) GetMessageType() api.MessageType {
+func (*IPContainerProxyDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPUnnumberedDump() api.Message {
-       return &IPUnnumberedDump{}
-}
-
-// IPDetails represents the VPP binary API message 'ip_details'.
-// Generated from 'ip.api.json', line 1269:
-//
-//            "ip_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            {
-//                "crc": "0x452ffc5a"
-//            }
-//
+
+// IPDetails represents VPP binary API message 'ip_details':
 type IPDetails struct {
        SwIfIndex uint32
-       Context   uint32
        IsIPv6    uint8
 }
 
@@ -2580,39 +769,13 @@ func (*IPDetails) GetMessageName() string {
        return "ip_details"
 }
 func (*IPDetails) GetCrcString() string {
-       return "452ffc5a"
+       return "8bb37ec4"
 }
 func (*IPDetails) GetMessageType() api.MessageType {
-       return api.OtherMessage
-}
-func NewIPDetails() api.Message {
-       return &IPDetails{}
-}
-
-// IPDump represents the VPP binary API message 'ip_dump'.
-// Generated from 'ip.api.json', line 1291:
-//
-//            "ip_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            {
-//                "crc": "0xde883da4"
-//            }
-//
+       return api.ReplyMessage
+}
+
+// IPDump represents VPP binary API message 'ip_dump':
 type IPDump struct {
        IsIPv6 uint8
 }
@@ -2626,760 +789,195 @@ func (*IPDump) GetCrcString() string {
 func (*IPDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPDump() api.Message {
-       return &IPDump{}
-}
-
-// MfibSignalDump represents the VPP binary API message 'mfib_signal_dump'.
-// Generated from 'ip.api.json', line 1313:
-//
-//            "mfib_signal_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            {
-//                "crc": "0x51077d14"
-//            }
-//
-type MfibSignalDump struct{}
 
-func (*MfibSignalDump) GetMessageName() string {
-       return "mfib_signal_dump"
-}
-func (*MfibSignalDump) GetCrcString() string {
-       return "51077d14"
-}
-func (*MfibSignalDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-func NewMfibSignalDump() api.Message {
-       return &MfibSignalDump{}
-}
-
-// MfibSignalDetails represents the VPP binary API message 'mfib_signal_details'.
-// Generated from 'ip.api.json', line 1331:
-//
-//            "mfib_signal_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u32",
-//                "table_id"
-//            ],
-//            [
-//                "u16",
-//                "grp_address_len"
-//            ],
-//            [
-//                "u8",
-//                "grp_address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "src_address",
-//                16
-//            ],
-//            [
-//                "u16",
-//                "ip_packet_len"
-//            ],
-//            [
-//                "u8",
-//                "ip_packet_data",
-//                256
-//            ],
-//            {
-//                "crc": "0x791bbeab"
-//            }
-//
-type MfibSignalDetails struct {
-       SwIfIndex     uint32
+// IPFibDetails represents VPP binary API message 'ip_fib_details':
+type IPFibDetails struct {
        TableID       uint32
-       GrpAddressLen uint16
-       GrpAddress    []byte `struc:"[16]byte"`
-       SrcAddress    []byte `struc:"[16]byte"`
-       IPPacketLen   uint16
-       IPPacketData  []byte `struc:"[256]byte"`
+       TableName     []byte `struc:"[64]byte"`
+       AddressLength uint8
+       Address       []byte `struc:"[4]byte"`
+       Count         uint32 `struc:"sizeof=Path"`
+       StatsIndex    uint32
+       Path          []FibPath
 }
 
-func (*MfibSignalDetails) GetMessageName() string {
-       return "mfib_signal_details"
-}
-func (*MfibSignalDetails) GetCrcString() string {
-       return "791bbeab"
+func (*IPFibDetails) GetMessageName() string {
+       return "ip_fib_details"
 }
-func (*MfibSignalDetails) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*IPFibDetails) GetCrcString() string {
+       return "f6a2fab3"
 }
-func NewMfibSignalDetails() api.Message {
-       return &MfibSignalDetails{}
-}
-
-// IPPuntPolice represents the VPP binary API message 'ip_punt_police'.
-// Generated from 'ip.api.json', line 1380:
-//
-//            "ip_punt_police",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "policer_index"
-//            ],
-//            [
-//                "u8",
-//                "is_add"
-//            ],
-//            [
-//                "u8",
-//                "is_ip6"
-//            ],
-//            {
-//                "crc": "0x38691592"
-//            }
-//
-type IPPuntPolice struct {
-       PolicerIndex uint32
-       IsAdd        uint8
-       IsIP6        uint8
+func (*IPFibDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-func (*IPPuntPolice) GetMessageName() string {
-       return "ip_punt_police"
+// IPFibDump represents VPP binary API message 'ip_fib_dump':
+type IPFibDump struct{}
+
+func (*IPFibDump) GetMessageName() string {
+       return "ip_fib_dump"
 }
-func (*IPPuntPolice) GetCrcString() string {
-       return "38691592"
+func (*IPFibDump) GetCrcString() string {
+       return "51077d14"
 }
-func (*IPPuntPolice) GetMessageType() api.MessageType {
+func (*IPFibDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPPuntPolice() api.Message {
-       return &IPPuntPolice{}
-}
-
-// IPPuntPoliceReply represents the VPP binary API message 'ip_punt_police_reply'.
-// Generated from 'ip.api.json', line 1410:
-//
-//            "ip_punt_police_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IPPuntPoliceReply struct {
-       Retval int32
+
+// IPMfibDetails represents VPP binary API message 'ip_mfib_details':
+type IPMfibDetails struct {
+       TableID       uint32
+       EntryFlags    uint32
+       RpfID         uint32
+       AddressLength uint8
+       GrpAddress    []byte `struc:"[4]byte"`
+       SrcAddress    []byte `struc:"[4]byte"`
+       Count         uint32 `struc:"sizeof=Path"`
+       StatsIndex    uint32
+       Path          []MfibPath
 }
 
-func (*IPPuntPoliceReply) GetMessageName() string {
-       return "ip_punt_police_reply"
+func (*IPMfibDetails) GetMessageName() string {
+       return "ip_mfib_details"
 }
-func (*IPPuntPoliceReply) GetCrcString() string {
-       return "e8d4e804"
+func (*IPMfibDetails) GetCrcString() string {
+       return "61faa26f"
 }
-func (*IPPuntPoliceReply) GetMessageType() api.MessageType {
+func (*IPMfibDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPPuntPoliceReply() api.Message {
-       return &IPPuntPoliceReply{}
-}
-
-// IPPuntRedirect represents the VPP binary API message 'ip_punt_redirect'.
-// Generated from 'ip.api.json', line 1428:
-//
-//            "ip_punt_redirect",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "rx_sw_if_index"
-//            ],
-//            [
-//                "u32",
-//                "tx_sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "is_add"
-//            ],
-//            [
-//                "u8",
-//                "is_ip6"
-//            ],
-//            [
-//                "u8",
-//                "nh",
-//                16
-//            ],
-//            {
-//                "crc": "0x996b6603"
-//            }
-//
-type IPPuntRedirect struct {
-       RxSwIfIndex uint32
-       TxSwIfIndex uint32
-       IsAdd       uint8
-       IsIP6       uint8
-       Nh          []byte `struc:"[16]byte"`
-}
 
-func (*IPPuntRedirect) GetMessageName() string {
-       return "ip_punt_redirect"
+// IPMfibDump represents VPP binary API message 'ip_mfib_dump':
+type IPMfibDump struct{}
+
+func (*IPMfibDump) GetMessageName() string {
+       return "ip_mfib_dump"
 }
-func (*IPPuntRedirect) GetCrcString() string {
-       return "996b6603"
+func (*IPMfibDump) GetCrcString() string {
+       return "51077d14"
 }
-func (*IPPuntRedirect) GetMessageType() api.MessageType {
+func (*IPMfibDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPPuntRedirect() api.Message {
-       return &IPPuntRedirect{}
-}
-
-// IPPuntRedirectReply represents the VPP binary API message 'ip_punt_redirect_reply'.
-// Generated from 'ip.api.json', line 1467:
-//
-//            "ip_punt_redirect_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IPPuntRedirectReply struct {
-       Retval int32
-}
 
-func (*IPPuntRedirectReply) GetMessageName() string {
-       return "ip_punt_redirect_reply"
-}
-func (*IPPuntRedirectReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*IPPuntRedirectReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-func NewIPPuntRedirectReply() api.Message {
-       return &IPPuntRedirectReply{}
-}
-
-// IPContainerProxyAddDel represents the VPP binary API message 'ip_container_proxy_add_del'.
-// Generated from 'ip.api.json', line 1485:
-//
-//            "ip_container_proxy_add_del",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "ip",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "is_ip4"
-//            ],
-//            [
-//                "u8",
-//                "plen"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "is_add"
-//            ],
-//            {
-//                "crc": "0x0a355d39"
-//            }
-//
-type IPContainerProxyAddDel struct {
-       IP        []byte `struc:"[16]byte"`
-       IsIP4     uint8
-       Plen      uint8
-       SwIfIndex uint32
-       IsAdd     uint8
+// IPMrouteAddDel represents VPP binary API message 'ip_mroute_add_del':
+type IPMrouteAddDel struct {
+       NextHopSwIfIndex uint32
+       TableID          uint32
+       EntryFlags       uint32
+       ItfFlags         uint32
+       RpfID            uint32
+       BierImp          uint32
+       GrpAddressLength uint16
+       NextHopAfi       uint8
+       IsAdd            uint8
+       IsIPv6           uint8
+       IsLocal          uint8
+       GrpAddress       []byte `struc:"[16]byte"`
+       SrcAddress       []byte `struc:"[16]byte"`
+       NhAddress        []byte `struc:"[16]byte"`
 }
 
-func (*IPContainerProxyAddDel) GetMessageName() string {
-       return "ip_container_proxy_add_del"
+func (*IPMrouteAddDel) GetMessageName() string {
+       return "ip_mroute_add_del"
 }
-func (*IPContainerProxyAddDel) GetCrcString() string {
-       return "0a355d39"
+func (*IPMrouteAddDel) GetCrcString() string {
+       return "f44c17b1"
 }
-func (*IPContainerProxyAddDel) GetMessageType() api.MessageType {
+func (*IPMrouteAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPContainerProxyAddDel() api.Message {
-       return &IPContainerProxyAddDel{}
-}
-
-// IPContainerProxyAddDelReply represents the VPP binary API message 'ip_container_proxy_add_del_reply'.
-// Generated from 'ip.api.json', line 1524:
-//
-//            "ip_container_proxy_add_del_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IPContainerProxyAddDelReply struct {
-       Retval int32
+
+// IPMrouteAddDelReply represents VPP binary API message 'ip_mroute_add_del_reply':
+type IPMrouteAddDelReply struct {
+       Retval     int32
+       StatsIndex uint32
 }
 
-func (*IPContainerProxyAddDelReply) GetMessageName() string {
-       return "ip_container_proxy_add_del_reply"
+func (*IPMrouteAddDelReply) GetMessageName() string {
+       return "ip_mroute_add_del_reply"
 }
-func (*IPContainerProxyAddDelReply) GetCrcString() string {
-       return "e8d4e804"
+func (*IPMrouteAddDelReply) GetCrcString() string {
+       return "1992deab"
 }
-func (*IPContainerProxyAddDelReply) GetMessageType() api.MessageType {
+func (*IPMrouteAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPContainerProxyAddDelReply() api.Message {
-       return &IPContainerProxyAddDelReply{}
-}
-
-// IPSourceAndPortRangeCheckAddDel represents the VPP binary API message 'ip_source_and_port_range_check_add_del'.
-// Generated from 'ip.api.json', line 1542:
-//
-//            "ip_source_and_port_range_check_add_del",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            [
-//                "u8",
-//                "is_add"
-//            ],
-//            [
-//                "u8",
-//                "mask_length"
-//            ],
-//            [
-//                "u8",
-//                "address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "number_of_ranges"
-//            ],
-//            [
-//                "u16",
-//                "low_ports",
-//                32
-//            ],
-//            [
-//                "u16",
-//                "high_ports",
-//                32
-//            ],
-//            [
-//                "u32",
-//                "vrf_id"
-//            ],
-//            {
-//                "crc": "0x03d6b03a"
-//            }
-//
-type IPSourceAndPortRangeCheckAddDel struct {
-       IsIPv6         uint8
-       IsAdd          uint8
-       MaskLength     uint8
-       Address        []byte `struc:"[16]byte"`
-       NumberOfRanges uint8
-       LowPorts       []uint16 `struc:"[32]uint16"`
-       HighPorts      []uint16 `struc:"[32]uint16"`
-       VrfID          uint32
+
+// IPNeighborAddDel represents VPP binary API message 'ip_neighbor_add_del':
+type IPNeighborAddDel struct {
+       SwIfIndex  uint32
+       IsAdd      uint8
+       IsIPv6     uint8
+       IsStatic   uint8
+       IsNoAdjFib uint8
+       MacAddress []byte `struc:"[6]byte"`
+       DstAddress []byte `struc:"[16]byte"`
 }
 
-func (*IPSourceAndPortRangeCheckAddDel) GetMessageName() string {
-       return "ip_source_and_port_range_check_add_del"
+func (*IPNeighborAddDel) GetMessageName() string {
+       return "ip_neighbor_add_del"
 }
-func (*IPSourceAndPortRangeCheckAddDel) GetCrcString() string {
-       return "03d6b03a"
+func (*IPNeighborAddDel) GetCrcString() string {
+       return "4711eb25"
 }
-func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType {
+func (*IPNeighborAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPSourceAndPortRangeCheckAddDel() api.Message {
-       return &IPSourceAndPortRangeCheckAddDel{}
-}
-
-// IPSourceAndPortRangeCheckAddDelReply represents the VPP binary API message 'ip_source_and_port_range_check_add_del_reply'.
-// Generated from 'ip.api.json', line 1595:
-//
-//            "ip_source_and_port_range_check_add_del_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IPSourceAndPortRangeCheckAddDelReply struct {
-       Retval int32
+
+// IPNeighborAddDelReply represents VPP binary API message 'ip_neighbor_add_del_reply':
+type IPNeighborAddDelReply struct {
+       Retval     int32
+       StatsIndex uint32
 }
 
-func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageName() string {
-       return "ip_source_and_port_range_check_add_del_reply"
+func (*IPNeighborAddDelReply) GetMessageName() string {
+       return "ip_neighbor_add_del_reply"
 }
-func (*IPSourceAndPortRangeCheckAddDelReply) GetCrcString() string {
-       return "e8d4e804"
+func (*IPNeighborAddDelReply) GetCrcString() string {
+       return "1992deab"
 }
-func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageType() api.MessageType {
+func (*IPNeighborAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPSourceAndPortRangeCheckAddDelReply() api.Message {
-       return &IPSourceAndPortRangeCheckAddDelReply{}
-}
-
-// IPSourceAndPortRangeCheckInterfaceAddDel represents the VPP binary API message 'ip_source_and_port_range_check_interface_add_del'.
-// Generated from 'ip.api.json', line 1613:
-//
-//            "ip_source_and_port_range_check_interface_add_del",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "is_add"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u32",
-//                "tcp_in_vrf_id"
-//            ],
-//            [
-//                "u32",
-//                "tcp_out_vrf_id"
-//            ],
-//            [
-//                "u32",
-//                "udp_in_vrf_id"
-//            ],
-//            [
-//                "u32",
-//                "udp_out_vrf_id"
-//            ],
-//            {
-//                "crc": "0x6966bc44"
-//            }
-//
-type IPSourceAndPortRangeCheckInterfaceAddDel struct {
-       IsAdd       uint8
-       SwIfIndex   uint32
-       TCPInVrfID  uint32
-       TCPOutVrfID uint32
-       UDPInVrfID  uint32
-       UDPOutVrfID uint32
-}
 
-func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageName() string {
-       return "ip_source_and_port_range_check_interface_add_del"
-}
-func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetCrcString() string {
-       return "6966bc44"
-}
-func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-func NewIPSourceAndPortRangeCheckInterfaceAddDel() api.Message {
-       return &IPSourceAndPortRangeCheckInterfaceAddDel{}
-}
-
-// IPSourceAndPortRangeCheckInterfaceAddDelReply represents the VPP binary API message 'ip_source_and_port_range_check_interface_add_del_reply'.
-// Generated from 'ip.api.json', line 1655:
-//
-//            "ip_source_and_port_range_check_interface_add_del_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IPSourceAndPortRangeCheckInterfaceAddDelReply struct {
-       Retval int32
+// IPNeighborDetails represents VPP binary API message 'ip_neighbor_details':
+type IPNeighborDetails struct {
+       SwIfIndex  uint32
+       StatsIndex uint32
+       IsStatic   uint8
+       IsIPv6     uint8
+       MacAddress []byte `struc:"[6]byte"`
+       IPAddress  []byte `struc:"[16]byte"`
 }
 
-func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageName() string {
-       return "ip_source_and_port_range_check_interface_add_del_reply"
+func (*IPNeighborDetails) GetMessageName() string {
+       return "ip_neighbor_details"
 }
-func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetCrcString() string {
-       return "e8d4e804"
+func (*IPNeighborDetails) GetCrcString() string {
+       return "c7001770"
 }
-func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
+func (*IPNeighborDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPSourceAndPortRangeCheckInterfaceAddDelReply() api.Message {
-       return &IPSourceAndPortRangeCheckInterfaceAddDelReply{}
-}
-
-// IPScanNeighborEnableDisable represents the VPP binary API message 'ip_scan_neighbor_enable_disable'.
-// Generated from 'ip.api.json', line 1673:
-//
-//            "ip_scan_neighbor_enable_disable",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "mode"
-//            ],
-//            [
-//                "u8",
-//                "scan_interval"
-//            ],
-//            [
-//                "u8",
-//                "max_proc_time"
-//            ],
-//            [
-//                "u8",
-//                "max_update"
-//            ],
-//            [
-//                "u8",
-//                "scan_int_delay"
-//            ],
-//            [
-//                "u8",
-//                "stale_threshold"
-//            ],
-//            {
-//                "crc": "0x0a6bf57a"
-//            }
-//
-type IPScanNeighborEnableDisable struct {
-       Mode           uint8
-       ScanInterval   uint8
-       MaxProcTime    uint8
-       MaxUpdate      uint8
-       ScanIntDelay   uint8
-       StaleThreshold uint8
+
+// IPNeighborDump represents VPP binary API message 'ip_neighbor_dump':
+type IPNeighborDump struct {
+       SwIfIndex uint32
+       IsIPv6    uint8
 }
 
-func (*IPScanNeighborEnableDisable) GetMessageName() string {
-       return "ip_scan_neighbor_enable_disable"
+func (*IPNeighborDump) GetMessageName() string {
+       return "ip_neighbor_dump"
 }
-func (*IPScanNeighborEnableDisable) GetCrcString() string {
-       return "0a6bf57a"
+func (*IPNeighborDump) GetCrcString() string {
+       return "6b7bcd0a"
 }
-func (*IPScanNeighborEnableDisable) GetMessageType() api.MessageType {
+func (*IPNeighborDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPScanNeighborEnableDisable() api.Message {
-       return &IPScanNeighborEnableDisable{}
-}
-
-// IPScanNeighborEnableDisableReply represents the VPP binary API message 'ip_scan_neighbor_enable_disable_reply'.
-// Generated from 'ip.api.json', line 1715:
-//
-//            "ip_scan_neighbor_enable_disable_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IPScanNeighborEnableDisableReply struct {
-       Retval int32
-}
 
-func (*IPScanNeighborEnableDisableReply) GetMessageName() string {
-       return "ip_scan_neighbor_enable_disable_reply"
-}
-func (*IPScanNeighborEnableDisableReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*IPScanNeighborEnableDisableReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-func NewIPScanNeighborEnableDisableReply() api.Message {
-       return &IPScanNeighborEnableDisableReply{}
-}
-
-// IPProbeNeighbor represents the VPP binary API message 'ip_probe_neighbor'.
-// Generated from 'ip.api.json', line 1733:
-//
-//            "ip_probe_neighbor",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "dst_address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            {
-//                "crc": "0x1e44bfd7"
-//            }
-//
+// IPProbeNeighbor represents VPP binary API message 'ip_probe_neighbor':
 type IPProbeNeighbor struct {
        SwIfIndex  uint32
        DstAddress []byte `struc:"[16]byte"`
@@ -3395,30 +993,8 @@ func (*IPProbeNeighbor) GetCrcString() string {
 func (*IPProbeNeighbor) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPProbeNeighbor() api.Message {
-       return &IPProbeNeighbor{}
-}
-
-// IPProbeNeighborReply represents the VPP binary API message 'ip_probe_neighbor_reply'.
-// Generated from 'ip.api.json', line 1764:
-//
-//            "ip_probe_neighbor_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
+
+// IPProbeNeighborReply represents VPP binary API message 'ip_probe_neighbor_reply':
 type IPProbeNeighborReply struct {
        Retval int32
 }
@@ -3432,1545 +1008,954 @@ func (*IPProbeNeighborReply) GetCrcString() string {
 func (*IPProbeNeighborReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPProbeNeighborReply() api.Message {
-       return &IPProbeNeighborReply{}
-}
-
-// WantIP4ArpEvents represents the VPP binary API message 'want_ip4_arp_events'.
-// Generated from 'ip.api.json', line 1782:
-//
-//            "want_ip4_arp_events",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "enable_disable"
-//            ],
-//            [
-//                "u32",
-//                "pid"
-//            ],
-//            [
-//                "u32",
-//                "address"
-//            ],
-//            {
-//                "crc": "0x77e06379"
-//            }
-//
-type WantIP4ArpEvents struct {
-       EnableDisable uint8
-       PID           uint32
-       Address       uint32
+
+// IPPuntPolice represents VPP binary API message 'ip_punt_police':
+type IPPuntPolice struct {
+       PolicerIndex uint32
+       IsAdd        uint8
+       IsIP6        uint8
 }
 
-func (*WantIP4ArpEvents) GetMessageName() string {
-       return "want_ip4_arp_events"
+func (*IPPuntPolice) GetMessageName() string {
+       return "ip_punt_police"
 }
-func (*WantIP4ArpEvents) GetCrcString() string {
-       return "77e06379"
+func (*IPPuntPolice) GetCrcString() string {
+       return "38691592"
 }
-func (*WantIP4ArpEvents) GetMessageType() api.MessageType {
+func (*IPPuntPolice) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewWantIP4ArpEvents() api.Message {
-       return &WantIP4ArpEvents{}
-}
-
-// WantIP4ArpEventsReply represents the VPP binary API message 'want_ip4_arp_events_reply'.
-// Generated from 'ip.api.json', line 1812:
-//
-//            "want_ip4_arp_events_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type WantIP4ArpEventsReply struct {
+
+// IPPuntPoliceReply represents VPP binary API message 'ip_punt_police_reply':
+type IPPuntPoliceReply struct {
        Retval int32
 }
 
-func (*WantIP4ArpEventsReply) GetMessageName() string {
-       return "want_ip4_arp_events_reply"
+func (*IPPuntPoliceReply) GetMessageName() string {
+       return "ip_punt_police_reply"
 }
-func (*WantIP4ArpEventsReply) GetCrcString() string {
+func (*IPPuntPoliceReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*WantIP4ArpEventsReply) GetMessageType() api.MessageType {
+func (*IPPuntPoliceReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewWantIP4ArpEventsReply() api.Message {
-       return &WantIP4ArpEventsReply{}
-}
-
-// IP4ArpEvent represents the VPP binary API message 'ip4_arp_event'.
-// Generated from 'ip.api.json', line 1830:
-//
-//            "ip4_arp_event",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "address"
-//            ],
-//            [
-//                "u32",
-//                "pid"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "new_mac",
-//                6
-//            ],
-//            [
-//                "u8",
-//                "mac_ip"
-//            ],
-//            {
-//                "crc": "0xef7235f7"
-//            }
-//
-type IP4ArpEvent struct {
-       Address   uint32
-       PID       uint32
-       SwIfIndex uint32
-       NewMac    []byte `struc:"[6]byte"`
-       MacIP     uint8
-}
 
-func (*IP4ArpEvent) GetMessageName() string {
-       return "ip4_arp_event"
-}
-func (*IP4ArpEvent) GetCrcString() string {
-       return "ef7235f7"
-}
-func (*IP4ArpEvent) GetMessageType() api.MessageType {
-       return api.EventMessage
-}
-func NewIP4ArpEvent() api.Message {
-       return &IP4ArpEvent{}
-}
-
-// WantIP6NdEvents represents the VPP binary API message 'want_ip6_nd_events'.
-// Generated from 'ip.api.json', line 1865:
-//
-//            "want_ip6_nd_events",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "enable_disable"
-//            ],
-//            [
-//                "u32",
-//                "pid"
-//            ],
-//            [
-//                "u8",
-//                "address",
-//                16
-//            ],
-//            {
-//                "crc": "0x1cf65fbb"
-//            }
-//
-type WantIP6NdEvents struct {
-       EnableDisable uint8
-       PID           uint32
-       Address       []byte `struc:"[16]byte"`
+// IPPuntRedirect represents VPP binary API message 'ip_punt_redirect':
+type IPPuntRedirect struct {
+       Punt  PuntRedirect
+       IsAdd uint8
 }
 
-func (*WantIP6NdEvents) GetMessageName() string {
-       return "want_ip6_nd_events"
+func (*IPPuntRedirect) GetMessageName() string {
+       return "ip_punt_redirect"
 }
-func (*WantIP6NdEvents) GetCrcString() string {
-       return "1cf65fbb"
+func (*IPPuntRedirect) GetCrcString() string {
+       return "a953495b"
 }
-func (*WantIP6NdEvents) GetMessageType() api.MessageType {
+func (*IPPuntRedirect) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewWantIP6NdEvents() api.Message {
-       return &WantIP6NdEvents{}
-}
-
-// WantIP6NdEventsReply represents the VPP binary API message 'want_ip6_nd_events_reply'.
-// Generated from 'ip.api.json', line 1896:
-//
-//            "want_ip6_nd_events_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type WantIP6NdEventsReply struct {
-       Retval int32
+
+// IPPuntRedirectDetails represents VPP binary API message 'ip_punt_redirect_details':
+type IPPuntRedirectDetails struct {
+       Punt PuntRedirect
 }
 
-func (*WantIP6NdEventsReply) GetMessageName() string {
-       return "want_ip6_nd_events_reply"
+func (*IPPuntRedirectDetails) GetMessageName() string {
+       return "ip_punt_redirect_details"
 }
-func (*WantIP6NdEventsReply) GetCrcString() string {
-       return "e8d4e804"
+func (*IPPuntRedirectDetails) GetCrcString() string {
+       return "a47f70da"
 }
-func (*WantIP6NdEventsReply) GetMessageType() api.MessageType {
+func (*IPPuntRedirectDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewWantIP6NdEventsReply() api.Message {
-       return &WantIP6NdEventsReply{}
-}
-
-// IP6NdEvent represents the VPP binary API message 'ip6_nd_event'.
-// Generated from 'ip.api.json', line 1914:
-//
-//            "ip6_nd_event",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "pid"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "new_mac",
-//                6
-//            ],
-//            [
-//                "u8",
-//                "mac_ip"
-//            ],
-//            {
-//                "crc": "0x96ab2fdd"
-//            }
-//
-type IP6NdEvent struct {
-       PID       uint32
-       SwIfIndex uint32
-       Address   []byte `struc:"[16]byte"`
-       NewMac    []byte `struc:"[6]byte"`
-       MacIP     uint8
-}
 
-func (*IP6NdEvent) GetMessageName() string {
-       return "ip6_nd_event"
-}
-func (*IP6NdEvent) GetCrcString() string {
-       return "96ab2fdd"
-}
-func (*IP6NdEvent) GetMessageType() api.MessageType {
-       return api.EventMessage
-}
-func NewIP6NdEvent() api.Message {
-       return &IP6NdEvent{}
-}
-
-// WantIP6RaEvents represents the VPP binary API message 'want_ip6_ra_events'.
-// Generated from 'ip.api.json', line 1950:
-//
-//            "want_ip6_ra_events",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "enable_disable"
-//            ],
-//            [
-//                "u32",
-//                "pid"
-//            ],
-//            {
-//                "crc": "0x05b454b5"
-//            }
-//
-type WantIP6RaEvents struct {
-       EnableDisable uint8
-       PID           uint32
+// IPPuntRedirectDump represents VPP binary API message 'ip_punt_redirect_dump':
+type IPPuntRedirectDump struct {
+       SwIfIndex uint32
+       IsIPv6    uint8
 }
 
-func (*WantIP6RaEvents) GetMessageName() string {
-       return "want_ip6_ra_events"
+func (*IPPuntRedirectDump) GetMessageName() string {
+       return "ip_punt_redirect_dump"
 }
-func (*WantIP6RaEvents) GetCrcString() string {
-       return "05b454b5"
+func (*IPPuntRedirectDump) GetCrcString() string {
+       return "6b7bcd0a"
 }
-func (*WantIP6RaEvents) GetMessageType() api.MessageType {
+func (*IPPuntRedirectDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewWantIP6RaEvents() api.Message {
-       return &WantIP6RaEvents{}
-}
-
-// WantIP6RaEventsReply represents the VPP binary API message 'want_ip6_ra_events_reply'.
-// Generated from 'ip.api.json', line 1976:
-//
-//            "want_ip6_ra_events_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type WantIP6RaEventsReply struct {
+
+// IPPuntRedirectReply represents VPP binary API message 'ip_punt_redirect_reply':
+type IPPuntRedirectReply struct {
        Retval int32
 }
 
-func (*WantIP6RaEventsReply) GetMessageName() string {
-       return "want_ip6_ra_events_reply"
+func (*IPPuntRedirectReply) GetMessageName() string {
+       return "ip_punt_redirect_reply"
 }
-func (*WantIP6RaEventsReply) GetCrcString() string {
+func (*IPPuntRedirectReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*WantIP6RaEventsReply) GetMessageType() api.MessageType {
+func (*IPPuntRedirectReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewWantIP6RaEventsReply() api.Message {
-       return &WantIP6RaEventsReply{}
-}
-
-// IP6RaEvent represents the VPP binary API message 'ip6_ra_event'.
-// Generated from 'ip.api.json', line 1994:
-//
-//            "ip6_ra_event",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "pid"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "router_address",
-//                16
-//            ],
-//            [
-//                "u8",
-//                "current_hop_limit"
-//            ],
-//            [
-//                "u8",
-//                "flags"
-//            ],
-//            [
-//                "u16",
-//                "router_lifetime_in_sec"
-//            ],
-//            [
-//                "u32",
-//                "neighbor_reachable_time_in_msec"
-//            ],
-//            [
-//                "u32",
-//                "time_in_msec_between_retransmitted_neighbor_solicitations"
-//            ],
-//            [
-//                "u32",
-//                "n_prefixes"
-//            ],
-//            [
-//                "vl_api_ip6_ra_prefix_info_t",
-//                "prefixes",
-//                0,
-//                "n_prefixes"
-//            ],
-//            {
-//                "crc": "0xc5e54257"
-//            }
-//
-type IP6RaEvent struct {
-       PID                                                 uint32
-       SwIfIndex                                           uint32
-       RouterAddress                                       []byte `struc:"[16]byte"`
-       CurrentHopLimit                                     uint8
-       Flags                                               uint8
-       RouterLifetimeInSec                                 uint16
-       NeighborReachableTimeInMsec                         uint32
-       TimeInMsecBetweenRetransmittedNeighborSolicitations uint32
-       NPrefixes                                           uint32 `struc:"sizeof=Prefixes"`
-       Prefixes                                            []IP6RaPrefixInfo
-}
 
-func (*IP6RaEvent) GetMessageName() string {
-       return "ip6_ra_event"
-}
-func (*IP6RaEvent) GetCrcString() string {
-       return "c5e54257"
-}
-func (*IP6RaEvent) GetMessageType() api.MessageType {
-       return api.EventMessage
-}
-func NewIP6RaEvent() api.Message {
-       return &IP6RaEvent{}
-}
-
-// ProxyArpAddDel represents the VPP binary API message 'proxy_arp_add_del'.
-// Generated from 'ip.api.json', line 2051:
-//
-//            "proxy_arp_add_del",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "is_add"
-//            ],
-//            [
-//                "vl_api_proxy_arp_t",
-//                "proxy"
-//            ],
-//            {
-//                "crc": "0x227988d9"
-//            }
-//
-type ProxyArpAddDel struct {
-       IsAdd uint8
-       Proxy ProxyArp
+// IPReassemblyEnableDisable represents VPP binary API message 'ip_reassembly_enable_disable':
+type IPReassemblyEnableDisable struct {
+       SwIfIndex uint32
+       EnableIP4 uint8
+       EnableIP6 uint8
 }
 
-func (*ProxyArpAddDel) GetMessageName() string {
-       return "proxy_arp_add_del"
+func (*IPReassemblyEnableDisable) GetMessageName() string {
+       return "ip_reassembly_enable_disable"
 }
-func (*ProxyArpAddDel) GetCrcString() string {
-       return "227988d9"
+func (*IPReassemblyEnableDisable) GetCrcString() string {
+       return "bb8dc5d0"
 }
-func (*ProxyArpAddDel) GetMessageType() api.MessageType {
+func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewProxyArpAddDel() api.Message {
-       return &ProxyArpAddDel{}
-}
-
-// ProxyArpAddDelReply represents the VPP binary API message 'proxy_arp_add_del_reply'.
-// Generated from 'ip.api.json', line 2077:
-//
-//            "proxy_arp_add_del_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type ProxyArpAddDelReply struct {
+
+// IPReassemblyEnableDisableReply represents VPP binary API message 'ip_reassembly_enable_disable_reply':
+type IPReassemblyEnableDisableReply struct {
        Retval int32
 }
 
-func (*ProxyArpAddDelReply) GetMessageName() string {
-       return "proxy_arp_add_del_reply"
+func (*IPReassemblyEnableDisableReply) GetMessageName() string {
+       return "ip_reassembly_enable_disable_reply"
 }
-func (*ProxyArpAddDelReply) GetCrcString() string {
+func (*IPReassemblyEnableDisableReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*ProxyArpAddDelReply) GetMessageType() api.MessageType {
+func (*IPReassemblyEnableDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewProxyArpAddDelReply() api.Message {
-       return &ProxyArpAddDelReply{}
-}
-
-// ProxyArpDump represents the VPP binary API message 'proxy_arp_dump'.
-// Generated from 'ip.api.json', line 2095:
-//
-//            "proxy_arp_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            {
-//                "crc": "0x51077d14"
-//            }
-//
-type ProxyArpDump struct{}
 
-func (*ProxyArpDump) GetMessageName() string {
-       return "proxy_arp_dump"
+// IPReassemblyGet represents VPP binary API message 'ip_reassembly_get':
+type IPReassemblyGet struct {
+       IsIP6 uint8
 }
-func (*ProxyArpDump) GetCrcString() string {
-       return "51077d14"
+
+func (*IPReassemblyGet) GetMessageName() string {
+       return "ip_reassembly_get"
 }
-func (*ProxyArpDump) GetMessageType() api.MessageType {
+func (*IPReassemblyGet) GetCrcString() string {
+       return "6fe91190"
+}
+func (*IPReassemblyGet) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewProxyArpDump() api.Message {
-       return &ProxyArpDump{}
-}
-
-// ProxyArpDetails represents the VPP binary API message 'proxy_arp_details'.
-// Generated from 'ip.api.json', line 2113:
-//
-//            "proxy_arp_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "vl_api_proxy_arp_t",
-//                "proxy"
-//            ],
-//            {
-//                "crc": "0x9b707c77"
-//            }
-//
-type ProxyArpDetails struct {
-       Proxy ProxyArp
+
+// IPReassemblyGetReply represents VPP binary API message 'ip_reassembly_get_reply':
+type IPReassemblyGetReply struct {
+       Retval               int32
+       TimeoutMs            uint32
+       MaxReassemblies      uint32
+       ExpireWalkIntervalMs uint32
+       IsIP6                uint8
 }
 
-func (*ProxyArpDetails) GetMessageName() string {
-       return "proxy_arp_details"
+func (*IPReassemblyGetReply) GetMessageName() string {
+       return "ip_reassembly_get_reply"
 }
-func (*ProxyArpDetails) GetCrcString() string {
-       return "9b707c77"
+func (*IPReassemblyGetReply) GetCrcString() string {
+       return "1f90afd1"
 }
-func (*ProxyArpDetails) GetMessageType() api.MessageType {
+func (*IPReassemblyGetReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewProxyArpDetails() api.Message {
-       return &ProxyArpDetails{}
-}
-
-// ProxyArpIntfcEnableDisable represents the VPP binary API message 'proxy_arp_intfc_enable_disable'.
-// Generated from 'ip.api.json', line 2131:
-//
-//            "proxy_arp_intfc_enable_disable",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "enable_disable"
-//            ],
-//            {
-//                "crc": "0x69d24598"
-//            }
-//
-type ProxyArpIntfcEnableDisable struct {
-       SwIfIndex     uint32
-       EnableDisable uint8
+
+// IPReassemblySet represents VPP binary API message 'ip_reassembly_set':
+type IPReassemblySet struct {
+       TimeoutMs            uint32
+       MaxReassemblies      uint32
+       ExpireWalkIntervalMs uint32
+       IsIP6                uint8
 }
 
-func (*ProxyArpIntfcEnableDisable) GetMessageName() string {
-       return "proxy_arp_intfc_enable_disable"
+func (*IPReassemblySet) GetMessageName() string {
+       return "ip_reassembly_set"
 }
-func (*ProxyArpIntfcEnableDisable) GetCrcString() string {
-       return "69d24598"
+func (*IPReassemblySet) GetCrcString() string {
+       return "1db184de"
 }
-func (*ProxyArpIntfcEnableDisable) GetMessageType() api.MessageType {
+func (*IPReassemblySet) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewProxyArpIntfcEnableDisable() api.Message {
-       return &ProxyArpIntfcEnableDisable{}
-}
-
-// ProxyArpIntfcEnableDisableReply represents the VPP binary API message 'proxy_arp_intfc_enable_disable_reply'.
-// Generated from 'ip.api.json', line 2157:
-//
-//            "proxy_arp_intfc_enable_disable_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type ProxyArpIntfcEnableDisableReply struct {
+
+// IPReassemblySetReply represents VPP binary API message 'ip_reassembly_set_reply':
+type IPReassemblySetReply struct {
        Retval int32
 }
 
-func (*ProxyArpIntfcEnableDisableReply) GetMessageName() string {
-       return "proxy_arp_intfc_enable_disable_reply"
+func (*IPReassemblySetReply) GetMessageName() string {
+       return "ip_reassembly_set_reply"
 }
-func (*ProxyArpIntfcEnableDisableReply) GetCrcString() string {
+func (*IPReassemblySetReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*ProxyArpIntfcEnableDisableReply) GetMessageType() api.MessageType {
+func (*IPReassemblySetReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewProxyArpIntfcEnableDisableReply() api.Message {
-       return &ProxyArpIntfcEnableDisableReply{}
-}
-
-// ProxyArpIntfcDump represents the VPP binary API message 'proxy_arp_intfc_dump'.
-// Generated from 'ip.api.json', line 2175:
-//
-//            "proxy_arp_intfc_dump",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            {
-//                "crc": "0x51077d14"
-//            }
-//
-type ProxyArpIntfcDump struct{}
-
-func (*ProxyArpIntfcDump) GetMessageName() string {
-       return "proxy_arp_intfc_dump"
-}
-func (*ProxyArpIntfcDump) GetCrcString() string {
-       return "51077d14"
-}
-func (*ProxyArpIntfcDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-func NewProxyArpIntfcDump() api.Message {
-       return &ProxyArpIntfcDump{}
-}
-
-// ProxyArpIntfcDetails represents the VPP binary API message 'proxy_arp_intfc_details'.
-// Generated from 'ip.api.json', line 2193:
-//
-//            "proxy_arp_intfc_details",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            {
-//                "crc": "0xf6458e5f"
-//            }
-//
-type ProxyArpIntfcDetails struct {
-       SwIfIndex uint32
-}
 
-func (*ProxyArpIntfcDetails) GetMessageName() string {
-       return "proxy_arp_intfc_details"
-}
-func (*ProxyArpIntfcDetails) GetCrcString() string {
-       return "f6458e5f"
-}
-func (*ProxyArpIntfcDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-func NewProxyArpIntfcDetails() api.Message {
-       return &ProxyArpIntfcDetails{}
-}
-
-// ResetFib represents the VPP binary API message 'reset_fib'.
-// Generated from 'ip.api.json', line 2211:
-//
-//            "reset_fib",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "vrf_id"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            {
-//                "crc": "0x8553ebd9"
-//            }
-//
-type ResetFib struct {
-       VrfID  uint32
-       IsIPv6 uint8
+// IPScanNeighborEnableDisable represents VPP binary API message 'ip_scan_neighbor_enable_disable':
+type IPScanNeighborEnableDisable struct {
+       Mode           uint8
+       ScanInterval   uint8
+       MaxProcTime    uint8
+       MaxUpdate      uint8
+       ScanIntDelay   uint8
+       StaleThreshold uint8
 }
 
-func (*ResetFib) GetMessageName() string {
-       return "reset_fib"
+func (*IPScanNeighborEnableDisable) GetMessageName() string {
+       return "ip_scan_neighbor_enable_disable"
 }
-func (*ResetFib) GetCrcString() string {
-       return "8553ebd9"
+func (*IPScanNeighborEnableDisable) GetCrcString() string {
+       return "0a6bf57a"
 }
-func (*ResetFib) GetMessageType() api.MessageType {
+func (*IPScanNeighborEnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewResetFib() api.Message {
-       return &ResetFib{}
-}
-
-// ResetFibReply represents the VPP binary API message 'reset_fib_reply'.
-// Generated from 'ip.api.json', line 2237:
-//
-//            "reset_fib_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type ResetFibReply struct {
+
+// IPScanNeighborEnableDisableReply represents VPP binary API message 'ip_scan_neighbor_enable_disable_reply':
+type IPScanNeighborEnableDisableReply struct {
        Retval int32
 }
 
-func (*ResetFibReply) GetMessageName() string {
-       return "reset_fib_reply"
+func (*IPScanNeighborEnableDisableReply) GetMessageName() string {
+       return "ip_scan_neighbor_enable_disable_reply"
 }
-func (*ResetFibReply) GetCrcString() string {
+func (*IPScanNeighborEnableDisableReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*ResetFibReply) GetMessageType() api.MessageType {
+func (*IPScanNeighborEnableDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewResetFibReply() api.Message {
-       return &ResetFibReply{}
-}
-
-// SetArpNeighborLimit represents the VPP binary API message 'set_arp_neighbor_limit'.
-// Generated from 'ip.api.json', line 2255:
-//
-//            "set_arp_neighbor_limit",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "is_ipv6"
-//            ],
-//            [
-//                "u32",
-//                "arp_neighbor_limit"
-//            ],
-//            {
-//                "crc": "0x97d01fd6"
-//            }
-//
-type SetArpNeighborLimit struct {
-       IsIPv6           uint8
-       ArpNeighborLimit uint32
+
+// IPSourceAndPortRangeCheckAddDel represents VPP binary API message 'ip_source_and_port_range_check_add_del':
+type IPSourceAndPortRangeCheckAddDel struct {
+       IsIPv6         uint8
+       IsAdd          uint8
+       MaskLength     uint8
+       Address        []byte `struc:"[16]byte"`
+       NumberOfRanges uint8
+       LowPorts       []uint16 `struc:"[32]uint16"`
+       HighPorts      []uint16 `struc:"[32]uint16"`
+       VrfID          uint32
 }
 
-func (*SetArpNeighborLimit) GetMessageName() string {
-       return "set_arp_neighbor_limit"
+func (*IPSourceAndPortRangeCheckAddDel) GetMessageName() string {
+       return "ip_source_and_port_range_check_add_del"
 }
-func (*SetArpNeighborLimit) GetCrcString() string {
-       return "97d01fd6"
+func (*IPSourceAndPortRangeCheckAddDel) GetCrcString() string {
+       return "03d6b03a"
 }
-func (*SetArpNeighborLimit) GetMessageType() api.MessageType {
+func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewSetArpNeighborLimit() api.Message {
-       return &SetArpNeighborLimit{}
-}
-
-// SetArpNeighborLimitReply represents the VPP binary API message 'set_arp_neighbor_limit_reply'.
-// Generated from 'ip.api.json', line 2281:
-//
-//            "set_arp_neighbor_limit_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type SetArpNeighborLimitReply struct {
+
+// IPSourceAndPortRangeCheckAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_add_del_reply':
+type IPSourceAndPortRangeCheckAddDelReply struct {
        Retval int32
 }
 
-func (*SetArpNeighborLimitReply) GetMessageName() string {
-       return "set_arp_neighbor_limit_reply"
+func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageName() string {
+       return "ip_source_and_port_range_check_add_del_reply"
 }
-func (*SetArpNeighborLimitReply) GetCrcString() string {
+func (*IPSourceAndPortRangeCheckAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*SetArpNeighborLimitReply) GetMessageType() api.MessageType {
+func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewSetArpNeighborLimitReply() api.Message {
-       return &SetArpNeighborLimitReply{}
-}
-
-// IoamEnable represents the VPP binary API message 'ioam_enable'.
-// Generated from 'ip.api.json', line 2299:
-//
-//            "ioam_enable",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u16",
-//                "id"
-//            ],
-//            [
-//                "u8",
-//                "seqno"
-//            ],
-//            [
-//                "u8",
-//                "analyse"
-//            ],
-//            [
-//                "u8",
-//                "pot_enable"
-//            ],
-//            [
-//                "u8",
-//                "trace_enable"
-//            ],
-//            [
-//                "u32",
-//                "node_id"
-//            ],
-//            {
-//                "crc": "0x9392e032"
-//            }
-//
-type IoamEnable struct {
-       ID          uint16
-       Seqno       uint8
-       Analyse     uint8
-       PotEnable   uint8
-       TraceEnable uint8
-       NodeID      uint32
+
+// IPSourceAndPortRangeCheckInterfaceAddDel represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del':
+type IPSourceAndPortRangeCheckInterfaceAddDel struct {
+       IsAdd       uint8
+       SwIfIndex   uint32
+       TCPInVrfID  uint32
+       TCPOutVrfID uint32
+       UDPInVrfID  uint32
+       UDPOutVrfID uint32
 }
 
-func (*IoamEnable) GetMessageName() string {
-       return "ioam_enable"
+func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageName() string {
+       return "ip_source_and_port_range_check_interface_add_del"
 }
-func (*IoamEnable) GetCrcString() string {
-       return "9392e032"
+func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetCrcString() string {
+       return "6966bc44"
 }
-func (*IoamEnable) GetMessageType() api.MessageType {
+func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIoamEnable() api.Message {
-       return &IoamEnable{}
-}
-
-// IoamEnableReply represents the VPP binary API message 'ioam_enable_reply'.
-// Generated from 'ip.api.json', line 2341:
-//
-//            "ioam_enable_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IoamEnableReply struct {
+
+// IPSourceAndPortRangeCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del_reply':
+type IPSourceAndPortRangeCheckInterfaceAddDelReply struct {
        Retval int32
 }
 
-func (*IoamEnableReply) GetMessageName() string {
-       return "ioam_enable_reply"
+func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageName() string {
+       return "ip_source_and_port_range_check_interface_add_del_reply"
 }
-func (*IoamEnableReply) GetCrcString() string {
+func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IoamEnableReply) GetMessageType() api.MessageType {
+func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIoamEnableReply() api.Message {
-       return &IoamEnableReply{}
-}
-
-// IoamDisable represents the VPP binary API message 'ioam_disable'.
-// Generated from 'ip.api.json', line 2359:
-//
-//            "ioam_disable",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u16",
-//                "id"
-//            ],
-//            {
-//                "crc": "0x6b16a45e"
-//            }
-//
-type IoamDisable struct {
-       ID uint16
+
+// IPSourceCheckInterfaceAddDel represents VPP binary API message 'ip_source_check_interface_add_del':
+type IPSourceCheckInterfaceAddDel struct {
+       IsAdd     uint8
+       Loose     uint8
+       SwIfIndex uint32
 }
 
-func (*IoamDisable) GetMessageName() string {
-       return "ioam_disable"
+func (*IPSourceCheckInterfaceAddDel) GetMessageName() string {
+       return "ip_source_check_interface_add_del"
 }
-func (*IoamDisable) GetCrcString() string {
-       return "6b16a45e"
+func (*IPSourceCheckInterfaceAddDel) GetCrcString() string {
+       return "0a60152a"
 }
-func (*IoamDisable) GetMessageType() api.MessageType {
+func (*IPSourceCheckInterfaceAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIoamDisable() api.Message {
-       return &IoamDisable{}
-}
-
-// IoamDisableReply represents the VPP binary API message 'ioam_disable_reply'.
-// Generated from 'ip.api.json', line 2381:
-//
-//            "ioam_disable_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IoamDisableReply struct {
+
+// IPSourceCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_check_interface_add_del_reply':
+type IPSourceCheckInterfaceAddDelReply struct {
        Retval int32
 }
 
-func (*IoamDisableReply) GetMessageName() string {
-       return "ioam_disable_reply"
+func (*IPSourceCheckInterfaceAddDelReply) GetMessageName() string {
+       return "ip_source_check_interface_add_del_reply"
 }
-func (*IoamDisableReply) GetCrcString() string {
+func (*IPSourceCheckInterfaceAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IoamDisableReply) GetMessageType() api.MessageType {
+func (*IPSourceCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIoamDisableReply() api.Message {
-       return &IoamDisableReply{}
-}
-
-// IPReassemblySet represents the VPP binary API message 'ip_reassembly_set'.
-// Generated from 'ip.api.json', line 2399:
-//
-//            "ip_reassembly_set",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "timeout_ms"
-//            ],
-//            [
-//                "u32",
-//                "max_reassemblies"
-//            ],
-//            [
-//                "u32",
-//                "expire_walk_interval_ms"
-//            ],
-//            [
-//                "u8",
-//                "is_ip6"
-//            ],
-//            {
-//                "crc": "0x1db184de"
-//            }
-//
-type IPReassemblySet struct {
-       TimeoutMs            uint32
-       MaxReassemblies      uint32
-       ExpireWalkIntervalMs uint32
-       IsIP6                uint8
+
+// IPTableAddDel represents VPP binary API message 'ip_table_add_del':
+type IPTableAddDel struct {
+       TableID uint32
+       IsIPv6  uint8
+       IsAdd   uint8
+       Name    []byte `struc:"[64]byte"`
 }
 
-func (*IPReassemblySet) GetMessageName() string {
-       return "ip_reassembly_set"
+func (*IPTableAddDel) GetMessageName() string {
+       return "ip_table_add_del"
 }
-func (*IPReassemblySet) GetCrcString() string {
-       return "1db184de"
+func (*IPTableAddDel) GetCrcString() string {
+       return "0240c89d"
 }
-func (*IPReassemblySet) GetMessageType() api.MessageType {
+func (*IPTableAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPReassemblySet() api.Message {
-       return &IPReassemblySet{}
-}
-
-// IPReassemblySetReply represents the VPP binary API message 'ip_reassembly_set_reply'.
-// Generated from 'ip.api.json', line 2433:
-//
-//            "ip_reassembly_set_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IPReassemblySetReply struct {
+
+// IPTableAddDelReply represents VPP binary API message 'ip_table_add_del_reply':
+type IPTableAddDelReply struct {
        Retval int32
 }
 
-func (*IPReassemblySetReply) GetMessageName() string {
-       return "ip_reassembly_set_reply"
+func (*IPTableAddDelReply) GetMessageName() string {
+       return "ip_table_add_del_reply"
 }
-func (*IPReassemblySetReply) GetCrcString() string {
+func (*IPTableAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IPReassemblySetReply) GetMessageType() api.MessageType {
+func (*IPTableAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPReassemblySetReply() api.Message {
-       return &IPReassemblySetReply{}
-}
-
-// IPReassemblyGet represents the VPP binary API message 'ip_reassembly_get'.
-// Generated from 'ip.api.json', line 2451:
-//
-//            "ip_reassembly_get",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "is_ip6"
-//            ],
-//            {
-//                "crc": "0x6fe91190"
-//            }
-//
-type IPReassemblyGet struct {
-       IsIP6 uint8
-}
 
-func (*IPReassemblyGet) GetMessageName() string {
-       return "ip_reassembly_get"
-}
-func (*IPReassemblyGet) GetCrcString() string {
-       return "6fe91190"
-}
-func (*IPReassemblyGet) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-func NewIPReassemblyGet() api.Message {
-       return &IPReassemblyGet{}
-}
-
-// IPReassemblyGetReply represents the VPP binary API message 'ip_reassembly_get_reply'.
-// Generated from 'ip.api.json', line 2473:
-//
-//            "ip_reassembly_get_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            [
-//                "u32",
-//                "timeout_ms"
-//            ],
-//            [
-//                "u32",
-//                "max_reassemblies"
-//            ],
-//            [
-//                "u32",
-//                "expire_walk_interval_ms"
-//            ],
-//            [
-//                "u8",
-//                "is_ip6"
-//            ],
-//            {
-//                "crc": "0xd746fc57"
-//            }
-//
-type IPReassemblyGetReply struct {
-       Retval               int32
-       TimeoutMs            uint32
-       MaxReassemblies      uint32
-       ExpireWalkIntervalMs uint32
-       IsIP6                uint8
+// IPUnnumberedDetails represents VPP binary API message 'ip_unnumbered_details':
+type IPUnnumberedDetails struct {
+       SwIfIndex   uint32
+       IPSwIfIndex uint32
 }
 
-func (*IPReassemblyGetReply) GetMessageName() string {
-       return "ip_reassembly_get_reply"
+func (*IPUnnumberedDetails) GetMessageName() string {
+       return "ip_unnumbered_details"
 }
-func (*IPReassemblyGetReply) GetCrcString() string {
-       return "d746fc57"
+func (*IPUnnumberedDetails) GetCrcString() string {
+       return "ae694cf4"
 }
-func (*IPReassemblyGetReply) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*IPUnnumberedDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
-func NewIPReassemblyGetReply() api.Message {
-       return &IPReassemblyGetReply{}
-}
-
-// IPReassemblyEnableDisable represents the VPP binary API message 'ip_reassembly_enable_disable'.
-// Generated from 'ip.api.json', line 2511:
-//
-//            "ip_reassembly_enable_disable",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "sw_if_index"
-//            ],
-//            [
-//                "u8",
-//                "enable_ip4"
-//            ],
-//            [
-//                "u8",
-//                "enable_ip6"
-//            ],
-//            {
-//                "crc": "0xbb8dc5d0"
-//            }
-//
-type IPReassemblyEnableDisable struct {
+
+// IPUnnumberedDump represents VPP binary API message 'ip_unnumbered_dump':
+type IPUnnumberedDump struct {
        SwIfIndex uint32
-       EnableIP4 uint8
-       EnableIP6 uint8
 }
 
-func (*IPReassemblyEnableDisable) GetMessageName() string {
-       return "ip_reassembly_enable_disable"
+func (*IPUnnumberedDump) GetMessageName() string {
+       return "ip_unnumbered_dump"
 }
-func (*IPReassemblyEnableDisable) GetCrcString() string {
-       return "bb8dc5d0"
+func (*IPUnnumberedDump) GetCrcString() string {
+       return "529cb13f"
 }
-func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType {
+func (*IPUnnumberedDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
-func NewIPReassemblyEnableDisable() api.Message {
-       return &IPReassemblyEnableDisable{}
-}
-
-// IPReassemblyEnableDisableReply represents the VPP binary API message 'ip_reassembly_enable_disable_reply'.
-// Generated from 'ip.api.json', line 2541:
-//
-//            "ip_reassembly_enable_disable_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            {
-//                "crc": "0xe8d4e804"
-//            }
-//
-type IPReassemblyEnableDisableReply struct {
-       Retval int32
-}
 
-func (*IPReassemblyEnableDisableReply) GetMessageName() string {
-       return "ip_reassembly_enable_disable_reply"
-}
-func (*IPReassemblyEnableDisableReply) GetCrcString() string {
+// MfibSignalDetails represents VPP binary API message 'mfib_signal_details':
+type MfibSignalDetails struct {
+       SwIfIndex     uint32
+       TableID       uint32
+       GrpAddressLen uint16
+       GrpAddress    []byte `struc:"[16]byte"`
+       SrcAddress    []byte `struc:"[16]byte"`
+       IPPacketLen   uint16
+       IPPacketData  []byte `struc:"[256]byte"`
+}
+
+func (*MfibSignalDetails) GetMessageName() string {
+       return "mfib_signal_details"
+}
+func (*MfibSignalDetails) GetCrcString() string {
+       return "3f5f03f5"
+}
+func (*MfibSignalDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// MfibSignalDump represents VPP binary API message 'mfib_signal_dump':
+type MfibSignalDump struct{}
+
+func (*MfibSignalDump) GetMessageName() string {
+       return "mfib_signal_dump"
+}
+func (*MfibSignalDump) GetCrcString() string {
+       return "51077d14"
+}
+func (*MfibSignalDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// ProxyArpAddDel represents VPP binary API message 'proxy_arp_add_del':
+type ProxyArpAddDel struct {
+       IsAdd uint8
+       Proxy ProxyArp
+}
+
+func (*ProxyArpAddDel) GetMessageName() string {
+       return "proxy_arp_add_del"
+}
+func (*ProxyArpAddDel) GetCrcString() string {
+       return "227988d9"
+}
+func (*ProxyArpAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// ProxyArpAddDelReply represents VPP binary API message 'proxy_arp_add_del_reply':
+type ProxyArpAddDelReply struct {
+       Retval int32
+}
+
+func (*ProxyArpAddDelReply) GetMessageName() string {
+       return "proxy_arp_add_del_reply"
+}
+func (*ProxyArpAddDelReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*ProxyArpAddDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// ProxyArpDetails represents VPP binary API message 'proxy_arp_details':
+type ProxyArpDetails struct {
+       Proxy ProxyArp
+}
+
+func (*ProxyArpDetails) GetMessageName() string {
+       return "proxy_arp_details"
+}
+func (*ProxyArpDetails) GetCrcString() string {
+       return "9b707c77"
+}
+func (*ProxyArpDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// ProxyArpDump represents VPP binary API message 'proxy_arp_dump':
+type ProxyArpDump struct{}
+
+func (*ProxyArpDump) GetMessageName() string {
+       return "proxy_arp_dump"
+}
+func (*ProxyArpDump) GetCrcString() string {
+       return "51077d14"
+}
+func (*ProxyArpDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// ProxyArpIntfcDetails represents VPP binary API message 'proxy_arp_intfc_details':
+type ProxyArpIntfcDetails struct {
+       SwIfIndex uint32
+}
+
+func (*ProxyArpIntfcDetails) GetMessageName() string {
+       return "proxy_arp_intfc_details"
+}
+func (*ProxyArpIntfcDetails) GetCrcString() string {
+       return "f6458e5f"
+}
+func (*ProxyArpIntfcDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// ProxyArpIntfcDump represents VPP binary API message 'proxy_arp_intfc_dump':
+type ProxyArpIntfcDump struct{}
+
+func (*ProxyArpIntfcDump) GetMessageName() string {
+       return "proxy_arp_intfc_dump"
+}
+func (*ProxyArpIntfcDump) GetCrcString() string {
+       return "51077d14"
+}
+func (*ProxyArpIntfcDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// ProxyArpIntfcEnableDisable represents VPP binary API message 'proxy_arp_intfc_enable_disable':
+type ProxyArpIntfcEnableDisable struct {
+       SwIfIndex     uint32
+       EnableDisable uint8
+}
+
+func (*ProxyArpIntfcEnableDisable) GetMessageName() string {
+       return "proxy_arp_intfc_enable_disable"
+}
+func (*ProxyArpIntfcEnableDisable) GetCrcString() string {
+       return "69d24598"
+}
+func (*ProxyArpIntfcEnableDisable) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// ProxyArpIntfcEnableDisableReply represents VPP binary API message 'proxy_arp_intfc_enable_disable_reply':
+type ProxyArpIntfcEnableDisableReply struct {
+       Retval int32
+}
+
+func (*ProxyArpIntfcEnableDisableReply) GetMessageName() string {
+       return "proxy_arp_intfc_enable_disable_reply"
+}
+func (*ProxyArpIntfcEnableDisableReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*ProxyArpIntfcEnableDisableReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// ResetFib represents VPP binary API message 'reset_fib':
+type ResetFib struct {
+       VrfID  uint32
+       IsIPv6 uint8
+}
+
+func (*ResetFib) GetMessageName() string {
+       return "reset_fib"
+}
+func (*ResetFib) GetCrcString() string {
+       return "8553ebd9"
+}
+func (*ResetFib) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// ResetFibReply represents VPP binary API message 'reset_fib_reply':
+type ResetFibReply struct {
+       Retval int32
+}
+
+func (*ResetFibReply) GetMessageName() string {
+       return "reset_fib_reply"
+}
+func (*ResetFibReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*ResetFibReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// SetArpNeighborLimit represents VPP binary API message 'set_arp_neighbor_limit':
+type SetArpNeighborLimit struct {
+       IsIPv6           uint8
+       ArpNeighborLimit uint32
+}
+
+func (*SetArpNeighborLimit) GetMessageName() string {
+       return "set_arp_neighbor_limit"
+}
+func (*SetArpNeighborLimit) GetCrcString() string {
+       return "97d01fd6"
+}
+func (*SetArpNeighborLimit) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// SetArpNeighborLimitReply represents VPP binary API message 'set_arp_neighbor_limit_reply':
+type SetArpNeighborLimitReply struct {
+       Retval int32
+}
+
+func (*SetArpNeighborLimitReply) GetMessageName() string {
+       return "set_arp_neighbor_limit_reply"
+}
+func (*SetArpNeighborLimitReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*SetArpNeighborLimitReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// SetIPFlowHash represents VPP binary API message 'set_ip_flow_hash':
+type SetIPFlowHash struct {
+       VrfID     uint32
+       IsIPv6    uint8
+       Src       uint8
+       Dst       uint8
+       Sport     uint8
+       Dport     uint8
+       Proto     uint8
+       Reverse   uint8
+       Symmetric uint8
+}
+
+func (*SetIPFlowHash) GetMessageName() string {
+       return "set_ip_flow_hash"
+}
+func (*SetIPFlowHash) GetCrcString() string {
+       return "a9084bfb"
+}
+func (*SetIPFlowHash) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// SetIPFlowHashReply represents VPP binary API message 'set_ip_flow_hash_reply':
+type SetIPFlowHashReply struct {
+       Retval int32
+}
+
+func (*SetIPFlowHashReply) GetMessageName() string {
+       return "set_ip_flow_hash_reply"
+}
+func (*SetIPFlowHashReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*SetIPFlowHashReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// SwInterfaceIP6EnableDisable represents VPP binary API message 'sw_interface_ip6_enable_disable':
+type SwInterfaceIP6EnableDisable struct {
+       SwIfIndex uint32
+       Enable    uint8
+}
+
+func (*SwInterfaceIP6EnableDisable) GetMessageName() string {
+       return "sw_interface_ip6_enable_disable"
+}
+func (*SwInterfaceIP6EnableDisable) GetCrcString() string {
+       return "a36fadc0"
+}
+func (*SwInterfaceIP6EnableDisable) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// SwInterfaceIP6EnableDisableReply represents VPP binary API message 'sw_interface_ip6_enable_disable_reply':
+type SwInterfaceIP6EnableDisableReply struct {
+       Retval int32
+}
+
+func (*SwInterfaceIP6EnableDisableReply) GetMessageName() string {
+       return "sw_interface_ip6_enable_disable_reply"
+}
+func (*SwInterfaceIP6EnableDisableReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*SwInterfaceIP6EnableDisableReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// SwInterfaceIP6ndRaConfig represents VPP binary API message 'sw_interface_ip6nd_ra_config':
+type SwInterfaceIP6ndRaConfig struct {
+       SwIfIndex       uint32
+       Suppress        uint8
+       Managed         uint8
+       Other           uint8
+       LlOption        uint8
+       SendUnicast     uint8
+       Cease           uint8
+       IsNo            uint8
+       DefaultRouter   uint8
+       MaxInterval     uint32
+       MinInterval     uint32
+       Lifetime        uint32
+       InitialCount    uint32
+       InitialInterval uint32
+}
+
+func (*SwInterfaceIP6ndRaConfig) GetMessageName() string {
+       return "sw_interface_ip6nd_ra_config"
+}
+func (*SwInterfaceIP6ndRaConfig) GetCrcString() string {
+       return "c3f02daa"
+}
+func (*SwInterfaceIP6ndRaConfig) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// SwInterfaceIP6ndRaConfigReply represents VPP binary API message 'sw_interface_ip6nd_ra_config_reply':
+type SwInterfaceIP6ndRaConfigReply struct {
+       Retval int32
+}
+
+func (*SwInterfaceIP6ndRaConfigReply) GetMessageName() string {
+       return "sw_interface_ip6nd_ra_config_reply"
+}
+func (*SwInterfaceIP6ndRaConfigReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*SwInterfaceIP6ndRaConfigReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// SwInterfaceIP6ndRaPrefix represents VPP binary API message 'sw_interface_ip6nd_ra_prefix':
+type SwInterfaceIP6ndRaPrefix struct {
+       SwIfIndex     uint32
+       Address       []byte `struc:"[16]byte"`
+       AddressLength uint8
+       UseDefault    uint8
+       NoAdvertise   uint8
+       OffLink       uint8
+       NoAutoconfig  uint8
+       NoOnlink      uint8
+       IsNo          uint8
+       ValLifetime   uint32
+       PrefLifetime  uint32
+}
+
+func (*SwInterfaceIP6ndRaPrefix) GetMessageName() string {
+       return "sw_interface_ip6nd_ra_prefix"
+}
+func (*SwInterfaceIP6ndRaPrefix) GetCrcString() string {
+       return "ca763c9a"
+}
+func (*SwInterfaceIP6ndRaPrefix) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// SwInterfaceIP6ndRaPrefixReply represents VPP binary API message 'sw_interface_ip6nd_ra_prefix_reply':
+type SwInterfaceIP6ndRaPrefixReply struct {
+       Retval int32
+}
+
+func (*SwInterfaceIP6ndRaPrefixReply) GetMessageName() string {
+       return "sw_interface_ip6nd_ra_prefix_reply"
+}
+func (*SwInterfaceIP6ndRaPrefixReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IPReassemblyEnableDisableReply) GetMessageType() api.MessageType {
+func (*SwInterfaceIP6ndRaPrefixReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
-func NewIPReassemblyEnableDisableReply() api.Message {
-       return &IPReassemblyEnableDisableReply{}
+
+// WantIP4ArpEvents represents VPP binary API message 'want_ip4_arp_events':
+type WantIP4ArpEvents struct {
+       EnableDisable uint8
+       PID           uint32
+       Address       uint32
 }
 
-/* Services */
+func (*WantIP4ArpEvents) GetMessageName() string {
+       return "want_ip4_arp_events"
+}
+func (*WantIP4ArpEvents) GetCrcString() string {
+       return "77e06379"
+}
+func (*WantIP4ArpEvents) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 
-type Services interface {
-       DumpIP6Fib(*IP6FibDump) (*IP6FibDetails, error)
-       DumpIP6Mfib(*IP6MfibDump) (*IP6MfibDetails, error)
-       DumpIP6ndProxy(*IP6ndProxyDump) (*IP6ndProxyDetails, error)
-       DumpIPAddress(*IPAddressDump) (*IPAddressDetails, error)
-       DumpIP(*IPDump) (*IPDetails, error)
-       DumpIPFib(*IPFibDump) (*IPFibDetails, error)
-       DumpIPMfib(*IPMfibDump) (*IPMfibDetails, error)
-       DumpIPNeighbor(*IPNeighborDump) (*IPNeighborDetails, error)
-       DumpIPUnnumbered(*IPUnnumberedDump) (*IPUnnumberedDetails, error)
-       DumpMfibSignal(*MfibSignalDump) (*MfibSignalDetails, error)
-       DumpProxyArp(*ProxyArpDump) (*ProxyArpDetails, error)
-       DumpProxyArpIntfc(*ProxyArpIntfcDump) (*ProxyArpIntfcDetails, error)
-       IoamDisable(*IoamDisable) (*IoamDisableReply, error)
-       IoamEnable(*IoamEnable) (*IoamEnableReply, error)
-       IP6ndProxyAddDel(*IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error)
-       IP6ndSendRouterSolicitation(*IP6ndSendRouterSolicitation) (*IP6ndSendRouterSolicitationReply, error)
-       IPAddDelRoute(*IPAddDelRoute) (*IPAddDelRouteReply, error)
-       IPContainerProxyAddDel(*IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error)
-       IPMrouteAddDel(*IPMrouteAddDel) (*IPMrouteAddDelReply, error)
-       IPNeighborAddDel(*IPNeighborAddDel) (*IPNeighborAddDelReply, error)
-       IPProbeNeighbor(*IPProbeNeighbor) (*IPProbeNeighborReply, error)
-       IPPuntPolice(*IPPuntPolice) (*IPPuntPoliceReply, error)
-       IPPuntRedirect(*IPPuntRedirect) (*IPPuntRedirectReply, error)
-       IPReassemblyEnableDisable(*IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error)
-       IPReassemblyGet(*IPReassemblyGet) (*IPReassemblyGetReply, error)
-       IPReassemblySet(*IPReassemblySet) (*IPReassemblySetReply, error)
-       IPScanNeighborEnableDisable(*IPScanNeighborEnableDisable) (*IPScanNeighborEnableDisableReply, error)
-       IPSourceAndPortRangeCheckAddDel(*IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error)
-       IPSourceAndPortRangeCheckInterfaceAddDel(*IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error)
-       IPTableAddDel(*IPTableAddDel) (*IPTableAddDelReply, error)
-       ProxyArpAddDel(*ProxyArpAddDel) (*ProxyArpAddDelReply, error)
-       ProxyArpIntfcEnableDisable(*ProxyArpIntfcEnableDisable) (*ProxyArpIntfcEnableDisableReply, error)
-       ResetFib(*ResetFib) (*ResetFibReply, error)
-       SetArpNeighborLimit(*SetArpNeighborLimit) (*SetArpNeighborLimitReply, error)
-       SetIPFlowHash(*SetIPFlowHash) (*SetIPFlowHashReply, error)
-       SwInterfaceIP6EnableDisable(*SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error)
-       SwInterfaceIP6SetLinkLocalAddress(*SwInterfaceIP6SetLinkLocalAddress) (*SwInterfaceIP6SetLinkLocalAddressReply, error)
-       SwInterfaceIP6ndRaConfig(*SwInterfaceIP6ndRaConfig) (*SwInterfaceIP6ndRaConfigReply, error)
-       SwInterfaceIP6ndRaPrefix(*SwInterfaceIP6ndRaPrefix) (*SwInterfaceIP6ndRaPrefixReply, error)
-       WantIP4ArpEvents(*WantIP4ArpEvents) (*WantIP4ArpEventsReply, error)
-       WantIP6NdEvents(*WantIP6NdEvents) (*WantIP6NdEventsReply, error)
-       WantIP6RaEvents(*WantIP6RaEvents) (*WantIP6RaEventsReply, error)
+// WantIP4ArpEventsReply represents VPP binary API message 'want_ip4_arp_events_reply':
+type WantIP4ArpEventsReply struct {
+       Retval int32
+}
+
+func (*WantIP4ArpEventsReply) GetMessageName() string {
+       return "want_ip4_arp_events_reply"
+}
+func (*WantIP4ArpEventsReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*WantIP4ArpEventsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// WantIP6NdEvents represents VPP binary API message 'want_ip6_nd_events':
+type WantIP6NdEvents struct {
+       EnableDisable uint8
+       PID           uint32
+       Address       []byte `struc:"[16]byte"`
+}
+
+func (*WantIP6NdEvents) GetMessageName() string {
+       return "want_ip6_nd_events"
+}
+func (*WantIP6NdEvents) GetCrcString() string {
+       return "1cf65fbb"
+}
+func (*WantIP6NdEvents) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// WantIP6NdEventsReply represents VPP binary API message 'want_ip6_nd_events_reply':
+type WantIP6NdEventsReply struct {
+       Retval int32
+}
+
+func (*WantIP6NdEventsReply) GetMessageName() string {
+       return "want_ip6_nd_events_reply"
+}
+func (*WantIP6NdEventsReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*WantIP6NdEventsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// WantIP6RaEvents represents VPP binary API message 'want_ip6_ra_events':
+type WantIP6RaEvents struct {
+       EnableDisable uint8
+       PID           uint32
+}
+
+func (*WantIP6RaEvents) GetMessageName() string {
+       return "want_ip6_ra_events"
+}
+func (*WantIP6RaEvents) GetCrcString() string {
+       return "05b454b5"
+}
+func (*WantIP6RaEvents) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// WantIP6RaEventsReply represents VPP binary API message 'want_ip6_ra_events_reply':
+type WantIP6RaEventsReply struct {
+       Retval int32
+}
+
+func (*WantIP6RaEventsReply) GetMessageName() string {
+       return "want_ip6_ra_events_reply"
+}
+func (*WantIP6RaEventsReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*WantIP6RaEventsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
 func init() {
-       api.RegisterMessage((*IPTableAddDel)(nil), "ip.IPTableAddDel")
-       api.RegisterMessage((*IPTableAddDelReply)(nil), "ip.IPTableAddDelReply")
-       api.RegisterMessage((*IPFibDump)(nil), "ip.IPFibDump")
-       api.RegisterMessage((*IPFibDetails)(nil), "ip.IPFibDetails")
-       api.RegisterMessage((*IP6FibDump)(nil), "ip.IP6FibDump")
+       api.RegisterMessage((*IoamDisable)(nil), "ip.IoamDisable")
+       api.RegisterMessage((*IoamDisableReply)(nil), "ip.IoamDisableReply")
+       api.RegisterMessage((*IoamEnable)(nil), "ip.IoamEnable")
+       api.RegisterMessage((*IoamEnableReply)(nil), "ip.IoamEnableReply")
+       api.RegisterMessage((*IP4ArpEvent)(nil), "ip.IP4ArpEvent")
        api.RegisterMessage((*IP6FibDetails)(nil), "ip.IP6FibDetails")
-       api.RegisterMessage((*IPNeighborDump)(nil), "ip.IPNeighborDump")
-       api.RegisterMessage((*IPNeighborDetails)(nil), "ip.IPNeighborDetails")
-       api.RegisterMessage((*IPNeighborAddDel)(nil), "ip.IPNeighborAddDel")
-       api.RegisterMessage((*IPNeighborAddDelReply)(nil), "ip.IPNeighborAddDelReply")
-       api.RegisterMessage((*SetIPFlowHash)(nil), "ip.SetIPFlowHash")
-       api.RegisterMessage((*SetIPFlowHashReply)(nil), "ip.SetIPFlowHashReply")
-       api.RegisterMessage((*SwInterfaceIP6ndRaConfig)(nil), "ip.SwInterfaceIP6ndRaConfig")
-       api.RegisterMessage((*SwInterfaceIP6ndRaConfigReply)(nil), "ip.SwInterfaceIP6ndRaConfigReply")
-       api.RegisterMessage((*SwInterfaceIP6ndRaPrefix)(nil), "ip.SwInterfaceIP6ndRaPrefix")
-       api.RegisterMessage((*SwInterfaceIP6ndRaPrefixReply)(nil), "ip.SwInterfaceIP6ndRaPrefixReply")
+       api.RegisterMessage((*IP6FibDump)(nil), "ip.IP6FibDump")
+       api.RegisterMessage((*IP6MfibDetails)(nil), "ip.IP6MfibDetails")
+       api.RegisterMessage((*IP6MfibDump)(nil), "ip.IP6MfibDump")
+       api.RegisterMessage((*IP6NdEvent)(nil), "ip.IP6NdEvent")
+       api.RegisterMessage((*IP6RaEvent)(nil), "ip.IP6RaEvent")
        api.RegisterMessage((*IP6ndProxyAddDel)(nil), "ip.IP6ndProxyAddDel")
        api.RegisterMessage((*IP6ndProxyAddDelReply)(nil), "ip.IP6ndProxyAddDelReply")
        api.RegisterMessage((*IP6ndProxyDetails)(nil), "ip.IP6ndProxyDetails")
        api.RegisterMessage((*IP6ndProxyDump)(nil), "ip.IP6ndProxyDump")
        api.RegisterMessage((*IP6ndSendRouterSolicitation)(nil), "ip.IP6ndSendRouterSolicitation")
        api.RegisterMessage((*IP6ndSendRouterSolicitationReply)(nil), "ip.IP6ndSendRouterSolicitationReply")
-       api.RegisterMessage((*SwInterfaceIP6EnableDisable)(nil), "ip.SwInterfaceIP6EnableDisable")
-       api.RegisterMessage((*SwInterfaceIP6EnableDisableReply)(nil), "ip.SwInterfaceIP6EnableDisableReply")
-       api.RegisterMessage((*SwInterfaceIP6SetLinkLocalAddress)(nil), "ip.SwInterfaceIP6SetLinkLocalAddress")
-       api.RegisterMessage((*SwInterfaceIP6SetLinkLocalAddressReply)(nil), "ip.SwInterfaceIP6SetLinkLocalAddressReply")
        api.RegisterMessage((*IPAddDelRoute)(nil), "ip.IPAddDelRoute")
        api.RegisterMessage((*IPAddDelRouteReply)(nil), "ip.IPAddDelRouteReply")
-       api.RegisterMessage((*IPMrouteAddDel)(nil), "ip.IPMrouteAddDel")
-       api.RegisterMessage((*IPMrouteAddDelReply)(nil), "ip.IPMrouteAddDelReply")
-       api.RegisterMessage((*IPMfibDump)(nil), "ip.IPMfibDump")
-       api.RegisterMessage((*IPMfibDetails)(nil), "ip.IPMfibDetails")
-       api.RegisterMessage((*IP6MfibDump)(nil), "ip.IP6MfibDump")
-       api.RegisterMessage((*IP6MfibDetails)(nil), "ip.IP6MfibDetails")
        api.RegisterMessage((*IPAddressDetails)(nil), "ip.IPAddressDetails")
        api.RegisterMessage((*IPAddressDump)(nil), "ip.IPAddressDump")
-       api.RegisterMessage((*IPUnnumberedDetails)(nil), "ip.IPUnnumberedDetails")
-       api.RegisterMessage((*IPUnnumberedDump)(nil), "ip.IPUnnumberedDump")
+       api.RegisterMessage((*IPContainerProxyAddDel)(nil), "ip.IPContainerProxyAddDel")
+       api.RegisterMessage((*IPContainerProxyAddDelReply)(nil), "ip.IPContainerProxyAddDelReply")
+       api.RegisterMessage((*IPContainerProxyDetails)(nil), "ip.IPContainerProxyDetails")
+       api.RegisterMessage((*IPContainerProxyDump)(nil), "ip.IPContainerProxyDump")
        api.RegisterMessage((*IPDetails)(nil), "ip.IPDetails")
        api.RegisterMessage((*IPDump)(nil), "ip.IPDump")
-       api.RegisterMessage((*MfibSignalDump)(nil), "ip.MfibSignalDump")
-       api.RegisterMessage((*MfibSignalDetails)(nil), "ip.MfibSignalDetails")
+       api.RegisterMessage((*IPFibDetails)(nil), "ip.IPFibDetails")
+       api.RegisterMessage((*IPFibDump)(nil), "ip.IPFibDump")
+       api.RegisterMessage((*IPMfibDetails)(nil), "ip.IPMfibDetails")
+       api.RegisterMessage((*IPMfibDump)(nil), "ip.IPMfibDump")
+       api.RegisterMessage((*IPMrouteAddDel)(nil), "ip.IPMrouteAddDel")
+       api.RegisterMessage((*IPMrouteAddDelReply)(nil), "ip.IPMrouteAddDelReply")
+       api.RegisterMessage((*IPNeighborAddDel)(nil), "ip.IPNeighborAddDel")
+       api.RegisterMessage((*IPNeighborAddDelReply)(nil), "ip.IPNeighborAddDelReply")
+       api.RegisterMessage((*IPNeighborDetails)(nil), "ip.IPNeighborDetails")
+       api.RegisterMessage((*IPNeighborDump)(nil), "ip.IPNeighborDump")
+       api.RegisterMessage((*IPProbeNeighbor)(nil), "ip.IPProbeNeighbor")
+       api.RegisterMessage((*IPProbeNeighborReply)(nil), "ip.IPProbeNeighborReply")
        api.RegisterMessage((*IPPuntPolice)(nil), "ip.IPPuntPolice")
        api.RegisterMessage((*IPPuntPoliceReply)(nil), "ip.IPPuntPoliceReply")
        api.RegisterMessage((*IPPuntRedirect)(nil), "ip.IPPuntRedirect")
+       api.RegisterMessage((*IPPuntRedirectDetails)(nil), "ip.IPPuntRedirectDetails")
+       api.RegisterMessage((*IPPuntRedirectDump)(nil), "ip.IPPuntRedirectDump")
        api.RegisterMessage((*IPPuntRedirectReply)(nil), "ip.IPPuntRedirectReply")
-       api.RegisterMessage((*IPContainerProxyAddDel)(nil), "ip.IPContainerProxyAddDel")
-       api.RegisterMessage((*IPContainerProxyAddDelReply)(nil), "ip.IPContainerProxyAddDelReply")
+       api.RegisterMessage((*IPReassemblyEnableDisable)(nil), "ip.IPReassemblyEnableDisable")
+       api.RegisterMessage((*IPReassemblyEnableDisableReply)(nil), "ip.IPReassemblyEnableDisableReply")
+       api.RegisterMessage((*IPReassemblyGet)(nil), "ip.IPReassemblyGet")
+       api.RegisterMessage((*IPReassemblyGetReply)(nil), "ip.IPReassemblyGetReply")
+       api.RegisterMessage((*IPReassemblySet)(nil), "ip.IPReassemblySet")
+       api.RegisterMessage((*IPReassemblySetReply)(nil), "ip.IPReassemblySetReply")
+       api.RegisterMessage((*IPScanNeighborEnableDisable)(nil), "ip.IPScanNeighborEnableDisable")
+       api.RegisterMessage((*IPScanNeighborEnableDisableReply)(nil), "ip.IPScanNeighborEnableDisableReply")
        api.RegisterMessage((*IPSourceAndPortRangeCheckAddDel)(nil), "ip.IPSourceAndPortRangeCheckAddDel")
        api.RegisterMessage((*IPSourceAndPortRangeCheckAddDelReply)(nil), "ip.IPSourceAndPortRangeCheckAddDelReply")
        api.RegisterMessage((*IPSourceAndPortRangeCheckInterfaceAddDel)(nil), "ip.IPSourceAndPortRangeCheckInterfaceAddDel")
        api.RegisterMessage((*IPSourceAndPortRangeCheckInterfaceAddDelReply)(nil), "ip.IPSourceAndPortRangeCheckInterfaceAddDelReply")
-       api.RegisterMessage((*IPScanNeighborEnableDisable)(nil), "ip.IPScanNeighborEnableDisable")
-       api.RegisterMessage((*IPScanNeighborEnableDisableReply)(nil), "ip.IPScanNeighborEnableDisableReply")
-       api.RegisterMessage((*IPProbeNeighbor)(nil), "ip.IPProbeNeighbor")
-       api.RegisterMessage((*IPProbeNeighborReply)(nil), "ip.IPProbeNeighborReply")
-       api.RegisterMessage((*WantIP4ArpEvents)(nil), "ip.WantIP4ArpEvents")
-       api.RegisterMessage((*WantIP4ArpEventsReply)(nil), "ip.WantIP4ArpEventsReply")
-       api.RegisterMessage((*IP4ArpEvent)(nil), "ip.IP4ArpEvent")
-       api.RegisterMessage((*WantIP6NdEvents)(nil), "ip.WantIP6NdEvents")
-       api.RegisterMessage((*WantIP6NdEventsReply)(nil), "ip.WantIP6NdEventsReply")
-       api.RegisterMessage((*IP6NdEvent)(nil), "ip.IP6NdEvent")
-       api.RegisterMessage((*WantIP6RaEvents)(nil), "ip.WantIP6RaEvents")
-       api.RegisterMessage((*WantIP6RaEventsReply)(nil), "ip.WantIP6RaEventsReply")
-       api.RegisterMessage((*IP6RaEvent)(nil), "ip.IP6RaEvent")
+       api.RegisterMessage((*IPSourceCheckInterfaceAddDel)(nil), "ip.IPSourceCheckInterfaceAddDel")
+       api.RegisterMessage((*IPSourceCheckInterfaceAddDelReply)(nil), "ip.IPSourceCheckInterfaceAddDelReply")
+       api.RegisterMessage((*IPTableAddDel)(nil), "ip.IPTableAddDel")
+       api.RegisterMessage((*IPTableAddDelReply)(nil), "ip.IPTableAddDelReply")
+       api.RegisterMessage((*IPUnnumberedDetails)(nil), "ip.IPUnnumberedDetails")
+       api.RegisterMessage((*IPUnnumberedDump)(nil), "ip.IPUnnumberedDump")
+       api.RegisterMessage((*MfibSignalDetails)(nil), "ip.MfibSignalDetails")
+       api.RegisterMessage((*MfibSignalDump)(nil), "ip.MfibSignalDump")
        api.RegisterMessage((*ProxyArpAddDel)(nil), "ip.ProxyArpAddDel")
        api.RegisterMessage((*ProxyArpAddDelReply)(nil), "ip.ProxyArpAddDelReply")
-       api.RegisterMessage((*ProxyArpDump)(nil), "ip.ProxyArpDump")
        api.RegisterMessage((*ProxyArpDetails)(nil), "ip.ProxyArpDetails")
+       api.RegisterMessage((*ProxyArpDump)(nil), "ip.ProxyArpDump")
+       api.RegisterMessage((*ProxyArpIntfcDetails)(nil), "ip.ProxyArpIntfcDetails")
+       api.RegisterMessage((*ProxyArpIntfcDump)(nil), "ip.ProxyArpIntfcDump")
        api.RegisterMessage((*ProxyArpIntfcEnableDisable)(nil), "ip.ProxyArpIntfcEnableDisable")
        api.RegisterMessage((*ProxyArpIntfcEnableDisableReply)(nil), "ip.ProxyArpIntfcEnableDisableReply")
-       api.RegisterMessage((*ProxyArpIntfcDump)(nil), "ip.ProxyArpIntfcDump")
-       api.RegisterMessage((*ProxyArpIntfcDetails)(nil), "ip.ProxyArpIntfcDetails")
        api.RegisterMessage((*ResetFib)(nil), "ip.ResetFib")
        api.RegisterMessage((*ResetFibReply)(nil), "ip.ResetFibReply")
        api.RegisterMessage((*SetArpNeighborLimit)(nil), "ip.SetArpNeighborLimit")
        api.RegisterMessage((*SetArpNeighborLimitReply)(nil), "ip.SetArpNeighborLimitReply")
-       api.RegisterMessage((*IoamEnable)(nil), "ip.IoamEnable")
-       api.RegisterMessage((*IoamEnableReply)(nil), "ip.IoamEnableReply")
-       api.RegisterMessage((*IoamDisable)(nil), "ip.IoamDisable")
-       api.RegisterMessage((*IoamDisableReply)(nil), "ip.IoamDisableReply")
-       api.RegisterMessage((*IPReassemblySet)(nil), "ip.IPReassemblySet")
-       api.RegisterMessage((*IPReassemblySetReply)(nil), "ip.IPReassemblySetReply")
-       api.RegisterMessage((*IPReassemblyGet)(nil), "ip.IPReassemblyGet")
-       api.RegisterMessage((*IPReassemblyGetReply)(nil), "ip.IPReassemblyGetReply")
-       api.RegisterMessage((*IPReassemblyEnableDisable)(nil), "ip.IPReassemblyEnableDisable")
-       api.RegisterMessage((*IPReassemblyEnableDisableReply)(nil), "ip.IPReassemblyEnableDisableReply")
+       api.RegisterMessage((*SetIPFlowHash)(nil), "ip.SetIPFlowHash")
+       api.RegisterMessage((*SetIPFlowHashReply)(nil), "ip.SetIPFlowHashReply")
+       api.RegisterMessage((*SwInterfaceIP6EnableDisable)(nil), "ip.SwInterfaceIP6EnableDisable")
+       api.RegisterMessage((*SwInterfaceIP6EnableDisableReply)(nil), "ip.SwInterfaceIP6EnableDisableReply")
+       api.RegisterMessage((*SwInterfaceIP6ndRaConfig)(nil), "ip.SwInterfaceIP6ndRaConfig")
+       api.RegisterMessage((*SwInterfaceIP6ndRaConfigReply)(nil), "ip.SwInterfaceIP6ndRaConfigReply")
+       api.RegisterMessage((*SwInterfaceIP6ndRaPrefix)(nil), "ip.SwInterfaceIP6ndRaPrefix")
+       api.RegisterMessage((*SwInterfaceIP6ndRaPrefixReply)(nil), "ip.SwInterfaceIP6ndRaPrefixReply")
+       api.RegisterMessage((*WantIP4ArpEvents)(nil), "ip.WantIP4ArpEvents")
+       api.RegisterMessage((*WantIP4ArpEventsReply)(nil), "ip.WantIP4ArpEventsReply")
+       api.RegisterMessage((*WantIP6NdEvents)(nil), "ip.WantIP6NdEvents")
+       api.RegisterMessage((*WantIP6NdEventsReply)(nil), "ip.WantIP6NdEventsReply")
+       api.RegisterMessage((*WantIP6RaEvents)(nil), "ip.WantIP6RaEvents")
+       api.RegisterMessage((*WantIP6RaEventsReply)(nil), "ip.WantIP6RaEventsReply")
 }