Add various generator improvements
[govpp.git] / examples / binapi / ip / ip.ba.go
diff --git a/examples/binapi/ip/ip.ba.go b/examples/binapi/ip/ip.ba.go
new file mode 100644 (file)
index 0000000..71a6476
--- /dev/null
@@ -0,0 +1,2638 @@
+// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// source: /usr/share/vpp/api/core/ip.api.json
+
+/*
+Package ip is a generated from VPP binary API module 'ip'.
+
+ The ip module consists of:
+         2 enums
+         3 aliases
+        12 types
+         1 union
+        91 messages
+        44 services
+*/
+package ip
+
+import api "git.fd.io/govpp.git/api"
+import bytes "bytes"
+import context "context"
+import strconv "strconv"
+import struc "github.com/lunixbochs/struc"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = api.RegisterMessage
+var _ = bytes.NewBuffer
+var _ = context.Background
+var _ = strconv.Itoa
+var _ = struc.Pack
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the GoVPP api package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// GoVPP api package needs to be updated.
+const _ = api.GoVppAPIPackageIsVersion1 // please upgrade the GoVPP api package
+
+const (
+       // ModuleName is the name of this module.
+       ModuleName = "ip"
+       // APIVersion is the API version of this module.
+       APIVersion = "2.0.0"
+       // VersionCrc is the CRC of this module.
+       VersionCrc = 0x51ac4ce0
+)
+
+/* Enums */
+
+// AddressFamily represents VPP binary API enum 'address_family':
+type AddressFamily uint32
+
+const (
+       ADDRESS_IP4 AddressFamily = 0
+       ADDRESS_IP6 AddressFamily = 1
+)
+
+var AddressFamily_name = map[uint32]string{
+       0: "ADDRESS_IP4",
+       1: "ADDRESS_IP6",
+}
+
+var AddressFamily_value = map[string]uint32{
+       "ADDRESS_IP4": 0,
+       "ADDRESS_IP6": 1,
+}
+
+func (x AddressFamily) String() string {
+       s, ok := AddressFamily_name[uint32(x)]
+       if ok {
+               return s
+       }
+       return strconv.Itoa(int(x))
+}
+
+// IPNeighborFlags represents VPP binary API enum 'ip_neighbor_flags':
+type IPNeighborFlags uint32
+
+const (
+       IP_API_NEIGHBOR_FLAG_NONE         IPNeighborFlags = 0
+       IP_API_NEIGHBOR_FLAG_STATIC       IPNeighborFlags = 1
+       IP_API_NEIGHBOR_FLAG_NO_FIB_ENTRY IPNeighborFlags = 2
+)
+
+var IPNeighborFlags_name = map[uint32]string{
+       0: "IP_API_NEIGHBOR_FLAG_NONE",
+       1: "IP_API_NEIGHBOR_FLAG_STATIC",
+       2: "IP_API_NEIGHBOR_FLAG_NO_FIB_ENTRY",
+}
+
+var IPNeighborFlags_value = map[string]uint32{
+       "IP_API_NEIGHBOR_FLAG_NONE":         0,
+       "IP_API_NEIGHBOR_FLAG_STATIC":       1,
+       "IP_API_NEIGHBOR_FLAG_NO_FIB_ENTRY": 2,
+}
+
+func (x IPNeighborFlags) String() string {
+       s, ok := IPNeighborFlags_name[uint32(x)]
+       if ok {
+               return s
+       }
+       return strconv.Itoa(int(x))
+}
+
+/* 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 */
+
+// Address represents VPP binary API type 'address':
+type Address struct {
+       Af AddressFamily
+       Un AddressUnion
+}
+
+func (*Address) GetTypeName() string {
+       return "address"
+}
+func (*Address) GetCrcString() string {
+       return "09f11671"
+}
+
+// FibMplsLabel represents VPP binary API type 'fib_mpls_label':
+type FibMplsLabel struct {
+       IsUniform uint8
+       Label     uint32
+       TTL       uint8
+       Exp       uint8
+}
+
+func (*FibMplsLabel) GetTypeName() string {
+       return "fib_mpls_label"
+}
+func (*FibMplsLabel) GetCrcString() string {
+       return "c93bf35c"
+}
+
+// FibPath represents VPP binary API type 'fib_path':
+type FibPath struct {
+       SwIfIndex         uint32
+       TableID           uint32
+       Weight            uint8
+       Preference        uint8
+       IsLocal           uint8
+       IsDrop            uint8
+       IsUDPEncap        uint8
+       IsUnreach         uint8
+       IsProhibit        uint8
+       IsResolveHost     uint8
+       IsResolveAttached uint8
+       IsDvr             uint8
+       IsSourceLookup    uint8
+       IsInterfaceRx     uint8
+       Afi               uint8
+       NextHop           []byte `struc:"[16]byte"`
+       NextHopID         uint32
+       RpfID             uint32
+       ViaLabel          uint32
+       NLabels           uint8
+       LabelStack        []FibMplsLabel `struc:"[16]FibMplsLabel"`
+}
+
+func (*FibPath) GetTypeName() string {
+       return "fib_path"
+}
+func (*FibPath) GetCrcString() string {
+       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 {
+       Prefix        Prefix
+       Flags         uint8
+       ValidTime     uint32
+       PreferredTime uint32
+}
+
+func (*IP6RaPrefixInfo) GetTypeName() string {
+       return "ip6_ra_prefix_info"
+}
+func (*IP6RaPrefixInfo) GetCrcString() string {
+       return "fa025b72"
+}
+
+// IPNeighbor represents VPP binary API type 'ip_neighbor':
+type IPNeighbor struct {
+       SwIfIndex  uint32
+       Flags      IPNeighborFlags
+       MacAddress MacAddress
+       IPAddress  Address
+}
+
+func (*IPNeighbor) GetTypeName() string {
+       return "ip_neighbor"
+}
+func (*IPNeighbor) GetCrcString() string {
+       return "4bf82d5d"
+}
+
+// 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 {
+       TableID uint32
+       Low     IP4Address
+       Hi      IP4Address
+}
+
+func (*ProxyArp) GetTypeName() string {
+       return "proxy_arp"
+}
+func (*ProxyArp) GetCrcString() string {
+       return "e9067693"
+}
+
+// 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 VPP binary API union 'address_union':
+type AddressUnion struct {
+       XXX_UnionData [16]byte
+}
+
+func (*AddressUnion) GetTypeName() string {
+       return "address_union"
+}
+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 {
+               return
+       }
+       copy(u.XXX_UnionData[:], b.Bytes())
+}
+func (u *AddressUnion) GetIP4() (a IP4Address) {
+       var b = bytes.NewReader(u.XXX_UnionData[:])
+       struc.Unpack(b, &a)
+       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 {
+               return
+       }
+       copy(u.XXX_UnionData[:], b.Bytes())
+}
+func (u *AddressUnion) GetIP6() (a IP6Address) {
+       var b = bytes.NewReader(u.XXX_UnionData[:])
+       struc.Unpack(b, &a)
+       return
+}
+
+/* Messages */
+
+// IoamDisable represents VPP binary API message 'ioam_disable':
+type IoamDisable struct {
+       ID uint16
+}
+
+func (*IoamDisable) GetMessageName() string {
+       return "ioam_disable"
+}
+func (*IoamDisable) GetCrcString() string {
+       return "6b16a45e"
+}
+func (*IoamDisable) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IoamDisableReply represents VPP binary API message 'ioam_disable_reply':
+type IoamDisableReply struct {
+       Retval int32
+}
+
+func (*IoamDisableReply) GetMessageName() string {
+       return "ioam_disable_reply"
+}
+func (*IoamDisableReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IoamDisableReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IoamEnable represents VPP binary API message 'ioam_enable':
+type IoamEnable struct {
+       ID          uint16
+       Seqno       uint8
+       Analyse     uint8
+       PotEnable   uint8
+       TraceEnable uint8
+       NodeID      uint32
+}
+
+func (*IoamEnable) GetMessageName() string {
+       return "ioam_enable"
+}
+func (*IoamEnable) GetCrcString() string {
+       return "9392e032"
+}
+func (*IoamEnable) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IoamEnableReply represents VPP binary API message 'ioam_enable_reply':
+type IoamEnableReply struct {
+       Retval int32
+}
+
+func (*IoamEnableReply) GetMessageName() string {
+       return "ioam_enable_reply"
+}
+func (*IoamEnableReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IoamEnableReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IP4ArpEvent represents VPP binary API message 'ip4_arp_event':
+type IP4ArpEvent struct {
+       IP        IP4Address
+       PID       uint32
+       SwIfIndex uint32
+       Mac       MacAddress
+       MacIP     uint8
+}
+
+func (*IP4ArpEvent) GetMessageName() string {
+       return "ip4_arp_event"
+}
+func (*IP4ArpEvent) GetCrcString() string {
+       return "72cdde7c"
+}
+func (*IP4ArpEvent) GetMessageType() api.MessageType {
+       return api.EventMessage
+}
+
+// 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
+}
+
+func (*IP6FibDetails) GetMessageName() string {
+       return "ip6_fib_details"
+}
+func (*IP6FibDetails) GetCrcString() string {
+       return "ef11e94d"
+}
+func (*IP6FibDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IP6FibDump represents VPP binary API message 'ip6_fib_dump':
+type IP6FibDump struct{}
+
+func (*IP6FibDump) GetMessageName() string {
+       return "ip6_fib_dump"
+}
+func (*IP6FibDump) GetCrcString() string {
+       return "51077d14"
+}
+func (*IP6FibDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// 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 (*IP6MfibDetails) GetMessageName() string {
+       return "ip6_mfib_details"
+}
+func (*IP6MfibDetails) GetCrcString() string {
+       return "738c546e"
+}
+func (*IP6MfibDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IP6MfibDump represents VPP binary API message 'ip6_mfib_dump':
+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
+}
+
+// IP6NdEvent represents VPP binary API message 'ip6_nd_event':
+type IP6NdEvent struct {
+       PID       uint32
+       SwIfIndex uint32
+       IP        IP6Address
+       Mac       MacAddress
+       MacIP     uint8
+}
+
+func (*IP6NdEvent) GetMessageName() string {
+       return "ip6_nd_event"
+}
+func (*IP6NdEvent) GetCrcString() string {
+       return "3a23e7d4"
+}
+func (*IP6NdEvent) GetMessageType() api.MessageType {
+       return api.EventMessage
+}
+
+// IP6RaEvent represents VPP binary API message 'ip6_ra_event':
+type IP6RaEvent struct {
+       PID                                                 uint32
+       SwIfIndex                                           uint32
+       RouterAddr                                          IP6Address
+       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 "2e718fcc"
+}
+func (*IP6RaEvent) GetMessageType() api.MessageType {
+       return api.EventMessage
+}
+
+// IP6ndProxyAddDel represents VPP binary API message 'ip6nd_proxy_add_del':
+type IP6ndProxyAddDel struct {
+       SwIfIndex uint32
+       IsDel     uint8
+       IP        IP6Address
+}
+
+func (*IP6ndProxyAddDel) GetMessageName() string {
+       return "ip6nd_proxy_add_del"
+}
+func (*IP6ndProxyAddDel) GetCrcString() string {
+       return "bff10d55"
+}
+func (*IP6ndProxyAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IP6ndProxyAddDelReply represents VPP binary API message 'ip6nd_proxy_add_del_reply':
+type IP6ndProxyAddDelReply struct {
+       Retval int32
+}
+
+func (*IP6ndProxyAddDelReply) GetMessageName() string {
+       return "ip6nd_proxy_add_del_reply"
+}
+func (*IP6ndProxyAddDelReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IP6ndProxyAddDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IP6ndProxyDetails represents VPP binary API message 'ip6nd_proxy_details':
+type IP6ndProxyDetails struct {
+       SwIfIndex uint32
+       IP        IP6Address
+}
+
+func (*IP6ndProxyDetails) GetMessageName() string {
+       return "ip6nd_proxy_details"
+}
+func (*IP6ndProxyDetails) GetCrcString() string {
+       return "bbbd7894"
+}
+func (*IP6ndProxyDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IP6ndProxyDump represents VPP binary API message 'ip6nd_proxy_dump':
+type IP6ndProxyDump struct{}
+
+func (*IP6ndProxyDump) GetMessageName() string {
+       return "ip6nd_proxy_dump"
+}
+func (*IP6ndProxyDump) GetCrcString() string {
+       return "51077d14"
+}
+func (*IP6ndProxyDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IP6ndSendRouterSolicitation represents VPP binary API message 'ip6nd_send_router_solicitation':
+type IP6ndSendRouterSolicitation struct {
+       Irt       uint32
+       Mrt       uint32
+       Mrc       uint32
+       Mrd       uint32
+       SwIfIndex uint32
+       Stop      uint8
+}
+
+func (*IP6ndSendRouterSolicitation) GetMessageName() string {
+       return "ip6nd_send_router_solicitation"
+}
+func (*IP6ndSendRouterSolicitation) GetCrcString() string {
+       return "bd968917"
+}
+func (*IP6ndSendRouterSolicitation) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IP6ndSendRouterSolicitationReply represents VPP binary API message 'ip6nd_send_router_solicitation_reply':
+type IP6ndSendRouterSolicitationReply struct {
+       Retval int32
+}
+
+func (*IP6ndSendRouterSolicitationReply) GetMessageName() string {
+       return "ip6nd_send_router_solicitation_reply"
+}
+func (*IP6ndSendRouterSolicitationReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IP6ndSendRouterSolicitationReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPAddDelRoute represents VPP binary API message 'ip_add_del_route':
+type IPAddDelRoute struct {
+       NextHopSwIfIndex     uint32
+       TableID              uint32
+       ClassifyTableIndex   uint32
+       NextHopTableID       uint32
+       NextHopID            uint32
+       IsAdd                uint8
+       IsDrop               uint8
+       IsUnreach            uint8
+       IsProhibit           uint8
+       IsIPv6               uint8
+       IsLocal              uint8
+       IsClassify           uint8
+       IsMultipath          uint8
+       IsResolveHost        uint8
+       IsResolveAttached    uint8
+       IsDvr                uint8
+       IsSourceLookup       uint8
+       IsUDPEncap           uint8
+       NextHopWeight        uint8
+       NextHopPreference    uint8
+       NextHopProto         uint8
+       DstAddressLength     uint8
+       DstAddress           []byte `struc:"[16]byte"`
+       NextHopAddress       []byte `struc:"[16]byte"`
+       NextHopNOutLabels    uint8  `struc:"sizeof=NextHopOutLabelStack"`
+       NextHopViaLabel      uint32
+       NextHopOutLabelStack []FibMplsLabel
+}
+
+func (*IPAddDelRoute) GetMessageName() string {
+       return "ip_add_del_route"
+}
+func (*IPAddDelRoute) GetCrcString() string {
+       return "4219d62d"
+}
+func (*IPAddDelRoute) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPAddDelRouteReply represents VPP binary API message 'ip_add_del_route_reply':
+type IPAddDelRouteReply struct {
+       Retval     int32
+       StatsIndex uint32
+}
+
+func (*IPAddDelRouteReply) GetMessageName() string {
+       return "ip_add_del_route_reply"
+}
+func (*IPAddDelRouteReply) GetCrcString() string {
+       return "1992deab"
+}
+func (*IPAddDelRouteReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPAddressDetails represents VPP binary API message 'ip_address_details':
+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 "9bc25966"
+}
+func (*IPAddressDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPAddressDump represents VPP binary API message 'ip_address_dump':
+type IPAddressDump struct {
+       SwIfIndex uint32
+       IsIPv6    uint8
+}
+
+func (*IPAddressDump) GetMessageName() string {
+       return "ip_address_dump"
+}
+func (*IPAddressDump) GetCrcString() string {
+       return "6b7bcd0a"
+}
+func (*IPAddressDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPContainerProxyAddDel represents VPP binary API message 'ip_container_proxy_add_del':
+type IPContainerProxyAddDel struct {
+       Pfx       Prefix
+       SwIfIndex uint32
+       IsAdd     uint8
+}
+
+func (*IPContainerProxyAddDel) GetMessageName() string {
+       return "ip_container_proxy_add_del"
+}
+func (*IPContainerProxyAddDel) GetCrcString() string {
+       return "5938e73a"
+}
+func (*IPContainerProxyAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPContainerProxyAddDelReply represents VPP binary API message 'ip_container_proxy_add_del_reply':
+type IPContainerProxyAddDelReply struct {
+       Retval int32
+}
+
+func (*IPContainerProxyAddDelReply) GetMessageName() string {
+       return "ip_container_proxy_add_del_reply"
+}
+func (*IPContainerProxyAddDelReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IPContainerProxyAddDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPContainerProxyDetails represents VPP binary API message 'ip_container_proxy_details':
+type IPContainerProxyDetails struct {
+       SwIfIndex uint32
+       Prefix    Prefix
+}
+
+func (*IPContainerProxyDetails) GetMessageName() string {
+       return "ip_container_proxy_details"
+}
+func (*IPContainerProxyDetails) GetCrcString() string {
+       return "d528df63"
+}
+func (*IPContainerProxyDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPContainerProxyDump represents VPP binary API message 'ip_container_proxy_dump':
+type IPContainerProxyDump struct{}
+
+func (*IPContainerProxyDump) GetMessageName() string {
+       return "ip_container_proxy_dump"
+}
+func (*IPContainerProxyDump) GetCrcString() string {
+       return "51077d14"
+}
+func (*IPContainerProxyDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPDetails represents VPP binary API message 'ip_details':
+type IPDetails struct {
+       SwIfIndex uint32
+       IsIPv6    uint8
+}
+
+func (*IPDetails) GetMessageName() string {
+       return "ip_details"
+}
+func (*IPDetails) GetCrcString() string {
+       return "8bb37ec4"
+}
+func (*IPDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPDump represents VPP binary API message 'ip_dump':
+type IPDump struct {
+       IsIPv6 uint8
+}
+
+func (*IPDump) GetMessageName() string {
+       return "ip_dump"
+}
+func (*IPDump) GetCrcString() string {
+       return "de883da4"
+}
+func (*IPDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPFibDetails represents VPP binary API message 'ip_fib_details':
+type IPFibDetails struct {
+       TableID       uint32
+       TableName     []byte `struc:"[64]byte"`
+       AddressLength uint8
+       Address       []byte `struc:"[4]byte"`
+       Count         uint32 `struc:"sizeof=Path"`
+       StatsIndex    uint32
+       Path          []FibPath
+}
+
+func (*IPFibDetails) GetMessageName() string {
+       return "ip_fib_details"
+}
+func (*IPFibDetails) GetCrcString() string {
+       return "f6a2fab3"
+}
+func (*IPFibDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPFibDump represents VPP binary API message 'ip_fib_dump':
+type IPFibDump struct{}
+
+func (*IPFibDump) GetMessageName() string {
+       return "ip_fib_dump"
+}
+func (*IPFibDump) GetCrcString() string {
+       return "51077d14"
+}
+func (*IPFibDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// 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 (*IPMfibDetails) GetMessageName() string {
+       return "ip_mfib_details"
+}
+func (*IPMfibDetails) GetCrcString() string {
+       return "61faa26f"
+}
+func (*IPMfibDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPMfibDump represents VPP binary API message 'ip_mfib_dump':
+type IPMfibDump struct{}
+
+func (*IPMfibDump) GetMessageName() string {
+       return "ip_mfib_dump"
+}
+func (*IPMfibDump) GetCrcString() string {
+       return "51077d14"
+}
+func (*IPMfibDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// 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 (*IPMrouteAddDel) GetMessageName() string {
+       return "ip_mroute_add_del"
+}
+func (*IPMrouteAddDel) GetCrcString() string {
+       return "f44c17b1"
+}
+func (*IPMrouteAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPMrouteAddDelReply represents VPP binary API message 'ip_mroute_add_del_reply':
+type IPMrouteAddDelReply struct {
+       Retval     int32
+       StatsIndex uint32
+}
+
+func (*IPMrouteAddDelReply) GetMessageName() string {
+       return "ip_mroute_add_del_reply"
+}
+func (*IPMrouteAddDelReply) GetCrcString() string {
+       return "1992deab"
+}
+func (*IPMrouteAddDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPNeighborAddDel represents VPP binary API message 'ip_neighbor_add_del':
+type IPNeighborAddDel struct {
+       IsAdd    uint8
+       Neighbor IPNeighbor
+}
+
+func (*IPNeighborAddDel) GetMessageName() string {
+       return "ip_neighbor_add_del"
+}
+func (*IPNeighborAddDel) GetCrcString() string {
+       return "adea3ef4"
+}
+func (*IPNeighborAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPNeighborAddDelReply represents VPP binary API message 'ip_neighbor_add_del_reply':
+type IPNeighborAddDelReply struct {
+       Retval     int32
+       StatsIndex uint32
+}
+
+func (*IPNeighborAddDelReply) GetMessageName() string {
+       return "ip_neighbor_add_del_reply"
+}
+func (*IPNeighborAddDelReply) GetCrcString() string {
+       return "1992deab"
+}
+func (*IPNeighborAddDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPNeighborDetails represents VPP binary API message 'ip_neighbor_details':
+type IPNeighborDetails struct {
+       Neighbor IPNeighbor
+}
+
+func (*IPNeighborDetails) GetMessageName() string {
+       return "ip_neighbor_details"
+}
+func (*IPNeighborDetails) GetCrcString() string {
+       return "512fb08d"
+}
+func (*IPNeighborDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPNeighborDump represents VPP binary API message 'ip_neighbor_dump':
+type IPNeighborDump struct {
+       SwIfIndex uint32
+       IsIPv6    uint8
+}
+
+func (*IPNeighborDump) GetMessageName() string {
+       return "ip_neighbor_dump"
+}
+func (*IPNeighborDump) GetCrcString() string {
+       return "6b7bcd0a"
+}
+func (*IPNeighborDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPProbeNeighbor represents VPP binary API message 'ip_probe_neighbor':
+type IPProbeNeighbor struct {
+       SwIfIndex uint32
+       Dst       Address
+}
+
+func (*IPProbeNeighbor) GetMessageName() string {
+       return "ip_probe_neighbor"
+}
+func (*IPProbeNeighbor) GetCrcString() string {
+       return "1e6c0a77"
+}
+func (*IPProbeNeighbor) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPProbeNeighborReply represents VPP binary API message 'ip_probe_neighbor_reply':
+type IPProbeNeighborReply struct {
+       Retval int32
+}
+
+func (*IPProbeNeighborReply) GetMessageName() string {
+       return "ip_probe_neighbor_reply"
+}
+func (*IPProbeNeighborReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IPProbeNeighborReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPPuntPolice represents VPP binary API message 'ip_punt_police':
+type IPPuntPolice struct {
+       PolicerIndex uint32
+       IsAdd        uint8
+       IsIP6        uint8
+}
+
+func (*IPPuntPolice) GetMessageName() string {
+       return "ip_punt_police"
+}
+func (*IPPuntPolice) GetCrcString() string {
+       return "38691592"
+}
+func (*IPPuntPolice) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPPuntPoliceReply represents VPP binary API message 'ip_punt_police_reply':
+type IPPuntPoliceReply struct {
+       Retval int32
+}
+
+func (*IPPuntPoliceReply) GetMessageName() string {
+       return "ip_punt_police_reply"
+}
+func (*IPPuntPoliceReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IPPuntPoliceReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPPuntRedirect represents VPP binary API message 'ip_punt_redirect':
+type IPPuntRedirect struct {
+       Punt  PuntRedirect
+       IsAdd uint8
+}
+
+func (*IPPuntRedirect) GetMessageName() string {
+       return "ip_punt_redirect"
+}
+func (*IPPuntRedirect) GetCrcString() string {
+       return "a953495b"
+}
+func (*IPPuntRedirect) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPPuntRedirectDetails represents VPP binary API message 'ip_punt_redirect_details':
+type IPPuntRedirectDetails struct {
+       Punt PuntRedirect
+}
+
+func (*IPPuntRedirectDetails) GetMessageName() string {
+       return "ip_punt_redirect_details"
+}
+func (*IPPuntRedirectDetails) GetCrcString() string {
+       return "a47f70da"
+}
+func (*IPPuntRedirectDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPPuntRedirectDump represents VPP binary API message 'ip_punt_redirect_dump':
+type IPPuntRedirectDump struct {
+       SwIfIndex uint32
+       IsIPv6    uint8
+}
+
+func (*IPPuntRedirectDump) GetMessageName() string {
+       return "ip_punt_redirect_dump"
+}
+func (*IPPuntRedirectDump) GetCrcString() string {
+       return "6b7bcd0a"
+}
+func (*IPPuntRedirectDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPPuntRedirectReply represents VPP binary API message 'ip_punt_redirect_reply':
+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
+}
+
+// IPReassemblyEnableDisable represents VPP binary API message 'ip_reassembly_enable_disable':
+type IPReassemblyEnableDisable struct {
+       SwIfIndex uint32
+       EnableIP4 uint8
+       EnableIP6 uint8
+}
+
+func (*IPReassemblyEnableDisable) GetMessageName() string {
+       return "ip_reassembly_enable_disable"
+}
+func (*IPReassemblyEnableDisable) GetCrcString() string {
+       return "bb8dc5d0"
+}
+func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPReassemblyEnableDisableReply represents VPP binary API message 'ip_reassembly_enable_disable_reply':
+type IPReassemblyEnableDisableReply struct {
+       Retval int32
+}
+
+func (*IPReassemblyEnableDisableReply) GetMessageName() string {
+       return "ip_reassembly_enable_disable_reply"
+}
+func (*IPReassemblyEnableDisableReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IPReassemblyEnableDisableReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPReassemblyGet represents VPP binary API message 'ip_reassembly_get':
+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
+}
+
+// IPReassemblyGetReply represents VPP binary API message 'ip_reassembly_get_reply':
+type IPReassemblyGetReply struct {
+       Retval               int32
+       TimeoutMs            uint32
+       MaxReassemblies      uint32
+       ExpireWalkIntervalMs uint32
+       IsIP6                uint8
+}
+
+func (*IPReassemblyGetReply) GetMessageName() string {
+       return "ip_reassembly_get_reply"
+}
+func (*IPReassemblyGetReply) GetCrcString() string {
+       return "1f90afd1"
+}
+func (*IPReassemblyGetReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPReassemblySet represents VPP binary API message 'ip_reassembly_set':
+type IPReassemblySet struct {
+       TimeoutMs            uint32
+       MaxReassemblies      uint32
+       ExpireWalkIntervalMs uint32
+       IsIP6                uint8
+}
+
+func (*IPReassemblySet) GetMessageName() string {
+       return "ip_reassembly_set"
+}
+func (*IPReassemblySet) GetCrcString() string {
+       return "1db184de"
+}
+func (*IPReassemblySet) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPReassemblySetReply represents VPP binary API message 'ip_reassembly_set_reply':
+type IPReassemblySetReply struct {
+       Retval int32
+}
+
+func (*IPReassemblySetReply) GetMessageName() string {
+       return "ip_reassembly_set_reply"
+}
+func (*IPReassemblySetReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IPReassemblySetReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// 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 (*IPScanNeighborEnableDisable) GetMessageName() string {
+       return "ip_scan_neighbor_enable_disable"
+}
+func (*IPScanNeighborEnableDisable) GetCrcString() string {
+       return "0a6bf57a"
+}
+func (*IPScanNeighborEnableDisable) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPScanNeighborEnableDisableReply represents VPP binary API message 'ip_scan_neighbor_enable_disable_reply':
+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
+}
+
+// IPSourceAndPortRangeCheckAddDel represents VPP binary API message 'ip_source_and_port_range_check_add_del':
+type IPSourceAndPortRangeCheckAddDel struct {
+       IsAdd          uint8
+       Prefix         Prefix
+       NumberOfRanges uint8
+       LowPorts       []uint16 `struc:"[32]uint16"`
+       HighPorts      []uint16 `struc:"[32]uint16"`
+       VrfID          uint32
+}
+
+func (*IPSourceAndPortRangeCheckAddDel) GetMessageName() string {
+       return "ip_source_and_port_range_check_add_del"
+}
+func (*IPSourceAndPortRangeCheckAddDel) GetCrcString() string {
+       return "ea07c429"
+}
+func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPSourceAndPortRangeCheckAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_add_del_reply':
+type IPSourceAndPortRangeCheckAddDelReply struct {
+       Retval int32
+}
+
+func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageName() string {
+       return "ip_source_and_port_range_check_add_del_reply"
+}
+func (*IPSourceAndPortRangeCheckAddDelReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// 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 (*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
+}
+
+// IPSourceAndPortRangeCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del_reply':
+type IPSourceAndPortRangeCheckInterfaceAddDelReply struct {
+       Retval int32
+}
+
+func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageName() string {
+       return "ip_source_and_port_range_check_interface_add_del_reply"
+}
+func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPSourceCheckInterfaceAddDel represents VPP binary API message 'ip_source_check_interface_add_del':
+type IPSourceCheckInterfaceAddDel struct {
+       IsAdd     uint8
+       Loose     uint8
+       SwIfIndex uint32
+}
+
+func (*IPSourceCheckInterfaceAddDel) GetMessageName() string {
+       return "ip_source_check_interface_add_del"
+}
+func (*IPSourceCheckInterfaceAddDel) GetCrcString() string {
+       return "0a60152a"
+}
+func (*IPSourceCheckInterfaceAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPSourceCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_check_interface_add_del_reply':
+type IPSourceCheckInterfaceAddDelReply struct {
+       Retval int32
+}
+
+func (*IPSourceCheckInterfaceAddDelReply) GetMessageName() string {
+       return "ip_source_check_interface_add_del_reply"
+}
+func (*IPSourceCheckInterfaceAddDelReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IPSourceCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// 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 (*IPTableAddDel) GetMessageName() string {
+       return "ip_table_add_del"
+}
+func (*IPTableAddDel) GetCrcString() string {
+       return "0240c89d"
+}
+func (*IPTableAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPTableAddDelReply represents VPP binary API message 'ip_table_add_del_reply':
+type IPTableAddDelReply struct {
+       Retval int32
+}
+
+func (*IPTableAddDelReply) GetMessageName() string {
+       return "ip_table_add_del_reply"
+}
+func (*IPTableAddDelReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IPTableAddDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPUnnumberedDetails represents VPP binary API message 'ip_unnumbered_details':
+type IPUnnumberedDetails struct {
+       SwIfIndex   uint32
+       IPSwIfIndex uint32
+}
+
+func (*IPUnnumberedDetails) GetMessageName() string {
+       return "ip_unnumbered_details"
+}
+func (*IPUnnumberedDetails) GetCrcString() string {
+       return "ae694cf4"
+}
+func (*IPUnnumberedDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// IPUnnumberedDump represents VPP binary API message 'ip_unnumbered_dump':
+type IPUnnumberedDump struct {
+       SwIfIndex uint32
+}
+
+func (*IPUnnumberedDump) GetMessageName() string {
+       return "ip_unnumbered_dump"
+}
+func (*IPUnnumberedDump) GetCrcString() string {
+       return "529cb13f"
+}
+func (*IPUnnumberedDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// 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
+       Prefix       Prefix
+       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 "59934d3b"
+}
+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 (*SwInterfaceIP6ndRaPrefixReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// WantIP4ArpEvents represents VPP binary API message 'want_ip4_arp_events':
+type WantIP4ArpEvents struct {
+       EnableDisable uint8
+       PID           uint32
+       IP            IP4Address
+}
+
+func (*WantIP4ArpEvents) GetMessageName() string {
+       return "want_ip4_arp_events"
+}
+func (*WantIP4ArpEvents) GetCrcString() string {
+       return "70fd7195"
+}
+func (*WantIP4ArpEvents) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// 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
+       IP            IP6Address
+}
+
+func (*WantIP6NdEvents) GetMessageName() string {
+       return "want_ip6_nd_events"
+}
+func (*WantIP6NdEvents) GetCrcString() string {
+       return "ba330719"
+}
+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((*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((*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((*IPAddDelRoute)(nil), "ip.IPAddDelRoute")
+       api.RegisterMessage((*IPAddDelRouteReply)(nil), "ip.IPAddDelRouteReply")
+       api.RegisterMessage((*IPAddressDetails)(nil), "ip.IPAddressDetails")
+       api.RegisterMessage((*IPAddressDump)(nil), "ip.IPAddressDump")
+       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((*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((*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((*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((*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((*ResetFib)(nil), "ip.ResetFib")
+       api.RegisterMessage((*ResetFibReply)(nil), "ip.ResetFibReply")
+       api.RegisterMessage((*SetArpNeighborLimit)(nil), "ip.SetArpNeighborLimit")
+       api.RegisterMessage((*SetArpNeighborLimitReply)(nil), "ip.SetArpNeighborLimitReply")
+       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")
+}
+
+// Messages returns list of all messages in this module.
+func AllMessages() []api.Message {
+       return []api.Message{
+               (*IoamDisable)(nil),
+               (*IoamDisableReply)(nil),
+               (*IoamEnable)(nil),
+               (*IoamEnableReply)(nil),
+               (*IP4ArpEvent)(nil),
+               (*IP6FibDetails)(nil),
+               (*IP6FibDump)(nil),
+               (*IP6MfibDetails)(nil),
+               (*IP6MfibDump)(nil),
+               (*IP6NdEvent)(nil),
+               (*IP6RaEvent)(nil),
+               (*IP6ndProxyAddDel)(nil),
+               (*IP6ndProxyAddDelReply)(nil),
+               (*IP6ndProxyDetails)(nil),
+               (*IP6ndProxyDump)(nil),
+               (*IP6ndSendRouterSolicitation)(nil),
+               (*IP6ndSendRouterSolicitationReply)(nil),
+               (*IPAddDelRoute)(nil),
+               (*IPAddDelRouteReply)(nil),
+               (*IPAddressDetails)(nil),
+               (*IPAddressDump)(nil),
+               (*IPContainerProxyAddDel)(nil),
+               (*IPContainerProxyAddDelReply)(nil),
+               (*IPContainerProxyDetails)(nil),
+               (*IPContainerProxyDump)(nil),
+               (*IPDetails)(nil),
+               (*IPDump)(nil),
+               (*IPFibDetails)(nil),
+               (*IPFibDump)(nil),
+               (*IPMfibDetails)(nil),
+               (*IPMfibDump)(nil),
+               (*IPMrouteAddDel)(nil),
+               (*IPMrouteAddDelReply)(nil),
+               (*IPNeighborAddDel)(nil),
+               (*IPNeighborAddDelReply)(nil),
+               (*IPNeighborDetails)(nil),
+               (*IPNeighborDump)(nil),
+               (*IPProbeNeighbor)(nil),
+               (*IPProbeNeighborReply)(nil),
+               (*IPPuntPolice)(nil),
+               (*IPPuntPoliceReply)(nil),
+               (*IPPuntRedirect)(nil),
+               (*IPPuntRedirectDetails)(nil),
+               (*IPPuntRedirectDump)(nil),
+               (*IPPuntRedirectReply)(nil),
+               (*IPReassemblyEnableDisable)(nil),
+               (*IPReassemblyEnableDisableReply)(nil),
+               (*IPReassemblyGet)(nil),
+               (*IPReassemblyGetReply)(nil),
+               (*IPReassemblySet)(nil),
+               (*IPReassemblySetReply)(nil),
+               (*IPScanNeighborEnableDisable)(nil),
+               (*IPScanNeighborEnableDisableReply)(nil),
+               (*IPSourceAndPortRangeCheckAddDel)(nil),
+               (*IPSourceAndPortRangeCheckAddDelReply)(nil),
+               (*IPSourceAndPortRangeCheckInterfaceAddDel)(nil),
+               (*IPSourceAndPortRangeCheckInterfaceAddDelReply)(nil),
+               (*IPSourceCheckInterfaceAddDel)(nil),
+               (*IPSourceCheckInterfaceAddDelReply)(nil),
+               (*IPTableAddDel)(nil),
+               (*IPTableAddDelReply)(nil),
+               (*IPUnnumberedDetails)(nil),
+               (*IPUnnumberedDump)(nil),
+               (*MfibSignalDetails)(nil),
+               (*MfibSignalDump)(nil),
+               (*ProxyArpAddDel)(nil),
+               (*ProxyArpAddDelReply)(nil),
+               (*ProxyArpDetails)(nil),
+               (*ProxyArpDump)(nil),
+               (*ProxyArpIntfcDetails)(nil),
+               (*ProxyArpIntfcDump)(nil),
+               (*ProxyArpIntfcEnableDisable)(nil),
+               (*ProxyArpIntfcEnableDisableReply)(nil),
+               (*ResetFib)(nil),
+               (*ResetFibReply)(nil),
+               (*SetArpNeighborLimit)(nil),
+               (*SetArpNeighborLimitReply)(nil),
+               (*SetIPFlowHash)(nil),
+               (*SetIPFlowHashReply)(nil),
+               (*SwInterfaceIP6EnableDisable)(nil),
+               (*SwInterfaceIP6EnableDisableReply)(nil),
+               (*SwInterfaceIP6ndRaConfig)(nil),
+               (*SwInterfaceIP6ndRaConfigReply)(nil),
+               (*SwInterfaceIP6ndRaPrefix)(nil),
+               (*SwInterfaceIP6ndRaPrefixReply)(nil),
+               (*WantIP4ArpEvents)(nil),
+               (*WantIP4ArpEventsReply)(nil),
+               (*WantIP6NdEvents)(nil),
+               (*WantIP6NdEventsReply)(nil),
+               (*WantIP6RaEvents)(nil),
+               (*WantIP6RaEventsReply)(nil),
+       }
+}
+
+// Service represents services in VPP binary API.
+type Service interface {
+       DumpIP6Fib(ctx context.Context, in *IP6FibDump) ([]*IP6FibDetails, error)
+       DumpIP6Mfib(ctx context.Context, in *IP6MfibDump) ([]*IP6MfibDetails, error)
+       DumpIP6ndProxy(ctx context.Context, in *IP6ndProxyDump) ([]*IP6ndProxyDetails, error)
+       DumpIPAddress(ctx context.Context, in *IPAddressDump) ([]*IPAddressDetails, error)
+       DumpIPContainerProxy(ctx context.Context, in *IPContainerProxyDump) ([]*IPContainerProxyDetails, error)
+       DumpIP(ctx context.Context, in *IPDump) ([]*IPDetails, error)
+       DumpIPFib(ctx context.Context, in *IPFibDump) ([]*IPFibDetails, error)
+       DumpIPMfib(ctx context.Context, in *IPMfibDump) ([]*IPMfibDetails, error)
+       DumpIPNeighbor(ctx context.Context, in *IPNeighborDump) ([]*IPNeighborDetails, error)
+       DumpIPPuntRedirect(ctx context.Context, in *IPPuntRedirectDump) ([]*IPPuntRedirectDetails, error)
+       DumpIPUnnumbered(ctx context.Context, in *IPUnnumberedDump) ([]*IPUnnumberedDetails, error)
+       DumpMfibSignal(ctx context.Context, in *MfibSignalDump) ([]*MfibSignalDetails, error)
+       DumpProxyArp(ctx context.Context, in *ProxyArpDump) ([]*ProxyArpDetails, error)
+       DumpProxyArpIntfc(ctx context.Context, in *ProxyArpIntfcDump) ([]*ProxyArpIntfcDetails, error)
+       IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error)
+       IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error)
+       IP6ndProxyAddDel(ctx context.Context, in *IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error)
+       IP6ndSendRouterSolicitation(ctx context.Context, in *IP6ndSendRouterSolicitation) (*IP6ndSendRouterSolicitationReply, error)
+       IPAddDelRoute(ctx context.Context, in *IPAddDelRoute) (*IPAddDelRouteReply, error)
+       IPContainerProxyAddDel(ctx context.Context, in *IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error)
+       IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMrouteAddDelReply, error)
+       IPNeighborAddDel(ctx context.Context, in *IPNeighborAddDel) (*IPNeighborAddDelReply, error)
+       IPProbeNeighbor(ctx context.Context, in *IPProbeNeighbor) (*IPProbeNeighborReply, error)
+       IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPoliceReply, error)
+       IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPuntRedirectReply, error)
+       IPReassemblyEnableDisable(ctx context.Context, in *IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error)
+       IPReassemblyGet(ctx context.Context, in *IPReassemblyGet) (*IPReassemblyGetReply, error)
+       IPReassemblySet(ctx context.Context, in *IPReassemblySet) (*IPReassemblySetReply, error)
+       IPScanNeighborEnableDisable(ctx context.Context, in *IPScanNeighborEnableDisable) (*IPScanNeighborEnableDisableReply, error)
+       IPSourceAndPortRangeCheckAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error)
+       IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error)
+       IPSourceCheckInterfaceAddDel(ctx context.Context, in *IPSourceCheckInterfaceAddDel) (*IPSourceCheckInterfaceAddDelReply, error)
+       IPTableAddDel(ctx context.Context, in *IPTableAddDel) (*IPTableAddDelReply, error)
+       ProxyArpAddDel(ctx context.Context, in *ProxyArpAddDel) (*ProxyArpAddDelReply, error)
+       ProxyArpIntfcEnableDisable(ctx context.Context, in *ProxyArpIntfcEnableDisable) (*ProxyArpIntfcEnableDisableReply, error)
+       ResetFib(ctx context.Context, in *ResetFib) (*ResetFibReply, error)
+       SetArpNeighborLimit(ctx context.Context, in *SetArpNeighborLimit) (*SetArpNeighborLimitReply, error)
+       SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*SetIPFlowHashReply, error)
+       SwInterfaceIP6EnableDisable(ctx context.Context, in *SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error)
+       SwInterfaceIP6ndRaConfig(ctx context.Context, in *SwInterfaceIP6ndRaConfig) (*SwInterfaceIP6ndRaConfigReply, error)
+       SwInterfaceIP6ndRaPrefix(ctx context.Context, in *SwInterfaceIP6ndRaPrefix) (*SwInterfaceIP6ndRaPrefixReply, error)
+       WantIP4ArpEvents(ctx context.Context, in *WantIP4ArpEvents) (*WantIP4ArpEventsReply, error)
+       WantIP6NdEvents(ctx context.Context, in *WantIP6NdEvents) (*WantIP6NdEventsReply, error)
+       WantIP6RaEvents(ctx context.Context, in *WantIP6RaEvents) (*WantIP6RaEventsReply, error)
+}
+
+type service struct {
+       ch api.Channel
+}
+
+func NewService(ch api.Channel) Service {
+       return &service{ch}
+}
+
+func (c *service) DumpIP6Fib(ctx context.Context, in *IP6FibDump) ([]*IP6FibDetails, error) {
+       var dump []*IP6FibDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(IP6FibDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpIP6Mfib(ctx context.Context, in *IP6MfibDump) ([]*IP6MfibDetails, error) {
+       var dump []*IP6MfibDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(IP6MfibDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpIP6ndProxy(ctx context.Context, in *IP6ndProxyDump) ([]*IP6ndProxyDetails, error) {
+       var dump []*IP6ndProxyDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(IP6ndProxyDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpIPAddress(ctx context.Context, in *IPAddressDump) ([]*IPAddressDetails, error) {
+       var dump []*IPAddressDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(IPAddressDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpIPContainerProxy(ctx context.Context, in *IPContainerProxyDump) ([]*IPContainerProxyDetails, error) {
+       var dump []*IPContainerProxyDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(IPContainerProxyDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpIP(ctx context.Context, in *IPDump) ([]*IPDetails, error) {
+       var dump []*IPDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(IPDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpIPFib(ctx context.Context, in *IPFibDump) ([]*IPFibDetails, error) {
+       var dump []*IPFibDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(IPFibDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpIPMfib(ctx context.Context, in *IPMfibDump) ([]*IPMfibDetails, error) {
+       var dump []*IPMfibDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(IPMfibDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpIPNeighbor(ctx context.Context, in *IPNeighborDump) ([]*IPNeighborDetails, error) {
+       var dump []*IPNeighborDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(IPNeighborDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpIPPuntRedirect(ctx context.Context, in *IPPuntRedirectDump) ([]*IPPuntRedirectDetails, error) {
+       var dump []*IPPuntRedirectDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(IPPuntRedirectDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpIPUnnumbered(ctx context.Context, in *IPUnnumberedDump) ([]*IPUnnumberedDetails, error) {
+       var dump []*IPUnnumberedDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(IPUnnumberedDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpMfibSignal(ctx context.Context, in *MfibSignalDump) ([]*MfibSignalDetails, error) {
+       var dump []*MfibSignalDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(MfibSignalDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpProxyArp(ctx context.Context, in *ProxyArpDump) ([]*ProxyArpDetails, error) {
+       var dump []*ProxyArpDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(ProxyArpDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpProxyArpIntfc(ctx context.Context, in *ProxyArpIntfcDump) ([]*ProxyArpIntfcDetails, error) {
+       var dump []*ProxyArpIntfcDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(ProxyArpIntfcDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error) {
+       out := new(IoamDisableReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error) {
+       out := new(IoamEnableReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IP6ndProxyAddDel(ctx context.Context, in *IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error) {
+       out := new(IP6ndProxyAddDelReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IP6ndSendRouterSolicitation(ctx context.Context, in *IP6ndSendRouterSolicitation) (*IP6ndSendRouterSolicitationReply, error) {
+       out := new(IP6ndSendRouterSolicitationReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPAddDelRoute(ctx context.Context, in *IPAddDelRoute) (*IPAddDelRouteReply, error) {
+       out := new(IPAddDelRouteReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPContainerProxyAddDel(ctx context.Context, in *IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error) {
+       out := new(IPContainerProxyAddDelReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMrouteAddDelReply, error) {
+       out := new(IPMrouteAddDelReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPNeighborAddDel(ctx context.Context, in *IPNeighborAddDel) (*IPNeighborAddDelReply, error) {
+       out := new(IPNeighborAddDelReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPProbeNeighbor(ctx context.Context, in *IPProbeNeighbor) (*IPProbeNeighborReply, error) {
+       out := new(IPProbeNeighborReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPoliceReply, error) {
+       out := new(IPPuntPoliceReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPuntRedirectReply, error) {
+       out := new(IPPuntRedirectReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPReassemblyEnableDisable(ctx context.Context, in *IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error) {
+       out := new(IPReassemblyEnableDisableReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPReassemblyGet(ctx context.Context, in *IPReassemblyGet) (*IPReassemblyGetReply, error) {
+       out := new(IPReassemblyGetReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPReassemblySet(ctx context.Context, in *IPReassemblySet) (*IPReassemblySetReply, error) {
+       out := new(IPReassemblySetReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPScanNeighborEnableDisable(ctx context.Context, in *IPScanNeighborEnableDisable) (*IPScanNeighborEnableDisableReply, error) {
+       out := new(IPScanNeighborEnableDisableReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPSourceAndPortRangeCheckAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error) {
+       out := new(IPSourceAndPortRangeCheckAddDelReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error) {
+       out := new(IPSourceAndPortRangeCheckInterfaceAddDelReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPSourceCheckInterfaceAddDel(ctx context.Context, in *IPSourceCheckInterfaceAddDel) (*IPSourceCheckInterfaceAddDelReply, error) {
+       out := new(IPSourceCheckInterfaceAddDelReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) IPTableAddDel(ctx context.Context, in *IPTableAddDel) (*IPTableAddDelReply, error) {
+       out := new(IPTableAddDelReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) ProxyArpAddDel(ctx context.Context, in *ProxyArpAddDel) (*ProxyArpAddDelReply, error) {
+       out := new(ProxyArpAddDelReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) ProxyArpIntfcEnableDisable(ctx context.Context, in *ProxyArpIntfcEnableDisable) (*ProxyArpIntfcEnableDisableReply, error) {
+       out := new(ProxyArpIntfcEnableDisableReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) ResetFib(ctx context.Context, in *ResetFib) (*ResetFibReply, error) {
+       out := new(ResetFibReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) SetArpNeighborLimit(ctx context.Context, in *SetArpNeighborLimit) (*SetArpNeighborLimitReply, error) {
+       out := new(SetArpNeighborLimitReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*SetIPFlowHashReply, error) {
+       out := new(SetIPFlowHashReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) SwInterfaceIP6EnableDisable(ctx context.Context, in *SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error) {
+       out := new(SwInterfaceIP6EnableDisableReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) SwInterfaceIP6ndRaConfig(ctx context.Context, in *SwInterfaceIP6ndRaConfig) (*SwInterfaceIP6ndRaConfigReply, error) {
+       out := new(SwInterfaceIP6ndRaConfigReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) SwInterfaceIP6ndRaPrefix(ctx context.Context, in *SwInterfaceIP6ndRaPrefix) (*SwInterfaceIP6ndRaPrefixReply, error) {
+       out := new(SwInterfaceIP6ndRaPrefixReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) WantIP4ArpEvents(ctx context.Context, in *WantIP4ArpEvents) (*WantIP4ArpEventsReply, error) {
+       out := new(WantIP4ArpEventsReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) WantIP6NdEvents(ctx context.Context, in *WantIP6NdEvents) (*WantIP6NdEventsReply, error) {
+       out := new(WantIP6NdEventsReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) WantIP6RaEvents(ctx context.Context, in *WantIP6RaEvents) (*WantIP6RaEventsReply, error) {
+       out := new(WantIP6RaEventsReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}