Generator improvements 94/17194/1
authorOndrej Fabry <ofabry@cisco.com>
Thu, 31 Jan 2019 07:23:02 +0000 (08:23 +0100)
committerOndrej Fabry <ofabry@cisco.com>
Thu, 31 Jan 2019 07:23:02 +0000 (08:23 +0100)
- all objects are now sorted alphabetically for more consistent output
- unions now have constructor generated
- log level for warnings was changed to debug
- GetAllMessages renamed to GetRegisteredMessages

Change-Id: I976453004a2fd8b6cb95ca0acfcef56913bf8d38
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
15 files changed:
api/api.go
cmd/binapi-generator/generate.go
cmd/binapi-generator/objects.go
cmd/binapi-generator/parse.go
core/channel.go
core/connection.go
examples/bin_api/acl/acl.ba.go
examples/bin_api/af_packet/af_packet.ba.go
examples/bin_api/interfaces/interfaces.ba.go
examples/bin_api/ip/ip.ba.go
examples/bin_api/maps/maps.ba.go
examples/bin_api/memif/memif.ba.go
examples/bin_api/tap/tap.ba.go
examples/bin_api/vpe/vpe.ba.go
examples/cmd/union-example/union_example.go

index 9b7f0ff..57a744e 100644 (file)
@@ -126,7 +126,7 @@ func RegisterMessage(x Message, name string) {
        registeredMessages[name] = x
 }
 
-// GetAllMessages returns list of all registered messages.
-func GetAllMessages() map[string]Message {
+// GetRegisteredMessages returns list of all registered messages.
+func GetRegisteredMessages() map[string]Message {
        return registeredMessages
 }
index e165c42..48c3a41 100644 (file)
@@ -93,9 +93,9 @@ func generatePackage(ctx *context, w *bufio.Writer) error {
        // generate services
        if len(ctx.packageData.Services) > 0 {
                generateServices(ctx, w, ctx.packageData.Services)
-       }
 
-       // TODO: generate implementation for Services interface
+               // TODO: generate implementation for Services interface
+       }
 
        // generate enums
        if len(ctx.packageData.Enums) > 0 {
@@ -140,16 +140,15 @@ func generatePackage(ctx *context, w *bufio.Writer) error {
                for _, msg := range ctx.packageData.Messages {
                        generateMessage(ctx, w, &msg)
                }
-       }
 
-       // generate message registrations
-       fmt.Fprintln(w)
-       fmt.Fprintln(w, "func init() {")
-       for _, msg := range ctx.packageData.Messages {
-               name := camelCaseName(msg.Name)
-               fmt.Fprintf(w, "\tapi.RegisterMessage((*%s)(nil), \"%s\")\n", name, ctx.moduleName+"."+name)
+               // generate message registrations
+               fmt.Fprintln(w, "func init() {")
+               for _, msg := range ctx.packageData.Messages {
+                       name := camelCaseName(msg.Name)
+                       fmt.Fprintf(w, "\tapi.RegisterMessage((*%s)(nil), \"%s\")\n", name, ctx.moduleName+"."+name)
+               }
+               fmt.Fprintln(w, "}")
        }
-       fmt.Fprintln(w, "}")
 
        // flush the data:
        if err := w.Flush(); err != nil {
@@ -181,13 +180,13 @@ func generateHeader(ctx *context, w io.Writer) {
                        fmt.Fprintf(w, "\t%3d %s\n", num, obj)
                }
        }
-       printObjNum("message", len(ctx.packageData.Messages))
-       printObjNum("type", len(ctx.packageData.Types))
-       printObjNum("alias", len(ctx.packageData.Aliases))
+
+       printObjNum("service", len(ctx.packageData.Services))
        printObjNum("enum", len(ctx.packageData.Enums))
+       printObjNum("alias", len(ctx.packageData.Aliases))
+       printObjNum("type", len(ctx.packageData.Types))
        printObjNum("union", len(ctx.packageData.Unions))
-       printObjNum("service", len(ctx.packageData.Services))
-       fmt.Fprintln(w)
+       printObjNum("message", len(ctx.packageData.Messages))
        fmt.Fprintln(w, "*/")
        fmt.Fprintf(w, "package %s\n", ctx.packageName)
        fmt.Fprintln(w)
@@ -416,6 +415,10 @@ func (u *%[1]s) String() string {
 
 func generateUnionGetterSetter(w io.Writer, structName string, getterField, getterStruct string) {
        fmt.Fprintf(w, `
+func %[1]s%[2]s(a %[3]s) (u %[1]s) {
+       u.Set%[2]s(a)
+       return
+}
 func (u *%[1]s) Set%[2]s(a %[3]s) {
        var b = new(bytes.Buffer)
        if err := struc.Pack(b, &a); err != nil {
@@ -530,6 +533,8 @@ func generateMessage(ctx *context, w io.Writer, msg *Message) {
 
        // generate message type getter method
        generateMessageTypeGetter(w, name, msgType)
+
+       fmt.Fprintln(w)
 }
 
 // generateField writes generated code for the field into w
index 97318cb..4b424f5 100644 (file)
@@ -1,34 +1,48 @@
 package main
 
-import "strings"
+import (
+       "strings"
+)
 
 // Package represents collection of objects parsed from VPP binary API JSON data
 type Package struct {
        APIVersion string
+       Services   []Service
        Enums      []Enum
-       Unions     []Union
-       Types      []Type
        Aliases    []Alias
+       Types      []Type
+       Unions     []Union
        Messages   []Message
-       Services   []Service
        RefMap     map[string]string
 }
 
-// MessageType represents the type of a VPP message
-type MessageType int
+// Service represents VPP binary API service
+type Service struct {
+       Name        string
+       RequestType string
+       ReplyType   string
+       Stream      bool
+       Events      []string
+}
 
-const (
-       requestMessage MessageType = iota // VPP request message
-       replyMessage                      // VPP reply message
-       eventMessage                      // VPP event message
-       otherMessage                      // other VPP message
-)
+// Enum represents VPP binary API enum
+type Enum struct {
+       Name    string
+       Type    string
+       Entries []EnumEntry
+}
 
-// Message represents VPP binary API message
-type Message struct {
+// EnumEntry represents VPP binary API enum entry
+type EnumEntry struct {
+       Name  string
+       Value interface{}
+}
+
+// Alias represents VPP binary API alias
+type Alias struct {
        Name   string
-       CRC    string
-       Fields []Field
+       Type   string
+       Length int
 }
 
 // Type represents VPP binary API type
@@ -38,20 +52,30 @@ type Type struct {
        Fields []Field
 }
 
-// Alias represents VPP binary API alias
-type Alias struct {
+// Union represents VPP binary API union
+type Union struct {
        Name   string
-       Type   string
-       Length int
+       CRC    string
+       Fields []Field
 }
 
-// Union represents VPP binary API union
-type Union struct {
+// Message represents VPP binary API message
+type Message struct {
        Name   string
        CRC    string
        Fields []Field
 }
 
+// MessageType represents the type of a VPP message
+type MessageType int
+
+const (
+       requestMessage MessageType = iota // VPP request message
+       replyMessage                      // VPP reply message
+       eventMessage                      // VPP event message
+       otherMessage                      // other VPP message
+)
+
 // Field represents VPP binary API object field
 type Field struct {
        Name     string
@@ -64,28 +88,6 @@ func (f *Field) IsArray() bool {
        return f.Length > 0 || f.SizeFrom != ""
 }
 
-// Enum represents VPP binary API enum
-type Enum struct {
-       Name    string
-       Type    string
-       Entries []EnumEntry
-}
-
-// EnumEntry represents VPP binary API enum entry
-type EnumEntry struct {
-       Name  string
-       Value interface{}
-}
-
-// Service represents VPP binary API service
-type Service struct {
-       Name        string
-       RequestType string
-       ReplyType   string
-       Stream      bool
-       Events      []string
-}
-
 func (s Service) MethodName() string {
        reqTyp := camelCaseName(s.RequestType)
 
index 5bb3e8e..07abebd 100644 (file)
@@ -54,6 +54,10 @@ func parsePackage(ctx *context, jsonRoot *jsongo.JSONNode) (*Package, error) {
                pkg.Enums[i] = *enum
                pkg.RefMap[toApiType(enum.Name)] = enum.Name
        }
+       // sort enums
+       sort.SliceStable(pkg.Enums, func(i, j int) bool {
+               return pkg.Enums[i].Name < pkg.Enums[j].Name
+       })
 
        // parse aliases
        aliases := jsonRoot.Map("aliases")
@@ -88,6 +92,10 @@ func parsePackage(ctx *context, jsonRoot *jsongo.JSONNode) (*Package, error) {
                pkg.Types[i] = *typ
                pkg.RefMap[toApiType(typ.Name)] = typ.Name
        }
+       // sort types
+       sort.SliceStable(pkg.Types, func(i, j int) bool {
+               return pkg.Types[i].Name < pkg.Types[j].Name
+       })
 
        // parse unions
        unions := jsonRoot.Map("unions")
@@ -102,6 +110,10 @@ func parsePackage(ctx *context, jsonRoot *jsongo.JSONNode) (*Package, error) {
                pkg.Unions[i] = *union
                pkg.RefMap[toApiType(union.Name)] = union.Name
        }
+       // sort unions
+       sort.SliceStable(pkg.Unions, func(i, j int) bool {
+               return pkg.Unions[i].Name < pkg.Unions[j].Name
+       })
 
        // parse messages
        messages := jsonRoot.Map("messages")
@@ -115,6 +127,10 @@ func parsePackage(ctx *context, jsonRoot *jsongo.JSONNode) (*Package, error) {
                }
                pkg.Messages[i] = *msg
        }
+       // sort messages
+       sort.SliceStable(pkg.Messages, func(i, j int) bool {
+               return pkg.Messages[i].Name < pkg.Messages[j].Name
+       })
 
        // parse services
        services := jsonRoot.Map("services")
@@ -129,16 +145,15 @@ func parsePackage(ctx *context, jsonRoot *jsongo.JSONNode) (*Package, error) {
                        }
                        pkg.Services[i] = *svc
                }
-
-               // sort services
-               sort.Slice(pkg.Services, func(i, j int) bool {
-                       // dumps first
-                       if pkg.Services[i].Stream != pkg.Services[j].Stream {
-                               return pkg.Services[i].Stream
-                       }
-                       return pkg.Services[i].RequestType < pkg.Services[j].RequestType
-               })
        }
+       // sort services
+       sort.Slice(pkg.Services, func(i, j int) bool {
+               // dumps first
+               if pkg.Services[i].Stream != pkg.Services[j].Stream {
+                       return pkg.Services[i].Stream
+               }
+               return pkg.Services[i].RequestType < pkg.Services[j].RequestType
+       })
 
        printPackage(&pkg)
 
@@ -456,20 +471,20 @@ func parseService(ctx *context, svcName string, svcNode *jsongo.JSONNode) (*Serv
        // validate service
        if svc.IsEventService() {
                if !strings.HasPrefix(svc.RequestType, "want_") {
-                       log.Warnf("Unusual EVENTS SERVICE: %+v\n"+
+                       log.Debugf("Unusual EVENTS SERVICE: %+v\n"+
                                "- events service %q does not have 'want_' prefix in request.",
                                svc, svc.Name)
                }
        } else if svc.IsDumpService() {
                if !strings.HasSuffix(svc.RequestType, "_dump") ||
                        !strings.HasSuffix(svc.ReplyType, "_details") {
-                       log.Warnf("Unusual STREAM SERVICE: %+v\n"+
+                       log.Debugf("Unusual STREAM SERVICE: %+v\n"+
                                "- stream service %q does not have '_dump' suffix in request or reply does not have '_details' suffix.",
                                svc, svc.Name)
                }
        } else if svc.IsRequestService() {
                if !strings.HasSuffix(svc.ReplyType, "_reply") {
-                       log.Warnf("Unusual REQUEST SERVICE: %+v\n"+
+                       log.Debugf("Unusual REQUEST SERVICE: %+v\n"+
                                "- service %q does not have '_reply' suffix in reply.",
                                svc, svc.Name)
                }
index a7d95fe..5b69eab 100644 (file)
@@ -31,7 +31,7 @@ var (
 
 // MessageCodec provides functionality for decoding binary data to generated API messages.
 type MessageCodec interface {
-       //EncodeMsg encodes message into binary data.
+       // EncodeMsg encodes message into binary data.
        EncodeMsg(msg api.Message, msgID uint16) ([]byte, error)
        // DecodeMsg decodes binary-encoded data of a message into provided Message structure.
        DecodeMsg(data []byte, msg api.Message) error
index 042a2af..08f08f5 100644 (file)
@@ -248,7 +248,7 @@ func (c *Connection) retrieveMessageIDs() (err error) {
                c.msgMap[msgID] = msg
        }
 
-       msgs := api.GetAllMessages()
+       msgs := api.GetRegisteredMessages()
 
        for name, msg := range msgs {
                msgID, err := c.vppClient.GetMsgID(msg.GetMessageName(), msg.GetCrcString())
index eff85d4..9b43110 100644 (file)
@@ -5,10 +5,9 @@
  Package acl is a generated from VPP binary API module 'acl'.
 
  It contains following objects:
-        36 messages
-         2 types
         18 services
-
+         2 types
+        36 messages
 */
 package acl
 
@@ -244,213 +243,6 @@ func (*MacipACLRule) GetCrcString() string {
 
 /* Messages */
 
-// ACLPluginGetVersion represents VPP binary API message 'acl_plugin_get_version':
-//
-//     "acl_plugin_get_version",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     {
-//         "crc": "0x51077d14"
-//     }
-//
-type ACLPluginGetVersion struct{}
-
-func (*ACLPluginGetVersion) GetMessageName() string {
-       return "acl_plugin_get_version"
-}
-func (*ACLPluginGetVersion) GetCrcString() string {
-       return "51077d14"
-}
-func (*ACLPluginGetVersion) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// ACLPluginGetVersionReply represents VPP binary API message 'acl_plugin_get_version_reply':
-//
-//     "acl_plugin_get_version_reply",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "u32",
-//         "major"
-//     ],
-//     [
-//         "u32",
-//         "minor"
-//     ],
-//     {
-//         "crc": "0x9b32cf86"
-//     }
-//
-type ACLPluginGetVersionReply struct {
-       Major uint32
-       Minor uint32
-}
-
-func (*ACLPluginGetVersionReply) GetMessageName() string {
-       return "acl_plugin_get_version_reply"
-}
-func (*ACLPluginGetVersionReply) GetCrcString() string {
-       return "9b32cf86"
-}
-func (*ACLPluginGetVersionReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-// ACLPluginControlPing represents VPP binary API message 'acl_plugin_control_ping':
-//
-//     "acl_plugin_control_ping",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     {
-//         "crc": "0x51077d14"
-//     }
-//
-type ACLPluginControlPing struct{}
-
-func (*ACLPluginControlPing) GetMessageName() string {
-       return "acl_plugin_control_ping"
-}
-func (*ACLPluginControlPing) GetCrcString() string {
-       return "51077d14"
-}
-func (*ACLPluginControlPing) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// ACLPluginControlPingReply represents VPP binary API message 'acl_plugin_control_ping_reply':
-//
-//     "acl_plugin_control_ping_reply",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "i32",
-//         "retval"
-//     ],
-//     [
-//         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "vpe_pid"
-//     ],
-//     {
-//         "crc": "0xf6b0b8ca"
-//     }
-//
-type ACLPluginControlPingReply struct {
-       Retval      int32
-       ClientIndex uint32
-       VpePID      uint32
-}
-
-func (*ACLPluginControlPingReply) GetMessageName() string {
-       return "acl_plugin_control_ping_reply"
-}
-func (*ACLPluginControlPingReply) GetCrcString() string {
-       return "f6b0b8ca"
-}
-func (*ACLPluginControlPingReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-// ACLPluginGetConnTableMaxEntries represents VPP binary API message 'acl_plugin_get_conn_table_max_entries':
-//
-//     "acl_plugin_get_conn_table_max_entries",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     {
-//         "crc": "0x51077d14"
-//     }
-//
-type ACLPluginGetConnTableMaxEntries struct{}
-
-func (*ACLPluginGetConnTableMaxEntries) GetMessageName() string {
-       return "acl_plugin_get_conn_table_max_entries"
-}
-func (*ACLPluginGetConnTableMaxEntries) GetCrcString() string {
-       return "51077d14"
-}
-func (*ACLPluginGetConnTableMaxEntries) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// ACLPluginGetConnTableMaxEntriesReply represents VPP binary API message 'acl_plugin_get_conn_table_max_entries_reply':
-//
-//     "acl_plugin_get_conn_table_max_entries_reply",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "u64",
-//         "conn_table_max_entries"
-//     ],
-//     {
-//         "crc": "0x7a096d3d"
-//     }
-//
-type ACLPluginGetConnTableMaxEntriesReply struct {
-       ConnTableMaxEntries uint64
-}
-
-func (*ACLPluginGetConnTableMaxEntriesReply) GetMessageName() string {
-       return "acl_plugin_get_conn_table_max_entries_reply"
-}
-func (*ACLPluginGetConnTableMaxEntriesReply) GetCrcString() string {
-       return "7a096d3d"
-}
-func (*ACLPluginGetConnTableMaxEntriesReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
 // ACLAddReplace represents VPP binary API message 'acl_add_replace':
 //
 //     "acl_add_replace",
@@ -614,94 +406,97 @@ func (*ACLDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ACLInterfaceAddDel represents VPP binary API message 'acl_interface_add_del':
+// ACLDetails represents VPP binary API message 'acl_details':
 //
-//     "acl_interface_add_del",
+//     "acl_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
 //         "context"
 //     ],
 //     [
-//         "u8",
-//         "is_add"
+//         "u32",
+//         "acl_index"
 //     ],
 //     [
 //         "u8",
-//         "is_input"
+//         "tag",
+//         64
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "count"
 //     ],
 //     [
-//         "u32",
-//         "acl_index"
+//         "vl_api_acl_rule_t",
+//         "r",
+//         0,
+//         "count"
 //     ],
 //     {
-//         "crc": "0x0b2aedd1"
+//         "crc": "0x5bd895be"
 //     }
 //
-type ACLInterfaceAddDel struct {
-       IsAdd     uint8
-       IsInput   uint8
-       SwIfIndex uint32
-       ACLIndex  uint32
+type ACLDetails struct {
+       ACLIndex uint32
+       Tag      []byte `struc:"[64]byte"`
+       Count    uint32 `struc:"sizeof=R"`
+       R        []ACLRule
 }
 
-func (*ACLInterfaceAddDel) GetMessageName() string {
-       return "acl_interface_add_del"
+func (*ACLDetails) GetMessageName() string {
+       return "acl_details"
 }
-func (*ACLInterfaceAddDel) GetCrcString() string {
-       return "0b2aedd1"
+func (*ACLDetails) GetCrcString() string {
+       return "5bd895be"
 }
-func (*ACLInterfaceAddDel) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*ACLDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-// ACLInterfaceAddDelReply represents VPP binary API message 'acl_interface_add_del_reply':
+// ACLDump represents VPP binary API message 'acl_dump':
 //
-//     "acl_interface_add_del_reply",
+//     "acl_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
 //         "context"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u32",
+//         "acl_index"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0xef34fea4"
 //     }
 //
-type ACLInterfaceAddDelReply struct {
-       Retval int32
+type ACLDump struct {
+       ACLIndex uint32
 }
 
-func (*ACLInterfaceAddDelReply) GetMessageName() string {
-       return "acl_interface_add_del_reply"
+func (*ACLDump) GetMessageName() string {
+       return "acl_dump"
 }
-func (*ACLInterfaceAddDelReply) GetCrcString() string {
-       return "e8d4e804"
+func (*ACLDump) GetCrcString() string {
+       return "ef34fea4"
 }
-func (*ACLInterfaceAddDelReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*ACLDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// ACLInterfaceSetACLList represents VPP binary API message 'acl_interface_set_acl_list':
+// ACLInterfaceAddDel represents VPP binary API message 'acl_interface_add_del':
 //
-//     "acl_interface_set_acl_list",
+//     "acl_interface_add_del",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -715,47 +510,45 @@ func (*ACLInterfaceAddDelReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "u8",
+//         "is_add"
 //     ],
 //     [
 //         "u8",
-//         "count"
+//         "is_input"
 //     ],
 //     [
-//         "u8",
-//         "n_input"
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     [
 //         "u32",
-//         "acls",
-//         0,
-//         "count"
+//         "acl_index"
 //     ],
 //     {
-//         "crc": "0x8baece38"
+//         "crc": "0x0b2aedd1"
 //     }
 //
-type ACLInterfaceSetACLList struct {
+type ACLInterfaceAddDel struct {
+       IsAdd     uint8
+       IsInput   uint8
        SwIfIndex uint32
-       Count     uint8 `struc:"sizeof=Acls"`
-       NInput    uint8
-       Acls      []uint32
+       ACLIndex  uint32
 }
 
-func (*ACLInterfaceSetACLList) GetMessageName() string {
-       return "acl_interface_set_acl_list"
+func (*ACLInterfaceAddDel) GetMessageName() string {
+       return "acl_interface_add_del"
 }
-func (*ACLInterfaceSetACLList) GetCrcString() string {
-       return "8baece38"
+func (*ACLInterfaceAddDel) GetCrcString() string {
+       return "0b2aedd1"
 }
-func (*ACLInterfaceSetACLList) GetMessageType() api.MessageType {
+func (*ACLInterfaceAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ACLInterfaceSetACLListReply represents VPP binary API message 'acl_interface_set_acl_list_reply':
+// ACLInterfaceAddDelReply represents VPP binary API message 'acl_interface_add_del_reply':
 //
-//     "acl_interface_set_acl_list_reply",
+//     "acl_interface_add_del_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -772,60 +565,23 @@ func (*ACLInterfaceSetACLList) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type ACLInterfaceSetACLListReply struct {
+type ACLInterfaceAddDelReply struct {
        Retval int32
 }
 
-func (*ACLInterfaceSetACLListReply) GetMessageName() string {
-       return "acl_interface_set_acl_list_reply"
+func (*ACLInterfaceAddDelReply) GetMessageName() string {
+       return "acl_interface_add_del_reply"
 }
-func (*ACLInterfaceSetACLListReply) GetCrcString() string {
+func (*ACLInterfaceAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*ACLInterfaceSetACLListReply) GetMessageType() api.MessageType {
+func (*ACLInterfaceAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ACLDump represents VPP binary API message 'acl_dump':
-//
-//     "acl_dump",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "u32",
-//         "acl_index"
-//     ],
-//     {
-//         "crc": "0xef34fea4"
-//     }
-//
-type ACLDump struct {
-       ACLIndex uint32
-}
-
-func (*ACLDump) GetMessageName() string {
-       return "acl_dump"
-}
-func (*ACLDump) GetCrcString() string {
-       return "ef34fea4"
-}
-func (*ACLDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// ACLDetails represents VPP binary API message 'acl_details':
+// ACLInterfaceEtypeWhitelistDetails represents VPP binary API message 'acl_interface_etype_whitelist_details':
 //
-//     "acl_details",
+//     "acl_interface_etype_whitelist_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -836,47 +592,46 @@ func (*ACLDump) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "acl_index"
+//         "sw_if_index"
 //     ],
 //     [
 //         "u8",
-//         "tag",
-//         64
+//         "count"
 //     ],
 //     [
-//         "u32",
-//         "count"
+//         "u8",
+//         "n_input"
 //     ],
 //     [
-//         "vl_api_acl_rule_t",
-//         "r",
+//         "u16",
+//         "whitelist",
 //         0,
 //         "count"
 //     ],
 //     {
-//         "crc": "0x5bd895be"
+//         "crc": "0x6a5d4e81"
 //     }
 //
-type ACLDetails struct {
-       ACLIndex uint32
-       Tag      []byte `struc:"[64]byte"`
-       Count    uint32 `struc:"sizeof=R"`
-       R        []ACLRule
+type ACLInterfaceEtypeWhitelistDetails struct {
+       SwIfIndex uint32
+       Count     uint8 `struc:"sizeof=Whitelist"`
+       NInput    uint8
+       Whitelist []uint16
 }
 
-func (*ACLDetails) GetMessageName() string {
-       return "acl_details"
+func (*ACLInterfaceEtypeWhitelistDetails) GetMessageName() string {
+       return "acl_interface_etype_whitelist_details"
 }
-func (*ACLDetails) GetCrcString() string {
-       return "5bd895be"
+func (*ACLInterfaceEtypeWhitelistDetails) GetCrcString() string {
+       return "6a5d4e81"
 }
-func (*ACLDetails) GetMessageType() api.MessageType {
+func (*ACLInterfaceEtypeWhitelistDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ACLInterfaceListDump represents VPP binary API message 'acl_interface_list_dump':
+// ACLInterfaceEtypeWhitelistDump represents VPP binary API message 'acl_interface_etype_whitelist_dump':
 //
-//     "acl_interface_list_dump",
+//     "acl_interface_etype_whitelist_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -897,17 +652,17 @@ func (*ACLDetails) GetMessageType() api.MessageType {
 //         "crc": "0x529cb13f"
 //     }
 //
-type ACLInterfaceListDump struct {
+type ACLInterfaceEtypeWhitelistDump struct {
        SwIfIndex uint32
 }
 
-func (*ACLInterfaceListDump) GetMessageName() string {
-       return "acl_interface_list_dump"
+func (*ACLInterfaceEtypeWhitelistDump) GetMessageName() string {
+       return "acl_interface_etype_whitelist_dump"
 }
-func (*ACLInterfaceListDump) GetCrcString() string {
+func (*ACLInterfaceEtypeWhitelistDump) GetCrcString() string {
        return "529cb13f"
 }
-func (*ACLInterfaceListDump) GetMessageType() api.MessageType {
+func (*ACLInterfaceEtypeWhitelistDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
@@ -961,9 +716,9 @@ func (*ACLInterfaceListDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MacipACLAdd represents VPP binary API message 'macip_acl_add':
+// ACLInterfaceListDump represents VPP binary API message 'acl_interface_list_dump':
 //
-//     "macip_acl_add",
+//     "acl_interface_list_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -977,81 +732,117 @@ func (*ACLInterfaceListDetails) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u8",
-//         "tag",
-//         64
-//     ],
-//     [
 //         "u32",
-//         "count"
-//     ],
-//     [
-//         "vl_api_macip_acl_rule_t",
-//         "r",
-//         0,
-//         "count"
+//         "sw_if_index"
 //     ],
 //     {
-//         "crc": "0xb3d3d65a"
+//         "crc": "0x529cb13f"
 //     }
 //
-type MacipACLAdd struct {
-       Tag   []byte `struc:"[64]byte"`
-       Count uint32 `struc:"sizeof=R"`
-       R     []MacipACLRule
+type ACLInterfaceListDump struct {
+       SwIfIndex uint32
 }
 
-func (*MacipACLAdd) GetMessageName() string {
-       return "macip_acl_add"
+func (*ACLInterfaceListDump) GetMessageName() string {
+       return "acl_interface_list_dump"
 }
-func (*MacipACLAdd) GetCrcString() string {
-       return "b3d3d65a"
+func (*ACLInterfaceListDump) GetCrcString() string {
+       return "529cb13f"
 }
-func (*MacipACLAdd) GetMessageType() api.MessageType {
+func (*ACLInterfaceListDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MacipACLAddReply represents VPP binary API message 'macip_acl_add_reply':
+// ACLInterfaceSetACLList represents VPP binary API message 'acl_interface_set_acl_list':
 //
-//     "macip_acl_add_reply",
+//     "acl_interface_set_acl_list",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
 //         "context"
 //     ],
 //     [
 //         "u32",
-//         "acl_index"
+//         "sw_if_index"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u8",
+//         "count"
+//     ],
+//     [
+//         "u8",
+//         "n_input"
+//     ],
+//     [
+//         "u32",
+//         "acls",
+//         0,
+//         "count"
 //     ],
 //     {
-//         "crc": "0xac407b0c"
+//         "crc": "0x8baece38"
 //     }
 //
-type MacipACLAddReply struct {
-       ACLIndex uint32
-       Retval   int32
+type ACLInterfaceSetACLList struct {
+       SwIfIndex uint32
+       Count     uint8 `struc:"sizeof=Acls"`
+       NInput    uint8
+       Acls      []uint32
 }
 
-func (*MacipACLAddReply) GetMessageName() string {
-       return "macip_acl_add_reply"
+func (*ACLInterfaceSetACLList) GetMessageName() string {
+       return "acl_interface_set_acl_list"
 }
-func (*MacipACLAddReply) GetCrcString() string {
-       return "ac407b0c"
+func (*ACLInterfaceSetACLList) GetCrcString() string {
+       return "8baece38"
 }
-func (*MacipACLAddReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*ACLInterfaceSetACLList) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// MacipACLAddReplace represents VPP binary API message 'macip_acl_add_replace':
+// ACLInterfaceSetACLListReply represents VPP binary API message 'acl_interface_set_acl_list_reply':
 //
-//     "macip_acl_add_replace",
+//     "acl_interface_set_acl_list_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     {
+//         "crc": "0xe8d4e804"
+//     }
+//
+type ACLInterfaceSetACLListReply struct {
+       Retval int32
+}
+
+func (*ACLInterfaceSetACLListReply) GetMessageName() string {
+       return "acl_interface_set_acl_list_reply"
+}
+func (*ACLInterfaceSetACLListReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*ACLInterfaceSetACLListReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// ACLInterfaceSetEtypeWhitelist represents VPP binary API message 'acl_interface_set_etype_whitelist':
+//
+//     "acl_interface_set_etype_whitelist",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1066,47 +857,46 @@ func (*MacipACLAddReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "acl_index"
+//         "sw_if_index"
 //     ],
 //     [
 //         "u8",
-//         "tag",
-//         64
+//         "count"
 //     ],
 //     [
-//         "u32",
-//         "count"
+//         "u8",
+//         "n_input"
 //     ],
 //     [
-//         "vl_api_macip_acl_rule_t",
-//         "r",
+//         "u16",
+//         "whitelist",
 //         0,
 //         "count"
 //     ],
 //     {
-//         "crc": "0xa0e8c01b"
+//         "crc": "0xf515efc5"
 //     }
 //
-type MacipACLAddReplace struct {
-       ACLIndex uint32
-       Tag      []byte `struc:"[64]byte"`
-       Count    uint32 `struc:"sizeof=R"`
-       R        []MacipACLRule
+type ACLInterfaceSetEtypeWhitelist struct {
+       SwIfIndex uint32
+       Count     uint8 `struc:"sizeof=Whitelist"`
+       NInput    uint8
+       Whitelist []uint16
 }
 
-func (*MacipACLAddReplace) GetMessageName() string {
-       return "macip_acl_add_replace"
+func (*ACLInterfaceSetEtypeWhitelist) GetMessageName() string {
+       return "acl_interface_set_etype_whitelist"
 }
-func (*MacipACLAddReplace) GetCrcString() string {
-       return "a0e8c01b"
+func (*ACLInterfaceSetEtypeWhitelist) GetCrcString() string {
+       return "f515efc5"
 }
-func (*MacipACLAddReplace) GetMessageType() api.MessageType {
+func (*ACLInterfaceSetEtypeWhitelist) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MacipACLAddReplaceReply represents VPP binary API message 'macip_acl_add_replace_reply':
+// ACLInterfaceSetEtypeWhitelistReply represents VPP binary API message 'acl_interface_set_etype_whitelist_reply':
 //
-//     "macip_acl_add_replace_reply",
+//     "acl_interface_set_etype_whitelist_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1116,35 +906,30 @@ func (*MacipACLAddReplace) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "acl_index"
-//     ],
-//     [
 //         "i32",
 //         "retval"
 //     ],
 //     {
-//         "crc": "0xac407b0c"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type MacipACLAddReplaceReply struct {
-       ACLIndex uint32
-       Retval   int32
+type ACLInterfaceSetEtypeWhitelistReply struct {
+       Retval int32
 }
 
-func (*MacipACLAddReplaceReply) GetMessageName() string {
-       return "macip_acl_add_replace_reply"
+func (*ACLInterfaceSetEtypeWhitelistReply) GetMessageName() string {
+       return "acl_interface_set_etype_whitelist_reply"
 }
-func (*MacipACLAddReplaceReply) GetCrcString() string {
-       return "ac407b0c"
+func (*ACLInterfaceSetEtypeWhitelistReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*MacipACLAddReplaceReply) GetMessageType() api.MessageType {
+func (*ACLInterfaceSetEtypeWhitelistReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MacipACLDel represents VPP binary API message 'macip_acl_del':
+// ACLPluginControlPing represents VPP binary API message 'acl_plugin_control_ping':
 //
-//     "macip_acl_del",
+//     "acl_plugin_control_ping",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1157,31 +942,25 @@ func (*MacipACLAddReplaceReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
-//     [
-//         "u32",
-//         "acl_index"
-//     ],
 //     {
-//         "crc": "0xef34fea4"
+//         "crc": "0x51077d14"
 //     }
 //
-type MacipACLDel struct {
-       ACLIndex uint32
-}
+type ACLPluginControlPing struct{}
 
-func (*MacipACLDel) GetMessageName() string {
-       return "macip_acl_del"
+func (*ACLPluginControlPing) GetMessageName() string {
+       return "acl_plugin_control_ping"
 }
-func (*MacipACLDel) GetCrcString() string {
-       return "ef34fea4"
+func (*ACLPluginControlPing) GetCrcString() string {
+       return "51077d14"
 }
-func (*MacipACLDel) GetMessageType() api.MessageType {
+func (*ACLPluginControlPing) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MacipACLDelReply represents VPP binary API message 'macip_acl_del_reply':
+// ACLPluginControlPingReply represents VPP binary API message 'acl_plugin_control_ping_reply':
 //
-//     "macip_acl_del_reply",
+//     "acl_plugin_control_ping_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1194,27 +973,37 @@ func (*MacipACLDel) GetMessageType() api.MessageType {
 //         "i32",
 //         "retval"
 //     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "vpe_pid"
+//     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0xf6b0b8ca"
 //     }
 //
-type MacipACLDelReply struct {
-       Retval int32
+type ACLPluginControlPingReply struct {
+       Retval      int32
+       ClientIndex uint32
+       VpePID      uint32
 }
 
-func (*MacipACLDelReply) GetMessageName() string {
-       return "macip_acl_del_reply"
+func (*ACLPluginControlPingReply) GetMessageName() string {
+       return "acl_plugin_control_ping_reply"
 }
-func (*MacipACLDelReply) GetCrcString() string {
-       return "e8d4e804"
+func (*ACLPluginControlPingReply) GetCrcString() string {
+       return "f6b0b8ca"
 }
-func (*MacipACLDelReply) GetMessageType() api.MessageType {
+func (*ACLPluginControlPingReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MacipACLInterfaceAddDel represents VPP binary API message 'macip_acl_interface_add_del':
+// ACLPluginGetConnTableMaxEntries represents VPP binary API message 'acl_plugin_get_conn_table_max_entries':
 //
-//     "macip_acl_interface_add_del",
+//     "acl_plugin_get_conn_table_max_entries",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1227,41 +1016,25 @@ func (*MacipACLDelReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
-//     [
-//         "u8",
-//         "is_add"
-//     ],
-//     [
-//         "u32",
-//         "sw_if_index"
-//     ],
-//     [
-//         "u32",
-//         "acl_index"
-//     ],
 //     {
-//         "crc": "0x6a6be97c"
+//         "crc": "0x51077d14"
 //     }
 //
-type MacipACLInterfaceAddDel struct {
-       IsAdd     uint8
-       SwIfIndex uint32
-       ACLIndex  uint32
-}
+type ACLPluginGetConnTableMaxEntries struct{}
 
-func (*MacipACLInterfaceAddDel) GetMessageName() string {
-       return "macip_acl_interface_add_del"
+func (*ACLPluginGetConnTableMaxEntries) GetMessageName() string {
+       return "acl_plugin_get_conn_table_max_entries"
 }
-func (*MacipACLInterfaceAddDel) GetCrcString() string {
-       return "6a6be97c"
+func (*ACLPluginGetConnTableMaxEntries) GetCrcString() string {
+       return "51077d14"
 }
-func (*MacipACLInterfaceAddDel) GetMessageType() api.MessageType {
+func (*ACLPluginGetConnTableMaxEntries) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MacipACLInterfaceAddDelReply represents VPP binary API message 'macip_acl_interface_add_del_reply':
+// ACLPluginGetConnTableMaxEntriesReply represents VPP binary API message 'acl_plugin_get_conn_table_max_entries_reply':
 //
-//     "macip_acl_interface_add_del_reply",
+//     "acl_plugin_get_conn_table_max_entries_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1271,30 +1044,30 @@ func (*MacipACLInterfaceAddDel) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u64",
+//         "conn_table_max_entries"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0x7a096d3d"
 //     }
 //
-type MacipACLInterfaceAddDelReply struct {
-       Retval int32
+type ACLPluginGetConnTableMaxEntriesReply struct {
+       ConnTableMaxEntries uint64
 }
 
-func (*MacipACLInterfaceAddDelReply) GetMessageName() string {
-       return "macip_acl_interface_add_del_reply"
+func (*ACLPluginGetConnTableMaxEntriesReply) GetMessageName() string {
+       return "acl_plugin_get_conn_table_max_entries_reply"
 }
-func (*MacipACLInterfaceAddDelReply) GetCrcString() string {
-       return "e8d4e804"
+func (*ACLPluginGetConnTableMaxEntriesReply) GetCrcString() string {
+       return "7a096d3d"
 }
-func (*MacipACLInterfaceAddDelReply) GetMessageType() api.MessageType {
+func (*ACLPluginGetConnTableMaxEntriesReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MacipACLDump represents VPP binary API message 'macip_acl_dump':
+// ACLPluginGetVersion represents VPP binary API message 'acl_plugin_get_version':
 //
-//     "macip_acl_dump",
+//     "acl_plugin_get_version",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1307,31 +1080,25 @@ func (*MacipACLInterfaceAddDelReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
-//     [
-//         "u32",
-//         "acl_index"
-//     ],
 //     {
-//         "crc": "0xef34fea4"
+//         "crc": "0x51077d14"
 //     }
 //
-type MacipACLDump struct {
-       ACLIndex uint32
-}
+type ACLPluginGetVersion struct{}
 
-func (*MacipACLDump) GetMessageName() string {
-       return "macip_acl_dump"
+func (*ACLPluginGetVersion) GetMessageName() string {
+       return "acl_plugin_get_version"
 }
-func (*MacipACLDump) GetCrcString() string {
-       return "ef34fea4"
+func (*ACLPluginGetVersion) GetCrcString() string {
+       return "51077d14"
 }
-func (*MacipACLDump) GetMessageType() api.MessageType {
+func (*ACLPluginGetVersion) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MacipACLDetails represents VPP binary API message 'macip_acl_details':
+// ACLPluginGetVersionReply represents VPP binary API message 'acl_plugin_get_version_reply':
 //
-//     "macip_acl_details",
+//     "acl_plugin_get_version_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1342,47 +1109,34 @@ func (*MacipACLDump) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "acl_index"
-//     ],
-//     [
-//         "u8",
-//         "tag",
-//         64
+//         "major"
 //     ],
 //     [
 //         "u32",
-//         "count"
-//     ],
-//     [
-//         "vl_api_macip_acl_rule_t",
-//         "r",
-//         0,
-//         "count"
+//         "minor"
 //     ],
 //     {
-//         "crc": "0xdd2b55ba"
+//         "crc": "0x9b32cf86"
 //     }
 //
-type MacipACLDetails struct {
-       ACLIndex uint32
-       Tag      []byte `struc:"[64]byte"`
-       Count    uint32 `struc:"sizeof=R"`
-       R        []MacipACLRule
+type ACLPluginGetVersionReply struct {
+       Major uint32
+       Minor uint32
 }
 
-func (*MacipACLDetails) GetMessageName() string {
-       return "macip_acl_details"
+func (*ACLPluginGetVersionReply) GetMessageName() string {
+       return "acl_plugin_get_version_reply"
 }
-func (*MacipACLDetails) GetCrcString() string {
-       return "dd2b55ba"
+func (*ACLPluginGetVersionReply) GetCrcString() string {
+       return "9b32cf86"
 }
-func (*MacipACLDetails) GetMessageType() api.MessageType {
+func (*ACLPluginGetVersionReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MacipACLInterfaceGet represents VPP binary API message 'macip_acl_interface_get':
+// MacipACLAdd represents VPP binary API message 'macip_acl_add':
 //
-//     "macip_acl_interface_get",
+//     "macip_acl_add",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1395,65 +1149,175 @@ func (*MacipACLDetails) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
+//     [
+//         "u8",
+//         "tag",
+//         64
+//     ],
+//     [
+//         "u32",
+//         "count"
+//     ],
+//     [
+//         "vl_api_macip_acl_rule_t",
+//         "r",
+//         0,
+//         "count"
+//     ],
 //     {
-//         "crc": "0x51077d14"
+//         "crc": "0xb3d3d65a"
 //     }
 //
-type MacipACLInterfaceGet struct{}
+type MacipACLAdd struct {
+       Tag   []byte `struc:"[64]byte"`
+       Count uint32 `struc:"sizeof=R"`
+       R     []MacipACLRule
+}
 
-func (*MacipACLInterfaceGet) GetMessageName() string {
-       return "macip_acl_interface_get"
+func (*MacipACLAdd) GetMessageName() string {
+       return "macip_acl_add"
 }
-func (*MacipACLInterfaceGet) GetCrcString() string {
-       return "51077d14"
+func (*MacipACLAdd) GetCrcString() string {
+       return "b3d3d65a"
 }
-func (*MacipACLInterfaceGet) GetMessageType() api.MessageType {
+func (*MacipACLAdd) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MacipACLInterfaceGetReply represents VPP binary API message 'macip_acl_interface_get_reply':
+// MacipACLAddReplace represents VPP binary API message 'macip_acl_add_replace':
 //
-//     "macip_acl_interface_get_reply",
+//     "macip_acl_add_replace",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
 //         "context"
 //     ],
 //     [
 //         "u32",
-//         "count"
+//         "acl_index"
+//     ],
+//     [
+//         "u8",
+//         "tag",
+//         64
 //     ],
 //     [
 //         "u32",
-//         "acls",
+//         "count"
+//     ],
+//     [
+//         "vl_api_macip_acl_rule_t",
+//         "r",
 //         0,
 //         "count"
 //     ],
 //     {
-//         "crc": "0xaccf9b05"
+//         "crc": "0xa0e8c01b"
 //     }
 //
-type MacipACLInterfaceGetReply struct {
-       Count uint32 `struc:"sizeof=Acls"`
-       Acls  []uint32
+type MacipACLAddReplace struct {
+       ACLIndex uint32
+       Tag      []byte `struc:"[64]byte"`
+       Count    uint32 `struc:"sizeof=R"`
+       R        []MacipACLRule
 }
 
-func (*MacipACLInterfaceGetReply) GetMessageName() string {
-       return "macip_acl_interface_get_reply"
+func (*MacipACLAddReplace) GetMessageName() string {
+       return "macip_acl_add_replace"
 }
-func (*MacipACLInterfaceGetReply) GetCrcString() string {
-       return "accf9b05"
+func (*MacipACLAddReplace) GetCrcString() string {
+       return "a0e8c01b"
 }
-func (*MacipACLInterfaceGetReply) GetMessageType() api.MessageType {
+func (*MacipACLAddReplace) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// MacipACLAddReplaceReply represents VPP binary API message 'macip_acl_add_replace_reply':
+//
+//     "macip_acl_add_replace_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "acl_index"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     {
+//         "crc": "0xac407b0c"
+//     }
+//
+type MacipACLAddReplaceReply struct {
+       ACLIndex uint32
+       Retval   int32
+}
+
+func (*MacipACLAddReplaceReply) GetMessageName() string {
+       return "macip_acl_add_replace_reply"
+}
+func (*MacipACLAddReplaceReply) GetCrcString() string {
+       return "ac407b0c"
+}
+func (*MacipACLAddReplaceReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MacipACLInterfaceListDump represents VPP binary API message 'macip_acl_interface_list_dump':
+// MacipACLAddReply represents VPP binary API message 'macip_acl_add_reply':
 //
-//     "macip_acl_interface_list_dump",
+//     "macip_acl_add_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "acl_index"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     {
+//         "crc": "0xac407b0c"
+//     }
+//
+type MacipACLAddReply struct {
+       ACLIndex uint32
+       Retval   int32
+}
+
+func (*MacipACLAddReply) GetMessageName() string {
+       return "macip_acl_add_reply"
+}
+func (*MacipACLAddReply) GetCrcString() string {
+       return "ac407b0c"
+}
+func (*MacipACLAddReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// MacipACLDel represents VPP binary API message 'macip_acl_del':
+//
+//     "macip_acl_del",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1468,29 +1332,29 @@ func (*MacipACLInterfaceGetReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "acl_index"
 //     ],
 //     {
-//         "crc": "0x529cb13f"
+//         "crc": "0xef34fea4"
 //     }
 //
-type MacipACLInterfaceListDump struct {
-       SwIfIndex uint32
+type MacipACLDel struct {
+       ACLIndex uint32
 }
 
-func (*MacipACLInterfaceListDump) GetMessageName() string {
-       return "macip_acl_interface_list_dump"
+func (*MacipACLDel) GetMessageName() string {
+       return "macip_acl_del"
 }
-func (*MacipACLInterfaceListDump) GetCrcString() string {
-       return "529cb13f"
+func (*MacipACLDel) GetCrcString() string {
+       return "ef34fea4"
 }
-func (*MacipACLInterfaceListDump) GetMessageType() api.MessageType {
+func (*MacipACLDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MacipACLInterfaceListDetails represents VPP binary API message 'macip_acl_interface_list_details':
+// MacipACLDelReply represents VPP binary API message 'macip_acl_del_reply':
 //
-//     "macip_acl_interface_list_details",
+//     "macip_acl_del_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1500,42 +1364,81 @@ func (*MacipACLInterfaceListDump) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
+//         "i32",
+//         "retval"
+//     ],
+//     {
+//         "crc": "0xe8d4e804"
+//     }
+//
+type MacipACLDelReply struct {
+       Retval int32
+}
+
+func (*MacipACLDelReply) GetMessageName() string {
+       return "macip_acl_del_reply"
+}
+func (*MacipACLDelReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*MacipACLDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// MacipACLDetails represents VPP binary API message 'macip_acl_details':
+//
+//     "macip_acl_details",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
 //         "u32",
-//         "sw_if_index"
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "acl_index"
 //     ],
 //     [
 //         "u8",
-//         "count"
+//         "tag",
+//         64
 //     ],
 //     [
 //         "u32",
-//         "acls",
+//         "count"
+//     ],
+//     [
+//         "vl_api_macip_acl_rule_t",
+//         "r",
 //         0,
 //         "count"
 //     ],
 //     {
-//         "crc": "0x29783fa0"
+//         "crc": "0xdd2b55ba"
 //     }
 //
-type MacipACLInterfaceListDetails struct {
-       SwIfIndex uint32
-       Count     uint8 `struc:"sizeof=Acls"`
-       Acls      []uint32
+type MacipACLDetails struct {
+       ACLIndex uint32
+       Tag      []byte `struc:"[64]byte"`
+       Count    uint32 `struc:"sizeof=R"`
+       R        []MacipACLRule
 }
 
-func (*MacipACLInterfaceListDetails) GetMessageName() string {
-       return "macip_acl_interface_list_details"
+func (*MacipACLDetails) GetMessageName() string {
+       return "macip_acl_details"
 }
-func (*MacipACLInterfaceListDetails) GetCrcString() string {
-       return "29783fa0"
+func (*MacipACLDetails) GetCrcString() string {
+       return "dd2b55ba"
 }
-func (*MacipACLInterfaceListDetails) GetMessageType() api.MessageType {
+func (*MacipACLDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ACLInterfaceSetEtypeWhitelist represents VPP binary API message 'acl_interface_set_etype_whitelist':
+// MacipACLDump represents VPP binary API message 'macip_acl_dump':
 //
-//     "acl_interface_set_etype_whitelist",
+//     "macip_acl_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1550,46 +1453,76 @@ func (*MacipACLInterfaceListDetails) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "acl_index"
+//     ],
+//     {
+//         "crc": "0xef34fea4"
+//     }
+//
+type MacipACLDump struct {
+       ACLIndex uint32
+}
+
+func (*MacipACLDump) GetMessageName() string {
+       return "macip_acl_dump"
+}
+func (*MacipACLDump) GetCrcString() string {
+       return "ef34fea4"
+}
+func (*MacipACLDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// MacipACLInterfaceAddDel represents VPP binary API message 'macip_acl_interface_add_del':
+//
+//     "macip_acl_interface_add_del",
+//     [
+//         "u16",
+//         "_vl_msg_id"
 //     ],
 //     [
-//         "u8",
-//         "count"
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
 //     ],
 //     [
 //         "u8",
-//         "n_input"
+//         "is_add"
 //     ],
 //     [
-//         "u16",
-//         "whitelist",
-//         0,
-//         "count"
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
+//         "u32",
+//         "acl_index"
 //     ],
 //     {
-//         "crc": "0xf515efc5"
+//         "crc": "0x6a6be97c"
 //     }
 //
-type ACLInterfaceSetEtypeWhitelist struct {
+type MacipACLInterfaceAddDel struct {
+       IsAdd     uint8
        SwIfIndex uint32
-       Count     uint8 `struc:"sizeof=Whitelist"`
-       NInput    uint8
-       Whitelist []uint16
+       ACLIndex  uint32
 }
 
-func (*ACLInterfaceSetEtypeWhitelist) GetMessageName() string {
-       return "acl_interface_set_etype_whitelist"
+func (*MacipACLInterfaceAddDel) GetMessageName() string {
+       return "macip_acl_interface_add_del"
 }
-func (*ACLInterfaceSetEtypeWhitelist) GetCrcString() string {
-       return "f515efc5"
+func (*MacipACLInterfaceAddDel) GetCrcString() string {
+       return "6a6be97c"
 }
-func (*ACLInterfaceSetEtypeWhitelist) GetMessageType() api.MessageType {
+func (*MacipACLInterfaceAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ACLInterfaceSetEtypeWhitelistReply represents VPP binary API message 'acl_interface_set_etype_whitelist_reply':
+// MacipACLInterfaceAddDelReply represents VPP binary API message 'macip_acl_interface_add_del_reply':
 //
-//     "acl_interface_set_etype_whitelist_reply",
+//     "macip_acl_interface_add_del_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1606,23 +1539,23 @@ func (*ACLInterfaceSetEtypeWhitelist) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type ACLInterfaceSetEtypeWhitelistReply struct {
+type MacipACLInterfaceAddDelReply struct {
        Retval int32
 }
 
-func (*ACLInterfaceSetEtypeWhitelistReply) GetMessageName() string {
-       return "acl_interface_set_etype_whitelist_reply"
+func (*MacipACLInterfaceAddDelReply) GetMessageName() string {
+       return "macip_acl_interface_add_del_reply"
 }
-func (*ACLInterfaceSetEtypeWhitelistReply) GetCrcString() string {
+func (*MacipACLInterfaceAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*ACLInterfaceSetEtypeWhitelistReply) GetMessageType() api.MessageType {
+func (*MacipACLInterfaceAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ACLInterfaceEtypeWhitelistDump represents VPP binary API message 'acl_interface_etype_whitelist_dump':
+// MacipACLInterfaceGet represents VPP binary API message 'macip_acl_interface_get':
 //
-//     "acl_interface_etype_whitelist_dump",
+//     "macip_acl_interface_get",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1635,31 +1568,65 @@ func (*ACLInterfaceSetEtypeWhitelistReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
+//     {
+//         "crc": "0x51077d14"
+//     }
+//
+type MacipACLInterfaceGet struct{}
+
+func (*MacipACLInterfaceGet) GetMessageName() string {
+       return "macip_acl_interface_get"
+}
+func (*MacipACLInterfaceGet) GetCrcString() string {
+       return "51077d14"
+}
+func (*MacipACLInterfaceGet) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// MacipACLInterfaceGetReply represents VPP binary API message 'macip_acl_interface_get_reply':
+//
+//     "macip_acl_interface_get_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "count"
+//     ],
+//     [
+//         "u32",
+//         "acls",
+//         0,
+//         "count"
 //     ],
 //     {
-//         "crc": "0x529cb13f"
+//         "crc": "0xaccf9b05"
 //     }
 //
-type ACLInterfaceEtypeWhitelistDump struct {
-       SwIfIndex uint32
+type MacipACLInterfaceGetReply struct {
+       Count uint32 `struc:"sizeof=Acls"`
+       Acls  []uint32
 }
 
-func (*ACLInterfaceEtypeWhitelistDump) GetMessageName() string {
-       return "acl_interface_etype_whitelist_dump"
+func (*MacipACLInterfaceGetReply) GetMessageName() string {
+       return "macip_acl_interface_get_reply"
 }
-func (*ACLInterfaceEtypeWhitelistDump) GetCrcString() string {
-       return "529cb13f"
+func (*MacipACLInterfaceGetReply) GetCrcString() string {
+       return "accf9b05"
 }
-func (*ACLInterfaceEtypeWhitelistDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*MacipACLInterfaceGetReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-// ACLInterfaceEtypeWhitelistDetails represents VPP binary API message 'acl_interface_etype_whitelist_details':
+// MacipACLInterfaceListDetails represents VPP binary API message 'macip_acl_interface_list_details':
 //
-//     "acl_interface_etype_whitelist_details",
+//     "macip_acl_interface_list_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1677,71 +1644,103 @@ func (*ACLInterfaceEtypeWhitelistDump) GetMessageType() api.MessageType {
 //         "count"
 //     ],
 //     [
-//         "u8",
-//         "n_input"
-//     ],
-//     [
-//         "u16",
-//         "whitelist",
+//         "u32",
+//         "acls",
 //         0,
 //         "count"
 //     ],
 //     {
-//         "crc": "0x6a5d4e81"
+//         "crc": "0x29783fa0"
 //     }
 //
-type ACLInterfaceEtypeWhitelistDetails struct {
+type MacipACLInterfaceListDetails struct {
        SwIfIndex uint32
-       Count     uint8 `struc:"sizeof=Whitelist"`
-       NInput    uint8
-       Whitelist []uint16
+       Count     uint8 `struc:"sizeof=Acls"`
+       Acls      []uint32
 }
 
-func (*ACLInterfaceEtypeWhitelistDetails) GetMessageName() string {
-       return "acl_interface_etype_whitelist_details"
+func (*MacipACLInterfaceListDetails) GetMessageName() string {
+       return "macip_acl_interface_list_details"
 }
-func (*ACLInterfaceEtypeWhitelistDetails) GetCrcString() string {
-       return "6a5d4e81"
+func (*MacipACLInterfaceListDetails) GetCrcString() string {
+       return "29783fa0"
 }
-func (*ACLInterfaceEtypeWhitelistDetails) GetMessageType() api.MessageType {
+func (*MacipACLInterfaceListDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
+// MacipACLInterfaceListDump represents VPP binary API message 'macip_acl_interface_list_dump':
+//
+//     "macip_acl_interface_list_dump",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     {
+//         "crc": "0x529cb13f"
+//     }
+//
+type MacipACLInterfaceListDump struct {
+       SwIfIndex uint32
+}
+
+func (*MacipACLInterfaceListDump) GetMessageName() string {
+       return "macip_acl_interface_list_dump"
+}
+func (*MacipACLInterfaceListDump) GetCrcString() string {
+       return "529cb13f"
+}
+func (*MacipACLInterfaceListDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
 func init() {
-       api.RegisterMessage((*ACLPluginGetVersion)(nil), "acl.ACLPluginGetVersion")
-       api.RegisterMessage((*ACLPluginGetVersionReply)(nil), "acl.ACLPluginGetVersionReply")
-       api.RegisterMessage((*ACLPluginControlPing)(nil), "acl.ACLPluginControlPing")
-       api.RegisterMessage((*ACLPluginControlPingReply)(nil), "acl.ACLPluginControlPingReply")
-       api.RegisterMessage((*ACLPluginGetConnTableMaxEntries)(nil), "acl.ACLPluginGetConnTableMaxEntries")
-       api.RegisterMessage((*ACLPluginGetConnTableMaxEntriesReply)(nil), "acl.ACLPluginGetConnTableMaxEntriesReply")
        api.RegisterMessage((*ACLAddReplace)(nil), "acl.ACLAddReplace")
        api.RegisterMessage((*ACLAddReplaceReply)(nil), "acl.ACLAddReplaceReply")
        api.RegisterMessage((*ACLDel)(nil), "acl.ACLDel")
        api.RegisterMessage((*ACLDelReply)(nil), "acl.ACLDelReply")
+       api.RegisterMessage((*ACLDetails)(nil), "acl.ACLDetails")
+       api.RegisterMessage((*ACLDump)(nil), "acl.ACLDump")
        api.RegisterMessage((*ACLInterfaceAddDel)(nil), "acl.ACLInterfaceAddDel")
        api.RegisterMessage((*ACLInterfaceAddDelReply)(nil), "acl.ACLInterfaceAddDelReply")
+       api.RegisterMessage((*ACLInterfaceEtypeWhitelistDetails)(nil), "acl.ACLInterfaceEtypeWhitelistDetails")
+       api.RegisterMessage((*ACLInterfaceEtypeWhitelistDump)(nil), "acl.ACLInterfaceEtypeWhitelistDump")
+       api.RegisterMessage((*ACLInterfaceListDetails)(nil), "acl.ACLInterfaceListDetails")
+       api.RegisterMessage((*ACLInterfaceListDump)(nil), "acl.ACLInterfaceListDump")
        api.RegisterMessage((*ACLInterfaceSetACLList)(nil), "acl.ACLInterfaceSetACLList")
        api.RegisterMessage((*ACLInterfaceSetACLListReply)(nil), "acl.ACLInterfaceSetACLListReply")
-       api.RegisterMessage((*ACLDump)(nil), "acl.ACLDump")
-       api.RegisterMessage((*ACLDetails)(nil), "acl.ACLDetails")
-       api.RegisterMessage((*ACLInterfaceListDump)(nil), "acl.ACLInterfaceListDump")
-       api.RegisterMessage((*ACLInterfaceListDetails)(nil), "acl.ACLInterfaceListDetails")
+       api.RegisterMessage((*ACLInterfaceSetEtypeWhitelist)(nil), "acl.ACLInterfaceSetEtypeWhitelist")
+       api.RegisterMessage((*ACLInterfaceSetEtypeWhitelistReply)(nil), "acl.ACLInterfaceSetEtypeWhitelistReply")
+       api.RegisterMessage((*ACLPluginControlPing)(nil), "acl.ACLPluginControlPing")
+       api.RegisterMessage((*ACLPluginControlPingReply)(nil), "acl.ACLPluginControlPingReply")
+       api.RegisterMessage((*ACLPluginGetConnTableMaxEntries)(nil), "acl.ACLPluginGetConnTableMaxEntries")
+       api.RegisterMessage((*ACLPluginGetConnTableMaxEntriesReply)(nil), "acl.ACLPluginGetConnTableMaxEntriesReply")
+       api.RegisterMessage((*ACLPluginGetVersion)(nil), "acl.ACLPluginGetVersion")
+       api.RegisterMessage((*ACLPluginGetVersionReply)(nil), "acl.ACLPluginGetVersionReply")
        api.RegisterMessage((*MacipACLAdd)(nil), "acl.MacipACLAdd")
-       api.RegisterMessage((*MacipACLAddReply)(nil), "acl.MacipACLAddReply")
        api.RegisterMessage((*MacipACLAddReplace)(nil), "acl.MacipACLAddReplace")
        api.RegisterMessage((*MacipACLAddReplaceReply)(nil), "acl.MacipACLAddReplaceReply")
+       api.RegisterMessage((*MacipACLAddReply)(nil), "acl.MacipACLAddReply")
        api.RegisterMessage((*MacipACLDel)(nil), "acl.MacipACLDel")
        api.RegisterMessage((*MacipACLDelReply)(nil), "acl.MacipACLDelReply")
+       api.RegisterMessage((*MacipACLDetails)(nil), "acl.MacipACLDetails")
+       api.RegisterMessage((*MacipACLDump)(nil), "acl.MacipACLDump")
        api.RegisterMessage((*MacipACLInterfaceAddDel)(nil), "acl.MacipACLInterfaceAddDel")
        api.RegisterMessage((*MacipACLInterfaceAddDelReply)(nil), "acl.MacipACLInterfaceAddDelReply")
-       api.RegisterMessage((*MacipACLDump)(nil), "acl.MacipACLDump")
-       api.RegisterMessage((*MacipACLDetails)(nil), "acl.MacipACLDetails")
        api.RegisterMessage((*MacipACLInterfaceGet)(nil), "acl.MacipACLInterfaceGet")
        api.RegisterMessage((*MacipACLInterfaceGetReply)(nil), "acl.MacipACLInterfaceGetReply")
-       api.RegisterMessage((*MacipACLInterfaceListDump)(nil), "acl.MacipACLInterfaceListDump")
        api.RegisterMessage((*MacipACLInterfaceListDetails)(nil), "acl.MacipACLInterfaceListDetails")
-       api.RegisterMessage((*ACLInterfaceSetEtypeWhitelist)(nil), "acl.ACLInterfaceSetEtypeWhitelist")
-       api.RegisterMessage((*ACLInterfaceSetEtypeWhitelistReply)(nil), "acl.ACLInterfaceSetEtypeWhitelistReply")
-       api.RegisterMessage((*ACLInterfaceEtypeWhitelistDump)(nil), "acl.ACLInterfaceEtypeWhitelistDump")
-       api.RegisterMessage((*ACLInterfaceEtypeWhitelistDetails)(nil), "acl.ACLInterfaceEtypeWhitelistDetails")
+       api.RegisterMessage((*MacipACLInterfaceListDump)(nil), "acl.MacipACLInterfaceListDump")
 }
index 93d5e58..668c95a 100644 (file)
@@ -5,9 +5,8 @@
  Package af_packet is a generated from VPP binary API module 'af_packet'.
 
  It contains following objects:
-         8 messages
          4 services
-
+         8 messages
 */
 package af_packet
 
@@ -205,84 +204,79 @@ func (*AfPacketDeleteReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// AfPacketSetL4CksumOffload represents VPP binary API message 'af_packet_set_l4_cksum_offload':
+// AfPacketDetails represents VPP binary API message 'af_packet_details':
 //
-//     "af_packet_set_l4_cksum_offload",
+//     "af_packet_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
 //         "context"
 //     ],
 //     [
-//         "u8",
+//         "u32",
 //         "sw_if_index"
 //     ],
 //     [
 //         "u8",
-//         "set"
+//         "host_if_name",
+//         64
 //     ],
 //     {
-//         "crc": "0x86538585"
+//         "crc": "0x057205fa"
 //     }
 //
-type AfPacketSetL4CksumOffload struct {
-       SwIfIndex uint8
-       Set       uint8
+type AfPacketDetails struct {
+       SwIfIndex  uint32
+       HostIfName []byte `struc:"[64]byte"`
 }
 
-func (*AfPacketSetL4CksumOffload) GetMessageName() string {
-       return "af_packet_set_l4_cksum_offload"
+func (*AfPacketDetails) GetMessageName() string {
+       return "af_packet_details"
 }
-func (*AfPacketSetL4CksumOffload) GetCrcString() string {
-       return "86538585"
+func (*AfPacketDetails) GetCrcString() string {
+       return "057205fa"
 }
-func (*AfPacketSetL4CksumOffload) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*AfPacketDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-// AfPacketSetL4CksumOffloadReply represents VPP binary API message 'af_packet_set_l4_cksum_offload_reply':
+// AfPacketDump represents VPP binary API message 'af_packet_dump':
 //
-//     "af_packet_set_l4_cksum_offload_reply",
+//     "af_packet_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "client_index"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u32",
+//         "context"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0x51077d14"
 //     }
 //
-type AfPacketSetL4CksumOffloadReply struct {
-       Retval int32
-}
+type AfPacketDump struct{}
 
-func (*AfPacketSetL4CksumOffloadReply) GetMessageName() string {
-       return "af_packet_set_l4_cksum_offload_reply"
+func (*AfPacketDump) GetMessageName() string {
+       return "af_packet_dump"
 }
-func (*AfPacketSetL4CksumOffloadReply) GetCrcString() string {
-       return "e8d4e804"
+func (*AfPacketDump) GetCrcString() string {
+       return "51077d14"
 }
-func (*AfPacketSetL4CksumOffloadReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*AfPacketDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// AfPacketDump represents VPP binary API message 'af_packet_dump':
+// AfPacketSetL4CksumOffload represents VPP binary API message 'af_packet_set_l4_cksum_offload':
 //
-//     "af_packet_dump",
+//     "af_packet_set_l4_cksum_offload",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -295,25 +289,36 @@ func (*AfPacketSetL4CksumOffloadReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
+//     [
+//         "u8",
+//         "sw_if_index"
+//     ],
+//     [
+//         "u8",
+//         "set"
+//     ],
 //     {
-//         "crc": "0x51077d14"
+//         "crc": "0x86538585"
 //     }
 //
-type AfPacketDump struct{}
+type AfPacketSetL4CksumOffload struct {
+       SwIfIndex uint8
+       Set       uint8
+}
 
-func (*AfPacketDump) GetMessageName() string {
-       return "af_packet_dump"
+func (*AfPacketSetL4CksumOffload) GetMessageName() string {
+       return "af_packet_set_l4_cksum_offload"
 }
-func (*AfPacketDump) GetCrcString() string {
-       return "51077d14"
+func (*AfPacketSetL4CksumOffload) GetCrcString() string {
+       return "86538585"
 }
-func (*AfPacketDump) GetMessageType() api.MessageType {
+func (*AfPacketSetL4CksumOffload) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// AfPacketDetails represents VPP binary API message 'af_packet_details':
+// AfPacketSetL4CksumOffloadReply represents VPP binary API message 'af_packet_set_l4_cksum_offload_reply':
 //
-//     "af_packet_details",
+//     "af_packet_set_l4_cksum_offload_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -323,30 +328,24 @@ func (*AfPacketDump) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
-//     ],
-//     [
-//         "u8",
-//         "host_if_name",
-//         64
+//         "i32",
+//         "retval"
 //     ],
 //     {
-//         "crc": "0x057205fa"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type AfPacketDetails struct {
-       SwIfIndex  uint32
-       HostIfName []byte `struc:"[64]byte"`
+type AfPacketSetL4CksumOffloadReply struct {
+       Retval int32
 }
 
-func (*AfPacketDetails) GetMessageName() string {
-       return "af_packet_details"
+func (*AfPacketSetL4CksumOffloadReply) GetMessageName() string {
+       return "af_packet_set_l4_cksum_offload_reply"
 }
-func (*AfPacketDetails) GetCrcString() string {
-       return "057205fa"
+func (*AfPacketSetL4CksumOffloadReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*AfPacketDetails) GetMessageType() api.MessageType {
+func (*AfPacketSetL4CksumOffloadReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
@@ -355,8 +354,8 @@ func init() {
        api.RegisterMessage((*AfPacketCreateReply)(nil), "af_packet.AfPacketCreateReply")
        api.RegisterMessage((*AfPacketDelete)(nil), "af_packet.AfPacketDelete")
        api.RegisterMessage((*AfPacketDeleteReply)(nil), "af_packet.AfPacketDeleteReply")
+       api.RegisterMessage((*AfPacketDetails)(nil), "af_packet.AfPacketDetails")
+       api.RegisterMessage((*AfPacketDump)(nil), "af_packet.AfPacketDump")
        api.RegisterMessage((*AfPacketSetL4CksumOffload)(nil), "af_packet.AfPacketSetL4CksumOffload")
        api.RegisterMessage((*AfPacketSetL4CksumOffloadReply)(nil), "af_packet.AfPacketSetL4CksumOffloadReply")
-       api.RegisterMessage((*AfPacketDump)(nil), "af_packet.AfPacketDump")
-       api.RegisterMessage((*AfPacketDetails)(nil), "af_packet.AfPacketDetails")
 }
index 2e90fbf..2f9b943 100644 (file)
@@ -5,10 +5,9 @@
  Package interfaces is a generated from VPP binary API module 'interface'.
 
  It contains following objects:
-        51 messages
-         1 alias
         25 services
-
+         1 alias
+        51 messages
 */
 package interfaces
 
@@ -146,9 +145,9 @@ type InterfaceIndex uint32
 
 /* Messages */
 
-// SwInterfaceSetFlags represents VPP binary API message 'sw_interface_set_flags':
+// CollectDetailedInterfaceStats represents VPP binary API message 'collect_detailed_interface_stats':
 //
-//     "sw_interface_set_flags",
+//     "collect_detailed_interface_stats",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -167,30 +166,30 @@ type InterfaceIndex uint32
 //     ],
 //     [
 //         "u8",
-//         "admin_up_down"
+//         "enable_disable"
 //     ],
 //     {
-//         "crc": "0x555485f5"
+//         "crc": "0x69d24598"
 //     }
 //
-type SwInterfaceSetFlags struct {
-       SwIfIndex   uint32
-       AdminUpDown uint8
+type CollectDetailedInterfaceStats struct {
+       SwIfIndex     uint32
+       EnableDisable uint8
 }
 
-func (*SwInterfaceSetFlags) GetMessageName() string {
-       return "sw_interface_set_flags"
+func (*CollectDetailedInterfaceStats) GetMessageName() string {
+       return "collect_detailed_interface_stats"
 }
-func (*SwInterfaceSetFlags) GetCrcString() string {
-       return "555485f5"
+func (*CollectDetailedInterfaceStats) GetCrcString() string {
+       return "69d24598"
 }
-func (*SwInterfaceSetFlags) GetMessageType() api.MessageType {
+func (*CollectDetailedInterfaceStats) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SwInterfaceSetFlagsReply represents VPP binary API message 'sw_interface_set_flags_reply':
+// CollectDetailedInterfaceStatsReply represents VPP binary API message 'collect_detailed_interface_stats_reply':
 //
-//     "sw_interface_set_flags_reply",
+//     "collect_detailed_interface_stats_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -207,23 +206,23 @@ func (*SwInterfaceSetFlags) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type SwInterfaceSetFlagsReply struct {
+type CollectDetailedInterfaceStatsReply struct {
        Retval int32
 }
 
-func (*SwInterfaceSetFlagsReply) GetMessageName() string {
-       return "sw_interface_set_flags_reply"
+func (*CollectDetailedInterfaceStatsReply) GetMessageName() string {
+       return "collect_detailed_interface_stats_reply"
 }
-func (*SwInterfaceSetFlagsReply) GetCrcString() string {
+func (*CollectDetailedInterfaceStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*SwInterfaceSetFlagsReply) GetMessageType() api.MessageType {
+func (*CollectDetailedInterfaceStatsReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// HwInterfaceSetMtu represents VPP binary API message 'hw_interface_set_mtu':
+// CreateLoopback represents VPP binary API message 'create_loopback':
 //
-//     "hw_interface_set_mtu",
+//     "create_loopback",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -237,111 +236,117 @@ func (*SwInterfaceSetFlagsReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
-//     ],
-//     [
-//         "u16",
-//         "mtu"
+//         "u8",
+//         "mac_address",
+//         6
 //     ],
 //     {
-//         "crc": "0x132da1e7"
+//         "crc": "0x3b54129c"
 //     }
 //
-type HwInterfaceSetMtu struct {
-       SwIfIndex uint32
-       Mtu       uint16
+type CreateLoopback struct {
+       MacAddress []byte `struc:"[6]byte"`
 }
 
-func (*HwInterfaceSetMtu) GetMessageName() string {
-       return "hw_interface_set_mtu"
+func (*CreateLoopback) GetMessageName() string {
+       return "create_loopback"
 }
-func (*HwInterfaceSetMtu) GetCrcString() string {
-       return "132da1e7"
+func (*CreateLoopback) GetCrcString() string {
+       return "3b54129c"
 }
-func (*HwInterfaceSetMtu) GetMessageType() api.MessageType {
+func (*CreateLoopback) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// HwInterfaceSetMtuReply represents VPP binary API message 'hw_interface_set_mtu_reply':
+// CreateLoopbackInstance represents VPP binary API message 'create_loopback_instance':
 //
-//     "hw_interface_set_mtu_reply",
+//     "create_loopback_instance",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
 //         "context"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u8",
+//         "mac_address",
+//         6
+//     ],
+//     [
+//         "u8",
+//         "is_specified"
+//     ],
+//     [
+//         "u32",
+//         "user_instance"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0x7bbd53b6"
 //     }
 //
-type HwInterfaceSetMtuReply struct {
-       Retval int32
+type CreateLoopbackInstance struct {
+       MacAddress   []byte `struc:"[6]byte"`
+       IsSpecified  uint8
+       UserInstance uint32
 }
 
-func (*HwInterfaceSetMtuReply) GetMessageName() string {
-       return "hw_interface_set_mtu_reply"
+func (*CreateLoopbackInstance) GetMessageName() string {
+       return "create_loopback_instance"
 }
-func (*HwInterfaceSetMtuReply) GetCrcString() string {
-       return "e8d4e804"
+func (*CreateLoopbackInstance) GetCrcString() string {
+       return "7bbd53b6"
 }
-func (*HwInterfaceSetMtuReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*CreateLoopbackInstance) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// SwInterfaceSetMtu represents VPP binary API message 'sw_interface_set_mtu':
+// CreateLoopbackInstanceReply represents VPP binary API message 'create_loopback_instance_reply':
 //
-//     "sw_interface_set_mtu",
+//     "create_loopback_instance_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "i32",
+//         "retval"
 //     ],
 //     [
 //         "u32",
-//         "mtu",
-//         4
+//         "sw_if_index"
 //     ],
 //     {
-//         "crc": "0xd0008db8"
+//         "crc": "0xfda5941f"
 //     }
 //
-type SwInterfaceSetMtu struct {
+type CreateLoopbackInstanceReply struct {
+       Retval    int32
        SwIfIndex uint32
-       Mtu       []uint32 `struc:"[4]uint32"`
 }
 
-func (*SwInterfaceSetMtu) GetMessageName() string {
-       return "sw_interface_set_mtu"
+func (*CreateLoopbackInstanceReply) GetMessageName() string {
+       return "create_loopback_instance_reply"
 }
-func (*SwInterfaceSetMtu) GetCrcString() string {
-       return "d0008db8"
+func (*CreateLoopbackInstanceReply) GetCrcString() string {
+       return "fda5941f"
 }
-func (*SwInterfaceSetMtu) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*CreateLoopbackInstanceReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-// SwInterfaceSetMtuReply represents VPP binary API message 'sw_interface_set_mtu_reply':
+// CreateLoopbackReply represents VPP binary API message 'create_loopback_reply':
 //
-//     "sw_interface_set_mtu_reply",
+//     "create_loopback_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -354,27 +359,32 @@ func (*SwInterfaceSetMtu) GetMessageType() api.MessageType {
 //         "i32",
 //         "retval"
 //     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0xfda5941f"
 //     }
 //
-type SwInterfaceSetMtuReply struct {
-       Retval int32
+type CreateLoopbackReply struct {
+       Retval    int32
+       SwIfIndex uint32
 }
 
-func (*SwInterfaceSetMtuReply) GetMessageName() string {
-       return "sw_interface_set_mtu_reply"
+func (*CreateLoopbackReply) GetMessageName() string {
+       return "create_loopback_reply"
 }
-func (*SwInterfaceSetMtuReply) GetCrcString() string {
-       return "e8d4e804"
+func (*CreateLoopbackReply) GetCrcString() string {
+       return "fda5941f"
 }
-func (*SwInterfaceSetMtuReply) GetMessageType() api.MessageType {
+func (*CreateLoopbackReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceSetIPDirectedBroadcast represents VPP binary API message 'sw_interface_set_ip_directed_broadcast':
+// CreateSubif represents VPP binary API message 'create_subif':
 //
-//     "sw_interface_set_ip_directed_broadcast",
+//     "create_subif",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -392,31 +402,81 @@ func (*SwInterfaceSetMtuReply) GetMessageType() api.MessageType {
 //         "sw_if_index"
 //     ],
 //     [
+//         "u32",
+//         "sub_id"
+//     ],
+//     [
 //         "u8",
-//         "enable"
+//         "no_tags"
+//     ],
+//     [
+//         "u8",
+//         "one_tag"
+//     ],
+//     [
+//         "u8",
+//         "two_tags"
+//     ],
+//     [
+//         "u8",
+//         "dot1ad"
+//     ],
+//     [
+//         "u8",
+//         "exact_match"
+//     ],
+//     [
+//         "u8",
+//         "default_sub"
+//     ],
+//     [
+//         "u8",
+//         "outer_vlan_id_any"
+//     ],
+//     [
+//         "u8",
+//         "inner_vlan_id_any"
+//     ],
+//     [
+//         "u16",
+//         "outer_vlan_id"
+//     ],
+//     [
+//         "u16",
+//         "inner_vlan_id"
 //     ],
 //     {
-//         "crc": "0xa36fadc0"
+//         "crc": "0x86cfe408"
 //     }
 //
-type SwInterfaceSetIPDirectedBroadcast struct {
-       SwIfIndex uint32
-       Enable    uint8
+type CreateSubif struct {
+       SwIfIndex      uint32
+       SubID          uint32
+       NoTags         uint8
+       OneTag         uint8
+       TwoTags        uint8
+       Dot1ad         uint8
+       ExactMatch     uint8
+       DefaultSub     uint8
+       OuterVlanIDAny uint8
+       InnerVlanIDAny uint8
+       OuterVlanID    uint16
+       InnerVlanID    uint16
 }
 
-func (*SwInterfaceSetIPDirectedBroadcast) GetMessageName() string {
-       return "sw_interface_set_ip_directed_broadcast"
+func (*CreateSubif) GetMessageName() string {
+       return "create_subif"
 }
-func (*SwInterfaceSetIPDirectedBroadcast) GetCrcString() string {
-       return "a36fadc0"
+func (*CreateSubif) GetCrcString() string {
+       return "86cfe408"
 }
-func (*SwInterfaceSetIPDirectedBroadcast) GetMessageType() api.MessageType {
+func (*CreateSubif) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SwInterfaceSetIPDirectedBroadcastReply represents VPP binary API message 'sw_interface_set_ip_directed_broadcast_reply':
+// CreateSubifReply represents VPP binary API message 'create_subif_reply':
 //
-//     "sw_interface_set_ip_directed_broadcast_reply",
+//     "create_subif_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -429,27 +489,32 @@ func (*SwInterfaceSetIPDirectedBroadcast) GetMessageType() api.MessageType {
 //         "i32",
 //         "retval"
 //     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0xfda5941f"
 //     }
 //
-type SwInterfaceSetIPDirectedBroadcastReply struct {
-       Retval int32
+type CreateSubifReply struct {
+       Retval    int32
+       SwIfIndex uint32
 }
 
-func (*SwInterfaceSetIPDirectedBroadcastReply) GetMessageName() string {
-       return "sw_interface_set_ip_directed_broadcast_reply"
+func (*CreateSubifReply) GetMessageName() string {
+       return "create_subif_reply"
 }
-func (*SwInterfaceSetIPDirectedBroadcastReply) GetCrcString() string {
-       return "e8d4e804"
+func (*CreateSubifReply) GetCrcString() string {
+       return "fda5941f"
 }
-func (*SwInterfaceSetIPDirectedBroadcastReply) GetMessageType() api.MessageType {
+func (*CreateSubifReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceEvent represents VPP binary API message 'sw_interface_event':
+// CreateVlanSubif represents VPP binary API message 'create_vlan_subif':
 //
-//     "sw_interface_event",
+//     "create_vlan_subif",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -460,49 +525,76 @@ func (*SwInterfaceSetIPDirectedBroadcastReply) GetMessageType() api.MessageType
 //     ],
 //     [
 //         "u32",
-//         "pid"
+//         "context"
 //     ],
 //     [
 //         "u32",
 //         "sw_if_index"
 //     ],
 //     [
-//         "u8",
-//         "admin_up_down"
+//         "u32",
+//         "vlan_id"
+//     ],
+//     {
+//         "crc": "0x70cadeda"
+//     }
+//
+type CreateVlanSubif struct {
+       SwIfIndex uint32
+       VlanID    uint32
+}
+
+func (*CreateVlanSubif) GetMessageName() string {
+       return "create_vlan_subif"
+}
+func (*CreateVlanSubif) GetCrcString() string {
+       return "70cadeda"
+}
+func (*CreateVlanSubif) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// CreateVlanSubifReply represents VPP binary API message 'create_vlan_subif_reply':
+//
+//     "create_vlan_subif_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
 //     ],
 //     [
-//         "u8",
-//         "link_up_down"
+//         "u32",
+//         "context"
 //     ],
 //     [
-//         "u8",
-//         "deleted"
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     {
-//         "crc": "0xbf9938e4"
+//         "crc": "0xfda5941f"
 //     }
 //
-type SwInterfaceEvent struct {
-       PID         uint32
-       SwIfIndex   uint32
-       AdminUpDown uint8
-       LinkUpDown  uint8
-       Deleted     uint8
+type CreateVlanSubifReply struct {
+       Retval    int32
+       SwIfIndex uint32
 }
 
-func (*SwInterfaceEvent) GetMessageName() string {
-       return "sw_interface_event"
+func (*CreateVlanSubifReply) GetMessageName() string {
+       return "create_vlan_subif_reply"
 }
-func (*SwInterfaceEvent) GetCrcString() string {
-       return "bf9938e4"
+func (*CreateVlanSubifReply) GetCrcString() string {
+       return "fda5941f"
 }
-func (*SwInterfaceEvent) GetMessageType() api.MessageType {
-       return api.EventMessage
+func (*CreateVlanSubifReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-// WantInterfaceEvents represents VPP binary API message 'want_interface_events':
+// DeleteLoopback represents VPP binary API message 'delete_loopback':
 //
-//     "want_interface_events",
+//     "delete_loopback",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -517,34 +609,29 @@ func (*SwInterfaceEvent) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "enable_disable"
-//     ],
-//     [
-//         "u32",
-//         "pid"
+//         "sw_if_index"
 //     ],
 //     {
-//         "crc": "0x476f5a08"
+//         "crc": "0x529cb13f"
 //     }
 //
-type WantInterfaceEvents struct {
-       EnableDisable uint32
-       PID           uint32
+type DeleteLoopback struct {
+       SwIfIndex uint32
 }
 
-func (*WantInterfaceEvents) GetMessageName() string {
-       return "want_interface_events"
+func (*DeleteLoopback) GetMessageName() string {
+       return "delete_loopback"
 }
-func (*WantInterfaceEvents) GetCrcString() string {
-       return "476f5a08"
+func (*DeleteLoopback) GetCrcString() string {
+       return "529cb13f"
 }
-func (*WantInterfaceEvents) GetMessageType() api.MessageType {
+func (*DeleteLoopback) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// WantInterfaceEventsReply represents VPP binary API message 'want_interface_events_reply':
+// DeleteLoopbackReply represents VPP binary API message 'delete_loopback_reply':
 //
-//     "want_interface_events_reply",
+//     "delete_loopback_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -561,250 +648,238 @@ func (*WantInterfaceEvents) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type WantInterfaceEventsReply struct {
+type DeleteLoopbackReply struct {
        Retval int32
 }
 
-func (*WantInterfaceEventsReply) GetMessageName() string {
-       return "want_interface_events_reply"
+func (*DeleteLoopbackReply) GetMessageName() string {
+       return "delete_loopback_reply"
 }
-func (*WantInterfaceEventsReply) GetCrcString() string {
+func (*DeleteLoopbackReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*WantInterfaceEventsReply) GetMessageType() api.MessageType {
+func (*DeleteLoopbackReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceDetails represents VPP binary API message 'sw_interface_details':
+// DeleteSubif represents VPP binary API message 'delete_subif':
 //
-//     "sw_interface_details",
+//     "delete_subif",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "context"
-//     ],
-//     [
-//         "u32",
-//         "sw_if_index"
+//         "client_index"
 //     ],
 //     [
 //         "u32",
-//         "sup_sw_if_index"
+//         "context"
 //     ],
 //     [
 //         "u32",
-//         "l2_address_length"
-//     ],
-//     [
-//         "u8",
-//         "l2_address",
-//         8
-//     ],
-//     [
-//         "u8",
-//         "interface_name",
-//         64
-//     ],
-//     [
-//         "u8",
-//         "admin_up_down"
+//         "sw_if_index"
 //     ],
+//     {
+//         "crc": "0x529cb13f"
+//     }
+//
+type DeleteSubif struct {
+       SwIfIndex uint32
+}
+
+func (*DeleteSubif) GetMessageName() string {
+       return "delete_subif"
+}
+func (*DeleteSubif) GetCrcString() string {
+       return "529cb13f"
+}
+func (*DeleteSubif) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// DeleteSubifReply represents VPP binary API message 'delete_subif_reply':
+//
+//     "delete_subif_reply",
 //     [
-//         "u8",
-//         "link_up_down"
+//         "u16",
+//         "_vl_msg_id"
 //     ],
 //     [
-//         "u8",
-//         "link_duplex"
+//         "u32",
+//         "context"
 //     ],
 //     [
-//         "u32",
-//         "link_speed"
+//         "i32",
+//         "retval"
 //     ],
+//     {
+//         "crc": "0xe8d4e804"
+//     }
+//
+type DeleteSubifReply struct {
+       Retval int32
+}
+
+func (*DeleteSubifReply) GetMessageName() string {
+       return "delete_subif_reply"
+}
+func (*DeleteSubifReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*DeleteSubifReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// HwInterfaceSetMtu represents VPP binary API message 'hw_interface_set_mtu':
+//
+//     "hw_interface_set_mtu",
 //     [
 //         "u16",
-//         "link_mtu"
+//         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "mtu",
-//         4
+//         "client_index"
 //     ],
 //     [
 //         "u32",
-//         "sub_id"
-//     ],
-//     [
-//         "u8",
-//         "sub_dot1ad"
+//         "context"
 //     ],
 //     [
-//         "u8",
-//         "sub_dot1ah"
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     [
-//         "u8",
-//         "sub_number_of_tags"
+//         "u16",
+//         "mtu"
 //     ],
+//     {
+//         "crc": "0x132da1e7"
+//     }
+//
+type HwInterfaceSetMtu struct {
+       SwIfIndex uint32
+       Mtu       uint16
+}
+
+func (*HwInterfaceSetMtu) GetMessageName() string {
+       return "hw_interface_set_mtu"
+}
+func (*HwInterfaceSetMtu) GetCrcString() string {
+       return "132da1e7"
+}
+func (*HwInterfaceSetMtu) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// HwInterfaceSetMtuReply represents VPP binary API message 'hw_interface_set_mtu_reply':
+//
+//     "hw_interface_set_mtu_reply",
 //     [
 //         "u16",
-//         "sub_outer_vlan_id"
+//         "_vl_msg_id"
 //     ],
 //     [
-//         "u16",
-//         "sub_inner_vlan_id"
+//         "u32",
+//         "context"
 //     ],
 //     [
-//         "u8",
-//         "sub_exact_match"
-//     ],
-//     [
-//         "u8",
-//         "sub_default"
-//     ],
-//     [
-//         "u8",
-//         "sub_outer_vlan_id_any"
-//     ],
-//     [
-//         "u8",
-//         "sub_inner_vlan_id_any"
+//         "i32",
+//         "retval"
 //     ],
+//     {
+//         "crc": "0xe8d4e804"
+//     }
+//
+type HwInterfaceSetMtuReply struct {
+       Retval int32
+}
+
+func (*HwInterfaceSetMtuReply) GetMessageName() string {
+       return "hw_interface_set_mtu_reply"
+}
+func (*HwInterfaceSetMtuReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*HwInterfaceSetMtuReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// InterfaceNameRenumber represents VPP binary API message 'interface_name_renumber':
+//
+//     "interface_name_renumber",
 //     [
-//         "u32",
-//         "vtr_op"
+//         "u16",
+//         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "vtr_push_dot1q"
+//         "client_index"
 //     ],
 //     [
 //         "u32",
-//         "vtr_tag1"
+//         "context"
 //     ],
 //     [
 //         "u32",
-//         "vtr_tag2"
-//     ],
-//     [
-//         "u8",
-//         "tag",
-//         64
-//     ],
-//     [
-//         "u16",
-//         "outer_tag"
-//     ],
-//     [
-//         "u8",
-//         "b_dmac",
-//         6
-//     ],
-//     [
-//         "u8",
-//         "b_smac",
-//         6
-//     ],
-//     [
-//         "u16",
-//         "b_vlanid"
+//         "sw_if_index"
 //     ],
 //     [
 //         "u32",
-//         "i_sid"
+//         "new_show_dev_instance"
 //     ],
 //     {
-//         "crc": "0xe4ee7eb6"
+//         "crc": "0x39194269"
 //     }
 //
-type SwInterfaceDetails struct {
-       SwIfIndex         uint32
-       SupSwIfIndex      uint32
-       L2AddressLength   uint32
-       L2Address         []byte `struc:"[8]byte"`
-       InterfaceName     []byte `struc:"[64]byte"`
-       AdminUpDown       uint8
-       LinkUpDown        uint8
-       LinkDuplex        uint8
-       LinkSpeed         uint32
-       LinkMtu           uint16
-       Mtu               []uint32 `struc:"[4]uint32"`
-       SubID             uint32
-       SubDot1ad         uint8
-       SubDot1ah         uint8
-       SubNumberOfTags   uint8
-       SubOuterVlanID    uint16
-       SubInnerVlanID    uint16
-       SubExactMatch     uint8
-       SubDefault        uint8
-       SubOuterVlanIDAny uint8
-       SubInnerVlanIDAny uint8
-       VtrOp             uint32
-       VtrPushDot1q      uint32
-       VtrTag1           uint32
-       VtrTag2           uint32
-       Tag               []byte `struc:"[64]byte"`
-       OuterTag          uint16
-       BDmac             []byte `struc:"[6]byte"`
-       BSmac             []byte `struc:"[6]byte"`
-       BVlanid           uint16
-       ISid              uint32
+type InterfaceNameRenumber struct {
+       SwIfIndex          uint32
+       NewShowDevInstance uint32
 }
 
-func (*SwInterfaceDetails) GetMessageName() string {
-       return "sw_interface_details"
+func (*InterfaceNameRenumber) GetMessageName() string {
+       return "interface_name_renumber"
 }
-func (*SwInterfaceDetails) GetCrcString() string {
-       return "e4ee7eb6"
+func (*InterfaceNameRenumber) GetCrcString() string {
+       return "39194269"
 }
-func (*SwInterfaceDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*InterfaceNameRenumber) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// SwInterfaceDump represents VPP binary API message 'sw_interface_dump':
+// InterfaceNameRenumberReply represents VPP binary API message 'interface_name_renumber_reply':
 //
-//     "sw_interface_dump",
+//     "interface_name_renumber_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
 //         "context"
 //     ],
 //     [
-//         "u8",
-//         "name_filter_valid"
-//     ],
-//     [
-//         "u8",
-//         "name_filter",
-//         49
+//         "i32",
+//         "retval"
 //     ],
 //     {
-//         "crc": "0x63f5e3b7"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type SwInterfaceDump struct {
-       NameFilterValid uint8
-       NameFilter      []byte `struc:"[49]byte"`
+type InterfaceNameRenumberReply struct {
+       Retval int32
 }
 
-func (*SwInterfaceDump) GetMessageName() string {
-       return "sw_interface_dump"
+func (*InterfaceNameRenumberReply) GetMessageName() string {
+       return "interface_name_renumber_reply"
 }
-func (*SwInterfaceDump) GetCrcString() string {
-       return "63f5e3b7"
+func (*InterfaceNameRenumberReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*SwInterfaceDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*InterfaceNameRenumberReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
 // SwInterfaceAddDelAddress represents VPP binary API message 'sw_interface_add_del_address':
@@ -903,9 +978,9 @@ func (*SwInterfaceAddDelAddressReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceSetTable represents VPP binary API message 'sw_interface_set_table':
+// SwInterfaceClearStats represents VPP binary API message 'sw_interface_clear_stats':
 //
-//     "sw_interface_set_table",
+//     "sw_interface_clear_stats",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -922,37 +997,27 @@ func (*SwInterfaceAddDelAddressReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "sw_if_index"
 //     ],
-//     [
-//         "u8",
-//         "is_ipv6"
-//     ],
-//     [
-//         "u32",
-//         "vrf_id"
-//     ],
 //     {
-//         "crc": "0xacb25d89"
+//         "crc": "0x529cb13f"
 //     }
 //
-type SwInterfaceSetTable struct {
+type SwInterfaceClearStats struct {
        SwIfIndex uint32
-       IsIPv6    uint8
-       VrfID     uint32
 }
 
-func (*SwInterfaceSetTable) GetMessageName() string {
-       return "sw_interface_set_table"
+func (*SwInterfaceClearStats) GetMessageName() string {
+       return "sw_interface_clear_stats"
 }
-func (*SwInterfaceSetTable) GetCrcString() string {
-       return "acb25d89"
+func (*SwInterfaceClearStats) GetCrcString() string {
+       return "529cb13f"
 }
-func (*SwInterfaceSetTable) GetMessageType() api.MessageType {
+func (*SwInterfaceClearStats) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SwInterfaceSetTableReply represents VPP binary API message 'sw_interface_set_table_reply':
+// SwInterfaceClearStatsReply represents VPP binary API message 'sw_interface_clear_stats_reply':
 //
-//     "sw_interface_set_table_reply",
+//     "sw_interface_clear_stats_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -969,334 +1034,212 @@ func (*SwInterfaceSetTable) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type SwInterfaceSetTableReply struct {
+type SwInterfaceClearStatsReply struct {
        Retval int32
 }
 
-func (*SwInterfaceSetTableReply) GetMessageName() string {
-       return "sw_interface_set_table_reply"
+func (*SwInterfaceClearStatsReply) GetMessageName() string {
+       return "sw_interface_clear_stats_reply"
 }
-func (*SwInterfaceSetTableReply) GetCrcString() string {
+func (*SwInterfaceClearStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*SwInterfaceSetTableReply) GetMessageType() api.MessageType {
+func (*SwInterfaceClearStatsReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceGetTable represents VPP binary API message 'sw_interface_get_table':
+// SwInterfaceDetails represents VPP binary API message 'sw_interface_details':
 //
-//     "sw_interface_get_table",
+//     "sw_interface_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
+//         "context"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "sw_if_index"
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "sup_sw_if_index"
+//     ],
+//     [
+//         "u32",
+//         "l2_address_length"
 //     ],
 //     [
 //         "u8",
-//         "is_ipv6"
+//         "l2_address",
+//         8
 //     ],
-//     {
-//         "crc": "0x6b7bcd0a"
-//     }
-//
-type SwInterfaceGetTable struct {
-       SwIfIndex uint32
-       IsIPv6    uint8
-}
-
-func (*SwInterfaceGetTable) GetMessageName() string {
-       return "sw_interface_get_table"
-}
-func (*SwInterfaceGetTable) GetCrcString() string {
-       return "6b7bcd0a"
-}
-func (*SwInterfaceGetTable) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// SwInterfaceGetTableReply represents VPP binary API message 'sw_interface_get_table_reply':
-//
-//     "sw_interface_get_table_reply",
 //     [
-//         "u16",
-//         "_vl_msg_id"
+//         "u8",
+//         "interface_name",
+//         64
 //     ],
 //     [
-//         "u32",
-//         "context"
+//         "u8",
+//         "admin_up_down"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u8",
+//         "link_up_down"
 //     ],
 //     [
-//         "u32",
-//         "vrf_id"
-//     ],
-//     {
-//         "crc": "0xa6eb0109"
-//     }
-//
-type SwInterfaceGetTableReply struct {
-       Retval int32
-       VrfID  uint32
-}
-
-func (*SwInterfaceGetTableReply) GetMessageName() string {
-       return "sw_interface_get_table_reply"
-}
-func (*SwInterfaceGetTableReply) GetCrcString() string {
-       return "a6eb0109"
-}
-func (*SwInterfaceGetTableReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-// SwInterfaceSetUnnumbered represents VPP binary API message 'sw_interface_set_unnumbered':
-//
-//     "sw_interface_set_unnumbered",
-//     [
-//         "u16",
-//         "_vl_msg_id"
+//         "u8",
+//         "link_duplex"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
+//         "link_speed"
 //     ],
 //     [
-//         "u32",
-//         "context"
+//         "u16",
+//         "link_mtu"
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "mtu",
+//         4
 //     ],
 //     [
 //         "u32",
-//         "unnumbered_sw_if_index"
+//         "sub_id"
 //     ],
 //     [
 //         "u8",
-//         "is_add"
+//         "sub_dot1ad"
 //     ],
-//     {
-//         "crc": "0xa2c1bbda"
-//     }
-//
-type SwInterfaceSetUnnumbered struct {
-       SwIfIndex           uint32
-       UnnumberedSwIfIndex uint32
-       IsAdd               uint8
-}
-
-func (*SwInterfaceSetUnnumbered) GetMessageName() string {
-       return "sw_interface_set_unnumbered"
-}
-func (*SwInterfaceSetUnnumbered) GetCrcString() string {
-       return "a2c1bbda"
-}
-func (*SwInterfaceSetUnnumbered) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// SwInterfaceSetUnnumberedReply represents VPP binary API message 'sw_interface_set_unnumbered_reply':
-//
-//     "sw_interface_set_unnumbered_reply",
 //     [
-//         "u16",
-//         "_vl_msg_id"
+//         "u8",
+//         "sub_dot1ah"
 //     ],
 //     [
-//         "u32",
-//         "context"
+//         "u8",
+//         "sub_number_of_tags"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u16",
+//         "sub_outer_vlan_id"
 //     ],
-//     {
-//         "crc": "0xe8d4e804"
-//     }
-//
-type SwInterfaceSetUnnumberedReply struct {
-       Retval int32
-}
-
-func (*SwInterfaceSetUnnumberedReply) GetMessageName() string {
-       return "sw_interface_set_unnumbered_reply"
-}
-func (*SwInterfaceSetUnnumberedReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*SwInterfaceSetUnnumberedReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-// SwInterfaceClearStats represents VPP binary API message 'sw_interface_clear_stats':
-//
-//     "sw_interface_clear_stats",
 //     [
 //         "u16",
-//         "_vl_msg_id"
+//         "sub_inner_vlan_id"
 //     ],
 //     [
-//         "u32",
-//         "client_index"
+//         "u8",
+//         "sub_exact_match"
 //     ],
 //     [
-//         "u32",
-//         "context"
+//         "u8",
+//         "sub_default"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "u8",
+//         "sub_outer_vlan_id_any"
 //     ],
-//     {
-//         "crc": "0x529cb13f"
-//     }
-//
-type SwInterfaceClearStats struct {
-       SwIfIndex uint32
-}
-
-func (*SwInterfaceClearStats) GetMessageName() string {
-       return "sw_interface_clear_stats"
-}
-func (*SwInterfaceClearStats) GetCrcString() string {
-       return "529cb13f"
-}
-func (*SwInterfaceClearStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// SwInterfaceClearStatsReply represents VPP binary API message 'sw_interface_clear_stats_reply':
-//
-//     "sw_interface_clear_stats_reply",
 //     [
-//         "u16",
-//         "_vl_msg_id"
+//         "u8",
+//         "sub_inner_vlan_id_any"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "vtr_op"
 //     ],
 //     [
-//         "i32",
-//         "retval"
-//     ],
-//     {
-//         "crc": "0xe8d4e804"
-//     }
-//
-type SwInterfaceClearStatsReply struct {
-       Retval int32
-}
-
-func (*SwInterfaceClearStatsReply) GetMessageName() string {
-       return "sw_interface_clear_stats_reply"
-}
-func (*SwInterfaceClearStatsReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*SwInterfaceClearStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-// SwInterfaceTagAddDel represents VPP binary API message 'sw_interface_tag_add_del':
-//
-//     "sw_interface_tag_add_del",
-//     [
-//         "u16",
-//         "_vl_msg_id"
+//         "u32",
+//         "vtr_push_dot1q"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
+//         "vtr_tag1"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "vtr_tag2"
 //     ],
 //     [
 //         "u8",
-//         "is_add"
+//         "tag",
+//         64
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "u16",
+//         "outer_tag"
 //     ],
 //     [
 //         "u8",
-//         "tag",
-//         64
+//         "b_dmac",
+//         6
 //     ],
-//     {
-//         "crc": "0x14cc636c"
-//     }
-//
-type SwInterfaceTagAddDel struct {
-       IsAdd     uint8
-       SwIfIndex uint32
-       Tag       []byte `struc:"[64]byte"`
-}
-
-func (*SwInterfaceTagAddDel) GetMessageName() string {
-       return "sw_interface_tag_add_del"
-}
-func (*SwInterfaceTagAddDel) GetCrcString() string {
-       return "14cc636c"
-}
-func (*SwInterfaceTagAddDel) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// SwInterfaceTagAddDelReply represents VPP binary API message 'sw_interface_tag_add_del_reply':
-//
-//     "sw_interface_tag_add_del_reply",
 //     [
-//         "u16",
-//         "_vl_msg_id"
+//         "u8",
+//         "b_smac",
+//         6
 //     ],
 //     [
-//         "u32",
-//         "context"
+//         "u16",
+//         "b_vlanid"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u32",
+//         "i_sid"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0xe4ee7eb6"
 //     }
 //
-type SwInterfaceTagAddDelReply struct {
-       Retval int32
+type SwInterfaceDetails struct {
+       SwIfIndex         uint32
+       SupSwIfIndex      uint32
+       L2AddressLength   uint32
+       L2Address         []byte `struc:"[8]byte"`
+       InterfaceName     []byte `struc:"[64]byte"`
+       AdminUpDown       uint8
+       LinkUpDown        uint8
+       LinkDuplex        uint8
+       LinkSpeed         uint32
+       LinkMtu           uint16
+       Mtu               []uint32 `struc:"[4]uint32"`
+       SubID             uint32
+       SubDot1ad         uint8
+       SubDot1ah         uint8
+       SubNumberOfTags   uint8
+       SubOuterVlanID    uint16
+       SubInnerVlanID    uint16
+       SubExactMatch     uint8
+       SubDefault        uint8
+       SubOuterVlanIDAny uint8
+       SubInnerVlanIDAny uint8
+       VtrOp             uint32
+       VtrPushDot1q      uint32
+       VtrTag1           uint32
+       VtrTag2           uint32
+       Tag               []byte `struc:"[64]byte"`
+       OuterTag          uint16
+       BDmac             []byte `struc:"[6]byte"`
+       BSmac             []byte `struc:"[6]byte"`
+       BVlanid           uint16
+       ISid              uint32
 }
 
-func (*SwInterfaceTagAddDelReply) GetMessageName() string {
-       return "sw_interface_tag_add_del_reply"
+func (*SwInterfaceDetails) GetMessageName() string {
+       return "sw_interface_details"
 }
-func (*SwInterfaceTagAddDelReply) GetCrcString() string {
-       return "e8d4e804"
+func (*SwInterfaceDetails) GetCrcString() string {
+       return "e4ee7eb6"
 }
-func (*SwInterfaceTagAddDelReply) GetMessageType() api.MessageType {
+func (*SwInterfaceDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceSetMacAddress represents VPP binary API message 'sw_interface_set_mac_address':
+// SwInterfaceDump represents VPP binary API message 'sw_interface_dump':
 //
-//     "sw_interface_set_mac_address",
+//     "sw_interface_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1310,64 +1253,84 @@ func (*SwInterfaceTagAddDelReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "u8",
+//         "name_filter_valid"
 //     ],
 //     [
 //         "u8",
-//         "mac_address",
-//         6
+//         "name_filter",
+//         49
 //     ],
 //     {
-//         "crc": "0xeed5dfca"
+//         "crc": "0x63f5e3b7"
 //     }
 //
-type SwInterfaceSetMacAddress struct {
-       SwIfIndex  uint32
-       MacAddress []byte `struc:"[6]byte"`
+type SwInterfaceDump struct {
+       NameFilterValid uint8
+       NameFilter      []byte `struc:"[49]byte"`
 }
 
-func (*SwInterfaceSetMacAddress) GetMessageName() string {
-       return "sw_interface_set_mac_address"
+func (*SwInterfaceDump) GetMessageName() string {
+       return "sw_interface_dump"
 }
-func (*SwInterfaceSetMacAddress) GetCrcString() string {
-       return "eed5dfca"
+func (*SwInterfaceDump) GetCrcString() string {
+       return "63f5e3b7"
 }
-func (*SwInterfaceSetMacAddress) GetMessageType() api.MessageType {
+func (*SwInterfaceDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SwInterfaceSetMacAddressReply represents VPP binary API message 'sw_interface_set_mac_address_reply':
+// SwInterfaceEvent represents VPP binary API message 'sw_interface_event':
 //
-//     "sw_interface_set_mac_address_reply",
+//     "sw_interface_event",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "client_index"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u32",
+//         "pid"
+//     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
+//         "u8",
+//         "admin_up_down"
+//     ],
+//     [
+//         "u8",
+//         "link_up_down"
+//     ],
+//     [
+//         "u8",
+//         "deleted"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0xbf9938e4"
 //     }
 //
-type SwInterfaceSetMacAddressReply struct {
-       Retval int32
+type SwInterfaceEvent struct {
+       PID         uint32
+       SwIfIndex   uint32
+       AdminUpDown uint8
+       LinkUpDown  uint8
+       Deleted     uint8
 }
 
-func (*SwInterfaceSetMacAddressReply) GetMessageName() string {
-       return "sw_interface_set_mac_address_reply"
+func (*SwInterfaceEvent) GetMessageName() string {
+       return "sw_interface_event"
 }
-func (*SwInterfaceSetMacAddressReply) GetCrcString() string {
-       return "e8d4e804"
+func (*SwInterfaceEvent) GetCrcString() string {
+       return "bf9938e4"
 }
-func (*SwInterfaceSetMacAddressReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*SwInterfaceEvent) GetMessageType() api.MessageType {
+       return api.EventMessage
 }
 
 // SwInterfaceGetMacAddress represents VPP binary API message 'sw_interface_get_mac_address':
@@ -1446,9 +1409,9 @@ func (*SwInterfaceGetMacAddressReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceSetRxMode represents VPP binary API message 'sw_interface_set_rx_mode':
+// SwInterfaceGetTable represents VPP binary API message 'sw_interface_get_table':
 //
-//     "sw_interface_set_rx_mode",
+//     "sw_interface_get_table",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1467,40 +1430,30 @@ func (*SwInterfaceGetMacAddressReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u8",
-//         "queue_id_valid"
-//     ],
-//     [
-//         "u32",
-//         "queue_id"
-//     ],
-//     [
-//         "u8",
-//         "mode"
+//         "is_ipv6"
 //     ],
 //     {
-//         "crc": "0x2a1cc58c"
+//         "crc": "0x6b7bcd0a"
 //     }
 //
-type SwInterfaceSetRxMode struct {
-       SwIfIndex    uint32
-       QueueIDValid uint8
-       QueueID      uint32
-       Mode         uint8
+type SwInterfaceGetTable struct {
+       SwIfIndex uint32
+       IsIPv6    uint8
 }
 
-func (*SwInterfaceSetRxMode) GetMessageName() string {
-       return "sw_interface_set_rx_mode"
+func (*SwInterfaceGetTable) GetMessageName() string {
+       return "sw_interface_get_table"
 }
-func (*SwInterfaceSetRxMode) GetCrcString() string {
-       return "2a1cc58c"
+func (*SwInterfaceGetTable) GetCrcString() string {
+       return "6b7bcd0a"
 }
-func (*SwInterfaceSetRxMode) GetMessageType() api.MessageType {
+func (*SwInterfaceGetTable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SwInterfaceSetRxModeReply represents VPP binary API message 'sw_interface_set_rx_mode_reply':
+// SwInterfaceGetTableReply represents VPP binary API message 'sw_interface_get_table_reply':
 //
-//     "sw_interface_set_rx_mode_reply",
+//     "sw_interface_get_table_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1513,27 +1466,32 @@ func (*SwInterfaceSetRxMode) GetMessageType() api.MessageType {
 //         "i32",
 //         "retval"
 //     ],
+//     [
+//         "u32",
+//         "vrf_id"
+//     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0xa6eb0109"
 //     }
 //
-type SwInterfaceSetRxModeReply struct {
+type SwInterfaceGetTableReply struct {
        Retval int32
+       VrfID  uint32
 }
 
-func (*SwInterfaceSetRxModeReply) GetMessageName() string {
-       return "sw_interface_set_rx_mode_reply"
+func (*SwInterfaceGetTableReply) GetMessageName() string {
+       return "sw_interface_get_table_reply"
 }
-func (*SwInterfaceSetRxModeReply) GetCrcString() string {
-       return "e8d4e804"
+func (*SwInterfaceGetTableReply) GetCrcString() string {
+       return "a6eb0109"
 }
-func (*SwInterfaceSetRxModeReply) GetMessageType() api.MessageType {
+func (*SwInterfaceGetTableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceSetRxPlacement represents VPP binary API message 'sw_interface_set_rx_placement':
+// SwInterfaceRxPlacementDetails represents VPP binary API message 'sw_interface_rx_placement_details':
 //
-//     "sw_interface_set_rx_placement",
+//     "sw_interface_rx_placement_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1560,65 +1518,69 @@ func (*SwInterfaceSetRxModeReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u8",
-//         "is_main"
+//         "mode"
 //     ],
 //     {
-//         "crc": "0x4ef4377d"
+//         "crc": "0x0e9e33f4"
 //     }
 //
-type SwInterfaceSetRxPlacement struct {
+type SwInterfaceRxPlacementDetails struct {
        SwIfIndex uint32
        QueueID   uint32
        WorkerID  uint32
-       IsMain    uint8
+       Mode      uint8
 }
 
-func (*SwInterfaceSetRxPlacement) GetMessageName() string {
-       return "sw_interface_set_rx_placement"
+func (*SwInterfaceRxPlacementDetails) GetMessageName() string {
+       return "sw_interface_rx_placement_details"
 }
-func (*SwInterfaceSetRxPlacement) GetCrcString() string {
-       return "4ef4377d"
+func (*SwInterfaceRxPlacementDetails) GetCrcString() string {
+       return "0e9e33f4"
 }
-func (*SwInterfaceSetRxPlacement) GetMessageType() api.MessageType {
+func (*SwInterfaceRxPlacementDetails) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SwInterfaceSetRxPlacementReply represents VPP binary API message 'sw_interface_set_rx_placement_reply':
+// SwInterfaceRxPlacementDump represents VPP binary API message 'sw_interface_rx_placement_dump':
 //
-//     "sw_interface_set_rx_placement_reply",
+//     "sw_interface_rx_placement_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
 //         "context"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0x529cb13f"
 //     }
 //
-type SwInterfaceSetRxPlacementReply struct {
-       Retval int32
+type SwInterfaceRxPlacementDump struct {
+       SwIfIndex uint32
 }
 
-func (*SwInterfaceSetRxPlacementReply) GetMessageName() string {
-       return "sw_interface_set_rx_placement_reply"
+func (*SwInterfaceRxPlacementDump) GetMessageName() string {
+       return "sw_interface_rx_placement_dump"
 }
-func (*SwInterfaceSetRxPlacementReply) GetCrcString() string {
-       return "e8d4e804"
+func (*SwInterfaceRxPlacementDump) GetCrcString() string {
+       return "529cb13f"
 }
-func (*SwInterfaceSetRxPlacementReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*SwInterfaceRxPlacementDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// SwInterfaceRxPlacementDump represents VPP binary API message 'sw_interface_rx_placement_dump':
+// SwInterfaceSetFlags represents VPP binary API message 'sw_interface_set_flags':
 //
-//     "sw_interface_rx_placement_dump",
+//     "sw_interface_set_flags",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1635,79 +1597,140 @@ func (*SwInterfaceSetRxPlacementReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "sw_if_index"
 //     ],
+//     [
+//         "u8",
+//         "admin_up_down"
+//     ],
 //     {
-//         "crc": "0x529cb13f"
+//         "crc": "0x555485f5"
 //     }
 //
-type SwInterfaceRxPlacementDump struct {
-       SwIfIndex uint32
+type SwInterfaceSetFlags struct {
+       SwIfIndex   uint32
+       AdminUpDown uint8
 }
 
-func (*SwInterfaceRxPlacementDump) GetMessageName() string {
-       return "sw_interface_rx_placement_dump"
+func (*SwInterfaceSetFlags) GetMessageName() string {
+       return "sw_interface_set_flags"
 }
-func (*SwInterfaceRxPlacementDump) GetCrcString() string {
-       return "529cb13f"
+func (*SwInterfaceSetFlags) GetCrcString() string {
+       return "555485f5"
 }
-func (*SwInterfaceRxPlacementDump) GetMessageType() api.MessageType {
+func (*SwInterfaceSetFlags) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SwInterfaceRxPlacementDetails represents VPP binary API message 'sw_interface_rx_placement_details':
+// SwInterfaceSetFlagsReply represents VPP binary API message 'sw_interface_set_flags_reply':
 //
-//     "sw_interface_rx_placement_details",
+//     "sw_interface_set_flags_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
+//         "context"
 //     ],
 //     [
-//         "u32",
-//         "context"
+//         "i32",
+//         "retval"
+//     ],
+//     {
+//         "crc": "0xe8d4e804"
+//     }
+//
+type SwInterfaceSetFlagsReply struct {
+       Retval int32
+}
+
+func (*SwInterfaceSetFlagsReply) GetMessageName() string {
+       return "sw_interface_set_flags_reply"
+}
+func (*SwInterfaceSetFlagsReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*SwInterfaceSetFlagsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// SwInterfaceSetIPDirectedBroadcast represents VPP binary API message 'sw_interface_set_ip_directed_broadcast':
+//
+//     "sw_interface_set_ip_directed_broadcast",
+//     [
+//         "u16",
+//         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "client_index"
 //     ],
 //     [
 //         "u32",
-//         "queue_id"
+//         "context"
 //     ],
 //     [
 //         "u32",
-//         "worker_id"
+//         "sw_if_index"
 //     ],
 //     [
 //         "u8",
-//         "mode"
+//         "enable"
 //     ],
 //     {
-//         "crc": "0x0e9e33f4"
+//         "crc": "0xa36fadc0"
 //     }
 //
-type SwInterfaceRxPlacementDetails struct {
+type SwInterfaceSetIPDirectedBroadcast struct {
        SwIfIndex uint32
-       QueueID   uint32
-       WorkerID  uint32
-       Mode      uint8
+       Enable    uint8
 }
 
-func (*SwInterfaceRxPlacementDetails) GetMessageName() string {
-       return "sw_interface_rx_placement_details"
+func (*SwInterfaceSetIPDirectedBroadcast) GetMessageName() string {
+       return "sw_interface_set_ip_directed_broadcast"
 }
-func (*SwInterfaceRxPlacementDetails) GetCrcString() string {
-       return "0e9e33f4"
+func (*SwInterfaceSetIPDirectedBroadcast) GetCrcString() string {
+       return "a36fadc0"
 }
-func (*SwInterfaceRxPlacementDetails) GetMessageType() api.MessageType {
+func (*SwInterfaceSetIPDirectedBroadcast) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// InterfaceNameRenumber represents VPP binary API message 'interface_name_renumber':
+// SwInterfaceSetIPDirectedBroadcastReply represents VPP binary API message 'sw_interface_set_ip_directed_broadcast_reply':
 //
-//     "interface_name_renumber",
+//     "sw_interface_set_ip_directed_broadcast_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     {
+//         "crc": "0xe8d4e804"
+//     }
+//
+type SwInterfaceSetIPDirectedBroadcastReply struct {
+       Retval int32
+}
+
+func (*SwInterfaceSetIPDirectedBroadcastReply) GetMessageName() string {
+       return "sw_interface_set_ip_directed_broadcast_reply"
+}
+func (*SwInterfaceSetIPDirectedBroadcastReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*SwInterfaceSetIPDirectedBroadcastReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// SwInterfaceSetMacAddress represents VPP binary API message 'sw_interface_set_mac_address':
+//
+//     "sw_interface_set_mac_address",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1725,31 +1748,32 @@ func (*SwInterfaceRxPlacementDetails) GetMessageType() api.MessageType {
 //         "sw_if_index"
 //     ],
 //     [
-//         "u32",
-//         "new_show_dev_instance"
+//         "u8",
+//         "mac_address",
+//         6
 //     ],
 //     {
-//         "crc": "0x39194269"
+//         "crc": "0xeed5dfca"
 //     }
 //
-type InterfaceNameRenumber struct {
-       SwIfIndex          uint32
-       NewShowDevInstance uint32
+type SwInterfaceSetMacAddress struct {
+       SwIfIndex  uint32
+       MacAddress []byte `struc:"[6]byte"`
 }
-
-func (*InterfaceNameRenumber) GetMessageName() string {
-       return "interface_name_renumber"
+
+func (*SwInterfaceSetMacAddress) GetMessageName() string {
+       return "sw_interface_set_mac_address"
 }
-func (*InterfaceNameRenumber) GetCrcString() string {
-       return "39194269"
+func (*SwInterfaceSetMacAddress) GetCrcString() string {
+       return "eed5dfca"
 }
-func (*InterfaceNameRenumber) GetMessageType() api.MessageType {
+func (*SwInterfaceSetMacAddress) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// InterfaceNameRenumberReply represents VPP binary API message 'interface_name_renumber_reply':
+// SwInterfaceSetMacAddressReply represents VPP binary API message 'sw_interface_set_mac_address_reply':
 //
-//     "interface_name_renumber_reply",
+//     "sw_interface_set_mac_address_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1766,23 +1790,23 @@ func (*InterfaceNameRenumber) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type InterfaceNameRenumberReply struct {
+type SwInterfaceSetMacAddressReply struct {
        Retval int32
 }
 
-func (*InterfaceNameRenumberReply) GetMessageName() string {
-       return "interface_name_renumber_reply"
+func (*SwInterfaceSetMacAddressReply) GetMessageName() string {
+       return "sw_interface_set_mac_address_reply"
 }
-func (*InterfaceNameRenumberReply) GetCrcString() string {
+func (*SwInterfaceSetMacAddressReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*InterfaceNameRenumberReply) GetMessageType() api.MessageType {
+func (*SwInterfaceSetMacAddressReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// CreateSubif represents VPP binary API message 'create_subif':
+// SwInterfaceSetMtu represents VPP binary API message 'sw_interface_set_mtu':
 //
-//     "create_subif",
+//     "sw_interface_set_mtu",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1801,80 +1825,31 @@ func (*InterfaceNameRenumberReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "sub_id"
-//     ],
-//     [
-//         "u8",
-//         "no_tags"
-//     ],
-//     [
-//         "u8",
-//         "one_tag"
-//     ],
-//     [
-//         "u8",
-//         "two_tags"
-//     ],
-//     [
-//         "u8",
-//         "dot1ad"
-//     ],
-//     [
-//         "u8",
-//         "exact_match"
-//     ],
-//     [
-//         "u8",
-//         "default_sub"
-//     ],
-//     [
-//         "u8",
-//         "outer_vlan_id_any"
-//     ],
-//     [
-//         "u8",
-//         "inner_vlan_id_any"
-//     ],
-//     [
-//         "u16",
-//         "outer_vlan_id"
-//     ],
-//     [
-//         "u16",
-//         "inner_vlan_id"
+//         "mtu",
+//         4
 //     ],
 //     {
-//         "crc": "0x86cfe408"
+//         "crc": "0xd0008db8"
 //     }
 //
-type CreateSubif struct {
-       SwIfIndex      uint32
-       SubID          uint32
-       NoTags         uint8
-       OneTag         uint8
-       TwoTags        uint8
-       Dot1ad         uint8
-       ExactMatch     uint8
-       DefaultSub     uint8
-       OuterVlanIDAny uint8
-       InnerVlanIDAny uint8
-       OuterVlanID    uint16
-       InnerVlanID    uint16
+type SwInterfaceSetMtu struct {
+       SwIfIndex uint32
+       Mtu       []uint32 `struc:"[4]uint32"`
 }
 
-func (*CreateSubif) GetMessageName() string {
-       return "create_subif"
+func (*SwInterfaceSetMtu) GetMessageName() string {
+       return "sw_interface_set_mtu"
 }
-func (*CreateSubif) GetCrcString() string {
-       return "86cfe408"
+func (*SwInterfaceSetMtu) GetCrcString() string {
+       return "d0008db8"
 }
-func (*CreateSubif) GetMessageType() api.MessageType {
+func (*SwInterfaceSetMtu) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// CreateSubifReply represents VPP binary API message 'create_subif_reply':
+// SwInterfaceSetMtuReply represents VPP binary API message 'sw_interface_set_mtu_reply':
 //
-//     "create_subif_reply",
+//     "sw_interface_set_mtu_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1887,32 +1862,27 @@ func (*CreateSubif) GetMessageType() api.MessageType {
 //         "i32",
 //         "retval"
 //     ],
-//     [
-//         "u32",
-//         "sw_if_index"
-//     ],
 //     {
-//         "crc": "0xfda5941f"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type CreateSubifReply struct {
-       Retval    int32
-       SwIfIndex uint32
+type SwInterfaceSetMtuReply struct {
+       Retval int32
 }
 
-func (*CreateSubifReply) GetMessageName() string {
-       return "create_subif_reply"
+func (*SwInterfaceSetMtuReply) GetMessageName() string {
+       return "sw_interface_set_mtu_reply"
 }
-func (*CreateSubifReply) GetCrcString() string {
-       return "fda5941f"
+func (*SwInterfaceSetMtuReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*CreateSubifReply) GetMessageType() api.MessageType {
+func (*SwInterfaceSetMtuReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// CreateVlanSubif represents VPP binary API message 'create_vlan_subif':
+// SwInterfaceSetRxMode represents VPP binary API message 'sw_interface_set_rx_mode':
 //
-//     "create_vlan_subif",
+//     "sw_interface_set_rx_mode",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1930,31 +1900,41 @@ func (*CreateSubifReply) GetMessageType() api.MessageType {
 //         "sw_if_index"
 //     ],
 //     [
+//         "u8",
+//         "queue_id_valid"
+//     ],
+//     [
 //         "u32",
-//         "vlan_id"
+//         "queue_id"
+//     ],
+//     [
+//         "u8",
+//         "mode"
 //     ],
 //     {
-//         "crc": "0x70cadeda"
+//         "crc": "0x2a1cc58c"
 //     }
 //
-type CreateVlanSubif struct {
-       SwIfIndex uint32
-       VlanID    uint32
+type SwInterfaceSetRxMode struct {
+       SwIfIndex    uint32
+       QueueIDValid uint8
+       QueueID      uint32
+       Mode         uint8
 }
 
-func (*CreateVlanSubif) GetMessageName() string {
-       return "create_vlan_subif"
+func (*SwInterfaceSetRxMode) GetMessageName() string {
+       return "sw_interface_set_rx_mode"
 }
-func (*CreateVlanSubif) GetCrcString() string {
-       return "70cadeda"
+func (*SwInterfaceSetRxMode) GetCrcString() string {
+       return "2a1cc58c"
 }
-func (*CreateVlanSubif) GetMessageType() api.MessageType {
+func (*SwInterfaceSetRxMode) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// CreateVlanSubifReply represents VPP binary API message 'create_vlan_subif_reply':
+// SwInterfaceSetRxModeReply represents VPP binary API message 'sw_interface_set_rx_mode_reply':
 //
-//     "create_vlan_subif_reply",
+//     "sw_interface_set_rx_mode_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1967,32 +1947,27 @@ func (*CreateVlanSubif) GetMessageType() api.MessageType {
 //         "i32",
 //         "retval"
 //     ],
-//     [
-//         "u32",
-//         "sw_if_index"
-//     ],
 //     {
-//         "crc": "0xfda5941f"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type CreateVlanSubifReply struct {
-       Retval    int32
-       SwIfIndex uint32
+type SwInterfaceSetRxModeReply struct {
+       Retval int32
 }
 
-func (*CreateVlanSubifReply) GetMessageName() string {
-       return "create_vlan_subif_reply"
+func (*SwInterfaceSetRxModeReply) GetMessageName() string {
+       return "sw_interface_set_rx_mode_reply"
 }
-func (*CreateVlanSubifReply) GetCrcString() string {
-       return "fda5941f"
+func (*SwInterfaceSetRxModeReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*CreateVlanSubifReply) GetMessageType() api.MessageType {
+func (*SwInterfaceSetRxModeReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// DeleteSubif represents VPP binary API message 'delete_subif':
+// SwInterfaceSetRxPlacement represents VPP binary API message 'sw_interface_set_rx_placement':
 //
-//     "delete_subif",
+//     "sw_interface_set_rx_placement",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2009,27 +1984,42 @@ func (*CreateVlanSubifReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "sw_if_index"
 //     ],
+//     [
+//         "u32",
+//         "queue_id"
+//     ],
+//     [
+//         "u32",
+//         "worker_id"
+//     ],
+//     [
+//         "u8",
+//         "is_main"
+//     ],
 //     {
-//         "crc": "0x529cb13f"
+//         "crc": "0x4ef4377d"
 //     }
 //
-type DeleteSubif struct {
+type SwInterfaceSetRxPlacement struct {
        SwIfIndex uint32
+       QueueID   uint32
+       WorkerID  uint32
+       IsMain    uint8
 }
 
-func (*DeleteSubif) GetMessageName() string {
-       return "delete_subif"
+func (*SwInterfaceSetRxPlacement) GetMessageName() string {
+       return "sw_interface_set_rx_placement"
 }
-func (*DeleteSubif) GetCrcString() string {
-       return "529cb13f"
+func (*SwInterfaceSetRxPlacement) GetCrcString() string {
+       return "4ef4377d"
 }
-func (*DeleteSubif) GetMessageType() api.MessageType {
+func (*SwInterfaceSetRxPlacement) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// DeleteSubifReply represents VPP binary API message 'delete_subif_reply':
+// SwInterfaceSetRxPlacementReply represents VPP binary API message 'sw_interface_set_rx_placement_reply':
 //
-//     "delete_subif_reply",
+//     "sw_interface_set_rx_placement_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2046,23 +2036,23 @@ func (*DeleteSubif) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type DeleteSubifReply struct {
+type SwInterfaceSetRxPlacementReply struct {
        Retval int32
 }
 
-func (*DeleteSubifReply) GetMessageName() string {
-       return "delete_subif_reply"
+func (*SwInterfaceSetRxPlacementReply) GetMessageName() string {
+       return "sw_interface_set_rx_placement_reply"
 }
-func (*DeleteSubifReply) GetCrcString() string {
+func (*SwInterfaceSetRxPlacementReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*DeleteSubifReply) GetMessageType() api.MessageType {
+func (*SwInterfaceSetRxPlacementReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// CreateLoopback represents VPP binary API message 'create_loopback':
+// SwInterfaceSetTable represents VPP binary API message 'sw_interface_set_table':
 //
-//     "create_loopback",
+//     "sw_interface_set_table",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2076,31 +2066,40 @@ func (*DeleteSubifReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
 //         "u8",
-//         "mac_address",
-//         6
+//         "is_ipv6"
+//     ],
+//     [
+//         "u32",
+//         "vrf_id"
 //     ],
 //     {
-//         "crc": "0x3b54129c"
+//         "crc": "0xacb25d89"
 //     }
 //
-type CreateLoopback struct {
-       MacAddress []byte `struc:"[6]byte"`
+type SwInterfaceSetTable struct {
+       SwIfIndex uint32
+       IsIPv6    uint8
+       VrfID     uint32
 }
 
-func (*CreateLoopback) GetMessageName() string {
-       return "create_loopback"
+func (*SwInterfaceSetTable) GetMessageName() string {
+       return "sw_interface_set_table"
 }
-func (*CreateLoopback) GetCrcString() string {
-       return "3b54129c"
+func (*SwInterfaceSetTable) GetCrcString() string {
+       return "acb25d89"
 }
-func (*CreateLoopback) GetMessageType() api.MessageType {
+func (*SwInterfaceSetTable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// CreateLoopbackReply represents VPP binary API message 'create_loopback_reply':
+// SwInterfaceSetTableReply represents VPP binary API message 'sw_interface_set_table_reply':
 //
-//     "create_loopback_reply",
+//     "sw_interface_set_table_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2113,32 +2112,27 @@ func (*CreateLoopback) GetMessageType() api.MessageType {
 //         "i32",
 //         "retval"
 //     ],
-//     [
-//         "u32",
-//         "sw_if_index"
-//     ],
 //     {
-//         "crc": "0xfda5941f"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type CreateLoopbackReply struct {
-       Retval    int32
-       SwIfIndex uint32
+type SwInterfaceSetTableReply struct {
+       Retval int32
 }
 
-func (*CreateLoopbackReply) GetMessageName() string {
-       return "create_loopback_reply"
+func (*SwInterfaceSetTableReply) GetMessageName() string {
+       return "sw_interface_set_table_reply"
 }
-func (*CreateLoopbackReply) GetCrcString() string {
-       return "fda5941f"
+func (*SwInterfaceSetTableReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*CreateLoopbackReply) GetMessageType() api.MessageType {
+func (*SwInterfaceSetTableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// CreateLoopbackInstance represents VPP binary API message 'create_loopback_instance':
+// SwInterfaceSetUnnumbered represents VPP binary API message 'sw_interface_set_unnumbered':
 //
-//     "create_loopback_instance",
+//     "sw_interface_set_unnumbered",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2152,41 +2146,40 @@ func (*CreateLoopbackReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u8",
-//         "mac_address",
-//         6
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     [
-//         "u8",
-//         "is_specified"
+//         "u32",
+//         "unnumbered_sw_if_index"
 //     ],
 //     [
-//         "u32",
-//         "user_instance"
+//         "u8",
+//         "is_add"
 //     ],
 //     {
-//         "crc": "0x7bbd53b6"
+//         "crc": "0xa2c1bbda"
 //     }
 //
-type CreateLoopbackInstance struct {
-       MacAddress   []byte `struc:"[6]byte"`
-       IsSpecified  uint8
-       UserInstance uint32
+type SwInterfaceSetUnnumbered struct {
+       SwIfIndex           uint32
+       UnnumberedSwIfIndex uint32
+       IsAdd               uint8
 }
 
-func (*CreateLoopbackInstance) GetMessageName() string {
-       return "create_loopback_instance"
+func (*SwInterfaceSetUnnumbered) GetMessageName() string {
+       return "sw_interface_set_unnumbered"
 }
-func (*CreateLoopbackInstance) GetCrcString() string {
-       return "7bbd53b6"
+func (*SwInterfaceSetUnnumbered) GetCrcString() string {
+       return "a2c1bbda"
 }
-func (*CreateLoopbackInstance) GetMessageType() api.MessageType {
+func (*SwInterfaceSetUnnumbered) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// CreateLoopbackInstanceReply represents VPP binary API message 'create_loopback_instance_reply':
+// SwInterfaceSetUnnumberedReply represents VPP binary API message 'sw_interface_set_unnumbered_reply':
 //
-//     "create_loopback_instance_reply",
+//     "sw_interface_set_unnumbered_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2199,32 +2192,27 @@ func (*CreateLoopbackInstance) GetMessageType() api.MessageType {
 //         "i32",
 //         "retval"
 //     ],
-//     [
-//         "u32",
-//         "sw_if_index"
-//     ],
 //     {
-//         "crc": "0xfda5941f"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type CreateLoopbackInstanceReply struct {
-       Retval    int32
-       SwIfIndex uint32
+type SwInterfaceSetUnnumberedReply struct {
+       Retval int32
 }
 
-func (*CreateLoopbackInstanceReply) GetMessageName() string {
-       return "create_loopback_instance_reply"
+func (*SwInterfaceSetUnnumberedReply) GetMessageName() string {
+       return "sw_interface_set_unnumbered_reply"
 }
-func (*CreateLoopbackInstanceReply) GetCrcString() string {
-       return "fda5941f"
+func (*SwInterfaceSetUnnumberedReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*CreateLoopbackInstanceReply) GetMessageType() api.MessageType {
+func (*SwInterfaceSetUnnumberedReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// DeleteLoopback represents VPP binary API message 'delete_loopback':
+// SwInterfaceTagAddDel represents VPP binary API message 'sw_interface_tag_add_del':
 //
-//     "delete_loopback",
+//     "sw_interface_tag_add_del",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2238,30 +2226,41 @@ func (*CreateLoopbackInstanceReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
+//         "u8",
+//         "is_add"
+//     ],
+//     [
 //         "u32",
 //         "sw_if_index"
 //     ],
+//     [
+//         "u8",
+//         "tag",
+//         64
+//     ],
 //     {
-//         "crc": "0x529cb13f"
+//         "crc": "0x14cc636c"
 //     }
 //
-type DeleteLoopback struct {
+type SwInterfaceTagAddDel struct {
+       IsAdd     uint8
        SwIfIndex uint32
+       Tag       []byte `struc:"[64]byte"`
 }
 
-func (*DeleteLoopback) GetMessageName() string {
-       return "delete_loopback"
+func (*SwInterfaceTagAddDel) GetMessageName() string {
+       return "sw_interface_tag_add_del"
 }
-func (*DeleteLoopback) GetCrcString() string {
-       return "529cb13f"
+func (*SwInterfaceTagAddDel) GetCrcString() string {
+       return "14cc636c"
 }
-func (*DeleteLoopback) GetMessageType() api.MessageType {
+func (*SwInterfaceTagAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// DeleteLoopbackReply represents VPP binary API message 'delete_loopback_reply':
+// SwInterfaceTagAddDelReply represents VPP binary API message 'sw_interface_tag_add_del_reply':
 //
-//     "delete_loopback_reply",
+//     "sw_interface_tag_add_del_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2278,23 +2277,23 @@ func (*DeleteLoopback) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type DeleteLoopbackReply struct {
+type SwInterfaceTagAddDelReply struct {
        Retval int32
 }
 
-func (*DeleteLoopbackReply) GetMessageName() string {
-       return "delete_loopback_reply"
+func (*SwInterfaceTagAddDelReply) GetMessageName() string {
+       return "sw_interface_tag_add_del_reply"
 }
-func (*DeleteLoopbackReply) GetCrcString() string {
+func (*SwInterfaceTagAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*DeleteLoopbackReply) GetMessageType() api.MessageType {
+func (*SwInterfaceTagAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// CollectDetailedInterfaceStats represents VPP binary API message 'collect_detailed_interface_stats':
+// WantInterfaceEvents represents VPP binary API message 'want_interface_events':
 //
-//     "collect_detailed_interface_stats",
+//     "want_interface_events",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2309,34 +2308,34 @@ func (*DeleteLoopbackReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "enable_disable"
 //     ],
 //     [
-//         "u8",
-//         "enable_disable"
+//         "u32",
+//         "pid"
 //     ],
 //     {
-//         "crc": "0x69d24598"
+//         "crc": "0x476f5a08"
 //     }
 //
-type CollectDetailedInterfaceStats struct {
-       SwIfIndex     uint32
-       EnableDisable uint8
+type WantInterfaceEvents struct {
+       EnableDisable uint32
+       PID           uint32
 }
 
-func (*CollectDetailedInterfaceStats) GetMessageName() string {
-       return "collect_detailed_interface_stats"
+func (*WantInterfaceEvents) GetMessageName() string {
+       return "want_interface_events"
 }
-func (*CollectDetailedInterfaceStats) GetCrcString() string {
-       return "69d24598"
+func (*WantInterfaceEvents) GetCrcString() string {
+       return "476f5a08"
 }
-func (*CollectDetailedInterfaceStats) GetMessageType() api.MessageType {
+func (*WantInterfaceEvents) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// CollectDetailedInterfaceStatsReply represents VPP binary API message 'collect_detailed_interface_stats_reply':
+// WantInterfaceEventsReply represents VPP binary API message 'want_interface_events_reply':
 //
-//     "collect_detailed_interface_stats_reply",
+//     "want_interface_events_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2353,70 +2352,70 @@ func (*CollectDetailedInterfaceStats) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type CollectDetailedInterfaceStatsReply struct {
+type WantInterfaceEventsReply struct {
        Retval int32
 }
 
-func (*CollectDetailedInterfaceStatsReply) GetMessageName() string {
-       return "collect_detailed_interface_stats_reply"
+func (*WantInterfaceEventsReply) GetMessageName() string {
+       return "want_interface_events_reply"
 }
-func (*CollectDetailedInterfaceStatsReply) GetCrcString() string {
+func (*WantInterfaceEventsReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*CollectDetailedInterfaceStatsReply) GetMessageType() api.MessageType {
+func (*WantInterfaceEventsReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
 func init() {
-       api.RegisterMessage((*SwInterfaceSetFlags)(nil), "interface.SwInterfaceSetFlags")
-       api.RegisterMessage((*SwInterfaceSetFlagsReply)(nil), "interface.SwInterfaceSetFlagsReply")
+       api.RegisterMessage((*CollectDetailedInterfaceStats)(nil), "interface.CollectDetailedInterfaceStats")
+       api.RegisterMessage((*CollectDetailedInterfaceStatsReply)(nil), "interface.CollectDetailedInterfaceStatsReply")
+       api.RegisterMessage((*CreateLoopback)(nil), "interface.CreateLoopback")
+       api.RegisterMessage((*CreateLoopbackInstance)(nil), "interface.CreateLoopbackInstance")
+       api.RegisterMessage((*CreateLoopbackInstanceReply)(nil), "interface.CreateLoopbackInstanceReply")
+       api.RegisterMessage((*CreateLoopbackReply)(nil), "interface.CreateLoopbackReply")
+       api.RegisterMessage((*CreateSubif)(nil), "interface.CreateSubif")
+       api.RegisterMessage((*CreateSubifReply)(nil), "interface.CreateSubifReply")
+       api.RegisterMessage((*CreateVlanSubif)(nil), "interface.CreateVlanSubif")
+       api.RegisterMessage((*CreateVlanSubifReply)(nil), "interface.CreateVlanSubifReply")
+       api.RegisterMessage((*DeleteLoopback)(nil), "interface.DeleteLoopback")
+       api.RegisterMessage((*DeleteLoopbackReply)(nil), "interface.DeleteLoopbackReply")
+       api.RegisterMessage((*DeleteSubif)(nil), "interface.DeleteSubif")
+       api.RegisterMessage((*DeleteSubifReply)(nil), "interface.DeleteSubifReply")
        api.RegisterMessage((*HwInterfaceSetMtu)(nil), "interface.HwInterfaceSetMtu")
        api.RegisterMessage((*HwInterfaceSetMtuReply)(nil), "interface.HwInterfaceSetMtuReply")
-       api.RegisterMessage((*SwInterfaceSetMtu)(nil), "interface.SwInterfaceSetMtu")
-       api.RegisterMessage((*SwInterfaceSetMtuReply)(nil), "interface.SwInterfaceSetMtuReply")
-       api.RegisterMessage((*SwInterfaceSetIPDirectedBroadcast)(nil), "interface.SwInterfaceSetIPDirectedBroadcast")
-       api.RegisterMessage((*SwInterfaceSetIPDirectedBroadcastReply)(nil), "interface.SwInterfaceSetIPDirectedBroadcastReply")
-       api.RegisterMessage((*SwInterfaceEvent)(nil), "interface.SwInterfaceEvent")
-       api.RegisterMessage((*WantInterfaceEvents)(nil), "interface.WantInterfaceEvents")
-       api.RegisterMessage((*WantInterfaceEventsReply)(nil), "interface.WantInterfaceEventsReply")
-       api.RegisterMessage((*SwInterfaceDetails)(nil), "interface.SwInterfaceDetails")
-       api.RegisterMessage((*SwInterfaceDump)(nil), "interface.SwInterfaceDump")
+       api.RegisterMessage((*InterfaceNameRenumber)(nil), "interface.InterfaceNameRenumber")
+       api.RegisterMessage((*InterfaceNameRenumberReply)(nil), "interface.InterfaceNameRenumberReply")
        api.RegisterMessage((*SwInterfaceAddDelAddress)(nil), "interface.SwInterfaceAddDelAddress")
        api.RegisterMessage((*SwInterfaceAddDelAddressReply)(nil), "interface.SwInterfaceAddDelAddressReply")
-       api.RegisterMessage((*SwInterfaceSetTable)(nil), "interface.SwInterfaceSetTable")
-       api.RegisterMessage((*SwInterfaceSetTableReply)(nil), "interface.SwInterfaceSetTableReply")
-       api.RegisterMessage((*SwInterfaceGetTable)(nil), "interface.SwInterfaceGetTable")
-       api.RegisterMessage((*SwInterfaceGetTableReply)(nil), "interface.SwInterfaceGetTableReply")
-       api.RegisterMessage((*SwInterfaceSetUnnumbered)(nil), "interface.SwInterfaceSetUnnumbered")
-       api.RegisterMessage((*SwInterfaceSetUnnumberedReply)(nil), "interface.SwInterfaceSetUnnumberedReply")
        api.RegisterMessage((*SwInterfaceClearStats)(nil), "interface.SwInterfaceClearStats")
        api.RegisterMessage((*SwInterfaceClearStatsReply)(nil), "interface.SwInterfaceClearStatsReply")
-       api.RegisterMessage((*SwInterfaceTagAddDel)(nil), "interface.SwInterfaceTagAddDel")
-       api.RegisterMessage((*SwInterfaceTagAddDelReply)(nil), "interface.SwInterfaceTagAddDelReply")
-       api.RegisterMessage((*SwInterfaceSetMacAddress)(nil), "interface.SwInterfaceSetMacAddress")
-       api.RegisterMessage((*SwInterfaceSetMacAddressReply)(nil), "interface.SwInterfaceSetMacAddressReply")
+       api.RegisterMessage((*SwInterfaceDetails)(nil), "interface.SwInterfaceDetails")
+       api.RegisterMessage((*SwInterfaceDump)(nil), "interface.SwInterfaceDump")
+       api.RegisterMessage((*SwInterfaceEvent)(nil), "interface.SwInterfaceEvent")
        api.RegisterMessage((*SwInterfaceGetMacAddress)(nil), "interface.SwInterfaceGetMacAddress")
        api.RegisterMessage((*SwInterfaceGetMacAddressReply)(nil), "interface.SwInterfaceGetMacAddressReply")
+       api.RegisterMessage((*SwInterfaceGetTable)(nil), "interface.SwInterfaceGetTable")
+       api.RegisterMessage((*SwInterfaceGetTableReply)(nil), "interface.SwInterfaceGetTableReply")
+       api.RegisterMessage((*SwInterfaceRxPlacementDetails)(nil), "interface.SwInterfaceRxPlacementDetails")
+       api.RegisterMessage((*SwInterfaceRxPlacementDump)(nil), "interface.SwInterfaceRxPlacementDump")
+       api.RegisterMessage((*SwInterfaceSetFlags)(nil), "interface.SwInterfaceSetFlags")
+       api.RegisterMessage((*SwInterfaceSetFlagsReply)(nil), "interface.SwInterfaceSetFlagsReply")
+       api.RegisterMessage((*SwInterfaceSetIPDirectedBroadcast)(nil), "interface.SwInterfaceSetIPDirectedBroadcast")
+       api.RegisterMessage((*SwInterfaceSetIPDirectedBroadcastReply)(nil), "interface.SwInterfaceSetIPDirectedBroadcastReply")
+       api.RegisterMessage((*SwInterfaceSetMacAddress)(nil), "interface.SwInterfaceSetMacAddress")
+       api.RegisterMessage((*SwInterfaceSetMacAddressReply)(nil), "interface.SwInterfaceSetMacAddressReply")
+       api.RegisterMessage((*SwInterfaceSetMtu)(nil), "interface.SwInterfaceSetMtu")
+       api.RegisterMessage((*SwInterfaceSetMtuReply)(nil), "interface.SwInterfaceSetMtuReply")
        api.RegisterMessage((*SwInterfaceSetRxMode)(nil), "interface.SwInterfaceSetRxMode")
        api.RegisterMessage((*SwInterfaceSetRxModeReply)(nil), "interface.SwInterfaceSetRxModeReply")
        api.RegisterMessage((*SwInterfaceSetRxPlacement)(nil), "interface.SwInterfaceSetRxPlacement")
        api.RegisterMessage((*SwInterfaceSetRxPlacementReply)(nil), "interface.SwInterfaceSetRxPlacementReply")
-       api.RegisterMessage((*SwInterfaceRxPlacementDump)(nil), "interface.SwInterfaceRxPlacementDump")
-       api.RegisterMessage((*SwInterfaceRxPlacementDetails)(nil), "interface.SwInterfaceRxPlacementDetails")
-       api.RegisterMessage((*InterfaceNameRenumber)(nil), "interface.InterfaceNameRenumber")
-       api.RegisterMessage((*InterfaceNameRenumberReply)(nil), "interface.InterfaceNameRenumberReply")
-       api.RegisterMessage((*CreateSubif)(nil), "interface.CreateSubif")
-       api.RegisterMessage((*CreateSubifReply)(nil), "interface.CreateSubifReply")
-       api.RegisterMessage((*CreateVlanSubif)(nil), "interface.CreateVlanSubif")
-       api.RegisterMessage((*CreateVlanSubifReply)(nil), "interface.CreateVlanSubifReply")
-       api.RegisterMessage((*DeleteSubif)(nil), "interface.DeleteSubif")
-       api.RegisterMessage((*DeleteSubifReply)(nil), "interface.DeleteSubifReply")
-       api.RegisterMessage((*CreateLoopback)(nil), "interface.CreateLoopback")
-       api.RegisterMessage((*CreateLoopbackReply)(nil), "interface.CreateLoopbackReply")
-       api.RegisterMessage((*CreateLoopbackInstance)(nil), "interface.CreateLoopbackInstance")
-       api.RegisterMessage((*CreateLoopbackInstanceReply)(nil), "interface.CreateLoopbackInstanceReply")
-       api.RegisterMessage((*DeleteLoopback)(nil), "interface.DeleteLoopback")
-       api.RegisterMessage((*DeleteLoopbackReply)(nil), "interface.DeleteLoopbackReply")
-       api.RegisterMessage((*CollectDetailedInterfaceStats)(nil), "interface.CollectDetailedInterfaceStats")
-       api.RegisterMessage((*CollectDetailedInterfaceStatsReply)(nil), "interface.CollectDetailedInterfaceStatsReply")
+       api.RegisterMessage((*SwInterfaceSetTable)(nil), "interface.SwInterfaceSetTable")
+       api.RegisterMessage((*SwInterfaceSetTableReply)(nil), "interface.SwInterfaceSetTableReply")
+       api.RegisterMessage((*SwInterfaceSetUnnumbered)(nil), "interface.SwInterfaceSetUnnumbered")
+       api.RegisterMessage((*SwInterfaceSetUnnumberedReply)(nil), "interface.SwInterfaceSetUnnumberedReply")
+       api.RegisterMessage((*SwInterfaceTagAddDel)(nil), "interface.SwInterfaceTagAddDel")
+       api.RegisterMessage((*SwInterfaceTagAddDelReply)(nil), "interface.SwInterfaceTagAddDelReply")
+       api.RegisterMessage((*WantInterfaceEvents)(nil), "interface.WantInterfaceEvents")
+       api.RegisterMessage((*WantInterfaceEventsReply)(nil), "interface.WantInterfaceEventsReply")
 }
index 8f31fd4..290abec 100644 (file)
@@ -5,13 +5,12 @@
  Package ip is a generated from VPP binary API module 'ip'.
 
  It contains following objects:
-        91 messages
-        11 types
-         3 aliases
+        44 services
          1 enum
+         3 aliases
+        11 types
          1 union
-        44 services
-
+        91 messages
 */
 package ip
 
@@ -303,124 +302,6 @@ func (*Address) GetCrcString() string {
        return "09f11671"
 }
 
-// Prefix represents VPP binary API type 'prefix':
-//
-//     "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"
-}
-
-// Mprefix represents VPP binary API type 'mprefix':
-//
-//     "mprefix",
-//     [
-//         "vl_api_address_family_t",
-//         "af"
-//     ],
-//     [
-//         "u16",
-//         "grp_address_length"
-//     ],
-//     [
-//         "vl_api_address_union_t",
-//         "grp_address"
-//     ],
-//     [
-//         "vl_api_address_union_t",
-//         "src_address"
-//     ],
-//     {
-//         "crc": "0x1c4cba05"
-//     }
-//
-type Mprefix struct {
-       Af               AddressFamily
-       GrpAddressLength uint16
-       GrpAddress       AddressUnion
-       SrcAddress       AddressUnion
-}
-
-func (*Mprefix) GetTypeName() string {
-       return "mprefix"
-}
-func (*Mprefix) GetCrcString() string {
-       return "1c4cba05"
-}
-
-// IP6Prefix represents VPP binary API type 'ip6_prefix':
-//
-//     "ip6_prefix",
-//     [
-//         "vl_api_ip6_address_t",
-//         "prefix"
-//     ],
-//     [
-//         "u8",
-//         "len"
-//     ],
-//     {
-//         "crc": "0x779fd64f"
-//     }
-//
-type IP6Prefix struct {
-       Prefix IP6Address
-       Len    uint8
-}
-
-func (*IP6Prefix) GetTypeName() string {
-       return "ip6_prefix"
-}
-func (*IP6Prefix) GetCrcString() string {
-       return "779fd64f"
-}
-
-// IP4Prefix represents VPP binary API type 'ip4_prefix':
-//
-//     "ip4_prefix",
-//     [
-//         "vl_api_ip4_address_t",
-//         "prefix"
-//     ],
-//     [
-//         "u8",
-//         "len"
-//     ],
-//     {
-//         "crc": "0xea8dc11d"
-//     }
-//
-type IP4Prefix struct {
-       Prefix IP4Address
-       Len    uint8
-}
-
-func (*IP4Prefix) GetTypeName() string {
-       return "ip4_prefix"
-}
-func (*IP4Prefix) GetCrcString() string {
-       return "ea8dc11d"
-}
-
 // FibMplsLabel represents VPP binary API type 'fib_mpls_label':
 //
 //     "fib_mpls_label",
@@ -582,63 +463,58 @@ func (*FibPath) GetCrcString() string {
        return "ba7a81f0"
 }
 
-// MfibPath represents VPP binary API type 'mfib_path':
+// IP4Prefix represents VPP binary API type 'ip4_prefix':
 //
-//     "mfib_path",
+//     "ip4_prefix",
 //     [
-//         "vl_api_fib_path_t",
-//         "path"
+//         "vl_api_ip4_address_t",
+//         "prefix"
 //     ],
 //     [
-//         "u32",
-//         "itf_flags"
+//         "u8",
+//         "len"
 //     ],
 //     {
-//         "crc": "0x4ba77d32"
+//         "crc": "0xea8dc11d"
 //     }
 //
-type MfibPath struct {
-       Path     FibPath
-       ItfFlags uint32
+type IP4Prefix struct {
+       Prefix IP4Address
+       Len    uint8
 }
 
-func (*MfibPath) GetTypeName() string {
-       return "mfib_path"
+func (*IP4Prefix) GetTypeName() string {
+       return "ip4_prefix"
 }
-func (*MfibPath) GetCrcString() string {
-       return "4ba77d32"
+func (*IP4Prefix) GetCrcString() string {
+       return "ea8dc11d"
 }
 
-// PuntRedirect represents VPP binary API type 'punt_redirect':
+// IP6Prefix represents VPP binary API type 'ip6_prefix':
 //
-//     "punt_redirect",
-//     [
-//         "u32",
-//         "rx_sw_if_index"
-//     ],
+//     "ip6_prefix",
 //     [
-//         "u32",
-//         "tx_sw_if_index"
+//         "vl_api_ip6_address_t",
+//         "prefix"
 //     ],
 //     [
-//         "vl_api_address_t",
-//         "nh"
+//         "u8",
+//         "len"
 //     ],
 //     {
-//         "crc": "0x3e7a801f"
+//         "crc": "0x779fd64f"
 //     }
 //
-type PuntRedirect struct {
-       RxSwIfIndex uint32
-       TxSwIfIndex uint32
-       Nh          Address
+type IP6Prefix struct {
+       Prefix IP6Address
+       Len    uint8
 }
 
-func (*PuntRedirect) GetTypeName() string {
-       return "punt_redirect"
+func (*IP6Prefix) GetTypeName() string {
+       return "ip6_prefix"
 }
-func (*PuntRedirect) GetCrcString() string {
-       return "3e7a801f"
+func (*IP6Prefix) GetCrcString() string {
+       return "779fd64f"
 }
 
 // IP6RaPrefixInfo represents VPP binary API type 'ip6_ra_prefix_info':
@@ -684,483 +560,230 @@ func (*IP6RaPrefixInfo) GetCrcString() string {
        return "83d7c6e5"
 }
 
-// ProxyArp represents VPP binary API type 'proxy_arp':
+// MfibPath represents VPP binary API type 'mfib_path':
 //
-//     "proxy_arp",
-//     [
-//         "u32",
-//         "vrf_id"
-//     ],
+//     "mfib_path",
 //     [
-//         "u8",
-//         "low_address",
-//         4
+//         "vl_api_fib_path_t",
+//         "path"
 //     ],
 //     [
-//         "u8",
-//         "hi_address",
-//         4
+//         "u32",
+//         "itf_flags"
 //     ],
 //     {
-//         "crc": "0x6d88106e"
+//         "crc": "0x4ba77d32"
 //     }
 //
-type ProxyArp struct {
-       VrfID      uint32
-       LowAddress []byte `struc:"[4]byte"`
-       HiAddress  []byte `struc:"[4]byte"`
+type MfibPath struct {
+       Path     FibPath
+       ItfFlags uint32
 }
 
-func (*ProxyArp) GetTypeName() string {
-       return "proxy_arp"
+func (*MfibPath) GetTypeName() string {
+       return "mfib_path"
 }
-func (*ProxyArp) GetCrcString() string {
-       return "6d88106e"
+func (*MfibPath) GetCrcString() string {
+       return "4ba77d32"
 }
 
-/* Unions */
-
-// AddressUnion represents VPP binary API union 'address_union':
+// Mprefix represents VPP binary API type 'mprefix':
 //
-//     "address_union",
+//     "mprefix",
 //     [
-//         "vl_api_ip4_address_t",
-//         "ip4"
+//         "vl_api_address_family_t",
+//         "af"
 //     ],
 //     [
-//         "vl_api_ip6_address_t",
-//         "ip6"
+//         "u16",
+//         "grp_address_length"
+//     ],
+//     [
+//         "vl_api_address_union_t",
+//         "grp_address"
+//     ],
+//     [
+//         "vl_api_address_union_t",
+//         "src_address"
 //     ],
 //     {
-//         "crc": "0xd68a2fb4"
+//         "crc": "0x1c4cba05"
 //     }
 //
-type AddressUnion struct {
-       Union_data [16]byte
+type Mprefix struct {
+       Af               AddressFamily
+       GrpAddressLength uint16
+       GrpAddress       AddressUnion
+       SrcAddress       AddressUnion
 }
 
-func (*AddressUnion) GetTypeName() string {
-       return "address_union"
-}
-func (*AddressUnion) GetCrcString() string {
-       return "d68a2fb4"
-}
-
-func (u *AddressUnion) SetIP4(a IP4Address) {
-       var b = new(bytes.Buffer)
-       if err := struc.Pack(b, &a); err != nil {
-               return
-       }
-       copy(u.Union_data[:], b.Bytes())
-}
-func (u *AddressUnion) GetIP4() (a IP4Address) {
-       var b = bytes.NewReader(u.Union_data[:])
-       struc.Unpack(b, &a)
-       return
-}
-
-func (u *AddressUnion) SetIP6(a IP6Address) {
-       var b = new(bytes.Buffer)
-       if err := struc.Pack(b, &a); err != nil {
-               return
-       }
-       copy(u.Union_data[:], b.Bytes())
+func (*Mprefix) GetTypeName() string {
+       return "mprefix"
 }
-func (u *AddressUnion) GetIP6() (a IP6Address) {
-       var b = bytes.NewReader(u.Union_data[:])
-       struc.Unpack(b, &a)
-       return
+func (*Mprefix) GetCrcString() string {
+       return "1c4cba05"
 }
 
-/* Messages */
-
-// IPTableAddDel represents VPP binary API message 'ip_table_add_del':
+// Prefix represents VPP binary API type 'prefix':
 //
-//     "ip_table_add_del",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "u32",
-//         "table_id"
-//     ],
-//     [
-//         "u8",
-//         "is_ipv6"
-//     ],
+//     "prefix",
 //     [
-//         "u8",
-//         "is_add"
+//         "vl_api_address_t",
+//         "address"
 //     ],
 //     [
 //         "u8",
-//         "name",
-//         64
-//     ],
-//     {
-//         "crc": "0x0240c89d"
-//     }
-//
-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':
-//
-//     "ip_table_add_del_reply",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "i32",
-//         "retval"
+//         "address_length"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0x0403aebc"
 //     }
 //
-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
+type Prefix struct {
+       Address       Address
+       AddressLength uint8
 }
 
-// IPFibDump represents VPP binary API message 'ip_fib_dump':
-//
-//     "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"
-}
-func (*IPFibDump) GetCrcString() string {
-       return "51077d14"
+func (*Prefix) GetTypeName() string {
+       return "prefix"
 }
-func (*IPFibDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*Prefix) GetCrcString() string {
+       return "0403aebc"
 }
 
-// IPFibDetails represents VPP binary API message 'ip_fib_details':
+// ProxyArp represents VPP binary API type 'proxy_arp':
 //
-//     "ip_fib_details",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
+//     "proxy_arp",
 //     [
 //         "u32",
-//         "table_id"
-//     ],
-//     [
-//         "u8",
-//         "table_name",
-//         64
+//         "vrf_id"
 //     ],
 //     [
 //         "u8",
-//         "address_length"
+//         "low_address",
+//         4
 //     ],
 //     [
 //         "u8",
-//         "address",
+//         "hi_address",
 //         4
 //     ],
-//     [
-//         "u32",
-//         "count"
-//     ],
-//     [
-//         "u32",
-//         "stats_index"
-//     ],
-//     [
-//         "vl_api_fib_path_t",
-//         "path",
-//         0,
-//         "count"
-//     ],
 //     {
-//         "crc": "0xf6a2fab3"
+//         "crc": "0x6d88106e"
 //     }
 //
-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
+type ProxyArp struct {
+       VrfID      uint32
+       LowAddress []byte `struc:"[4]byte"`
+       HiAddress  []byte `struc:"[4]byte"`
 }
 
-// IP6FibDump represents VPP binary API message 'ip6_fib_dump':
-//
-//     "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"
-}
-func (*IP6FibDump) GetCrcString() string {
-       return "51077d14"
+func (*ProxyArp) GetTypeName() string {
+       return "proxy_arp"
 }
-func (*IP6FibDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*ProxyArp) GetCrcString() string {
+       return "6d88106e"
 }
 
-// IP6FibDetails represents VPP binary API message 'ip6_fib_details':
+// PuntRedirect represents VPP binary API type 'punt_redirect':
 //
-//     "ip6_fib_details",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "u32",
-//         "table_id"
-//     ],
-//     [
-//         "u8",
-//         "table_name",
-//         64
-//     ],
-//     [
-//         "u8",
-//         "address_length"
-//     ],
-//     [
-//         "u8",
-//         "address",
-//         16
-//     ],
+//     "punt_redirect",
 //     [
 //         "u32",
-//         "count"
+//         "rx_sw_if_index"
 //     ],
 //     [
 //         "u32",
-//         "stats_index"
+//         "tx_sw_if_index"
 //     ],
 //     [
-//         "vl_api_fib_path_t",
-//         "path",
-//         0,
-//         "count"
+//         "vl_api_address_t",
+//         "nh"
 //     ],
 //     {
-//         "crc": "0xef11e94d"
+//         "crc": "0x3e7a801f"
 //     }
 //
-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
+type PuntRedirect struct {
+       RxSwIfIndex uint32
+       TxSwIfIndex uint32
+       Nh          Address
 }
 
-func (*IP6FibDetails) GetMessageName() string {
-       return "ip6_fib_details"
-}
-func (*IP6FibDetails) GetCrcString() string {
-       return "ef11e94d"
+func (*PuntRedirect) GetTypeName() string {
+       return "punt_redirect"
 }
-func (*IP6FibDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*PuntRedirect) GetCrcString() string {
+       return "3e7a801f"
 }
 
-// IPNeighborDump represents VPP binary API message 'ip_neighbor_dump':
+/* Unions */
+
+// AddressUnion represents VPP binary API union 'address_union':
 //
-//     "ip_neighbor_dump",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
+//     "address_union",
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "vl_api_ip4_address_t",
+//         "ip4"
 //     ],
 //     [
-//         "u8",
-//         "is_ipv6"
+//         "vl_api_ip6_address_t",
+//         "ip6"
 //     ],
 //     {
-//         "crc": "0x6b7bcd0a"
+//         "crc": "0xd68a2fb4"
 //     }
 //
-type IPNeighborDump struct {
-       SwIfIndex uint32
-       IsIPv6    uint8
+type AddressUnion struct {
+       Union_data [16]byte
 }
 
-func (*IPNeighborDump) GetMessageName() string {
-       return "ip_neighbor_dump"
-}
-func (*IPNeighborDump) GetCrcString() string {
-       return "6b7bcd0a"
+func (*AddressUnion) GetTypeName() string {
+       return "address_union"
 }
-func (*IPNeighborDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*AddressUnion) GetCrcString() string {
+       return "d68a2fb4"
 }
 
-// IPNeighborDetails represents VPP binary API message 'ip_neighbor_details':
-//
-//     "ip_neighbor_details",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "u32",
-//         "sw_if_index"
-//     ],
-//     [
-//         "u32",
-//         "stats_index"
-//     ],
-//     [
-//         "u8",
-//         "is_static"
-//     ],
-//     [
-//         "u8",
-//         "is_ipv6"
-//     ],
-//     [
-//         "u8",
-//         "mac_address",
-//         6
-//     ],
-//     [
-//         "u8",
-//         "ip_address",
-//         16
-//     ],
-//     {
-//         "crc": "0xc7001770"
-//     }
-//
-type IPNeighborDetails struct {
-       SwIfIndex  uint32
-       StatsIndex uint32
-       IsStatic   uint8
-       IsIPv6     uint8
-       MacAddress []byte `struc:"[6]byte"`
-       IPAddress  []byte `struc:"[16]byte"`
+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.Union_data[:], b.Bytes())
+}
+func (u *AddressUnion) GetIP4() (a IP4Address) {
+       var b = bytes.NewReader(u.Union_data[:])
+       struc.Unpack(b, &a)
+       return
 }
 
-func (*IPNeighborDetails) GetMessageName() string {
-       return "ip_neighbor_details"
+func AddressUnionIP6(a IP6Address) (u AddressUnion) {
+       u.SetIP6(a)
+       return
 }
-func (*IPNeighborDetails) GetCrcString() string {
-       return "c7001770"
+func (u *AddressUnion) SetIP6(a IP6Address) {
+       var b = new(bytes.Buffer)
+       if err := struc.Pack(b, &a); err != nil {
+               return
+       }
+       copy(u.Union_data[:], b.Bytes())
 }
-func (*IPNeighborDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (u *AddressUnion) GetIP6() (a IP6Address) {
+       var b = bytes.NewReader(u.Union_data[:])
+       struc.Unpack(b, &a)
+       return
 }
 
-// IPNeighborAddDel represents VPP binary API message 'ip_neighbor_add_del':
+/* Messages */
+
+// IoamDisable represents VPP binary API message 'ioam_disable':
 //
-//     "ip_neighbor_add_del",
+//     "ioam_disable",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1174,62 +797,30 @@ func (*IPNeighborDetails) GetMessageType() api.MessageType {
 //         "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
+//         "u16",
+//         "id"
 //     ],
 //     {
-//         "crc": "0x4711eb25"
+//         "crc": "0x6b16a45e"
 //     }
 //
-type IPNeighborAddDel struct {
-       SwIfIndex  uint32
-       IsAdd      uint8
-       IsIPv6     uint8
-       IsStatic   uint8
-       IsNoAdjFib uint8
-       MacAddress []byte `struc:"[6]byte"`
-       DstAddress []byte `struc:"[16]byte"`
+type IoamDisable struct {
+       ID uint16
 }
 
-func (*IPNeighborAddDel) GetMessageName() string {
-       return "ip_neighbor_add_del"
+func (*IoamDisable) GetMessageName() string {
+       return "ioam_disable"
 }
-func (*IPNeighborAddDel) GetCrcString() string {
-       return "4711eb25"
+func (*IoamDisable) GetCrcString() string {
+       return "6b16a45e"
 }
-func (*IPNeighborAddDel) GetMessageType() api.MessageType {
+func (*IoamDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPNeighborAddDelReply represents VPP binary API message 'ip_neighbor_add_del_reply':
+// IoamDisableReply represents VPP binary API message 'ioam_disable_reply':
 //
-//     "ip_neighbor_add_del_reply",
+//     "ioam_disable_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1242,32 +833,27 @@ func (*IPNeighborAddDel) GetMessageType() api.MessageType {
 //         "i32",
 //         "retval"
 //     ],
-//     [
-//         "u32",
-//         "stats_index"
-//     ],
 //     {
-//         "crc": "0x1992deab"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type IPNeighborAddDelReply struct {
-       Retval     int32
-       StatsIndex uint32
+type IoamDisableReply struct {
+       Retval int32
 }
 
-func (*IPNeighborAddDelReply) GetMessageName() string {
-       return "ip_neighbor_add_del_reply"
-}
-func (*IPNeighborAddDelReply) GetCrcString() string {
-       return "1992deab"
+func (*IoamDisableReply) GetMessageName() string {
+       return "ioam_disable_reply"
 }
-func (*IPNeighborAddDelReply) GetMessageType() api.MessageType {
+func (*IoamDisableReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*IoamDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SetIPFlowHash represents VPP binary API message 'set_ip_flow_hash':
+// IoamEnable represents VPP binary API message 'ioam_enable':
 //
-//     "set_ip_flow_hash",
+//     "ioam_enable",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1281,70 +867,55 @@ func (*IPNeighborAddDelReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "vrf_id"
-//     ],
-//     [
-//         "u8",
-//         "is_ipv6"
-//     ],
-//     [
-//         "u8",
-//         "src"
-//     ],
-//     [
-//         "u8",
-//         "dst"
+//         "u16",
+//         "id"
 //     ],
 //     [
 //         "u8",
-//         "sport"
+//         "seqno"
 //     ],
 //     [
 //         "u8",
-//         "dport"
+//         "analyse"
 //     ],
 //     [
 //         "u8",
-//         "proto"
+//         "pot_enable"
 //     ],
 //     [
 //         "u8",
-//         "reverse"
+//         "trace_enable"
 //     ],
 //     [
-//         "u8",
-//         "symmetric"
+//         "u32",
+//         "node_id"
 //     ],
 //     {
-//         "crc": "0xa9084bfb"
+//         "crc": "0x9392e032"
 //     }
 //
-type SetIPFlowHash struct {
-       VrfID     uint32
-       IsIPv6    uint8
-       Src       uint8
-       Dst       uint8
-       Sport     uint8
-       Dport     uint8
-       Proto     uint8
-       Reverse   uint8
-       Symmetric uint8
+type IoamEnable struct {
+       ID          uint16
+       Seqno       uint8
+       Analyse     uint8
+       PotEnable   uint8
+       TraceEnable uint8
+       NodeID      uint32
 }
 
-func (*SetIPFlowHash) GetMessageName() string {
-       return "set_ip_flow_hash"
+func (*IoamEnable) GetMessageName() string {
+       return "ioam_enable"
 }
-func (*SetIPFlowHash) GetCrcString() string {
-       return "a9084bfb"
+func (*IoamEnable) GetCrcString() string {
+       return "9392e032"
 }
-func (*SetIPFlowHash) GetMessageType() api.MessageType {
+func (*IoamEnable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SetIPFlowHashReply represents VPP binary API message 'set_ip_flow_hash_reply':
+// IoamEnableReply represents VPP binary API message 'ioam_enable_reply':
 //
-//     "set_ip_flow_hash_reply",
+//     "ioam_enable_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1361,23 +932,23 @@ func (*SetIPFlowHash) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type SetIPFlowHashReply struct {
+type IoamEnableReply struct {
        Retval int32
 }
 
-func (*SetIPFlowHashReply) GetMessageName() string {
-       return "set_ip_flow_hash_reply"
+func (*IoamEnableReply) GetMessageName() string {
+       return "ioam_enable_reply"
 }
-func (*SetIPFlowHashReply) GetCrcString() string {
+func (*IoamEnableReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*SetIPFlowHashReply) GetMessageType() api.MessageType {
+func (*IoamEnableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceIP6ndRaConfig represents VPP binary API message 'sw_interface_ip6nd_ra_config':
+// IP4ArpEvent represents VPP binary API message 'ip4_arp_event':
 //
-//     "sw_interface_ip6nd_ra_config",
+//     "ip4_arp_event",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1388,7 +959,11 @@ func (*SetIPFlowHashReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "address"
+//     ],
+//     [
+//         "u32",
+//         "pid"
 //     ],
 //     [
 //         "u32",
@@ -1396,123 +971,229 @@ func (*SetIPFlowHashReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u8",
-//         "suppress"
+//         "new_mac",
+//         6
 //     ],
 //     [
 //         "u8",
-//         "managed"
+//         "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
+}
+
+// IP6FibDetails represents VPP binary API message 'ip6_fib_details':
+//
+//     "ip6_fib_details",
 //     [
-//         "u8",
-//         "other"
+//         "u16",
+//         "_vl_msg_id"
 //     ],
 //     [
-//         "u8",
-//         "ll_option"
+//         "u32",
+//         "context"
 //     ],
 //     [
-//         "u8",
-//         "send_unicast"
+//         "u32",
+//         "table_id"
 //     ],
 //     [
 //         "u8",
-//         "cease"
+//         "table_name",
+//         64
 //     ],
 //     [
 //         "u8",
-//         "is_no"
+//         "address_length"
 //     ],
 //     [
 //         "u8",
-//         "default_router"
+//         "address",
+//         16
 //     ],
 //     [
 //         "u32",
-//         "max_interval"
+//         "count"
 //     ],
 //     [
 //         "u32",
-//         "min_interval"
+//         "stats_index"
+//     ],
+//     [
+//         "vl_api_fib_path_t",
+//         "path",
+//         0,
+//         "count"
+//     ],
+//     {
+//         "crc": "0xef11e94d"
+//     }
+//
+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':
+//
+//     "ip6_fib_dump",
+//     [
+//         "u16",
+//         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "lifetime"
+//         "client_index"
 //     ],
 //     [
 //         "u32",
-//         "initial_count"
+//         "context"
+//     ],
+//     {
+//         "crc": "0x51077d14"
+//     }
+//
+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':
+//
+//     "ip6_mfib_details",
+//     [
+//         "u16",
+//         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "initial_interval"
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "table_id"
+//     ],
+//     [
+//         "u8",
+//         "address_length"
+//     ],
+//     [
+//         "u8",
+//         "grp_address",
+//         16
+//     ],
+//     [
+//         "u8",
+//         "src_address",
+//         16
+//     ],
+//     [
+//         "u32",
+//         "count"
+//     ],
+//     [
+//         "vl_api_mfib_path_t",
+//         "path",
+//         0,
+//         "count"
 //     ],
 //     {
-//         "crc": "0xc3f02daa"
+//         "crc": "0x738c546e"
 //     }
 //
-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
+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 (*SwInterfaceIP6ndRaConfig) GetMessageName() string {
-       return "sw_interface_ip6nd_ra_config"
+func (*IP6MfibDetails) GetMessageName() string {
+       return "ip6_mfib_details"
 }
-func (*SwInterfaceIP6ndRaConfig) GetCrcString() string {
-       return "c3f02daa"
+func (*IP6MfibDetails) GetCrcString() string {
+       return "738c546e"
 }
-func (*SwInterfaceIP6ndRaConfig) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*IP6MfibDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-// SwInterfaceIP6ndRaConfigReply represents VPP binary API message 'sw_interface_ip6nd_ra_config_reply':
+// IP6MfibDump represents VPP binary API message 'ip6_mfib_dump':
 //
-//     "sw_interface_ip6nd_ra_config_reply",
+//     "ip6_mfib_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "client_index"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u32",
+//         "context"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0x51077d14"
 //     }
 //
-type SwInterfaceIP6ndRaConfigReply struct {
-       Retval int32
-}
+type IP6MfibDump struct{}
 
-func (*SwInterfaceIP6ndRaConfigReply) GetMessageName() string {
-       return "sw_interface_ip6nd_ra_config_reply"
+func (*IP6MfibDump) GetMessageName() string {
+       return "ip6_mfib_dump"
 }
-func (*SwInterfaceIP6ndRaConfigReply) GetCrcString() string {
-       return "e8d4e804"
+func (*IP6MfibDump) GetCrcString() string {
+       return "51077d14"
 }
-func (*SwInterfaceIP6ndRaConfigReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*IP6MfibDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// SwInterfaceIP6ndRaPrefix represents VPP binary API message 'sw_interface_ip6nd_ra_prefix':
+// IP6NdEvent represents VPP binary API message 'ip6_nd_event':
 //
-//     "sw_interface_ip6nd_ra_prefix",
+//     "ip6_nd_event",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1523,7 +1204,7 @@ func (*SwInterfaceIP6ndRaConfigReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "pid"
 //     ],
 //     [
 //         "u32",
@@ -1536,99 +1217,114 @@ func (*SwInterfaceIP6ndRaConfigReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u8",
-//         "address_length"
+//         "new_mac",
+//         6
 //     ],
 //     [
 //         "u8",
-//         "use_default"
+//         "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
+}
+
+// IP6RaEvent represents VPP binary API message 'ip6_ra_event':
+//
+//     "ip6_ra_event",
+//     [
+//         "u16",
+//         "_vl_msg_id"
 //     ],
 //     [
-//         "u8",
-//         "no_advertise"
+//         "u32",
+//         "client_index"
 //     ],
 //     [
-//         "u8",
-//         "off_link"
+//         "u32",
+//         "pid"
+//     ],
+//     [
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     [
 //         "u8",
-//         "no_autoconfig"
+//         "router_address",
+//         16
 //     ],
 //     [
 //         "u8",
-//         "no_onlink"
+//         "current_hop_limit"
 //     ],
 //     [
 //         "u8",
-//         "is_no"
+//         "flags"
 //     ],
 //     [
-//         "u32",
-//         "val_lifetime"
+//         "u16",
+//         "router_lifetime_in_sec"
 //     ],
 //     [
 //         "u32",
-//         "pref_lifetime"
+//         "neighbor_reachable_time_in_msec"
 //     ],
-//     {
-//         "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
-}
-
-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':
-//
-//     "sw_interface_ip6nd_ra_prefix_reply",
 //     [
-//         "u16",
-//         "_vl_msg_id"
+//         "u32",
+//         "time_in_msec_between_retransmitted_neighbor_solicitations"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "n_prefixes"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "vl_api_ip6_ra_prefix_info_t",
+//         "prefixes",
+//         0,
+//         "n_prefixes"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0xc5e54257"
 //     }
 //
-type SwInterfaceIP6ndRaPrefixReply struct {
-       Retval int32
+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 (*SwInterfaceIP6ndRaPrefixReply) GetMessageName() string {
-       return "sw_interface_ip6nd_ra_prefix_reply"
+func (*IP6RaEvent) GetMessageName() string {
+       return "ip6_ra_event"
 }
-func (*SwInterfaceIP6ndRaPrefixReply) GetCrcString() string {
-       return "e8d4e804"
+func (*IP6RaEvent) GetCrcString() string {
+       return "c5e54257"
 }
-func (*SwInterfaceIP6ndRaPrefixReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*IP6RaEvent) GetMessageType() api.MessageType {
+       return api.EventMessage
 }
 
 // IP6ndProxyAddDel represents VPP binary API message 'ip6nd_proxy_add_del':
@@ -1877,81 +1573,6 @@ func (*IP6ndSendRouterSolicitationReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceIP6EnableDisable represents VPP binary API message 'sw_interface_ip6_enable_disable':
-//
-//     "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
-}
-
-// SwInterfaceIP6EnableDisableReply represents VPP binary API message 'sw_interface_ip6_enable_disable_reply':
-//
-//     "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
-}
-
 // IPAddDelRoute represents VPP binary API message 'ip_add_del_route':
 //
 //     "ip_add_del_route",
@@ -2119,156 +1740,377 @@ func (*IPAddDelRoute) GetMessageName() string {
 func (*IPAddDelRoute) GetCrcString() string {
        return "4219d62d"
 }
-func (*IPAddDelRoute) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*IPAddDelRoute) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPAddDelRouteReply represents VPP binary API message 'ip_add_del_route_reply':
+//
+//     "ip_add_del_route_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "u32",
+//         "stats_index"
+//     ],
+//     {
+//         "crc": "0x1992deab"
+//     }
+//
+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':
+//
+//     "ip_address_details",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u8",
+//         "ip",
+//         16
+//     ],
+//     [
+//         "u8",
+//         "prefix_length"
+//     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
+//         "u8",
+//         "is_ipv6"
+//     ],
+//     {
+//         "crc": "0x9bc25966"
+//     }
+//
+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':
+//
+//     "ip_address_dump",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
+//         "u8",
+//         "is_ipv6"
+//     ],
+//     {
+//         "crc": "0x6b7bcd0a"
+//     }
+//
+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':
+//
+//     "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
+}
+
+func (*IPContainerProxyAddDel) GetMessageName() string {
+       return "ip_container_proxy_add_del"
+}
+func (*IPContainerProxyAddDel) GetCrcString() string {
+       return "0a355d39"
+}
+func (*IPContainerProxyAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// IPContainerProxyAddDelReply represents VPP binary API message 'ip_container_proxy_add_del_reply':
+//
+//     "ip_container_proxy_add_del_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     {
+//         "crc": "0xe8d4e804"
+//     }
+//
+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':
+//
+//     "ip_container_proxy_details",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
+//         "vl_api_prefix_t",
+//         "prefix"
+//     ],
+//     {
+//         "crc": "0xd528df63"
+//     }
+//
+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
 }
 
-// IPAddDelRouteReply represents VPP binary API message 'ip_add_del_route_reply':
+// IPContainerProxyDump represents VPP binary API message 'ip_container_proxy_dump':
 //
-//     "ip_add_del_route_reply",
+//     "ip_container_proxy_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "context"
-//     ],
-//     [
-//         "i32",
-//         "retval"
+//         "client_index"
 //     ],
 //     [
 //         "u32",
-//         "stats_index"
+//         "context"
 //     ],
 //     {
-//         "crc": "0x1992deab"
+//         "crc": "0x51077d14"
 //     }
 //
-type IPAddDelRouteReply struct {
-       Retval     int32
-       StatsIndex uint32
-}
+type IPContainerProxyDump struct{}
 
-func (*IPAddDelRouteReply) GetMessageName() string {
-       return "ip_add_del_route_reply"
+func (*IPContainerProxyDump) GetMessageName() string {
+       return "ip_container_proxy_dump"
 }
-func (*IPAddDelRouteReply) GetCrcString() string {
-       return "1992deab"
+func (*IPContainerProxyDump) GetCrcString() string {
+       return "51077d14"
 }
-func (*IPAddDelRouteReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*IPContainerProxyDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// IPMrouteAddDel represents VPP binary API message 'ip_mroute_add_del':
+// IPDetails represents VPP binary API message 'ip_details':
 //
-//     "ip_mroute_add_del",
+//     "ip_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
 //         "context"
 //     ],
 //     [
 //         "u32",
-//         "next_hop_sw_if_index"
-//     ],
-//     [
-//         "u32",
-//         "table_id"
+//         "sw_if_index"
 //     ],
 //     [
-//         "u32",
-//         "entry_flags"
+//         "u8",
+//         "is_ipv6"
 //     ],
+//     {
+//         "crc": "0x8bb37ec4"
+//     }
+//
+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':
+//
+//     "ip_dump",
 //     [
-//         "u32",
-//         "itf_flags"
+//         "u16",
+//         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "rpf_id"
+//         "client_index"
 //     ],
 //     [
 //         "u32",
-//         "bier_imp"
-//     ],
-//     [
-//         "u16",
-//         "grp_address_length"
-//     ],
-//     [
-//         "u8",
-//         "next_hop_afi"
-//     ],
-//     [
-//         "u8",
-//         "is_add"
+//         "context"
 //     ],
 //     [
 //         "u8",
 //         "is_ipv6"
 //     ],
-//     [
-//         "u8",
-//         "is_local"
-//     ],
-//     [
-//         "u8",
-//         "grp_address",
-//         16
-//     ],
-//     [
-//         "u8",
-//         "src_address",
-//         16
-//     ],
-//     [
-//         "u8",
-//         "nh_address",
-//         16
-//     ],
 //     {
-//         "crc": "0xf44c17b1"
+//         "crc": "0xde883da4"
 //     }
 //
-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"`
+type IPDump struct {
+       IsIPv6 uint8
 }
 
-func (*IPMrouteAddDel) GetMessageName() string {
-       return "ip_mroute_add_del"
+func (*IPDump) GetMessageName() string {
+       return "ip_dump"
 }
-func (*IPMrouteAddDel) GetCrcString() string {
-       return "f44c17b1"
+func (*IPDump) GetCrcString() string {
+       return "de883da4"
 }
-func (*IPMrouteAddDel) GetMessageType() api.MessageType {
+func (*IPDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPMrouteAddDelReply represents VPP binary API message 'ip_mroute_add_del_reply':
+// IPFibDetails represents VPP binary API message 'ip_fib_details':
 //
-//     "ip_mroute_add_del_reply",
+//     "ip_fib_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2278,35 +2120,64 @@ func (*IPMrouteAddDel) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u32",
+//         "table_id"
+//     ],
+//     [
+//         "u8",
+//         "table_name",
+//         64
+//     ],
+//     [
+//         "u8",
+//         "address_length"
+//     ],
+//     [
+//         "u8",
+//         "address",
+//         4
+//     ],
+//     [
+//         "u32",
+//         "count"
 //     ],
 //     [
 //         "u32",
 //         "stats_index"
 //     ],
+//     [
+//         "vl_api_fib_path_t",
+//         "path",
+//         0,
+//         "count"
+//     ],
 //     {
-//         "crc": "0x1992deab"
+//         "crc": "0xf6a2fab3"
 //     }
 //
-type IPMrouteAddDelReply struct {
-       Retval     int32
-       StatsIndex uint32
+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 (*IPMrouteAddDelReply) GetMessageName() string {
-       return "ip_mroute_add_del_reply"
+func (*IPFibDetails) GetMessageName() string {
+       return "ip_fib_details"
 }
-func (*IPMrouteAddDelReply) GetCrcString() string {
-       return "1992deab"
+func (*IPFibDetails) GetCrcString() string {
+       return "f6a2fab3"
 }
-func (*IPMrouteAddDelReply) GetMessageType() api.MessageType {
+func (*IPFibDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPMfibDump represents VPP binary API message 'ip_mfib_dump':
+// IPFibDump represents VPP binary API message 'ip_fib_dump':
 //
-//     "ip_mfib_dump",
+//     "ip_fib_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2323,15 +2194,15 @@ func (*IPMrouteAddDelReply) GetMessageType() api.MessageType {
 //         "crc": "0x51077d14"
 //     }
 //
-type IPMfibDump struct{}
+type IPFibDump struct{}
 
-func (*IPMfibDump) GetMessageName() string {
-       return "ip_mfib_dump"
+func (*IPFibDump) GetMessageName() string {
+       return "ip_fib_dump"
 }
-func (*IPMfibDump) GetCrcString() string {
+func (*IPFibDump) GetCrcString() string {
        return "51077d14"
 }
-func (*IPMfibDump) GetMessageType() api.MessageType {
+func (*IPFibDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
@@ -2412,9 +2283,9 @@ func (*IPMfibDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IP6MfibDump represents VPP binary API message 'ip6_mfib_dump':
+// IPMfibDump represents VPP binary API message 'ip_mfib_dump':
 //
-//     "ip6_mfib_dump",
+//     "ip_mfib_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2431,36 +2302,76 @@ func (*IPMfibDetails) GetMessageType() api.MessageType {
 //         "crc": "0x51077d14"
 //     }
 //
-type IP6MfibDump struct{}
+type IPMfibDump struct{}
 
-func (*IP6MfibDump) GetMessageName() string {
-       return "ip6_mfib_dump"
+func (*IPMfibDump) GetMessageName() string {
+       return "ip_mfib_dump"
 }
-func (*IP6MfibDump) GetCrcString() string {
+func (*IPMfibDump) GetCrcString() string {
        return "51077d14"
 }
-func (*IP6MfibDump) GetMessageType() api.MessageType {
+func (*IPMfibDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IP6MfibDetails represents VPP binary API message 'ip6_mfib_details':
+// IPMrouteAddDel represents VPP binary API message 'ip_mroute_add_del':
 //
-//     "ip6_mfib_details",
+//     "ip_mroute_add_del",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "next_hop_sw_if_index"
+//     ],
+//     [
+//         "u32",
+//         "table_id"
+//     ],
+//     [
+//         "u32",
+//         "entry_flags"
+//     ],
+//     [
+//         "u32",
+//         "itf_flags"
+//     ],
+//     [
+//         "u32",
+//         "rpf_id"
 //     ],
 //     [
 //         "u32",
-//         "table_id"
+//         "bier_imp"
+//     ],
+//     [
+//         "u16",
+//         "grp_address_length"
 //     ],
 //     [
 //         "u8",
-//         "address_length"
+//         "next_hop_afi"
+//     ],
+//     [
+//         "u8",
+//         "is_add"
+//     ],
+//     [
+//         "u8",
+//         "is_ipv6"
+//     ],
+//     [
+//         "u8",
+//         "is_local"
 //     ],
 //     [
 //         "u8",
@@ -2473,41 +2384,44 @@ func (*IP6MfibDump) GetMessageType() api.MessageType {
 //         16
 //     ],
 //     [
-//         "u32",
-//         "count"
-//     ],
-//     [
-//         "vl_api_mfib_path_t",
-//         "path",
-//         0,
-//         "count"
+//         "u8",
+//         "nh_address",
+//         16
 //     ],
 //     {
-//         "crc": "0x738c546e"
+//         "crc": "0xf44c17b1"
 //     }
 //
-type IP6MfibDetails struct {
-       TableID       uint32
-       AddressLength uint8
-       GrpAddress    []byte `struc:"[16]byte"`
-       SrcAddress    []byte `struc:"[16]byte"`
-       Count         uint32 `struc:"sizeof=Path"`
-       Path          []MfibPath
+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 (*IP6MfibDetails) GetMessageName() string {
-       return "ip6_mfib_details"
+func (*IPMrouteAddDel) GetMessageName() string {
+       return "ip_mroute_add_del"
 }
-func (*IP6MfibDetails) GetCrcString() string {
-       return "738c546e"
+func (*IPMrouteAddDel) GetCrcString() string {
+       return "f44c17b1"
 }
-func (*IP6MfibDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*IPMrouteAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// IPAddressDetails represents VPP binary API message 'ip_address_details':
+// IPMrouteAddDelReply represents VPP binary API message 'ip_mroute_add_del_reply':
 //
-//     "ip_address_details",
+//     "ip_mroute_add_del_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2517,46 +2431,35 @@ func (*IP6MfibDetails) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u8",
-//         "ip",
-//         16
-//     ],
-//     [
-//         "u8",
-//         "prefix_length"
+//         "i32",
+//         "retval"
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
-//     ],
-//     [
-//         "u8",
-//         "is_ipv6"
+//         "stats_index"
 //     ],
 //     {
-//         "crc": "0x9bc25966"
+//         "crc": "0x1992deab"
 //     }
 //
-type IPAddressDetails struct {
-       IP           []byte `struc:"[16]byte"`
-       PrefixLength uint8
-       SwIfIndex    uint32
-       IsIPv6       uint8
+type IPMrouteAddDelReply struct {
+       Retval     int32
+       StatsIndex uint32
 }
 
-func (*IPAddressDetails) GetMessageName() string {
-       return "ip_address_details"
+func (*IPMrouteAddDelReply) GetMessageName() string {
+       return "ip_mroute_add_del_reply"
 }
-func (*IPAddressDetails) GetCrcString() string {
-       return "9bc25966"
+func (*IPMrouteAddDelReply) GetCrcString() string {
+       return "1992deab"
 }
-func (*IPAddressDetails) GetMessageType() api.MessageType {
+func (*IPMrouteAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPAddressDump represents VPP binary API message 'ip_address_dump':
+// IPNeighborAddDel represents VPP binary API message 'ip_neighbor_add_del':
 //
-//     "ip_address_dump",
+//     "ip_neighbor_add_del",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2575,30 +2478,57 @@ func (*IPAddressDetails) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u8",
+//         "is_add"
+//     ],
+//     [
+//         "u8",
 //         "is_ipv6"
 //     ],
+//     [
+//         "u8",
+//         "is_static"
+//     ],
+//     [
+//         "u8",
+//         "is_no_adj_fib"
+//     ],
+//     [
+//         "u8",
+//         "mac_address",
+//         6
+//     ],
+//     [
+//         "u8",
+//         "dst_address",
+//         16
+//     ],
 //     {
-//         "crc": "0x6b7bcd0a"
+//         "crc": "0x4711eb25"
 //     }
 //
-type IPAddressDump struct {
-       SwIfIndex uint32
-       IsIPv6    uint8
+type IPNeighborAddDel struct {
+       SwIfIndex  uint32
+       IsAdd      uint8
+       IsIPv6     uint8
+       IsStatic   uint8
+       IsNoAdjFib uint8
+       MacAddress []byte `struc:"[6]byte"`
+       DstAddress []byte `struc:"[16]byte"`
 }
 
-func (*IPAddressDump) GetMessageName() string {
-       return "ip_address_dump"
+func (*IPNeighborAddDel) GetMessageName() string {
+       return "ip_neighbor_add_del"
 }
-func (*IPAddressDump) GetCrcString() string {
-       return "6b7bcd0a"
+func (*IPNeighborAddDel) GetCrcString() string {
+       return "4711eb25"
 }
-func (*IPAddressDump) GetMessageType() api.MessageType {
+func (*IPNeighborAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPUnnumberedDetails represents VPP binary API message 'ip_unnumbered_details':
+// IPNeighborAddDelReply represents VPP binary API message 'ip_neighbor_add_del_reply':
 //
-//     "ip_unnumbered_details",
+//     "ip_neighbor_add_del_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2608,110 +2538,95 @@ func (*IPAddressDump) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "i32",
+//         "retval"
 //     ],
 //     [
 //         "u32",
-//         "ip_sw_if_index"
+//         "stats_index"
 //     ],
 //     {
-//         "crc": "0xae694cf4"
+//         "crc": "0x1992deab"
 //     }
 //
-type IPUnnumberedDetails struct {
-       SwIfIndex   uint32
-       IPSwIfIndex uint32
+type IPNeighborAddDelReply struct {
+       Retval     int32
+       StatsIndex uint32
 }
 
-func (*IPUnnumberedDetails) GetMessageName() string {
-       return "ip_unnumbered_details"
+func (*IPNeighborAddDelReply) GetMessageName() string {
+       return "ip_neighbor_add_del_reply"
 }
-func (*IPUnnumberedDetails) GetCrcString() string {
-       return "ae694cf4"
+func (*IPNeighborAddDelReply) GetCrcString() string {
+       return "1992deab"
 }
-func (*IPUnnumberedDetails) GetMessageType() api.MessageType {
+func (*IPNeighborAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPUnnumberedDump represents VPP binary API message 'ip_unnumbered_dump':
+// IPNeighborDetails represents VPP binary API message 'ip_neighbor_details':
 //
-//     "ip_unnumbered_dump",
+//     "ip_neighbor_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
+//         "context"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "sw_if_index"
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "stats_index"
 //     ],
-//     {
-//         "crc": "0x529cb13f"
-//     }
-//
-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
-}
-
-// IPDetails represents VPP binary API message 'ip_details':
-//
-//     "ip_details",
 //     [
-//         "u16",
-//         "_vl_msg_id"
+//         "u8",
+//         "is_static"
 //     ],
 //     [
-//         "u32",
-//         "context"
+//         "u8",
+//         "is_ipv6"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "u8",
+//         "mac_address",
+//         6
 //     ],
 //     [
 //         "u8",
-//         "is_ipv6"
+//         "ip_address",
+//         16
 //     ],
 //     {
-//         "crc": "0x8bb37ec4"
+//         "crc": "0xc7001770"
 //     }
 //
-type IPDetails struct {
-       SwIfIndex uint32
-       IsIPv6    uint8
+type IPNeighborDetails struct {
+       SwIfIndex  uint32
+       StatsIndex uint32
+       IsStatic   uint8
+       IsIPv6     uint8
+       MacAddress []byte `struc:"[6]byte"`
+       IPAddress  []byte `struc:"[16]byte"`
 }
 
-func (*IPDetails) GetMessageName() string {
-       return "ip_details"
+func (*IPNeighborDetails) GetMessageName() string {
+       return "ip_neighbor_details"
 }
-func (*IPDetails) GetCrcString() string {
-       return "8bb37ec4"
+func (*IPNeighborDetails) GetCrcString() string {
+       return "c7001770"
 }
-func (*IPDetails) GetMessageType() api.MessageType {
+func (*IPNeighborDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPDump represents VPP binary API message 'ip_dump':
+// IPNeighborDump represents VPP binary API message 'ip_neighbor_dump':
 //
-//     "ip_dump",
+//     "ip_neighbor_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2725,30 +2640,35 @@ func (*IPDetails) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
 //         "u8",
 //         "is_ipv6"
 //     ],
 //     {
-//         "crc": "0xde883da4"
+//         "crc": "0x6b7bcd0a"
 //     }
 //
-type IPDump struct {
-       IsIPv6 uint8
+type IPNeighborDump struct {
+       SwIfIndex uint32
+       IsIPv6    uint8
 }
 
-func (*IPDump) GetMessageName() string {
-       return "ip_dump"
+func (*IPNeighborDump) GetMessageName() string {
+       return "ip_neighbor_dump"
 }
-func (*IPDump) GetCrcString() string {
-       return "de883da4"
+func (*IPNeighborDump) GetCrcString() string {
+       return "6b7bcd0a"
 }
-func (*IPDump) GetMessageType() api.MessageType {
+func (*IPNeighborDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MfibSignalDump represents VPP binary API message 'mfib_signal_dump':
+// IPProbeNeighbor represents VPP binary API message 'ip_probe_neighbor':
 //
-//     "mfib_signal_dump",
+//     "ip_probe_neighbor",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2761,25 +2681,42 @@ func (*IPDump) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
+//         "u8",
+//         "dst_address",
+//         16
+//     ],
+//     [
+//         "u8",
+//         "is_ipv6"
+//     ],
 //     {
-//         "crc": "0x51077d14"
+//         "crc": "0x1e44bfd7"
 //     }
 //
-type MfibSignalDump struct{}
+type IPProbeNeighbor struct {
+       SwIfIndex  uint32
+       DstAddress []byte `struc:"[16]byte"`
+       IsIPv6     uint8
+}
 
-func (*MfibSignalDump) GetMessageName() string {
-       return "mfib_signal_dump"
+func (*IPProbeNeighbor) GetMessageName() string {
+       return "ip_probe_neighbor"
 }
-func (*MfibSignalDump) GetCrcString() string {
-       return "51077d14"
+func (*IPProbeNeighbor) GetCrcString() string {
+       return "1e44bfd7"
 }
-func (*MfibSignalDump) GetMessageType() api.MessageType {
+func (*IPProbeNeighbor) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MfibSignalDetails represents VPP binary API message 'mfib_signal_details':
+// IPProbeNeighborReply represents VPP binary API message 'ip_probe_neighbor_reply':
 //
-//     "mfib_signal_details",
+//     "ip_probe_neighbor_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2789,57 +2726,24 @@ func (*MfibSignalDump) GetMessageType() api.MessageType {
 //         "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
+//         "i32",
+//         "retval"
 //     ],
 //     {
-//         "crc": "0x3f5f03f5"
+//         "crc": "0xe8d4e804"
 //     }
 //
-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"`
+type IPProbeNeighborReply struct {
+       Retval int32
 }
 
-func (*MfibSignalDetails) GetMessageName() string {
-       return "mfib_signal_details"
+func (*IPProbeNeighborReply) GetMessageName() string {
+       return "ip_probe_neighbor_reply"
 }
-func (*MfibSignalDetails) GetCrcString() string {
-       return "3f5f03f5"
+func (*IPProbeNeighborReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*MfibSignalDetails) GetMessageType() api.MessageType {
+func (*IPProbeNeighborReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
@@ -2965,9 +2869,9 @@ func (*IPPuntRedirect) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPPuntRedirectReply represents VPP binary API message 'ip_punt_redirect_reply':
+// IPPuntRedirectDetails represents VPP binary API message 'ip_punt_redirect_details':
 //
-//     "ip_punt_redirect_reply",
+//     "ip_punt_redirect_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -2977,24 +2881,24 @@ func (*IPPuntRedirect) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "vl_api_punt_redirect_t",
+//         "punt"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0xa47f70da"
 //     }
 //
-type IPPuntRedirectReply struct {
-       Retval int32
+type IPPuntRedirectDetails struct {
+       Punt PuntRedirect
 }
 
-func (*IPPuntRedirectReply) GetMessageName() string {
-       return "ip_punt_redirect_reply"
+func (*IPPuntRedirectDetails) GetMessageName() string {
+       return "ip_punt_redirect_details"
 }
-func (*IPPuntRedirectReply) GetCrcString() string {
-       return "e8d4e804"
+func (*IPPuntRedirectDetails) GetCrcString() string {
+       return "a47f70da"
 }
-func (*IPPuntRedirectReply) GetMessageType() api.MessageType {
+func (*IPPuntRedirectDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
@@ -3040,9 +2944,9 @@ func (*IPPuntRedirectDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPPuntRedirectDetails represents VPP binary API message 'ip_punt_redirect_details':
+// IPPuntRedirectReply represents VPP binary API message 'ip_punt_redirect_reply':
 //
-//     "ip_punt_redirect_details",
+//     "ip_punt_redirect_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3052,30 +2956,30 @@ func (*IPPuntRedirectDump) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "vl_api_punt_redirect_t",
-//         "punt"
+//         "i32",
+//         "retval"
 //     ],
 //     {
-//         "crc": "0xa47f70da"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type IPPuntRedirectDetails struct {
-       Punt PuntRedirect
+type IPPuntRedirectReply struct {
+       Retval int32
 }
 
-func (*IPPuntRedirectDetails) GetMessageName() string {
-       return "ip_punt_redirect_details"
+func (*IPPuntRedirectReply) GetMessageName() string {
+       return "ip_punt_redirect_reply"
 }
-func (*IPPuntRedirectDetails) GetCrcString() string {
-       return "a47f70da"
+func (*IPPuntRedirectReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*IPPuntRedirectDetails) GetMessageType() api.MessageType {
+func (*IPPuntRedirectReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPContainerProxyAddDel represents VPP binary API message 'ip_container_proxy_add_del':
+// IPReassemblyEnableDisable represents VPP binary API message 'ip_reassembly_enable_disable':
 //
-//     "ip_container_proxy_add_del",
+//     "ip_reassembly_enable_disable",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3089,51 +2993,40 @@ func (*IPPuntRedirectDetails) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u8",
-//         "ip",
-//         16
-//     ],
-//     [
-//         "u8",
-//         "is_ip4"
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     [
 //         "u8",
-//         "plen"
-//     ],
-//     [
-//         "u32",
-//         "sw_if_index"
+//         "enable_ip4"
 //     ],
 //     [
 //         "u8",
-//         "is_add"
+//         "enable_ip6"
 //     ],
 //     {
-//         "crc": "0x0a355d39"
+//         "crc": "0xbb8dc5d0"
 //     }
 //
-type IPContainerProxyAddDel struct {
-       IP        []byte `struc:"[16]byte"`
-       IsIP4     uint8
-       Plen      uint8
+type IPReassemblyEnableDisable struct {
        SwIfIndex uint32
-       IsAdd     uint8
+       EnableIP4 uint8
+       EnableIP6 uint8
 }
 
-func (*IPContainerProxyAddDel) GetMessageName() string {
-       return "ip_container_proxy_add_del"
+func (*IPReassemblyEnableDisable) GetMessageName() string {
+       return "ip_reassembly_enable_disable"
 }
-func (*IPContainerProxyAddDel) GetCrcString() string {
-       return "0a355d39"
+func (*IPReassemblyEnableDisable) GetCrcString() string {
+       return "bb8dc5d0"
 }
-func (*IPContainerProxyAddDel) GetMessageType() api.MessageType {
+func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPContainerProxyAddDelReply represents VPP binary API message 'ip_container_proxy_add_del_reply':
+// IPReassemblyEnableDisableReply represents VPP binary API message 'ip_reassembly_enable_disable_reply':
 //
-//     "ip_container_proxy_add_del_reply",
+//     "ip_reassembly_enable_disable_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3150,23 +3043,23 @@ func (*IPContainerProxyAddDel) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type IPContainerProxyAddDelReply struct {
+type IPReassemblyEnableDisableReply struct {
        Retval int32
 }
 
-func (*IPContainerProxyAddDelReply) GetMessageName() string {
-       return "ip_container_proxy_add_del_reply"
+func (*IPReassemblyEnableDisableReply) GetMessageName() string {
+       return "ip_reassembly_enable_disable_reply"
 }
-func (*IPContainerProxyAddDelReply) GetCrcString() string {
+func (*IPReassemblyEnableDisableReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IPContainerProxyAddDelReply) GetMessageType() api.MessageType {
+func (*IPReassemblyEnableDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPContainerProxyDump represents VPP binary API message 'ip_container_proxy_dump':
+// IPReassemblyGet represents VPP binary API message 'ip_reassembly_get':
 //
-//     "ip_container_proxy_dump",
+//     "ip_reassembly_get",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3179,63 +3072,84 @@ func (*IPContainerProxyAddDelReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
+//     [
+//         "u8",
+//         "is_ip6"
+//     ],
 //     {
-//         "crc": "0x51077d14"
+//         "crc": "0x6fe91190"
 //     }
 //
-type IPContainerProxyDump struct{}
+type IPReassemblyGet struct {
+       IsIP6 uint8
+}
 
-func (*IPContainerProxyDump) GetMessageName() string {
-       return "ip_container_proxy_dump"
+func (*IPReassemblyGet) GetMessageName() string {
+       return "ip_reassembly_get"
 }
-func (*IPContainerProxyDump) GetCrcString() string {
-       return "51077d14"
+func (*IPReassemblyGet) GetCrcString() string {
+       return "6fe91190"
 }
-func (*IPContainerProxyDump) GetMessageType() api.MessageType {
+func (*IPReassemblyGet) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPContainerProxyDetails represents VPP binary API message 'ip_container_proxy_details':
+// IPReassemblyGetReply represents VPP binary API message 'ip_reassembly_get_reply':
 //
-//     "ip_container_proxy_details",
+//     "ip_reassembly_get_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "u32",
+//         "timeout_ms"
+//     ],
+//     [
+//         "u32",
+//         "max_reassemblies"
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "expire_walk_interval_ms"
 //     ],
 //     [
-//         "vl_api_prefix_t",
-//         "prefix"
+//         "u8",
+//         "is_ip6"
 //     ],
 //     {
-//         "crc": "0xd528df63"
+//         "crc": "0x1f90afd1"
 //     }
 //
-type IPContainerProxyDetails struct {
-       SwIfIndex uint32
-       Prefix    Prefix
+type IPReassemblyGetReply struct {
+       Retval               int32
+       TimeoutMs            uint32
+       MaxReassemblies      uint32
+       ExpireWalkIntervalMs uint32
+       IsIP6                uint8
 }
 
-func (*IPContainerProxyDetails) GetMessageName() string {
-       return "ip_container_proxy_details"
+func (*IPReassemblyGetReply) GetMessageName() string {
+       return "ip_reassembly_get_reply"
 }
-func (*IPContainerProxyDetails) GetCrcString() string {
-       return "d528df63"
+func (*IPReassemblyGetReply) GetCrcString() string {
+       return "1f90afd1"
 }
-func (*IPContainerProxyDetails) GetMessageType() api.MessageType {
+func (*IPReassemblyGetReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPSourceAndPortRangeCheckAddDel represents VPP binary API message 'ip_source_and_port_range_check_add_del':
+// IPReassemblySet represents VPP binary API message 'ip_reassembly_set':
 //
-//     "ip_source_and_port_range_check_add_del",
+//     "ip_reassembly_set",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3249,68 +3163,45 @@ func (*IPContainerProxyDetails) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u8",
-//         "is_ipv6"
-//     ],
-//     [
-//         "u8",
-//         "is_add"
+//         "u32",
+//         "timeout_ms"
 //     ],
 //     [
-//         "u8",
-//         "mask_length"
+//         "u32",
+//         "max_reassemblies"
 //     ],
 //     [
-//         "u8",
-//         "address",
-//         16
+//         "u32",
+//         "expire_walk_interval_ms"
 //     ],
 //     [
 //         "u8",
-//         "number_of_ranges"
-//     ],
-//     [
-//         "u16",
-//         "low_ports",
-//         32
-//     ],
-//     [
-//         "u16",
-//         "high_ports",
-//         32
-//     ],
-//     [
-//         "u32",
-//         "vrf_id"
+//         "is_ip6"
 //     ],
 //     {
-//         "crc": "0x03d6b03a"
+//         "crc": "0x1db184de"
 //     }
 //
-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
+type IPReassemblySet struct {
+       TimeoutMs            uint32
+       MaxReassemblies      uint32
+       ExpireWalkIntervalMs uint32
+       IsIP6                uint8
 }
 
-func (*IPSourceAndPortRangeCheckAddDel) GetMessageName() string {
-       return "ip_source_and_port_range_check_add_del"
+func (*IPReassemblySet) GetMessageName() string {
+       return "ip_reassembly_set"
 }
-func (*IPSourceAndPortRangeCheckAddDel) GetCrcString() string {
-       return "03d6b03a"
+func (*IPReassemblySet) GetCrcString() string {
+       return "1db184de"
 }
-func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType {
+func (*IPReassemblySet) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPSourceAndPortRangeCheckAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_add_del_reply':
+// IPReassemblySetReply represents VPP binary API message 'ip_reassembly_set_reply':
 //
-//     "ip_source_and_port_range_check_add_del_reply",
+//     "ip_reassembly_set_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3327,23 +3218,23 @@ func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type IPSourceAndPortRangeCheckAddDelReply struct {
+type IPReassemblySetReply struct {
        Retval int32
 }
 
-func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageName() string {
-       return "ip_source_and_port_range_check_add_del_reply"
+func (*IPReassemblySetReply) GetMessageName() string {
+       return "ip_reassembly_set_reply"
 }
-func (*IPSourceAndPortRangeCheckAddDelReply) GetCrcString() string {
+func (*IPReassemblySetReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageType() api.MessageType {
+func (*IPReassemblySetReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPSourceAndPortRangeCheckInterfaceAddDel represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del':
+// IPScanNeighborEnableDisable represents VPP binary API message 'ip_scan_neighbor_enable_disable':
 //
-//     "ip_source_and_port_range_check_interface_add_del",
+//     "ip_scan_neighbor_enable_disable",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3358,54 +3249,54 @@ func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u8",
-//         "is_add"
+//         "mode"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "u8",
+//         "scan_interval"
 //     ],
 //     [
-//         "u32",
-//         "tcp_in_vrf_id"
+//         "u8",
+//         "max_proc_time"
 //     ],
 //     [
-//         "u32",
-//         "tcp_out_vrf_id"
+//         "u8",
+//         "max_update"
 //     ],
 //     [
-//         "u32",
-//         "udp_in_vrf_id"
+//         "u8",
+//         "scan_int_delay"
 //     ],
 //     [
-//         "u32",
-//         "udp_out_vrf_id"
+//         "u8",
+//         "stale_threshold"
 //     ],
 //     {
-//         "crc": "0x6966bc44"
+//         "crc": "0x0a6bf57a"
 //     }
 //
-type IPSourceAndPortRangeCheckInterfaceAddDel struct {
-       IsAdd       uint8
-       SwIfIndex   uint32
-       TCPInVrfID  uint32
-       TCPOutVrfID uint32
-       UDPInVrfID  uint32
-       UDPOutVrfID uint32
+type IPScanNeighborEnableDisable struct {
+       Mode           uint8
+       ScanInterval   uint8
+       MaxProcTime    uint8
+       MaxUpdate      uint8
+       ScanIntDelay   uint8
+       StaleThreshold uint8
 }
 
-func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageName() string {
-       return "ip_source_and_port_range_check_interface_add_del"
+func (*IPScanNeighborEnableDisable) GetMessageName() string {
+       return "ip_scan_neighbor_enable_disable"
 }
-func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetCrcString() string {
-       return "6966bc44"
+func (*IPScanNeighborEnableDisable) GetCrcString() string {
+       return "0a6bf57a"
 }
-func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageType() api.MessageType {
+func (*IPScanNeighborEnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPSourceAndPortRangeCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del_reply':
+// IPScanNeighborEnableDisableReply represents VPP binary API message 'ip_scan_neighbor_enable_disable_reply':
 //
-//     "ip_source_and_port_range_check_interface_add_del_reply",
+//     "ip_scan_neighbor_enable_disable_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3422,23 +3313,23 @@ func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageType() api.MessageTyp
 //         "crc": "0xe8d4e804"
 //     }
 //
-type IPSourceAndPortRangeCheckInterfaceAddDelReply struct {
+type IPScanNeighborEnableDisableReply struct {
        Retval int32
 }
 
-func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageName() string {
-       return "ip_source_and_port_range_check_interface_add_del_reply"
+func (*IPScanNeighborEnableDisableReply) GetMessageName() string {
+       return "ip_scan_neighbor_enable_disable_reply"
 }
-func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetCrcString() string {
+func (*IPScanNeighborEnableDisableReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
+func (*IPScanNeighborEnableDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPSourceCheckInterfaceAddDel represents VPP binary API message 'ip_source_check_interface_add_del':
+// IPSourceAndPortRangeCheckAddDel represents VPP binary API message 'ip_source_and_port_range_check_add_del':
 //
-//     "ip_source_check_interface_add_del",
+//     "ip_source_and_port_range_check_add_del",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3453,39 +3344,67 @@ func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageType() api.Messa
 //     ],
 //     [
 //         "u8",
+//         "is_ipv6"
+//     ],
+//     [
+//         "u8",
 //         "is_add"
 //     ],
 //     [
 //         "u8",
-//         "loose"
+//         "mask_length"
+//     ],
+//     [
+//         "u8",
+//         "address",
+//         16
+//     ],
+//     [
+//         "u8",
+//         "number_of_ranges"
+//     ],
+//     [
+//         "u16",
+//         "low_ports",
+//         32
+//     ],
+//     [
+//         "u16",
+//         "high_ports",
+//         32
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "vrf_id"
 //     ],
 //     {
-//         "crc": "0x0a60152a"
+//         "crc": "0x03d6b03a"
 //     }
 //
-type IPSourceCheckInterfaceAddDel struct {
-       IsAdd     uint8
-       Loose     uint8
-       SwIfIndex uint32
+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 (*IPSourceCheckInterfaceAddDel) GetMessageName() string {
-       return "ip_source_check_interface_add_del"
+func (*IPSourceAndPortRangeCheckAddDel) GetMessageName() string {
+       return "ip_source_and_port_range_check_add_del"
 }
-func (*IPSourceCheckInterfaceAddDel) GetCrcString() string {
-       return "0a60152a"
+func (*IPSourceAndPortRangeCheckAddDel) GetCrcString() string {
+       return "03d6b03a"
 }
-func (*IPSourceCheckInterfaceAddDel) GetMessageType() api.MessageType {
+func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPSourceCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_check_interface_add_del_reply':
+// IPSourceAndPortRangeCheckAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_add_del_reply':
 //
-//     "ip_source_check_interface_add_del_reply",
+//     "ip_source_and_port_range_check_add_del_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3502,23 +3421,23 @@ func (*IPSourceCheckInterfaceAddDel) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type IPSourceCheckInterfaceAddDelReply struct {
+type IPSourceAndPortRangeCheckAddDelReply struct {
        Retval int32
 }
 
-func (*IPSourceCheckInterfaceAddDelReply) GetMessageName() string {
-       return "ip_source_check_interface_add_del_reply"
+func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageName() string {
+       return "ip_source_and_port_range_check_add_del_reply"
 }
-func (*IPSourceCheckInterfaceAddDelReply) GetCrcString() string {
+func (*IPSourceAndPortRangeCheckAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IPSourceCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
+func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPScanNeighborEnableDisable represents VPP binary API message 'ip_scan_neighbor_enable_disable':
+// IPSourceAndPortRangeCheckInterfaceAddDel represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del':
 //
-//     "ip_scan_neighbor_enable_disable",
+//     "ip_source_and_port_range_check_interface_add_del",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3533,54 +3452,54 @@ func (*IPSourceCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u8",
-//         "mode"
+//         "is_add"
 //     ],
 //     [
-//         "u8",
-//         "scan_interval"
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     [
-//         "u8",
-//         "max_proc_time"
+//         "u32",
+//         "tcp_in_vrf_id"
 //     ],
 //     [
-//         "u8",
-//         "max_update"
+//         "u32",
+//         "tcp_out_vrf_id"
 //     ],
 //     [
-//         "u8",
-//         "scan_int_delay"
+//         "u32",
+//         "udp_in_vrf_id"
 //     ],
 //     [
-//         "u8",
-//         "stale_threshold"
+//         "u32",
+//         "udp_out_vrf_id"
 //     ],
 //     {
-//         "crc": "0x0a6bf57a"
+//         "crc": "0x6966bc44"
 //     }
 //
-type IPScanNeighborEnableDisable struct {
-       Mode           uint8
-       ScanInterval   uint8
-       MaxProcTime    uint8
-       MaxUpdate      uint8
-       ScanIntDelay   uint8
-       StaleThreshold uint8
+type IPSourceAndPortRangeCheckInterfaceAddDel struct {
+       IsAdd       uint8
+       SwIfIndex   uint32
+       TCPInVrfID  uint32
+       TCPOutVrfID uint32
+       UDPInVrfID  uint32
+       UDPOutVrfID uint32
 }
 
-func (*IPScanNeighborEnableDisable) GetMessageName() string {
-       return "ip_scan_neighbor_enable_disable"
+func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageName() string {
+       return "ip_source_and_port_range_check_interface_add_del"
 }
-func (*IPScanNeighborEnableDisable) GetCrcString() string {
-       return "0a6bf57a"
+func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetCrcString() string {
+       return "6966bc44"
 }
-func (*IPScanNeighborEnableDisable) GetMessageType() api.MessageType {
+func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPScanNeighborEnableDisableReply represents VPP binary API message 'ip_scan_neighbor_enable_disable_reply':
+// IPSourceAndPortRangeCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del_reply':
 //
-//     "ip_scan_neighbor_enable_disable_reply",
+//     "ip_source_and_port_range_check_interface_add_del_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3597,23 +3516,23 @@ func (*IPScanNeighborEnableDisable) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type IPScanNeighborEnableDisableReply struct {
+type IPSourceAndPortRangeCheckInterfaceAddDelReply struct {
        Retval int32
 }
 
-func (*IPScanNeighborEnableDisableReply) GetMessageName() string {
-       return "ip_scan_neighbor_enable_disable_reply"
+func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageName() string {
+       return "ip_source_and_port_range_check_interface_add_del_reply"
 }
-func (*IPScanNeighborEnableDisableReply) GetCrcString() string {
+func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IPScanNeighborEnableDisableReply) GetMessageType() api.MessageType {
+func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPProbeNeighbor represents VPP binary API message 'ip_probe_neighbor':
+// IPSourceCheckInterfaceAddDel represents VPP binary API message 'ip_source_check_interface_add_del':
 //
-//     "ip_probe_neighbor",
+//     "ip_source_check_interface_add_del",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3627,41 +3546,40 @@ func (*IPScanNeighborEnableDisableReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "u8",
+//         "is_add"
 //     ],
 //     [
 //         "u8",
-//         "dst_address",
-//         16
+//         "loose"
 //     ],
 //     [
-//         "u8",
-//         "is_ipv6"
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     {
-//         "crc": "0x1e44bfd7"
+//         "crc": "0x0a60152a"
 //     }
 //
-type IPProbeNeighbor struct {
-       SwIfIndex  uint32
-       DstAddress []byte `struc:"[16]byte"`
-       IsIPv6     uint8
+type IPSourceCheckInterfaceAddDel struct {
+       IsAdd     uint8
+       Loose     uint8
+       SwIfIndex uint32
 }
 
-func (*IPProbeNeighbor) GetMessageName() string {
-       return "ip_probe_neighbor"
+func (*IPSourceCheckInterfaceAddDel) GetMessageName() string {
+       return "ip_source_check_interface_add_del"
 }
-func (*IPProbeNeighbor) GetCrcString() string {
-       return "1e44bfd7"
+func (*IPSourceCheckInterfaceAddDel) GetCrcString() string {
+       return "0a60152a"
 }
-func (*IPProbeNeighbor) GetMessageType() api.MessageType {
+func (*IPSourceCheckInterfaceAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPProbeNeighborReply represents VPP binary API message 'ip_probe_neighbor_reply':
+// IPSourceCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_check_interface_add_del_reply':
 //
-//     "ip_probe_neighbor_reply",
+//     "ip_source_check_interface_add_del_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3678,23 +3596,23 @@ func (*IPProbeNeighbor) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type IPProbeNeighborReply struct {
+type IPSourceCheckInterfaceAddDelReply struct {
        Retval int32
 }
 
-func (*IPProbeNeighborReply) GetMessageName() string {
-       return "ip_probe_neighbor_reply"
+func (*IPSourceCheckInterfaceAddDelReply) GetMessageName() string {
+       return "ip_source_check_interface_add_del_reply"
 }
-func (*IPProbeNeighborReply) GetCrcString() string {
+func (*IPSourceCheckInterfaceAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IPProbeNeighborReply) GetMessageType() api.MessageType {
+func (*IPSourceCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// WantIP4ArpEvents represents VPP binary API message 'want_ip4_arp_events':
+// IPTableAddDel represents VPP binary API message 'ip_table_add_del':
 //
-//     "want_ip4_arp_events",
+//     "ip_table_add_del",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3708,40 +3626,46 @@ func (*IPProbeNeighborReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
+//         "u32",
+//         "table_id"
+//     ],
+//     [
 //         "u8",
-//         "enable_disable"
+//         "is_ipv6"
 //     ],
 //     [
-//         "u32",
-//         "pid"
+//         "u8",
+//         "is_add"
 //     ],
 //     [
-//         "u32",
-//         "address"
+//         "u8",
+//         "name",
+//         64
 //     ],
 //     {
-//         "crc": "0x77e06379"
+//         "crc": "0x0240c89d"
 //     }
 //
-type WantIP4ArpEvents struct {
-       EnableDisable uint8
-       PID           uint32
-       Address       uint32
+type IPTableAddDel struct {
+       TableID uint32
+       IsIPv6  uint8
+       IsAdd   uint8
+       Name    []byte `struc:"[64]byte"`
 }
 
-func (*WantIP4ArpEvents) GetMessageName() string {
-       return "want_ip4_arp_events"
+func (*IPTableAddDel) GetMessageName() string {
+       return "ip_table_add_del"
 }
-func (*WantIP4ArpEvents) GetCrcString() string {
-       return "77e06379"
+func (*IPTableAddDel) GetCrcString() string {
+       return "0240c89d"
 }
-func (*WantIP4ArpEvents) GetMessageType() api.MessageType {
+func (*IPTableAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// WantIP4ArpEventsReply represents VPP binary API message 'want_ip4_arp_events_reply':
+// IPTableAddDelReply represents VPP binary API message 'ip_table_add_del_reply':
 //
-//     "want_ip4_arp_events_reply",
+//     "ip_table_add_del_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3758,77 +3682,61 @@ func (*WantIP4ArpEvents) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type WantIP4ArpEventsReply struct {
+type IPTableAddDelReply struct {
        Retval int32
 }
 
-func (*WantIP4ArpEventsReply) GetMessageName() string {
-       return "want_ip4_arp_events_reply"
+func (*IPTableAddDelReply) GetMessageName() string {
+       return "ip_table_add_del_reply"
 }
-func (*WantIP4ArpEventsReply) GetCrcString() string {
+func (*IPTableAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*WantIP4ArpEventsReply) GetMessageType() api.MessageType {
+func (*IPTableAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IP4ArpEvent represents VPP binary API message 'ip4_arp_event':
+// IPUnnumberedDetails represents VPP binary API message 'ip_unnumbered_details':
 //
-//     "ip4_arp_event",
+//     "ip_unnumbered_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "address"
-//     ],
-//     [
-//         "u32",
-//         "pid"
+//         "context"
 //     ],
 //     [
 //         "u32",
 //         "sw_if_index"
 //     ],
 //     [
-//         "u8",
-//         "new_mac",
-//         6
-//     ],
-//     [
-//         "u8",
-//         "mac_ip"
+//         "u32",
+//         "ip_sw_if_index"
 //     ],
 //     {
-//         "crc": "0xef7235f7"
+//         "crc": "0xae694cf4"
 //     }
 //
-type IP4ArpEvent struct {
-       Address   uint32
-       PID       uint32
-       SwIfIndex uint32
-       NewMac    []byte `struc:"[6]byte"`
-       MacIP     uint8
+type IPUnnumberedDetails struct {
+       SwIfIndex   uint32
+       IPSwIfIndex uint32
 }
 
-func (*IP4ArpEvent) GetMessageName() string {
-       return "ip4_arp_event"
+func (*IPUnnumberedDetails) GetMessageName() string {
+       return "ip_unnumbered_details"
 }
-func (*IP4ArpEvent) GetCrcString() string {
-       return "ef7235f7"
+func (*IPUnnumberedDetails) GetCrcString() string {
+       return "ae694cf4"
 }
-func (*IP4ArpEvent) GetMessageType() api.MessageType {
-       return api.EventMessage
+func (*IPUnnumberedDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-// WantIP6NdEvents represents VPP binary API message 'want_ip6_nd_events':
+// IPUnnumberedDump represents VPP binary API message 'ip_unnumbered_dump':
 //
-//     "want_ip6_nd_events",
+//     "ip_unnumbered_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3842,74 +3750,96 @@ func (*IP4ArpEvent) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u8",
-//         "enable_disable"
-//     ],
-//     [
 //         "u32",
-//         "pid"
-//     ],
-//     [
-//         "u8",
-//         "address",
-//         16
+//         "sw_if_index"
 //     ],
 //     {
-//         "crc": "0x1cf65fbb"
+//         "crc": "0x529cb13f"
 //     }
 //
-type WantIP6NdEvents struct {
-       EnableDisable uint8
-       PID           uint32
-       Address       []byte `struc:"[16]byte"`
+type IPUnnumberedDump struct {
+       SwIfIndex uint32
 }
 
-func (*WantIP6NdEvents) GetMessageName() string {
-       return "want_ip6_nd_events"
+func (*IPUnnumberedDump) GetMessageName() string {
+       return "ip_unnumbered_dump"
 }
-func (*WantIP6NdEvents) GetCrcString() string {
-       return "1cf65fbb"
+func (*IPUnnumberedDump) GetCrcString() string {
+       return "529cb13f"
 }
-func (*WantIP6NdEvents) GetMessageType() api.MessageType {
+func (*IPUnnumberedDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// WantIP6NdEventsReply represents VPP binary API message 'want_ip6_nd_events_reply':
+// MfibSignalDetails represents VPP binary API message 'mfib_signal_details':
 //
-//     "want_ip6_nd_events_reply",
+//     "mfib_signal_details",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
+//         "u32",
+//         "table_id"
+//     ],
 //     [
 //         "u16",
-//         "_vl_msg_id"
+//         "grp_address_len"
 //     ],
 //     [
-//         "u32",
-//         "context"
+//         "u8",
+//         "grp_address",
+//         16
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u8",
+//         "src_address",
+//         16
+//     ],
+//     [
+//         "u16",
+//         "ip_packet_len"
+//     ],
+//     [
+//         "u8",
+//         "ip_packet_data",
+//         256
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0x3f5f03f5"
 //     }
 //
-type WantIP6NdEventsReply struct {
-       Retval int32
+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 (*WantIP6NdEventsReply) GetMessageName() string {
-       return "want_ip6_nd_events_reply"
+func (*MfibSignalDetails) GetMessageName() string {
+       return "mfib_signal_details"
 }
-func (*WantIP6NdEventsReply) GetCrcString() string {
-       return "e8d4e804"
+func (*MfibSignalDetails) GetCrcString() string {
+       return "3f5f03f5"
 }
-func (*WantIP6NdEventsReply) GetMessageType() api.MessageType {
+func (*MfibSignalDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IP6NdEvent represents VPP binary API message 'ip6_nd_event':
+// MfibSignalDump represents VPP binary API message 'mfib_signal_dump':
 //
-//     "ip6_nd_event",
+//     "mfib_signal_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3920,51 +3850,27 @@ func (*WantIP6NdEventsReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "pid"
-//     ],
-//     [
-//         "u32",
-//         "sw_if_index"
-//     ],
-//     [
-//         "u8",
-//         "address",
-//         16
-//     ],
-//     [
-//         "u8",
-//         "new_mac",
-//         6
-//     ],
-//     [
-//         "u8",
-//         "mac_ip"
+//         "context"
 //     ],
 //     {
-//         "crc": "0x96ab2fdd"
+//         "crc": "0x51077d14"
 //     }
 //
-type IP6NdEvent struct {
-       PID       uint32
-       SwIfIndex uint32
-       Address   []byte `struc:"[16]byte"`
-       NewMac    []byte `struc:"[6]byte"`
-       MacIP     uint8
-}
+type MfibSignalDump struct{}
 
-func (*IP6NdEvent) GetMessageName() string {
-       return "ip6_nd_event"
+func (*MfibSignalDump) GetMessageName() string {
+       return "mfib_signal_dump"
 }
-func (*IP6NdEvent) GetCrcString() string {
-       return "96ab2fdd"
+func (*MfibSignalDump) GetCrcString() string {
+       return "51077d14"
 }
-func (*IP6NdEvent) GetMessageType() api.MessageType {
-       return api.EventMessage
+func (*MfibSignalDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// WantIP6RaEvents represents VPP binary API message 'want_ip6_ra_events':
+// ProxyArpAddDel represents VPP binary API message 'proxy_arp_add_del':
 //
-//     "want_ip6_ra_events",
+//     "proxy_arp_add_del",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -3979,34 +3885,34 @@ func (*IP6NdEvent) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u8",
-//         "enable_disable"
+//         "is_add"
 //     ],
 //     [
-//         "u32",
-//         "pid"
+//         "vl_api_proxy_arp_t",
+//         "proxy"
 //     ],
 //     {
-//         "crc": "0x05b454b5"
+//         "crc": "0x227988d9"
 //     }
 //
-type WantIP6RaEvents struct {
-       EnableDisable uint8
-       PID           uint32
+type ProxyArpAddDel struct {
+       IsAdd uint8
+       Proxy ProxyArp
 }
 
-func (*WantIP6RaEvents) GetMessageName() string {
-       return "want_ip6_ra_events"
+func (*ProxyArpAddDel) GetMessageName() string {
+       return "proxy_arp_add_del"
 }
-func (*WantIP6RaEvents) GetCrcString() string {
-       return "05b454b5"
+func (*ProxyArpAddDel) GetCrcString() string {
+       return "227988d9"
 }
-func (*WantIP6RaEvents) GetMessageType() api.MessageType {
+func (*ProxyArpAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// WantIP6RaEventsReply represents VPP binary API message 'want_ip6_ra_events_reply':
+// ProxyArpAddDelReply represents VPP binary API message 'proxy_arp_add_del_reply':
 //
-//     "want_ip6_ra_events_reply",
+//     "proxy_arp_add_del_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4023,179 +3929,151 @@ func (*WantIP6RaEvents) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type WantIP6RaEventsReply struct {
+type ProxyArpAddDelReply struct {
        Retval int32
 }
 
-func (*WantIP6RaEventsReply) GetMessageName() string {
-       return "want_ip6_ra_events_reply"
+func (*ProxyArpAddDelReply) GetMessageName() string {
+       return "proxy_arp_add_del_reply"
 }
-func (*WantIP6RaEventsReply) GetCrcString() string {
+func (*ProxyArpAddDelReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*WantIP6RaEventsReply) GetMessageType() api.MessageType {
+func (*ProxyArpAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IP6RaEvent represents VPP binary API message 'ip6_ra_event':
+// ProxyArpDetails represents VPP binary API message 'proxy_arp_details':
 //
-//     "ip6_ra_event",
+//     "proxy_arp_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "pid"
-//     ],
-//     [
-//         "u32",
-//         "sw_if_index"
-//     ],
-//     [
-//         "u8",
-//         "router_address",
-//         16
-//     ],
-//     [
-//         "u8",
-//         "current_hop_limit"
+//         "context"
 //     ],
 //     [
-//         "u8",
-//         "flags"
+//         "vl_api_proxy_arp_t",
+//         "proxy"
 //     ],
+//     {
+//         "crc": "0x9b707c77"
+//     }
+//
+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':
+//
+//     "proxy_arp_dump",
 //     [
 //         "u16",
-//         "router_lifetime_in_sec"
-//     ],
-//     [
-//         "u32",
-//         "neighbor_reachable_time_in_msec"
+//         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "time_in_msec_between_retransmitted_neighbor_solicitations"
+//         "client_index"
 //     ],
 //     [
 //         "u32",
-//         "n_prefixes"
-//     ],
-//     [
-//         "vl_api_ip6_ra_prefix_info_t",
-//         "prefixes",
-//         0,
-//         "n_prefixes"
+//         "context"
 //     ],
 //     {
-//         "crc": "0xc5e54257"
+//         "crc": "0x51077d14"
 //     }
 //
-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
-}
+type ProxyArpDump struct{}
 
-func (*IP6RaEvent) GetMessageName() string {
-       return "ip6_ra_event"
+func (*ProxyArpDump) GetMessageName() string {
+       return "proxy_arp_dump"
 }
-func (*IP6RaEvent) GetCrcString() string {
-       return "c5e54257"
+func (*ProxyArpDump) GetCrcString() string {
+       return "51077d14"
 }
-func (*IP6RaEvent) GetMessageType() api.MessageType {
-       return api.EventMessage
+func (*ProxyArpDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// ProxyArpAddDel represents VPP binary API message 'proxy_arp_add_del':
+// ProxyArpIntfcDetails represents VPP binary API message 'proxy_arp_intfc_details':
 //
-//     "proxy_arp_add_del",
+//     "proxy_arp_intfc_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
 //         "context"
 //     ],
 //     [
-//         "u8",
-//         "is_add"
-//     ],
-//     [
-//         "vl_api_proxy_arp_t",
-//         "proxy"
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     {
-//         "crc": "0x227988d9"
+//         "crc": "0xf6458e5f"
 //     }
 //
-type ProxyArpAddDel struct {
-       IsAdd uint8
-       Proxy ProxyArp
+type ProxyArpIntfcDetails struct {
+       SwIfIndex uint32
 }
 
-func (*ProxyArpAddDel) GetMessageName() string {
-       return "proxy_arp_add_del"
-}
-func (*ProxyArpAddDel) GetCrcString() string {
-       return "227988d9"
+func (*ProxyArpIntfcDetails) GetMessageName() string {
+       return "proxy_arp_intfc_details"
 }
-func (*ProxyArpAddDel) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*ProxyArpIntfcDetails) GetCrcString() string {
+       return "f6458e5f"
+}
+func (*ProxyArpIntfcDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-// ProxyArpAddDelReply represents VPP binary API message 'proxy_arp_add_del_reply':
+// ProxyArpIntfcDump represents VPP binary API message 'proxy_arp_intfc_dump':
 //
-//     "proxy_arp_add_del_reply",
+//     "proxy_arp_intfc_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "client_index"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u32",
+//         "context"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0x51077d14"
 //     }
 //
-type ProxyArpAddDelReply struct {
-       Retval int32
-}
+type ProxyArpIntfcDump struct{}
 
-func (*ProxyArpAddDelReply) GetMessageName() string {
-       return "proxy_arp_add_del_reply"
+func (*ProxyArpIntfcDump) GetMessageName() string {
+       return "proxy_arp_intfc_dump"
 }
-func (*ProxyArpAddDelReply) GetCrcString() string {
-       return "e8d4e804"
+func (*ProxyArpIntfcDump) GetCrcString() string {
+       return "51077d14"
 }
-func (*ProxyArpAddDelReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*ProxyArpIntfcDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// ProxyArpDump represents VPP binary API message 'proxy_arp_dump':
+// ProxyArpIntfcEnableDisable represents VPP binary API message 'proxy_arp_intfc_enable_disable':
 //
-//     "proxy_arp_dump",
+//     "proxy_arp_intfc_enable_disable",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4208,25 +4086,36 @@ func (*ProxyArpAddDelReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
+//         "u8",
+//         "enable_disable"
+//     ],
 //     {
-//         "crc": "0x51077d14"
+//         "crc": "0x69d24598"
 //     }
 //
-type ProxyArpDump struct{}
+type ProxyArpIntfcEnableDisable struct {
+       SwIfIndex     uint32
+       EnableDisable uint8
+}
 
-func (*ProxyArpDump) GetMessageName() string {
-       return "proxy_arp_dump"
+func (*ProxyArpIntfcEnableDisable) GetMessageName() string {
+       return "proxy_arp_intfc_enable_disable"
 }
-func (*ProxyArpDump) GetCrcString() string {
-       return "51077d14"
+func (*ProxyArpIntfcEnableDisable) GetCrcString() string {
+       return "69d24598"
 }
-func (*ProxyArpDump) GetMessageType() api.MessageType {
+func (*ProxyArpIntfcEnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ProxyArpDetails represents VPP binary API message 'proxy_arp_details':
+// ProxyArpIntfcEnableDisableReply represents VPP binary API message 'proxy_arp_intfc_enable_disable_reply':
 //
-//     "proxy_arp_details",
+//     "proxy_arp_intfc_enable_disable_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4236,30 +4125,30 @@ func (*ProxyArpDump) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "vl_api_proxy_arp_t",
-//         "proxy"
+//         "i32",
+//         "retval"
 //     ],
 //     {
-//         "crc": "0x9b707c77"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type ProxyArpDetails struct {
-       Proxy ProxyArp
+type ProxyArpIntfcEnableDisableReply struct {
+       Retval int32
 }
 
-func (*ProxyArpDetails) GetMessageName() string {
-       return "proxy_arp_details"
+func (*ProxyArpIntfcEnableDisableReply) GetMessageName() string {
+       return "proxy_arp_intfc_enable_disable_reply"
 }
-func (*ProxyArpDetails) GetCrcString() string {
-       return "9b707c77"
+func (*ProxyArpIntfcEnableDisableReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*ProxyArpDetails) GetMessageType() api.MessageType {
+func (*ProxyArpIntfcEnableDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ProxyArpIntfcEnableDisable represents VPP binary API message 'proxy_arp_intfc_enable_disable':
+// ResetFib represents VPP binary API message 'reset_fib':
 //
-//     "proxy_arp_intfc_enable_disable",
+//     "reset_fib",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4274,34 +4163,34 @@ func (*ProxyArpDetails) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
+//         "vrf_id"
 //     ],
 //     [
 //         "u8",
-//         "enable_disable"
+//         "is_ipv6"
 //     ],
 //     {
-//         "crc": "0x69d24598"
+//         "crc": "0x8553ebd9"
 //     }
 //
-type ProxyArpIntfcEnableDisable struct {
-       SwIfIndex     uint32
-       EnableDisable uint8
+type ResetFib struct {
+       VrfID  uint32
+       IsIPv6 uint8
 }
 
-func (*ProxyArpIntfcEnableDisable) GetMessageName() string {
-       return "proxy_arp_intfc_enable_disable"
+func (*ResetFib) GetMessageName() string {
+       return "reset_fib"
 }
-func (*ProxyArpIntfcEnableDisable) GetCrcString() string {
-       return "69d24598"
+func (*ResetFib) GetCrcString() string {
+       return "8553ebd9"
 }
-func (*ProxyArpIntfcEnableDisable) GetMessageType() api.MessageType {
+func (*ResetFib) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ProxyArpIntfcEnableDisableReply represents VPP binary API message 'proxy_arp_intfc_enable_disable_reply':
+// ResetFibReply represents VPP binary API message 'reset_fib_reply':
 //
-//     "proxy_arp_intfc_enable_disable_reply",
+//     "reset_fib_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4318,23 +4207,23 @@ func (*ProxyArpIntfcEnableDisable) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type ProxyArpIntfcEnableDisableReply struct {
+type ResetFibReply struct {
        Retval int32
 }
 
-func (*ProxyArpIntfcEnableDisableReply) GetMessageName() string {
-       return "proxy_arp_intfc_enable_disable_reply"
+func (*ResetFibReply) GetMessageName() string {
+       return "reset_fib_reply"
 }
-func (*ProxyArpIntfcEnableDisableReply) GetCrcString() string {
+func (*ResetFibReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*ProxyArpIntfcEnableDisableReply) GetMessageType() api.MessageType {
+func (*ResetFibReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ProxyArpIntfcDump represents VPP binary API message 'proxy_arp_intfc_dump':
+// SetArpNeighborLimit represents VPP binary API message 'set_arp_neighbor_limit':
 //
-//     "proxy_arp_intfc_dump",
+//     "set_arp_neighbor_limit",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4347,25 +4236,36 @@ func (*ProxyArpIntfcEnableDisableReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
+//     [
+//         "u8",
+//         "is_ipv6"
+//     ],
+//     [
+//         "u32",
+//         "arp_neighbor_limit"
+//     ],
 //     {
-//         "crc": "0x51077d14"
+//         "crc": "0x97d01fd6"
 //     }
 //
-type ProxyArpIntfcDump struct{}
+type SetArpNeighborLimit struct {
+       IsIPv6           uint8
+       ArpNeighborLimit uint32
+}
 
-func (*ProxyArpIntfcDump) GetMessageName() string {
-       return "proxy_arp_intfc_dump"
+func (*SetArpNeighborLimit) GetMessageName() string {
+       return "set_arp_neighbor_limit"
 }
-func (*ProxyArpIntfcDump) GetCrcString() string {
-       return "51077d14"
+func (*SetArpNeighborLimit) GetCrcString() string {
+       return "97d01fd6"
 }
-func (*ProxyArpIntfcDump) GetMessageType() api.MessageType {
+func (*SetArpNeighborLimit) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ProxyArpIntfcDetails represents VPP binary API message 'proxy_arp_intfc_details':
+// SetArpNeighborLimitReply represents VPP binary API message 'set_arp_neighbor_limit_reply':
 //
-//     "proxy_arp_intfc_details",
+//     "set_arp_neighbor_limit_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4375,30 +4275,30 @@ func (*ProxyArpIntfcDump) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "i32",
+//         "retval"
 //     ],
 //     {
-//         "crc": "0xf6458e5f"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type ProxyArpIntfcDetails struct {
-       SwIfIndex uint32
+type SetArpNeighborLimitReply struct {
+       Retval int32
 }
 
-func (*ProxyArpIntfcDetails) GetMessageName() string {
-       return "proxy_arp_intfc_details"
+func (*SetArpNeighborLimitReply) GetMessageName() string {
+       return "set_arp_neighbor_limit_reply"
 }
-func (*ProxyArpIntfcDetails) GetCrcString() string {
-       return "f6458e5f"
+func (*SetArpNeighborLimitReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*ProxyArpIntfcDetails) GetMessageType() api.MessageType {
+func (*SetArpNeighborLimitReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ResetFib represents VPP binary API message 'reset_fib':
+// SetIPFlowHash represents VPP binary API message 'set_ip_flow_hash':
 //
-//     "reset_fib",
+//     "set_ip_flow_hash",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4419,28 +4319,63 @@ func (*ProxyArpIntfcDetails) GetMessageType() api.MessageType {
 //         "u8",
 //         "is_ipv6"
 //     ],
+//     [
+//         "u8",
+//         "src"
+//     ],
+//     [
+//         "u8",
+//         "dst"
+//     ],
+//     [
+//         "u8",
+//         "sport"
+//     ],
+//     [
+//         "u8",
+//         "dport"
+//     ],
+//     [
+//         "u8",
+//         "proto"
+//     ],
+//     [
+//         "u8",
+//         "reverse"
+//     ],
+//     [
+//         "u8",
+//         "symmetric"
+//     ],
 //     {
-//         "crc": "0x8553ebd9"
+//         "crc": "0xa9084bfb"
 //     }
 //
-type ResetFib struct {
-       VrfID  uint32
-       IsIPv6 uint8
+type SetIPFlowHash struct {
+       VrfID     uint32
+       IsIPv6    uint8
+       Src       uint8
+       Dst       uint8
+       Sport     uint8
+       Dport     uint8
+       Proto     uint8
+       Reverse   uint8
+       Symmetric uint8
 }
 
-func (*ResetFib) GetMessageName() string {
-       return "reset_fib"
+func (*SetIPFlowHash) GetMessageName() string {
+       return "set_ip_flow_hash"
 }
-func (*ResetFib) GetCrcString() string {
-       return "8553ebd9"
+func (*SetIPFlowHash) GetCrcString() string {
+       return "a9084bfb"
 }
-func (*ResetFib) GetMessageType() api.MessageType {
+func (*SetIPFlowHash) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ResetFibReply represents VPP binary API message 'reset_fib_reply':
+// SetIPFlowHashReply represents VPP binary API message 'set_ip_flow_hash_reply':
 //
-//     "reset_fib_reply",
+//     "set_ip_flow_hash_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4457,23 +4392,23 @@ func (*ResetFib) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type ResetFibReply struct {
+type SetIPFlowHashReply struct {
        Retval int32
 }
 
-func (*ResetFibReply) GetMessageName() string {
-       return "reset_fib_reply"
+func (*SetIPFlowHashReply) GetMessageName() string {
+       return "set_ip_flow_hash_reply"
 }
-func (*ResetFibReply) GetCrcString() string {
+func (*SetIPFlowHashReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*ResetFibReply) GetMessageType() api.MessageType {
+func (*SetIPFlowHashReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SetArpNeighborLimit represents VPP binary API message 'set_arp_neighbor_limit':
+// SwInterfaceIP6EnableDisable represents VPP binary API message 'sw_interface_ip6_enable_disable':
 //
-//     "set_arp_neighbor_limit",
+//     "sw_interface_ip6_enable_disable",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4487,35 +4422,35 @@ func (*ResetFibReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u8",
-//         "is_ipv6"
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     [
-//         "u32",
-//         "arp_neighbor_limit"
+//         "u8",
+//         "enable"
 //     ],
 //     {
-//         "crc": "0x97d01fd6"
+//         "crc": "0xa36fadc0"
 //     }
 //
-type SetArpNeighborLimit struct {
-       IsIPv6           uint8
-       ArpNeighborLimit uint32
+type SwInterfaceIP6EnableDisable struct {
+       SwIfIndex uint32
+       Enable    uint8
 }
 
-func (*SetArpNeighborLimit) GetMessageName() string {
-       return "set_arp_neighbor_limit"
+func (*SwInterfaceIP6EnableDisable) GetMessageName() string {
+       return "sw_interface_ip6_enable_disable"
 }
-func (*SetArpNeighborLimit) GetCrcString() string {
-       return "97d01fd6"
+func (*SwInterfaceIP6EnableDisable) GetCrcString() string {
+       return "a36fadc0"
 }
-func (*SetArpNeighborLimit) GetMessageType() api.MessageType {
+func (*SwInterfaceIP6EnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SetArpNeighborLimitReply represents VPP binary API message 'set_arp_neighbor_limit_reply':
+// SwInterfaceIP6EnableDisableReply represents VPP binary API message 'sw_interface_ip6_enable_disable_reply':
 //
-//     "set_arp_neighbor_limit_reply",
+//     "sw_interface_ip6_enable_disable_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4532,23 +4467,23 @@ func (*SetArpNeighborLimit) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type SetArpNeighborLimitReply struct {
+type SwInterfaceIP6EnableDisableReply struct {
        Retval int32
 }
 
-func (*SetArpNeighborLimitReply) GetMessageName() string {
-       return "set_arp_neighbor_limit_reply"
+func (*SwInterfaceIP6EnableDisableReply) GetMessageName() string {
+       return "sw_interface_ip6_enable_disable_reply"
 }
-func (*SetArpNeighborLimitReply) GetCrcString() string {
+func (*SwInterfaceIP6EnableDisableReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*SetArpNeighborLimitReply) GetMessageType() api.MessageType {
+func (*SwInterfaceIP6EnableDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IoamEnable represents VPP binary API message 'ioam_enable':
+// SwInterfaceIP6ndRaConfig represents VPP binary API message 'sw_interface_ip6nd_ra_config':
 //
-//     "ioam_enable",
+//     "sw_interface_ip6nd_ra_config",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4562,55 +4497,95 @@ func (*SetArpNeighborLimitReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u16",
-//         "id"
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     [
 //         "u8",
-//         "seqno"
+//         "suppress"
 //     ],
 //     [
 //         "u8",
-//         "analyse"
+//         "managed"
 //     ],
 //     [
 //         "u8",
-//         "pot_enable"
+//         "other"
 //     ],
 //     [
 //         "u8",
-//         "trace_enable"
+//         "ll_option"
+//     ],
+//     [
+//         "u8",
+//         "send_unicast"
+//     ],
+//     [
+//         "u8",
+//         "cease"
+//     ],
+//     [
+//         "u8",
+//         "is_no"
+//     ],
+//     [
+//         "u8",
+//         "default_router"
 //     ],
 //     [
 //         "u32",
-//         "node_id"
+//         "max_interval"
+//     ],
+//     [
+//         "u32",
+//         "min_interval"
+//     ],
+//     [
+//         "u32",
+//         "lifetime"
+//     ],
+//     [
+//         "u32",
+//         "initial_count"
+//     ],
+//     [
+//         "u32",
+//         "initial_interval"
 //     ],
 //     {
-//         "crc": "0x9392e032"
+//         "crc": "0xc3f02daa"
 //     }
 //
-type IoamEnable struct {
-       ID          uint16
-       Seqno       uint8
-       Analyse     uint8
-       PotEnable   uint8
-       TraceEnable uint8
-       NodeID      uint32
+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 (*IoamEnable) GetMessageName() string {
-       return "ioam_enable"
+func (*SwInterfaceIP6ndRaConfig) GetMessageName() string {
+       return "sw_interface_ip6nd_ra_config"
 }
-func (*IoamEnable) GetCrcString() string {
-       return "9392e032"
+func (*SwInterfaceIP6ndRaConfig) GetCrcString() string {
+       return "c3f02daa"
 }
-func (*IoamEnable) GetMessageType() api.MessageType {
+func (*SwInterfaceIP6ndRaConfig) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IoamEnableReply represents VPP binary API message 'ioam_enable_reply':
+// SwInterfaceIP6ndRaConfigReply represents VPP binary API message 'sw_interface_ip6nd_ra_config_reply':
 //
-//     "ioam_enable_reply",
+//     "sw_interface_ip6nd_ra_config_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4627,23 +4602,23 @@ func (*IoamEnable) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type IoamEnableReply struct {
+type SwInterfaceIP6ndRaConfigReply struct {
        Retval int32
 }
 
-func (*IoamEnableReply) GetMessageName() string {
-       return "ioam_enable_reply"
+func (*SwInterfaceIP6ndRaConfigReply) GetMessageName() string {
+       return "sw_interface_ip6nd_ra_config_reply"
 }
-func (*IoamEnableReply) GetCrcString() string {
+func (*SwInterfaceIP6ndRaConfigReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IoamEnableReply) GetMessageType() api.MessageType {
+func (*SwInterfaceIP6ndRaConfigReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IoamDisable represents VPP binary API message 'ioam_disable':
+// SwInterfaceIP6ndRaPrefix represents VPP binary API message 'sw_interface_ip6nd_ra_prefix':
 //
-//     "ioam_disable",
+//     "sw_interface_ip6nd_ra_prefix",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4657,30 +4632,81 @@ func (*IoamEnableReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u16",
-//         "id"
+//         "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": "0x6b16a45e"
+//         "crc": "0xca763c9a"
 //     }
 //
-type IoamDisable struct {
-       ID uint16
+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 (*IoamDisable) GetMessageName() string {
-       return "ioam_disable"
+func (*SwInterfaceIP6ndRaPrefix) GetMessageName() string {
+       return "sw_interface_ip6nd_ra_prefix"
 }
-func (*IoamDisable) GetCrcString() string {
-       return "6b16a45e"
+func (*SwInterfaceIP6ndRaPrefix) GetCrcString() string {
+       return "ca763c9a"
 }
-func (*IoamDisable) GetMessageType() api.MessageType {
+func (*SwInterfaceIP6ndRaPrefix) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IoamDisableReply represents VPP binary API message 'ioam_disable_reply':
+// SwInterfaceIP6ndRaPrefixReply represents VPP binary API message 'sw_interface_ip6nd_ra_prefix_reply':
 //
-//     "ioam_disable_reply",
+//     "sw_interface_ip6nd_ra_prefix_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4697,23 +4723,23 @@ func (*IoamDisable) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type IoamDisableReply struct {
+type SwInterfaceIP6ndRaPrefixReply struct {
        Retval int32
 }
 
-func (*IoamDisableReply) GetMessageName() string {
-       return "ioam_disable_reply"
+func (*SwInterfaceIP6ndRaPrefixReply) GetMessageName() string {
+       return "sw_interface_ip6nd_ra_prefix_reply"
 }
-func (*IoamDisableReply) GetCrcString() string {
+func (*SwInterfaceIP6ndRaPrefixReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IoamDisableReply) GetMessageType() api.MessageType {
+func (*SwInterfaceIP6ndRaPrefixReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPReassemblySet represents VPP binary API message 'ip_reassembly_set':
+// WantIP4ArpEvents represents VPP binary API message 'want_ip4_arp_events':
 //
-//     "ip_reassembly_set",
+//     "want_ip4_arp_events",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4727,45 +4753,40 @@ func (*IoamDisableReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "timeout_ms"
+//         "u8",
+//         "enable_disable"
 //     ],
 //     [
 //         "u32",
-//         "max_reassemblies"
+//         "pid"
 //     ],
 //     [
 //         "u32",
-//         "expire_walk_interval_ms"
-//     ],
-//     [
-//         "u8",
-//         "is_ip6"
+//         "address"
 //     ],
 //     {
-//         "crc": "0x1db184de"
+//         "crc": "0x77e06379"
 //     }
 //
-type IPReassemblySet struct {
-       TimeoutMs            uint32
-       MaxReassemblies      uint32
-       ExpireWalkIntervalMs uint32
-       IsIP6                uint8
+type WantIP4ArpEvents struct {
+       EnableDisable uint8
+       PID           uint32
+       Address       uint32
 }
 
-func (*IPReassemblySet) GetMessageName() string {
-       return "ip_reassembly_set"
+func (*WantIP4ArpEvents) GetMessageName() string {
+       return "want_ip4_arp_events"
 }
-func (*IPReassemblySet) GetCrcString() string {
-       return "1db184de"
+func (*WantIP4ArpEvents) GetCrcString() string {
+       return "77e06379"
 }
-func (*IPReassemblySet) GetMessageType() api.MessageType {
+func (*WantIP4ArpEvents) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPReassemblySetReply represents VPP binary API message 'ip_reassembly_set_reply':
+// WantIP4ArpEventsReply represents VPP binary API message 'want_ip4_arp_events_reply':
 //
-//     "ip_reassembly_set_reply",
+//     "want_ip4_arp_events_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4782,23 +4803,23 @@ func (*IPReassemblySet) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type IPReassemblySetReply struct {
+type WantIP4ArpEventsReply struct {
        Retval int32
 }
 
-func (*IPReassemblySetReply) GetMessageName() string {
-       return "ip_reassembly_set_reply"
+func (*WantIP4ArpEventsReply) GetMessageName() string {
+       return "want_ip4_arp_events_reply"
 }
-func (*IPReassemblySetReply) GetCrcString() string {
+func (*WantIP4ArpEventsReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IPReassemblySetReply) GetMessageType() api.MessageType {
+func (*WantIP4ArpEventsReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPReassemblyGet represents VPP binary API message 'ip_reassembly_get':
+// WantIP6NdEvents represents VPP binary API message 'want_ip6_nd_events':
 //
-//     "ip_reassembly_get",
+//     "want_ip6_nd_events",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4813,29 +4834,40 @@ func (*IPReassemblySetReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u8",
-//         "is_ip6"
+//         "enable_disable"
+//     ],
+//     [
+//         "u32",
+//         "pid"
+//     ],
+//     [
+//         "u8",
+//         "address",
+//         16
 //     ],
 //     {
-//         "crc": "0x6fe91190"
+//         "crc": "0x1cf65fbb"
 //     }
 //
-type IPReassemblyGet struct {
-       IsIP6 uint8
+type WantIP6NdEvents struct {
+       EnableDisable uint8
+       PID           uint32
+       Address       []byte `struc:"[16]byte"`
 }
 
-func (*IPReassemblyGet) GetMessageName() string {
-       return "ip_reassembly_get"
+func (*WantIP6NdEvents) GetMessageName() string {
+       return "want_ip6_nd_events"
 }
-func (*IPReassemblyGet) GetCrcString() string {
-       return "6fe91190"
+func (*WantIP6NdEvents) GetCrcString() string {
+       return "1cf65fbb"
 }
-func (*IPReassemblyGet) GetMessageType() api.MessageType {
+func (*WantIP6NdEvents) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPReassemblyGetReply represents VPP binary API message 'ip_reassembly_get_reply':
+// WantIP6NdEventsReply represents VPP binary API message 'want_ip6_nd_events_reply':
 //
-//     "ip_reassembly_get_reply",
+//     "want_ip6_nd_events_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4848,47 +4880,27 @@ func (*IPReassemblyGet) GetMessageType() api.MessageType {
 //         "i32",
 //         "retval"
 //     ],
-//     [
-//         "u32",
-//         "timeout_ms"
-//     ],
-//     [
-//         "u32",
-//         "max_reassemblies"
-//     ],
-//     [
-//         "u32",
-//         "expire_walk_interval_ms"
-//     ],
-//     [
-//         "u8",
-//         "is_ip6"
-//     ],
 //     {
-//         "crc": "0x1f90afd1"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type IPReassemblyGetReply struct {
-       Retval               int32
-       TimeoutMs            uint32
-       MaxReassemblies      uint32
-       ExpireWalkIntervalMs uint32
-       IsIP6                uint8
+type WantIP6NdEventsReply struct {
+       Retval int32
 }
 
-func (*IPReassemblyGetReply) GetMessageName() string {
-       return "ip_reassembly_get_reply"
+func (*WantIP6NdEventsReply) GetMessageName() string {
+       return "want_ip6_nd_events_reply"
 }
-func (*IPReassemblyGetReply) GetCrcString() string {
-       return "1f90afd1"
+func (*WantIP6NdEventsReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*IPReassemblyGetReply) GetMessageType() api.MessageType {
+func (*WantIP6NdEventsReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPReassemblyEnableDisable represents VPP binary API message 'ip_reassembly_enable_disable':
+// WantIP6RaEvents represents VPP binary API message 'want_ip6_ra_events':
 //
-//     "ip_reassembly_enable_disable",
+//     "want_ip6_ra_events",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4902,40 +4914,35 @@ func (*IPReassemblyGetReply) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
-//     ],
-//     [
 //         "u8",
-//         "enable_ip4"
+//         "enable_disable"
 //     ],
 //     [
-//         "u8",
-//         "enable_ip6"
+//         "u32",
+//         "pid"
 //     ],
 //     {
-//         "crc": "0xbb8dc5d0"
+//         "crc": "0x05b454b5"
 //     }
 //
-type IPReassemblyEnableDisable struct {
-       SwIfIndex uint32
-       EnableIP4 uint8
-       EnableIP6 uint8
+type WantIP6RaEvents struct {
+       EnableDisable uint8
+       PID           uint32
 }
 
-func (*IPReassemblyEnableDisable) GetMessageName() string {
-       return "ip_reassembly_enable_disable"
+func (*WantIP6RaEvents) GetMessageName() string {
+       return "want_ip6_ra_events"
 }
-func (*IPReassemblyEnableDisable) GetCrcString() string {
-       return "bb8dc5d0"
+func (*WantIP6RaEvents) GetCrcString() string {
+       return "05b454b5"
 }
-func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType {
+func (*WantIP6RaEvents) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPReassemblyEnableDisableReply represents VPP binary API message 'ip_reassembly_enable_disable_reply':
+// WantIP6RaEventsReply represents VPP binary API message 'want_ip6_ra_events_reply':
 //
-//     "ip_reassembly_enable_disable_reply",
+//     "want_ip6_ra_events_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -4952,110 +4959,110 @@ func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type IPReassemblyEnableDisableReply struct {
+type WantIP6RaEventsReply struct {
        Retval int32
 }
 
-func (*IPReassemblyEnableDisableReply) GetMessageName() string {
-       return "ip_reassembly_enable_disable_reply"
+func (*WantIP6RaEventsReply) GetMessageName() string {
+       return "want_ip6_ra_events_reply"
 }
-func (*IPReassemblyEnableDisableReply) GetCrcString() string {
+func (*WantIP6RaEventsReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*IPReassemblyEnableDisableReply) GetMessageType() api.MessageType {
+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((*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((*IPPuntRedirectReply)(nil), "ip.IPPuntRedirectReply")
-       api.RegisterMessage((*IPPuntRedirectDump)(nil), "ip.IPPuntRedirectDump")
        api.RegisterMessage((*IPPuntRedirectDetails)(nil), "ip.IPPuntRedirectDetails")
-       api.RegisterMessage((*IPContainerProxyAddDel)(nil), "ip.IPContainerProxyAddDel")
-       api.RegisterMessage((*IPContainerProxyAddDelReply)(nil), "ip.IPContainerProxyAddDelReply")
-       api.RegisterMessage((*IPContainerProxyDump)(nil), "ip.IPContainerProxyDump")
-       api.RegisterMessage((*IPContainerProxyDetails)(nil), "ip.IPContainerProxyDetails")
+       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((*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((*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")
 }
index 0a1e678..a5fc9d6 100644 (file)
@@ -5,13 +5,12 @@
  Package maps is a generated from VPP binary API module 'map'.
 
  It contains following objects:
-        32 messages
-         5 types
-         2 aliases
+        16 services
          1 enum
+         2 aliases
+         5 types
          1 union
-        16 services
-
+        32 messages
 */
 package maps
 
@@ -171,31 +170,58 @@ func (*Address) GetCrcString() string {
        return "09f11671"
 }
 
-// Prefix represents VPP binary API type 'prefix':
+// IP4Prefix represents VPP binary API type 'ip4_prefix':
 //
-//     "prefix",
+//     "ip4_prefix",
 //     [
-//         "vl_api_address_t",
-//         "address"
+//         "vl_api_ip4_address_t",
+//         "prefix"
 //     ],
 //     [
 //         "u8",
-//         "address_length"
+//         "len"
 //     ],
 //     {
-//         "crc": "0x0403aebc"
+//         "crc": "0xea8dc11d"
 //     }
 //
-type Prefix struct {
-       Address       Address
-       AddressLength uint8
+type IP4Prefix struct {
+       Prefix IP4Address
+       Len    uint8
 }
 
-func (*Prefix) GetTypeName() string {
-       return "prefix"
+func (*IP4Prefix) GetTypeName() string {
+       return "ip4_prefix"
 }
-func (*Prefix) GetCrcString() string {
-       return "0403aebc"
+func (*IP4Prefix) GetCrcString() string {
+       return "ea8dc11d"
+}
+
+// IP6Prefix represents VPP binary API type 'ip6_prefix':
+//
+//     "ip6_prefix",
+//     [
+//         "vl_api_ip6_address_t",
+//         "prefix"
+//     ],
+//     [
+//         "u8",
+//         "len"
+//     ],
+//     {
+//         "crc": "0x779fd64f"
+//     }
+//
+type IP6Prefix struct {
+       Prefix IP6Address
+       Len    uint8
+}
+
+func (*IP6Prefix) GetTypeName() string {
+       return "ip6_prefix"
+}
+func (*IP6Prefix) GetCrcString() string {
+       return "779fd64f"
 }
 
 // Mprefix represents VPP binary API type 'mprefix':
@@ -235,58 +261,31 @@ func (*Mprefix) GetCrcString() string {
        return "1c4cba05"
 }
 
-// IP6Prefix represents VPP binary API type 'ip6_prefix':
-//
-//     "ip6_prefix",
-//     [
-//         "vl_api_ip6_address_t",
-//         "prefix"
-//     ],
-//     [
-//         "u8",
-//         "len"
-//     ],
-//     {
-//         "crc": "0x779fd64f"
-//     }
-//
-type IP6Prefix struct {
-       Prefix IP6Address
-       Len    uint8
-}
-
-func (*IP6Prefix) GetTypeName() string {
-       return "ip6_prefix"
-}
-func (*IP6Prefix) GetCrcString() string {
-       return "779fd64f"
-}
-
-// IP4Prefix represents VPP binary API type 'ip4_prefix':
+// Prefix represents VPP binary API type 'prefix':
 //
-//     "ip4_prefix",
+//     "prefix",
 //     [
-//         "vl_api_ip4_address_t",
-//         "prefix"
+//         "vl_api_address_t",
+//         "address"
 //     ],
 //     [
 //         "u8",
-//         "len"
+//         "address_length"
 //     ],
 //     {
-//         "crc": "0xea8dc11d"
+//         "crc": "0x0403aebc"
 //     }
 //
-type IP4Prefix struct {
-       Prefix IP4Address
-       Len    uint8
+type Prefix struct {
+       Address       Address
+       AddressLength uint8
 }
 
-func (*IP4Prefix) GetTypeName() string {
-       return "ip4_prefix"
+func (*Prefix) GetTypeName() string {
+       return "prefix"
 }
-func (*IP4Prefix) GetCrcString() string {
-       return "ea8dc11d"
+func (*Prefix) GetCrcString() string {
+       return "0403aebc"
 }
 
 /* Unions */
@@ -317,6 +316,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 {
@@ -330,6 +333,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 {
@@ -345,6 +352,91 @@ func (u *AddressUnion) GetIP6() (a IP6Address) {
 
 /* Messages */
 
+// MapAddDelRule represents VPP binary API message 'map_add_del_rule':
+//
+//     "map_add_del_rule",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "index"
+//     ],
+//     [
+//         "bool",
+//         "is_add"
+//     ],
+//     [
+//         "vl_api_ip6_address_t",
+//         "ip6_dst"
+//     ],
+//     [
+//         "u16",
+//         "psid"
+//     ],
+//     {
+//         "crc": "0xe6132040"
+//     }
+//
+type MapAddDelRule struct {
+       Index  uint32
+       IsAdd  bool
+       IP6Dst IP6Address
+       Psid   uint16
+}
+
+func (*MapAddDelRule) GetMessageName() string {
+       return "map_add_del_rule"
+}
+func (*MapAddDelRule) GetCrcString() string {
+       return "e6132040"
+}
+func (*MapAddDelRule) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// MapAddDelRuleReply represents VPP binary API message 'map_add_del_rule_reply':
+//
+//     "map_add_del_rule_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     {
+//         "crc": "0xe8d4e804"
+//     }
+//
+type MapAddDelRuleReply struct {
+       Retval int32
+}
+
+func (*MapAddDelRuleReply) GetMessageName() string {
+       return "map_add_del_rule_reply"
+}
+func (*MapAddDelRuleReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*MapAddDelRuleReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
 // MapAddDomain represents VPP binary API message 'map_add_domain':
 //
 //     "map_add_domain",
@@ -520,88 +612,76 @@ func (*MapDelDomainReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MapAddDelRule represents VPP binary API message 'map_add_del_rule':
+// MapDomainDetails represents VPP binary API message 'map_domain_details':
 //
-//     "map_add_del_rule",
+//     "map_domain_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
+//         "context"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "domain_index"
 //     ],
 //     [
-//         "u32",
-//         "index"
+//         "vl_api_ip6_prefix_t",
+//         "ip6_prefix"
 //     ],
 //     [
-//         "bool",
-//         "is_add"
+//         "vl_api_ip4_prefix_t",
+//         "ip4_prefix"
 //     ],
 //     [
-//         "vl_api_ip6_address_t",
-//         "ip6_dst"
+//         "vl_api_ip6_prefix_t",
+//         "ip6_src"
+//     ],
+//     [
+//         "u8",
+//         "ea_bits_len"
+//     ],
+//     [
+//         "u8",
+//         "psid_offset"
+//     ],
+//     [
+//         "u8",
+//         "psid_length"
+//     ],
+//     [
+//         "u8",
+//         "flags"
 //     ],
 //     [
 //         "u16",
-//         "psid"
+//         "mtu"
 //     ],
 //     {
-//         "crc": "0xe6132040"
+//         "crc": "0x2a17dcb8"
 //     }
 //
-type MapAddDelRule struct {
-       Index  uint32
-       IsAdd  bool
-       IP6Dst IP6Address
-       Psid   uint16
-}
-
-func (*MapAddDelRule) GetMessageName() string {
-       return "map_add_del_rule"
-}
-func (*MapAddDelRule) GetCrcString() string {
-       return "e6132040"
-}
-func (*MapAddDelRule) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// MapAddDelRuleReply represents VPP binary API message 'map_add_del_rule_reply':
-//
-//     "map_add_del_rule_reply",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "i32",
-//         "retval"
-//     ],
-//     {
-//         "crc": "0xe8d4e804"
-//     }
-//
-type MapAddDelRuleReply struct {
-       Retval int32
+type MapDomainDetails struct {
+       DomainIndex uint32
+       IP6Prefix   IP6Prefix
+       IP4Prefix   IP4Prefix
+       IP6Src      IP6Prefix
+       EaBitsLen   uint8
+       PsidOffset  uint8
+       PsidLength  uint8
+       Flags       uint8
+       Mtu         uint16
 }
 
-func (*MapAddDelRuleReply) GetMessageName() string {
-       return "map_add_del_rule_reply"
+func (*MapDomainDetails) GetMessageName() string {
+       return "map_domain_details"
 }
-func (*MapAddDelRuleReply) GetCrcString() string {
-       return "e8d4e804"
+func (*MapDomainDetails) GetCrcString() string {
+       return "2a17dcb8"
 }
-func (*MapAddDelRuleReply) GetMessageType() api.MessageType {
+func (*MapDomainDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
@@ -636,119 +716,56 @@ func (*MapDomainDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MapDomainDetails represents VPP binary API message 'map_domain_details':
+// MapIfEnableDisable represents VPP binary API message 'map_if_enable_disable':
 //
-//     "map_domain_details",
+//     "map_if_enable_disable",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "client_index"
 //     ],
 //     [
 //         "u32",
-//         "domain_index"
-//     ],
-//     [
-//         "vl_api_ip6_prefix_t",
-//         "ip6_prefix"
-//     ],
-//     [
-//         "vl_api_ip4_prefix_t",
-//         "ip4_prefix"
-//     ],
-//     [
-//         "vl_api_ip6_prefix_t",
-//         "ip6_src"
-//     ],
-//     [
-//         "u8",
-//         "ea_bits_len"
-//     ],
-//     [
-//         "u8",
-//         "psid_offset"
-//     ],
-//     [
-//         "u8",
-//         "psid_length"
-//     ],
-//     [
-//         "u8",
-//         "flags"
-//     ],
-//     [
-//         "u16",
-//         "mtu"
-//     ],
-//     {
-//         "crc": "0x2a17dcb8"
-//     }
-//
-type MapDomainDetails struct {
-       DomainIndex uint32
-       IP6Prefix   IP6Prefix
-       IP4Prefix   IP4Prefix
-       IP6Src      IP6Prefix
-       EaBitsLen   uint8
-       PsidOffset  uint8
-       PsidLength  uint8
-       Flags       uint8
-       Mtu         uint16
-}
-
-func (*MapDomainDetails) GetMessageName() string {
-       return "map_domain_details"
-}
-func (*MapDomainDetails) GetCrcString() string {
-       return "2a17dcb8"
-}
-func (*MapDomainDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-// MapRuleDump represents VPP binary API message 'map_rule_dump':
-//
-//     "map_rule_dump",
-//     [
-//         "u16",
-//         "_vl_msg_id"
+//         "context"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
+//         "sw_if_index"
 //     ],
 //     [
-//         "u32",
-//         "context"
+//         "bool",
+//         "is_enable"
 //     ],
 //     [
-//         "u32",
-//         "domain_index"
+//         "bool",
+//         "is_translation"
 //     ],
 //     {
-//         "crc": "0xe43e6ff6"
+//         "crc": "0x61a30cd9"
 //     }
 //
-type MapRuleDump struct {
-       DomainIndex uint32
+type MapIfEnableDisable struct {
+       SwIfIndex     uint32
+       IsEnable      bool
+       IsTranslation bool
 }
 
-func (*MapRuleDump) GetMessageName() string {
-       return "map_rule_dump"
+func (*MapIfEnableDisable) GetMessageName() string {
+       return "map_if_enable_disable"
 }
-func (*MapRuleDump) GetCrcString() string {
-       return "e43e6ff6"
+func (*MapIfEnableDisable) GetCrcString() string {
+       return "61a30cd9"
 }
-func (*MapRuleDump) GetMessageType() api.MessageType {
+func (*MapIfEnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MapRuleDetails represents VPP binary API message 'map_rule_details':
+// MapIfEnableDisableReply represents VPP binary API message 'map_if_enable_disable_reply':
 //
-//     "map_rule_details",
+//     "map_if_enable_disable_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -758,35 +775,30 @@ func (*MapRuleDump) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "vl_api_ip6_address_t",
-//         "ip6_dst"
-//     ],
-//     [
-//         "u16",
-//         "psid"
+//         "i32",
+//         "retval"
 //     ],
 //     {
-//         "crc": "0x4f932665"
+//         "crc": "0xe8d4e804"
 //     }
 //
-type MapRuleDetails struct {
-       IP6Dst IP6Address
-       Psid   uint16
+type MapIfEnableDisableReply struct {
+       Retval int32
 }
 
-func (*MapRuleDetails) GetMessageName() string {
-       return "map_rule_details"
+func (*MapIfEnableDisableReply) GetMessageName() string {
+       return "map_if_enable_disable_reply"
 }
-func (*MapRuleDetails) GetCrcString() string {
-       return "4f932665"
+func (*MapIfEnableDisableReply) GetCrcString() string {
+       return "e8d4e804"
 }
-func (*MapRuleDetails) GetMessageType() api.MessageType {
+func (*MapIfEnableDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MapIfEnableDisable represents VPP binary API message 'map_if_enable_disable':
+// MapParamAddDelPreResolve represents VPP binary API message 'map_param_add_del_pre_resolve':
 //
-//     "map_if_enable_disable",
+//     "map_param_add_del_pre_resolve",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -800,40 +812,40 @@ func (*MapRuleDetails) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "bool",
+//         "is_add"
 //     ],
 //     [
-//         "bool",
-//         "is_enable"
+//         "vl_api_ip4_address_t",
+//         "ip4_nh_address"
 //     ],
 //     [
-//         "bool",
-//         "is_translation"
+//         "vl_api_ip6_address_t",
+//         "ip6_nh_address"
 //     ],
 //     {
-//         "crc": "0x61a30cd9"
+//         "crc": "0xea9a9a4a"
 //     }
 //
-type MapIfEnableDisable struct {
-       SwIfIndex     uint32
-       IsEnable      bool
-       IsTranslation bool
+type MapParamAddDelPreResolve struct {
+       IsAdd        bool
+       IP4NhAddress IP4Address
+       IP6NhAddress IP6Address
 }
 
-func (*MapIfEnableDisable) GetMessageName() string {
-       return "map_if_enable_disable"
+func (*MapParamAddDelPreResolve) GetMessageName() string {
+       return "map_param_add_del_pre_resolve"
 }
-func (*MapIfEnableDisable) GetCrcString() string {
-       return "61a30cd9"
+func (*MapParamAddDelPreResolve) GetCrcString() string {
+       return "ea9a9a4a"
 }
-func (*MapIfEnableDisable) GetMessageType() api.MessageType {
+func (*MapParamAddDelPreResolve) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MapIfEnableDisableReply represents VPP binary API message 'map_if_enable_disable_reply':
+// MapParamAddDelPreResolveReply represents VPP binary API message 'map_param_add_del_pre_resolve_reply':
 //
-//     "map_if_enable_disable_reply",
+//     "map_param_add_del_pre_resolve_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -850,23 +862,23 @@ func (*MapIfEnableDisable) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type MapIfEnableDisableReply struct {
+type MapParamAddDelPreResolveReply struct {
        Retval int32
 }
 
-func (*MapIfEnableDisableReply) GetMessageName() string {
-       return "map_if_enable_disable_reply"
+func (*MapParamAddDelPreResolveReply) GetMessageName() string {
+       return "map_param_add_del_pre_resolve_reply"
 }
-func (*MapIfEnableDisableReply) GetCrcString() string {
+func (*MapParamAddDelPreResolveReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*MapIfEnableDisableReply) GetMessageType() api.MessageType {
+func (*MapParamAddDelPreResolveReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MapSummaryStats represents VPP binary API message 'map_summary_stats':
+// MapParamGet represents VPP binary API message 'map_param_get':
 //
-//     "map_summary_stats",
+//     "map_param_get",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -883,76 +895,138 @@ func (*MapIfEnableDisableReply) GetMessageType() api.MessageType {
 //         "crc": "0x51077d14"
 //     }
 //
-type MapSummaryStats struct{}
+type MapParamGet struct{}
 
-func (*MapSummaryStats) GetMessageName() string {
-       return "map_summary_stats"
+func (*MapParamGet) GetMessageName() string {
+       return "map_param_get"
 }
-func (*MapSummaryStats) GetCrcString() string {
+func (*MapParamGet) GetCrcString() string {
        return "51077d14"
 }
-func (*MapSummaryStats) GetMessageType() api.MessageType {
+func (*MapParamGet) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MapSummaryStatsReply represents VPP binary API message 'map_summary_stats_reply':
+// MapParamGetReply represents VPP binary API message 'map_param_get_reply':
 //
-//     "map_summary_stats_reply",
+//     "map_param_get_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "u8",
+//         "frag_inner"
+//     ],
+//     [
+//         "u8",
+//         "frag_ignore_df"
+//     ],
+//     [
+//         "vl_api_ip4_address_t",
+//         "icmp_ip4_err_relay_src"
+//     ],
+//     [
+//         "bool",
+//         "icmp6_enable_unreachable"
+//     ],
+//     [
+//         "vl_api_ip4_address_t",
+//         "ip4_nh_address"
+//     ],
+//     [
+//         "vl_api_ip6_address_t",
+//         "ip6_nh_address"
+//     ],
 //     [
 //         "u16",
-//         "_vl_msg_id"
+//         "ip4_lifetime_ms"
+//     ],
+//     [
+//         "u16",
+//         "ip4_pool_size"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "ip4_buffers"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "f64",
+//         "ip4_ht_ratio"
 //     ],
 //     [
-//         "u64",
-//         "total_bindings"
+//         "u16",
+//         "ip6_lifetime_ms"
 //     ],
 //     [
-//         "u64",
-//         "total_pkts",
-//         2
+//         "u16",
+//         "ip6_pool_size"
 //     ],
 //     [
-//         "u64",
-//         "total_bytes",
-//         2
+//         "u32",
+//         "ip6_buffers"
 //     ],
 //     [
-//         "u64",
-//         "total_ip4_fragments"
+//         "f64",
+//         "ip6_ht_ratio"
 //     ],
 //     [
-//         "u64",
-//         "total_security_check",
-//         2
+//         "bool",
+//         "sec_check_enable"
+//     ],
+//     [
+//         "bool",
+//         "sec_check_fragments"
+//     ],
+//     [
+//         "bool",
+//         "tc_copy"
+//     ],
+//     [
+//         "u8",
+//         "tc_class"
 //     ],
 //     {
-//         "crc": "0x0e4ace0e"
+//         "crc": "0xb40e9226"
 //     }
 //
-type MapSummaryStatsReply struct {
-       Retval             int32
-       TotalBindings      uint64
-       TotalPkts          []uint64 `struc:"[2]uint64"`
-       TotalBytes         []uint64 `struc:"[2]uint64"`
-       TotalIP4Fragments  uint64
-       TotalSecurityCheck []uint64 `struc:"[2]uint64"`
+type MapParamGetReply struct {
+       Retval                 int32
+       FragInner              uint8
+       FragIgnoreDf           uint8
+       ICMPIP4ErrRelaySrc     IP4Address
+       ICMP6EnableUnreachable bool
+       IP4NhAddress           IP4Address
+       IP6NhAddress           IP6Address
+       IP4LifetimeMs          uint16
+       IP4PoolSize            uint16
+       IP4Buffers             uint32
+       IP4HtRatio             float64
+       IP6LifetimeMs          uint16
+       IP6PoolSize            uint16
+       IP6Buffers             uint32
+       IP6HtRatio             float64
+       SecCheckEnable         bool
+       SecCheckFragments      bool
+       TcCopy                 bool
+       TcClass                uint8
 }
 
-func (*MapSummaryStatsReply) GetMessageName() string {
-       return "map_summary_stats_reply"
+func (*MapParamGetReply) GetMessageName() string {
+       return "map_param_get_reply"
 }
-func (*MapSummaryStatsReply) GetCrcString() string {
-       return "0e4ace0e"
+func (*MapParamGetReply) GetCrcString() string {
+       return "b40e9226"
 }
-func (*MapSummaryStatsReply) GetMessageType() api.MessageType {
+func (*MapParamGetReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
@@ -1068,39 +1142,6 @@ func (*MapParamSetICMP) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MapParamSetICMPReply represents VPP binary API message 'map_param_set_icmp_reply':
-//
-//     "map_param_set_icmp_reply",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "i32",
-//         "retval"
-//     ],
-//     {
-//         "crc": "0xe8d4e804"
-//     }
-//
-type MapParamSetICMPReply struct {
-       Retval int32
-}
-
-func (*MapParamSetICMPReply) GetMessageName() string {
-       return "map_param_set_icmp_reply"
-}
-func (*MapParamSetICMPReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*MapParamSetICMPReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
 // MapParamSetICMP6 represents VPP binary API message 'map_param_set_icmp6':
 //
 //     "map_param_set_icmp6",
@@ -1171,56 +1212,9 @@ func (*MapParamSetICMP6Reply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MapParamAddDelPreResolve represents VPP binary API message 'map_param_add_del_pre_resolve':
-//
-//     "map_param_add_del_pre_resolve",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "bool",
-//         "is_add"
-//     ],
-//     [
-//         "vl_api_ip4_address_t",
-//         "ip4_nh_address"
-//     ],
-//     [
-//         "vl_api_ip6_address_t",
-//         "ip6_nh_address"
-//     ],
-//     {
-//         "crc": "0xea9a9a4a"
-//     }
-//
-type MapParamAddDelPreResolve struct {
-       IsAdd        bool
-       IP4NhAddress IP4Address
-       IP6NhAddress IP6Address
-}
-
-func (*MapParamAddDelPreResolve) GetMessageName() string {
-       return "map_param_add_del_pre_resolve"
-}
-func (*MapParamAddDelPreResolve) GetCrcString() string {
-       return "ea9a9a4a"
-}
-func (*MapParamAddDelPreResolve) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// MapParamAddDelPreResolveReply represents VPP binary API message 'map_param_add_del_pre_resolve_reply':
+// MapParamSetICMPReply represents VPP binary API message 'map_param_set_icmp_reply':
 //
-//     "map_param_add_del_pre_resolve_reply",
+//     "map_param_set_icmp_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1237,17 +1231,17 @@ func (*MapParamAddDelPreResolve) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type MapParamAddDelPreResolveReply struct {
+type MapParamSetICMPReply struct {
        Retval int32
 }
 
-func (*MapParamAddDelPreResolveReply) GetMessageName() string {
-       return "map_param_add_del_pre_resolve_reply"
+func (*MapParamSetICMPReply) GetMessageName() string {
+       return "map_param_set_icmp_reply"
 }
-func (*MapParamAddDelPreResolveReply) GetCrcString() string {
+func (*MapParamSetICMPReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*MapParamAddDelPreResolveReply) GetMessageType() api.MessageType {
+func (*MapParamSetICMPReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
@@ -1361,31 +1355,101 @@ func (*MapParamSetReassemblyReply) GetMessageType() api.MessageType {
 //         "enable"
 //     ],
 //     [
-//         "bool",
-//         "fragments"
+//         "bool",
+//         "fragments"
+//     ],
+//     {
+//         "crc": "0x6abe9836"
+//     }
+//
+type MapParamSetSecurityCheck struct {
+       Enable    bool
+       Fragments bool
+}
+
+func (*MapParamSetSecurityCheck) GetMessageName() string {
+       return "map_param_set_security_check"
+}
+func (*MapParamSetSecurityCheck) GetCrcString() string {
+       return "6abe9836"
+}
+func (*MapParamSetSecurityCheck) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// MapParamSetSecurityCheckReply represents VPP binary API message 'map_param_set_security_check_reply':
+//
+//     "map_param_set_security_check_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     {
+//         "crc": "0xe8d4e804"
+//     }
+//
+type MapParamSetSecurityCheckReply struct {
+       Retval int32
+}
+
+func (*MapParamSetSecurityCheckReply) GetMessageName() string {
+       return "map_param_set_security_check_reply"
+}
+func (*MapParamSetSecurityCheckReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*MapParamSetSecurityCheckReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// MapParamSetTCP represents VPP binary API message 'map_param_set_tcp':
+//
+//     "map_param_set_tcp",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u16",
+//         "tcp_mss"
 //     ],
 //     {
-//         "crc": "0x6abe9836"
+//         "crc": "0x87a825d9"
 //     }
 //
-type MapParamSetSecurityCheck struct {
-       Enable    bool
-       Fragments bool
+type MapParamSetTCP struct {
+       TCPMss uint16
 }
 
-func (*MapParamSetSecurityCheck) GetMessageName() string {
-       return "map_param_set_security_check"
+func (*MapParamSetTCP) GetMessageName() string {
+       return "map_param_set_tcp"
 }
-func (*MapParamSetSecurityCheck) GetCrcString() string {
-       return "6abe9836"
+func (*MapParamSetTCP) GetCrcString() string {
+       return "87a825d9"
 }
-func (*MapParamSetSecurityCheck) GetMessageType() api.MessageType {
+func (*MapParamSetTCP) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MapParamSetSecurityCheckReply represents VPP binary API message 'map_param_set_security_check_reply':
+// MapParamSetTCPReply represents VPP binary API message 'map_param_set_tcp_reply':
 //
-//     "map_param_set_security_check_reply",
+//     "map_param_set_tcp_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1402,17 +1466,17 @@ func (*MapParamSetSecurityCheck) GetMessageType() api.MessageType {
 //         "crc": "0xe8d4e804"
 //     }
 //
-type MapParamSetSecurityCheckReply struct {
+type MapParamSetTCPReply struct {
        Retval int32
 }
 
-func (*MapParamSetSecurityCheckReply) GetMessageName() string {
-       return "map_param_set_security_check_reply"
+func (*MapParamSetTCPReply) GetMessageName() string {
+       return "map_param_set_tcp_reply"
 }
-func (*MapParamSetSecurityCheckReply) GetCrcString() string {
+func (*MapParamSetTCPReply) GetCrcString() string {
        return "e8d4e804"
 }
-func (*MapParamSetSecurityCheckReply) GetMessageType() api.MessageType {
+func (*MapParamSetTCPReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
@@ -1491,79 +1555,84 @@ func (*MapParamSetTrafficClassReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MapParamSetTCP represents VPP binary API message 'map_param_set_tcp':
+// MapRuleDetails represents VPP binary API message 'map_rule_details':
 //
-//     "map_param_set_tcp",
+//     "map_rule_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "client_index"
+//         "context"
 //     ],
 //     [
-//         "u32",
-//         "context"
+//         "vl_api_ip6_address_t",
+//         "ip6_dst"
 //     ],
 //     [
 //         "u16",
-//         "tcp_mss"
+//         "psid"
 //     ],
 //     {
-//         "crc": "0x87a825d9"
+//         "crc": "0x4f932665"
 //     }
 //
-type MapParamSetTCP struct {
-       TCPMss uint16
+type MapRuleDetails struct {
+       IP6Dst IP6Address
+       Psid   uint16
 }
 
-func (*MapParamSetTCP) GetMessageName() string {
-       return "map_param_set_tcp"
+func (*MapRuleDetails) GetMessageName() string {
+       return "map_rule_details"
 }
-func (*MapParamSetTCP) GetCrcString() string {
-       return "87a825d9"
+func (*MapRuleDetails) GetCrcString() string {
+       return "4f932665"
 }
-func (*MapParamSetTCP) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (*MapRuleDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-// MapParamSetTCPReply represents VPP binary API message 'map_param_set_tcp_reply':
+// MapRuleDump represents VPP binary API message 'map_rule_dump':
 //
-//     "map_param_set_tcp_reply",
+//     "map_rule_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
 //         "context"
 //     ],
 //     [
-//         "i32",
-//         "retval"
+//         "u32",
+//         "domain_index"
 //     ],
 //     {
-//         "crc": "0xe8d4e804"
+//         "crc": "0xe43e6ff6"
 //     }
 //
-type MapParamSetTCPReply struct {
-       Retval int32
+type MapRuleDump struct {
+       DomainIndex uint32
 }
 
-func (*MapParamSetTCPReply) GetMessageName() string {
-       return "map_param_set_tcp_reply"
+func (*MapRuleDump) GetMessageName() string {
+       return "map_rule_dump"
 }
-func (*MapParamSetTCPReply) GetCrcString() string {
-       return "e8d4e804"
+func (*MapRuleDump) GetCrcString() string {
+       return "e43e6ff6"
 }
-func (*MapParamSetTCPReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*MapRuleDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-// MapParamGet represents VPP binary API message 'map_param_get':
+// MapSummaryStats represents VPP binary API message 'map_summary_stats':
 //
-//     "map_param_get",
+//     "map_summary_stats",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1580,21 +1649,21 @@ func (*MapParamSetTCPReply) GetMessageType() api.MessageType {
 //         "crc": "0x51077d14"
 //     }
 //
-type MapParamGet struct{}
+type MapSummaryStats struct{}
 
-func (*MapParamGet) GetMessageName() string {
-       return "map_param_get"
+func (*MapSummaryStats) GetMessageName() string {
+       return "map_summary_stats"
 }
-func (*MapParamGet) GetCrcString() string {
+func (*MapSummaryStats) GetCrcString() string {
        return "51077d14"
 }
-func (*MapParamGet) GetMessageType() api.MessageType {
+func (*MapSummaryStats) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MapParamGetReply represents VPP binary API message 'map_param_get_reply':
+// MapSummaryStatsReply represents VPP binary API message 'map_summary_stats_reply':
 //
-//     "map_param_get_reply",
+//     "map_summary_stats_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -1608,144 +1677,82 @@ func (*MapParamGet) GetMessageType() api.MessageType {
 //         "retval"
 //     ],
 //     [
-//         "u8",
-//         "frag_inner"
-//     ],
-//     [
-//         "u8",
-//         "frag_ignore_df"
-//     ],
-//     [
-//         "vl_api_ip4_address_t",
-//         "icmp_ip4_err_relay_src"
-//     ],
-//     [
-//         "bool",
-//         "icmp6_enable_unreachable"
-//     ],
-//     [
-//         "vl_api_ip4_address_t",
-//         "ip4_nh_address"
-//     ],
-//     [
-//         "vl_api_ip6_address_t",
-//         "ip6_nh_address"
-//     ],
-//     [
-//         "u16",
-//         "ip4_lifetime_ms"
-//     ],
-//     [
-//         "u16",
-//         "ip4_pool_size"
-//     ],
-//     [
-//         "u32",
-//         "ip4_buffers"
-//     ],
-//     [
-//         "f64",
-//         "ip4_ht_ratio"
-//     ],
-//     [
-//         "u16",
-//         "ip6_lifetime_ms"
-//     ],
-//     [
-//         "u16",
-//         "ip6_pool_size"
-//     ],
-//     [
-//         "u32",
-//         "ip6_buffers"
-//     ],
-//     [
-//         "f64",
-//         "ip6_ht_ratio"
+//         "u64",
+//         "total_bindings"
 //     ],
 //     [
-//         "bool",
-//         "sec_check_enable"
+//         "u64",
+//         "total_pkts",
+//         2
 //     ],
 //     [
-//         "bool",
-//         "sec_check_fragments"
+//         "u64",
+//         "total_bytes",
+//         2
 //     ],
 //     [
-//         "bool",
-//         "tc_copy"
+//         "u64",
+//         "total_ip4_fragments"
 //     ],
 //     [
-//         "u8",
-//         "tc_class"
+//         "u64",
+//         "total_security_check",
+//         2
 //     ],
 //     {
-//         "crc": "0xb40e9226"
+//         "crc": "0x0e4ace0e"
 //     }
 //
-type MapParamGetReply struct {
-       Retval                 int32
-       FragInner              uint8
-       FragIgnoreDf           uint8
-       ICMPIP4ErrRelaySrc     IP4Address
-       ICMP6EnableUnreachable bool
-       IP4NhAddress           IP4Address
-       IP6NhAddress           IP6Address
-       IP4LifetimeMs          uint16
-       IP4PoolSize            uint16
-       IP4Buffers             uint32
-       IP4HtRatio             float64
-       IP6LifetimeMs          uint16
-       IP6PoolSize            uint16
-       IP6Buffers             uint32
-       IP6HtRatio             float64
-       SecCheckEnable         bool
-       SecCheckFragments      bool
-       TcCopy                 bool
-       TcClass                uint8
+type MapSummaryStatsReply struct {
+       Retval             int32
+       TotalBindings      uint64
+       TotalPkts          []uint64 `struc:"[2]uint64"`
+       TotalBytes         []uint64 `struc:"[2]uint64"`
+       TotalIP4Fragments  uint64
+       TotalSecurityCheck []uint64 `struc:"[2]uint64"`
 }
 
-func (*MapParamGetReply) GetMessageName() string {
-       return "map_param_get_reply"
+func (*MapSummaryStatsReply) GetMessageName() string {
+       return "map_summary_stats_reply"
 }
-func (*MapParamGetReply) GetCrcString() string {
-       return "b40e9226"
+func (*MapSummaryStatsReply) GetCrcString() string {
+       return "0e4ace0e"
 }
-func (*MapParamGetReply) GetMessageType() api.MessageType {
+func (*MapSummaryStatsReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
 func init() {
+       api.RegisterMessage((*MapAddDelRule)(nil), "map.MapAddDelRule")
+       api.RegisterMessage((*MapAddDelRuleReply)(nil), "map.MapAddDelRuleReply")
        api.RegisterMessage((*MapAddDomain)(nil), "map.MapAddDomain")
        api.RegisterMessage((*MapAddDomainReply)(nil), "map.MapAddDomainReply")
        api.RegisterMessage((*MapDelDomain)(nil), "map.MapDelDomain")
        api.RegisterMessage((*MapDelDomainReply)(nil), "map.MapDelDomainReply")
-       api.RegisterMessage((*MapAddDelRule)(nil), "map.MapAddDelRule")
-       api.RegisterMessage((*MapAddDelRuleReply)(nil), "map.MapAddDelRuleReply")
-       api.RegisterMessage((*MapDomainDump)(nil), "map.MapDomainDump")
        api.RegisterMessage((*MapDomainDetails)(nil), "map.MapDomainDetails")
-       api.RegisterMessage((*MapRuleDump)(nil), "map.MapRuleDump")
-       api.RegisterMessage((*MapRuleDetails)(nil), "map.MapRuleDetails")
+       api.RegisterMessage((*MapDomainDump)(nil), "map.MapDomainDump")
        api.RegisterMessage((*MapIfEnableDisable)(nil), "map.MapIfEnableDisable")
        api.RegisterMessage((*MapIfEnableDisableReply)(nil), "map.MapIfEnableDisableReply")
-       api.RegisterMessage((*MapSummaryStats)(nil), "map.MapSummaryStats")
-       api.RegisterMessage((*MapSummaryStatsReply)(nil), "map.MapSummaryStatsReply")
+       api.RegisterMessage((*MapParamAddDelPreResolve)(nil), "map.MapParamAddDelPreResolve")
+       api.RegisterMessage((*MapParamAddDelPreResolveReply)(nil), "map.MapParamAddDelPreResolveReply")
+       api.RegisterMessage((*MapParamGet)(nil), "map.MapParamGet")
+       api.RegisterMessage((*MapParamGetReply)(nil), "map.MapParamGetReply")
        api.RegisterMessage((*MapParamSetFragmentation)(nil), "map.MapParamSetFragmentation")
        api.RegisterMessage((*MapParamSetFragmentationReply)(nil), "map.MapParamSetFragmentationReply")
        api.RegisterMessage((*MapParamSetICMP)(nil), "map.MapParamSetICMP")
-       api.RegisterMessage((*MapParamSetICMPReply)(nil), "map.MapParamSetICMPReply")
        api.RegisterMessage((*MapParamSetICMP6)(nil), "map.MapParamSetICMP6")
        api.RegisterMessage((*MapParamSetICMP6Reply)(nil), "map.MapParamSetICMP6Reply")
-       api.RegisterMessage((*MapParamAddDelPreResolve)(nil), "map.MapParamAddDelPreResolve")
-       api.RegisterMessage((*MapParamAddDelPreResolveReply)(nil), "map.MapParamAddDelPreResolveReply")
+       api.RegisterMessage((*MapParamSetICMPReply)(nil), "map.MapParamSetICMPReply")
        api.RegisterMessage((*MapParamSetReassembly)(nil), "map.MapParamSetReassembly")
        api.RegisterMessage((*MapParamSetReassemblyReply)(nil), "map.MapParamSetReassemblyReply")
        api.RegisterMessage((*MapParamSetSecurityCheck)(nil), "map.MapParamSetSecurityCheck")
        api.RegisterMessage((*MapParamSetSecurityCheckReply)(nil), "map.MapParamSetSecurityCheckReply")
-       api.RegisterMessage((*MapParamSetTrafficClass)(nil), "map.MapParamSetTrafficClass")
-       api.RegisterMessage((*MapParamSetTrafficClassReply)(nil), "map.MapParamSetTrafficClassReply")
        api.RegisterMessage((*MapParamSetTCP)(nil), "map.MapParamSetTCP")
        api.RegisterMessage((*MapParamSetTCPReply)(nil), "map.MapParamSetTCPReply")
-       api.RegisterMessage((*MapParamGet)(nil), "map.MapParamGet")
-       api.RegisterMessage((*MapParamGetReply)(nil), "map.MapParamGetReply")
+       api.RegisterMessage((*MapParamSetTrafficClass)(nil), "map.MapParamSetTrafficClass")
+       api.RegisterMessage((*MapParamSetTrafficClassReply)(nil), "map.MapParamSetTrafficClassReply")
+       api.RegisterMessage((*MapRuleDetails)(nil), "map.MapRuleDetails")
+       api.RegisterMessage((*MapRuleDump)(nil), "map.MapRuleDump")
+       api.RegisterMessage((*MapSummaryStats)(nil), "map.MapSummaryStats")
+       api.RegisterMessage((*MapSummaryStatsReply)(nil), "map.MapSummaryStatsReply")
 }
index c28d2f5..b0b3ee3 100644 (file)
@@ -5,9 +5,8 @@
  Package memif is a generated from VPP binary API module 'memif'.
 
  It contains following objects:
-        10 messages
          5 services
-
+        10 messages
 */
 package memif
 
@@ -52,87 +51,6 @@ type Services interface {
 
 /* Messages */
 
-// MemifSocketFilenameAddDel represents VPP binary API message 'memif_socket_filename_add_del':
-//
-//     "memif_socket_filename_add_del",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "u8",
-//         "is_add"
-//     ],
-//     [
-//         "u32",
-//         "socket_id"
-//     ],
-//     [
-//         "u8",
-//         "socket_filename",
-//         128
-//     ],
-//     {
-//         "crc": "0x30e3929d"
-//     }
-//
-type MemifSocketFilenameAddDel struct {
-       IsAdd          uint8
-       SocketID       uint32
-       SocketFilename []byte `struc:"[128]byte"`
-}
-
-func (*MemifSocketFilenameAddDel) GetMessageName() string {
-       return "memif_socket_filename_add_del"
-}
-func (*MemifSocketFilenameAddDel) GetCrcString() string {
-       return "30e3929d"
-}
-func (*MemifSocketFilenameAddDel) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// MemifSocketFilenameAddDelReply represents VPP binary API message 'memif_socket_filename_add_del_reply':
-//
-//     "memif_socket_filename_add_del_reply",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "i32",
-//         "retval"
-//     ],
-//     {
-//         "crc": "0xe8d4e804"
-//     }
-//
-type MemifSocketFilenameAddDelReply struct {
-       Retval int32
-}
-
-func (*MemifSocketFilenameAddDelReply) GetMessageName() string {
-       return "memif_socket_filename_add_del_reply"
-}
-func (*MemifSocketFilenameAddDelReply) GetCrcString() string {
-       return "e8d4e804"
-}
-func (*MemifSocketFilenameAddDelReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
 // MemifCreate represents VPP binary API message 'memif_create':
 //
 //     "memif_create",
@@ -325,9 +243,9 @@ func (*MemifDeleteReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MemifSocketFilenameDetails represents VPP binary API message 'memif_socket_filename_details':
+// MemifDetails represents VPP binary API message 'memif_details':
 //
-//     "memif_socket_filename_details",
+//     "memif_details",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -338,35 +256,81 @@ func (*MemifDeleteReply) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
+//         "sw_if_index"
+//     ],
+//     [
+//         "u8",
+//         "if_name",
+//         64
+//     ],
+//     [
+//         "u8",
+//         "hw_addr",
+//         6
+//     ],
+//     [
+//         "u32",
+//         "id"
+//     ],
+//     [
+//         "u8",
+//         "role"
+//     ],
+//     [
+//         "u8",
+//         "mode"
+//     ],
+//     [
+//         "u32",
 //         "socket_id"
 //     ],
 //     [
+//         "u32",
+//         "ring_size"
+//     ],
+//     [
+//         "u16",
+//         "buffer_size"
+//     ],
+//     [
 //         "u8",
-//         "socket_filename",
-//         128
+//         "admin_up_down"
+//     ],
+//     [
+//         "u8",
+//         "link_up_down"
 //     ],
 //     {
-//         "crc": "0xe347e32f"
+//         "crc": "0x4f5a3397"
 //     }
 //
-type MemifSocketFilenameDetails struct {
-       SocketID       uint32
-       SocketFilename []byte `struc:"[128]byte"`
+type MemifDetails struct {
+       SwIfIndex   uint32
+       IfName      []byte `struc:"[64]byte"`
+       HwAddr      []byte `struc:"[6]byte"`
+       ID          uint32
+       Role        uint8
+       Mode        uint8
+       SocketID    uint32
+       RingSize    uint32
+       BufferSize  uint16
+       AdminUpDown uint8
+       LinkUpDown  uint8
 }
 
-func (*MemifSocketFilenameDetails) GetMessageName() string {
-       return "memif_socket_filename_details"
+func (*MemifDetails) GetMessageName() string {
+       return "memif_details"
 }
-func (*MemifSocketFilenameDetails) GetCrcString() string {
-       return "e347e32f"
+func (*MemifDetails) GetCrcString() string {
+       return "4f5a3397"
 }
-func (*MemifSocketFilenameDetails) GetMessageType() api.MessageType {
+func (*MemifDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MemifSocketFilenameDump represents VPP binary API message 'memif_socket_filename_dump':
+// MemifDump represents VPP binary API message 'memif_dump':
 //
-//     "memif_socket_filename_dump",
+//     "memif_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -383,106 +347,141 @@ func (*MemifSocketFilenameDetails) GetMessageType() api.MessageType {
 //         "crc": "0x51077d14"
 //     }
 //
-type MemifSocketFilenameDump struct{}
+type MemifDump struct{}
 
-func (*MemifSocketFilenameDump) GetMessageName() string {
-       return "memif_socket_filename_dump"
+func (*MemifDump) GetMessageName() string {
+       return "memif_dump"
 }
-func (*MemifSocketFilenameDump) GetCrcString() string {
+func (*MemifDump) GetCrcString() string {
        return "51077d14"
 }
-func (*MemifSocketFilenameDump) GetMessageType() api.MessageType {
+func (*MemifDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MemifDetails represents VPP binary API message 'memif_details':
+// MemifSocketFilenameAddDel represents VPP binary API message 'memif_socket_filename_add_del':
 //
-//     "memif_details",
+//     "memif_socket_filename_add_del",
 //     [
 //         "u16",
 //         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "context"
+//         "client_index"
 //     ],
 //     [
 //         "u32",
-//         "sw_if_index"
-//     ],
-//     [
-//         "u8",
-//         "if_name",
-//         64
+//         "context"
 //     ],
 //     [
 //         "u8",
-//         "hw_addr",
-//         6
+//         "is_add"
 //     ],
 //     [
 //         "u32",
-//         "id"
+//         "socket_id"
 //     ],
 //     [
 //         "u8",
-//         "role"
+//         "socket_filename",
+//         128
 //     ],
+//     {
+//         "crc": "0x30e3929d"
+//     }
+//
+type MemifSocketFilenameAddDel struct {
+       IsAdd          uint8
+       SocketID       uint32
+       SocketFilename []byte `struc:"[128]byte"`
+}
+
+func (*MemifSocketFilenameAddDel) GetMessageName() string {
+       return "memif_socket_filename_add_del"
+}
+func (*MemifSocketFilenameAddDel) GetCrcString() string {
+       return "30e3929d"
+}
+func (*MemifSocketFilenameAddDel) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// MemifSocketFilenameAddDelReply represents VPP binary API message 'memif_socket_filename_add_del_reply':
+//
+//     "memif_socket_filename_add_del_reply",
 //     [
-//         "u8",
-//         "mode"
+//         "u16",
+//         "_vl_msg_id"
 //     ],
 //     [
 //         "u32",
-//         "socket_id"
+//         "context"
 //     ],
 //     [
-//         "u32",
-//         "ring_size"
+//         "i32",
+//         "retval"
 //     ],
+//     {
+//         "crc": "0xe8d4e804"
+//     }
+//
+type MemifSocketFilenameAddDelReply struct {
+       Retval int32
+}
+
+func (*MemifSocketFilenameAddDelReply) GetMessageName() string {
+       return "memif_socket_filename_add_del_reply"
+}
+func (*MemifSocketFilenameAddDelReply) GetCrcString() string {
+       return "e8d4e804"
+}
+func (*MemifSocketFilenameAddDelReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// MemifSocketFilenameDetails represents VPP binary API message 'memif_socket_filename_details':
+//
+//     "memif_socket_filename_details",
 //     [
 //         "u16",
-//         "buffer_size"
+//         "_vl_msg_id"
 //     ],
 //     [
-//         "u8",
-//         "admin_up_down"
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "socket_id"
 //     ],
 //     [
 //         "u8",
-//         "link_up_down"
+//         "socket_filename",
+//         128
 //     ],
 //     {
-//         "crc": "0x4f5a3397"
+//         "crc": "0xe347e32f"
 //     }
 //
-type MemifDetails struct {
-       SwIfIndex   uint32
-       IfName      []byte `struc:"[64]byte"`
-       HwAddr      []byte `struc:"[6]byte"`
-       ID          uint32
-       Role        uint8
-       Mode        uint8
-       SocketID    uint32
-       RingSize    uint32
-       BufferSize  uint16
-       AdminUpDown uint8
-       LinkUpDown  uint8
+type MemifSocketFilenameDetails struct {
+       SocketID       uint32
+       SocketFilename []byte `struc:"[128]byte"`
 }
 
-func (*MemifDetails) GetMessageName() string {
-       return "memif_details"
+func (*MemifSocketFilenameDetails) GetMessageName() string {
+       return "memif_socket_filename_details"
 }
-func (*MemifDetails) GetCrcString() string {
-       return "4f5a3397"
+func (*MemifSocketFilenameDetails) GetCrcString() string {
+       return "e347e32f"
 }
-func (*MemifDetails) GetMessageType() api.MessageType {
+func (*MemifSocketFilenameDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MemifDump represents VPP binary API message 'memif_dump':
+// MemifSocketFilenameDump represents VPP binary API message 'memif_socket_filename_dump':
 //
-//     "memif_dump",
+//     "memif_socket_filename_dump",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -499,27 +498,27 @@ func (*MemifDetails) GetMessageType() api.MessageType {
 //         "crc": "0x51077d14"
 //     }
 //
-type MemifDump struct{}
+type MemifSocketFilenameDump struct{}
 
-func (*MemifDump) GetMessageName() string {
-       return "memif_dump"
+func (*MemifSocketFilenameDump) GetMessageName() string {
+       return "memif_socket_filename_dump"
 }
-func (*MemifDump) GetCrcString() string {
+func (*MemifSocketFilenameDump) GetCrcString() string {
        return "51077d14"
 }
-func (*MemifDump) GetMessageType() api.MessageType {
+func (*MemifSocketFilenameDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
 func init() {
-       api.RegisterMessage((*MemifSocketFilenameAddDel)(nil), "memif.MemifSocketFilenameAddDel")
-       api.RegisterMessage((*MemifSocketFilenameAddDelReply)(nil), "memif.MemifSocketFilenameAddDelReply")
        api.RegisterMessage((*MemifCreate)(nil), "memif.MemifCreate")
        api.RegisterMessage((*MemifCreateReply)(nil), "memif.MemifCreateReply")
        api.RegisterMessage((*MemifDelete)(nil), "memif.MemifDelete")
        api.RegisterMessage((*MemifDeleteReply)(nil), "memif.MemifDeleteReply")
-       api.RegisterMessage((*MemifSocketFilenameDetails)(nil), "memif.MemifSocketFilenameDetails")
-       api.RegisterMessage((*MemifSocketFilenameDump)(nil), "memif.MemifSocketFilenameDump")
        api.RegisterMessage((*MemifDetails)(nil), "memif.MemifDetails")
        api.RegisterMessage((*MemifDump)(nil), "memif.MemifDump")
+       api.RegisterMessage((*MemifSocketFilenameAddDel)(nil), "memif.MemifSocketFilenameAddDel")
+       api.RegisterMessage((*MemifSocketFilenameAddDelReply)(nil), "memif.MemifSocketFilenameAddDelReply")
+       api.RegisterMessage((*MemifSocketFilenameDetails)(nil), "memif.MemifSocketFilenameDetails")
+       api.RegisterMessage((*MemifSocketFilenameDump)(nil), "memif.MemifSocketFilenameDump")
 }
index f94f7be..d363146 100644 (file)
@@ -5,9 +5,8 @@
  Package tap is a generated from VPP binary API module 'tap'.
 
  It contains following objects:
-         8 messages
          4 services
-
+         8 messages
 */
 package tap
 
@@ -47,6 +46,76 @@ type Services interface {
 
 /* Messages */
 
+// SwInterfaceTapDetails represents VPP binary API message 'sw_interface_tap_details':
+//
+//     "sw_interface_tap_details",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
+//         "u8",
+//         "dev_name",
+//         64
+//     ],
+//     {
+//         "crc": "0x76229a57"
+//     }
+//
+type SwInterfaceTapDetails struct {
+       SwIfIndex uint32
+       DevName   []byte `struc:"[64]byte"`
+}
+
+func (*SwInterfaceTapDetails) GetMessageName() string {
+       return "sw_interface_tap_details"
+}
+func (*SwInterfaceTapDetails) GetCrcString() string {
+       return "76229a57"
+}
+func (*SwInterfaceTapDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// SwInterfaceTapDump represents VPP binary API message 'sw_interface_tap_dump':
+//
+//     "sw_interface_tap_dump",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     {
+//         "crc": "0x51077d14"
+//     }
+//
+type SwInterfaceTapDump struct{}
+
+func (*SwInterfaceTapDump) GetMessageName() string {
+       return "sw_interface_tap_dump"
+}
+func (*SwInterfaceTapDump) GetCrcString() string {
+       return "51077d14"
+}
+func (*SwInterfaceTapDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
 // TapConnect represents VPP binary API message 'tap_connect':
 //
 //     "tap_connect",
@@ -182,108 +251,6 @@ func (*TapConnectReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// TapModify represents VPP binary API message 'tap_modify':
-//
-//     "tap_modify",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "u32",
-//         "sw_if_index"
-//     ],
-//     [
-//         "u8",
-//         "use_random_mac"
-//     ],
-//     [
-//         "u8",
-//         "tap_name",
-//         64
-//     ],
-//     [
-//         "u8",
-//         "mac_address",
-//         6
-//     ],
-//     [
-//         "u8",
-//         "renumber"
-//     ],
-//     [
-//         "u32",
-//         "custom_dev_instance"
-//     ],
-//     {
-//         "crc": "0x8047ae5c"
-//     }
-//
-type TapModify struct {
-       SwIfIndex         uint32
-       UseRandomMac      uint8
-       TapName           []byte `struc:"[64]byte"`
-       MacAddress        []byte `struc:"[6]byte"`
-       Renumber          uint8
-       CustomDevInstance uint32
-}
-
-func (*TapModify) GetMessageName() string {
-       return "tap_modify"
-}
-func (*TapModify) GetCrcString() string {
-       return "8047ae5c"
-}
-func (*TapModify) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// TapModifyReply represents VPP binary API message 'tap_modify_reply':
-//
-//     "tap_modify_reply",
-//     [
-//         "u16",
-//         "_vl_msg_id"
-//     ],
-//     [
-//         "u32",
-//         "context"
-//     ],
-//     [
-//         "i32",
-//         "retval"
-//     ],
-//     [
-//         "u32",
-//         "sw_if_index"
-//     ],
-//     {
-//         "crc": "0xfda5941f"
-//     }
-//
-type TapModifyReply struct {
-       Retval    int32
-       SwIfIndex uint32
-}
-
-func (*TapModifyReply) GetMessageName() string {
-       return "tap_modify_reply"
-}
-func (*TapModifyReply) GetCrcString() string {
-       return "fda5941f"
-}
-func (*TapModifyReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
 // TapDelete represents VPP binary API message 'tap_delete':
 //
 //     "tap_delete",
@@ -354,9 +321,9 @@ func (*TapDeleteReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceTapDump represents VPP binary API message 'sw_interface_tap_dump':
+// TapModify represents VPP binary API message 'tap_modify':
 //
-//     "sw_interface_tap_dump",
+//     "tap_modify",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -369,25 +336,58 @@ func (*TapDeleteReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
+//     [
+//         "u32",
+//         "sw_if_index"
+//     ],
+//     [
+//         "u8",
+//         "use_random_mac"
+//     ],
+//     [
+//         "u8",
+//         "tap_name",
+//         64
+//     ],
+//     [
+//         "u8",
+//         "mac_address",
+//         6
+//     ],
+//     [
+//         "u8",
+//         "renumber"
+//     ],
+//     [
+//         "u32",
+//         "custom_dev_instance"
+//     ],
 //     {
-//         "crc": "0x51077d14"
+//         "crc": "0x8047ae5c"
 //     }
 //
-type SwInterfaceTapDump struct{}
+type TapModify struct {
+       SwIfIndex         uint32
+       UseRandomMac      uint8
+       TapName           []byte `struc:"[64]byte"`
+       MacAddress        []byte `struc:"[6]byte"`
+       Renumber          uint8
+       CustomDevInstance uint32
+}
 
-func (*SwInterfaceTapDump) GetMessageName() string {
-       return "sw_interface_tap_dump"
+func (*TapModify) GetMessageName() string {
+       return "tap_modify"
 }
-func (*SwInterfaceTapDump) GetCrcString() string {
-       return "51077d14"
+func (*TapModify) GetCrcString() string {
+       return "8047ae5c"
 }
-func (*SwInterfaceTapDump) GetMessageType() api.MessageType {
+func (*TapModify) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SwInterfaceTapDetails represents VPP binary API message 'sw_interface_tap_details':
+// TapModifyReply represents VPP binary API message 'tap_modify_reply':
 //
-//     "sw_interface_tap_details",
+//     "tap_modify_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -397,40 +397,39 @@ func (*SwInterfaceTapDump) GetMessageType() api.MessageType {
 //         "context"
 //     ],
 //     [
-//         "u32",
-//         "sw_if_index"
+//         "i32",
+//         "retval"
 //     ],
 //     [
-//         "u8",
-//         "dev_name",
-//         64
+//         "u32",
+//         "sw_if_index"
 //     ],
 //     {
-//         "crc": "0x76229a57"
+//         "crc": "0xfda5941f"
 //     }
 //
-type SwInterfaceTapDetails struct {
+type TapModifyReply struct {
+       Retval    int32
        SwIfIndex uint32
-       DevName   []byte `struc:"[64]byte"`
 }
 
-func (*SwInterfaceTapDetails) GetMessageName() string {
-       return "sw_interface_tap_details"
+func (*TapModifyReply) GetMessageName() string {
+       return "tap_modify_reply"
 }
-func (*SwInterfaceTapDetails) GetCrcString() string {
-       return "76229a57"
+func (*TapModifyReply) GetCrcString() string {
+       return "fda5941f"
 }
-func (*SwInterfaceTapDetails) GetMessageType() api.MessageType {
+func (*TapModifyReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
 func init() {
+       api.RegisterMessage((*SwInterfaceTapDetails)(nil), "tap.SwInterfaceTapDetails")
+       api.RegisterMessage((*SwInterfaceTapDump)(nil), "tap.SwInterfaceTapDump")
        api.RegisterMessage((*TapConnect)(nil), "tap.TapConnect")
        api.RegisterMessage((*TapConnectReply)(nil), "tap.TapConnectReply")
-       api.RegisterMessage((*TapModify)(nil), "tap.TapModify")
-       api.RegisterMessage((*TapModifyReply)(nil), "tap.TapModifyReply")
        api.RegisterMessage((*TapDelete)(nil), "tap.TapDelete")
        api.RegisterMessage((*TapDeleteReply)(nil), "tap.TapDeleteReply")
-       api.RegisterMessage((*SwInterfaceTapDump)(nil), "tap.SwInterfaceTapDump")
-       api.RegisterMessage((*SwInterfaceTapDetails)(nil), "tap.SwInterfaceTapDetails")
+       api.RegisterMessage((*TapModify)(nil), "tap.TapModify")
+       api.RegisterMessage((*TapModifyReply)(nil), "tap.TapModifyReply")
 }
index e0d5f97..9eb4c98 100644 (file)
@@ -5,10 +5,9 @@
  Package vpe is a generated from VPP binary API module 'vpe'.
 
  It contains following objects:
-        18 messages
-         1 type
          9 services
-
+         1 type
+        18 messages
 */
 package vpe
 
@@ -92,9 +91,9 @@ func (*ThreadData) GetCrcString() string {
 
 /* Messages */
 
-// ControlPing represents VPP binary API message 'control_ping':
+// AddNodeNext represents VPP binary API message 'add_node_next':
 //
-//     "control_ping",
+//     "add_node_next",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -107,25 +106,38 @@ func (*ThreadData) GetCrcString() string {
 //         "u32",
 //         "context"
 //     ],
+//     [
+//         "u8",
+//         "node_name",
+//         64
+//     ],
+//     [
+//         "u8",
+//         "next_name",
+//         64
+//     ],
 //     {
-//         "crc": "0x51077d14"
+//         "crc": "0x9ab92f7a"
 //     }
 //
-type ControlPing struct{}
+type AddNodeNext struct {
+       NodeName []byte `struc:"[64]byte"`
+       NextName []byte `struc:"[64]byte"`
+}
 
-func (*ControlPing) GetMessageName() string {
-       return "control_ping"
+func (*AddNodeNext) GetMessageName() string {
+       return "add_node_next"
 }
-func (*ControlPing) GetCrcString() string {
-       return "51077d14"
+func (*AddNodeNext) GetCrcString() string {
+       return "9ab92f7a"
 }
-func (*ControlPing) GetMessageType() api.MessageType {
+func (*AddNodeNext) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ControlPingReply represents VPP binary API message 'control_ping_reply':
+// AddNodeNextReply represents VPP binary API message 'add_node_next_reply':
 //
-//     "control_ping_reply",
+//     "add_node_next_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -140,29 +152,24 @@ func (*ControlPing) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "client_index"
-//     ],
-//     [
-//         "u32",
-//         "vpe_pid"
+//         "next_index"
 //     ],
 //     {
-//         "crc": "0xf6b0b8ca"
+//         "crc": "0x2ed75f32"
 //     }
 //
-type ControlPingReply struct {
-       Retval      int32
-       ClientIndex uint32
-       VpePID      uint32
+type AddNodeNextReply struct {
+       Retval    int32
+       NextIndex uint32
 }
 
-func (*ControlPingReply) GetMessageName() string {
-       return "control_ping_reply"
+func (*AddNodeNextReply) GetMessageName() string {
+       return "add_node_next_reply"
 }
-func (*ControlPingReply) GetCrcString() string {
-       return "f6b0b8ca"
+func (*AddNodeNextReply) GetCrcString() string {
+       return "2ed75f32"
 }
-func (*ControlPingReply) GetMessageType() api.MessageType {
+func (*AddNodeNextReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
@@ -241,9 +248,9 @@ func (*CliInband) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// CliReply represents VPP binary API message 'cli_reply':
+// CliInbandReply represents VPP binary API message 'cli_inband_reply':
 //
-//     "cli_reply",
+//     "cli_inband_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -257,31 +264,32 @@ func (*CliInband) GetMessageType() api.MessageType {
 //         "retval"
 //     ],
 //     [
-//         "u64",
-//         "reply_in_shmem"
+//         "string",
+//         "reply"
 //     ],
 //     {
-//         "crc": "0x06d68297"
+//         "crc": "0x6d3c80a4"
 //     }
 //
-type CliReply struct {
+type CliInbandReply struct {
        Retval       int32
-       ReplyInShmem uint64
+       XXX_ReplyLen uint32 `struc:"sizeof=Reply"`
+       Reply        string
 }
 
-func (*CliReply) GetMessageName() string {
-       return "cli_reply"
+func (*CliInbandReply) GetMessageName() string {
+       return "cli_inband_reply"
 }
-func (*CliReply) GetCrcString() string {
-       return "06d68297"
+func (*CliInbandReply) GetCrcString() string {
+       return "6d3c80a4"
 }
-func (*CliReply) GetMessageType() api.MessageType {
+func (*CliInbandReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// CliInbandReply represents VPP binary API message 'cli_inband_reply':
+// CliReply represents VPP binary API message 'cli_reply':
 //
-//     "cli_inband_reply",
+//     "cli_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -295,32 +303,31 @@ func (*CliReply) GetMessageType() api.MessageType {
 //         "retval"
 //     ],
 //     [
-//         "string",
-//         "reply"
+//         "u64",
+//         "reply_in_shmem"
 //     ],
 //     {
-//         "crc": "0x6d3c80a4"
+//         "crc": "0x06d68297"
 //     }
 //
-type CliInbandReply struct {
+type CliReply struct {
        Retval       int32
-       XXX_ReplyLen uint32 `struc:"sizeof=Reply"`
-       Reply        string
+       ReplyInShmem uint64
 }
 
-func (*CliInbandReply) GetMessageName() string {
-       return "cli_inband_reply"
+func (*CliReply) GetMessageName() string {
+       return "cli_reply"
 }
-func (*CliInbandReply) GetCrcString() string {
-       return "6d3c80a4"
+func (*CliReply) GetCrcString() string {
+       return "06d68297"
 }
-func (*CliInbandReply) GetMessageType() api.MessageType {
+func (*CliReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// GetNodeIndex represents VPP binary API message 'get_node_index':
+// ControlPing represents VPP binary API message 'control_ping':
 //
-//     "get_node_index",
+//     "control_ping",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -333,32 +340,25 @@ func (*CliInbandReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
-//     [
-//         "u8",
-//         "node_name",
-//         64
-//     ],
 //     {
-//         "crc": "0x6c9a495d"
+//         "crc": "0x51077d14"
 //     }
 //
-type GetNodeIndex struct {
-       NodeName []byte `struc:"[64]byte"`
-}
+type ControlPing struct{}
 
-func (*GetNodeIndex) GetMessageName() string {
-       return "get_node_index"
+func (*ControlPing) GetMessageName() string {
+       return "control_ping"
 }
-func (*GetNodeIndex) GetCrcString() string {
-       return "6c9a495d"
+func (*ControlPing) GetCrcString() string {
+       return "51077d14"
 }
-func (*GetNodeIndex) GetMessageType() api.MessageType {
+func (*ControlPing) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// GetNodeIndexReply represents VPP binary API message 'get_node_index_reply':
+// ControlPingReply represents VPP binary API message 'control_ping_reply':
 //
-//     "get_node_index_reply",
+//     "control_ping_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -373,30 +373,35 @@ func (*GetNodeIndex) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "node_index"
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "vpe_pid"
 //     ],
 //     {
-//         "crc": "0xa8600b89"
+//         "crc": "0xf6b0b8ca"
 //     }
 //
-type GetNodeIndexReply struct {
-       Retval    int32
-       NodeIndex uint32
+type ControlPingReply struct {
+       Retval      int32
+       ClientIndex uint32
+       VpePID      uint32
 }
 
-func (*GetNodeIndexReply) GetMessageName() string {
-       return "get_node_index_reply"
+func (*ControlPingReply) GetMessageName() string {
+       return "control_ping_reply"
 }
-func (*GetNodeIndexReply) GetCrcString() string {
-       return "a8600b89"
+func (*ControlPingReply) GetCrcString() string {
+       return "f6b0b8ca"
 }
-func (*GetNodeIndexReply) GetMessageType() api.MessageType {
+func (*ControlPingReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// AddNodeNext represents VPP binary API message 'add_node_next':
+// GetNextIndex represents VPP binary API message 'get_next_index':
 //
-//     "add_node_next",
+//     "get_next_index",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -423,24 +428,24 @@ func (*GetNodeIndexReply) GetMessageType() api.MessageType {
 //         "crc": "0x9ab92f7a"
 //     }
 //
-type AddNodeNext struct {
+type GetNextIndex struct {
        NodeName []byte `struc:"[64]byte"`
        NextName []byte `struc:"[64]byte"`
 }
 
-func (*AddNodeNext) GetMessageName() string {
-       return "add_node_next"
+func (*GetNextIndex) GetMessageName() string {
+       return "get_next_index"
 }
-func (*AddNodeNext) GetCrcString() string {
+func (*GetNextIndex) GetCrcString() string {
        return "9ab92f7a"
 }
-func (*AddNodeNext) GetMessageType() api.MessageType {
+func (*GetNextIndex) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// AddNodeNextReply represents VPP binary API message 'add_node_next_reply':
+// GetNextIndexReply represents VPP binary API message 'get_next_index_reply':
 //
-//     "add_node_next_reply",
+//     "get_next_index_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -461,24 +466,24 @@ func (*AddNodeNext) GetMessageType() api.MessageType {
 //         "crc": "0x2ed75f32"
 //     }
 //
-type AddNodeNextReply struct {
+type GetNextIndexReply struct {
        Retval    int32
        NextIndex uint32
 }
 
-func (*AddNodeNextReply) GetMessageName() string {
-       return "add_node_next_reply"
+func (*GetNextIndexReply) GetMessageName() string {
+       return "get_next_index_reply"
 }
-func (*AddNodeNextReply) GetCrcString() string {
+func (*GetNextIndexReply) GetCrcString() string {
        return "2ed75f32"
 }
-func (*AddNodeNextReply) GetMessageType() api.MessageType {
+func (*GetNextIndexReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ShowVersion represents VPP binary API message 'show_version':
+// GetNodeGraph represents VPP binary API message 'get_node_graph':
 //
-//     "show_version",
+//     "get_node_graph",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -495,21 +500,21 @@ func (*AddNodeNextReply) GetMessageType() api.MessageType {
 //         "crc": "0x51077d14"
 //     }
 //
-type ShowVersion struct{}
+type GetNodeGraph struct{}
 
-func (*ShowVersion) GetMessageName() string {
-       return "show_version"
+func (*GetNodeGraph) GetMessageName() string {
+       return "get_node_graph"
 }
-func (*ShowVersion) GetCrcString() string {
+func (*GetNodeGraph) GetCrcString() string {
        return "51077d14"
 }
-func (*ShowVersion) GetMessageType() api.MessageType {
+func (*GetNodeGraph) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ShowVersionReply represents VPP binary API message 'show_version_reply':
+// GetNodeGraphReply represents VPP binary API message 'get_node_graph_reply':
 //
-//     "show_version_reply",
+//     "get_node_graph_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -523,50 +528,31 @@ func (*ShowVersion) GetMessageType() api.MessageType {
 //         "retval"
 //     ],
 //     [
-//         "string",
-//         "program"
-//     ],
-//     [
-//         "string",
-//         "version"
-//     ],
-//     [
-//         "string",
-//         "build_date"
-//     ],
-//     [
-//         "string",
-//         "build_directory"
+//         "u64",
+//         "reply_in_shmem"
 //     ],
 //     {
-//         "crc": "0xb9bcf6df"
+//         "crc": "0x06d68297"
 //     }
 //
-type ShowVersionReply struct {
-       Retval                int32
-       XXX_ProgramLen        uint32 `struc:"sizeof=Program"`
-       Program               string
-       XXX_VersionLen        uint32 `struc:"sizeof=Version"`
-       Version               string
-       XXX_BuildDateLen      uint32 `struc:"sizeof=BuildDate"`
-       BuildDate             string
-       XXX_BuildDirectoryLen uint32 `struc:"sizeof=BuildDirectory"`
-       BuildDirectory        string
+type GetNodeGraphReply struct {
+       Retval       int32
+       ReplyInShmem uint64
 }
 
-func (*ShowVersionReply) GetMessageName() string {
-       return "show_version_reply"
+func (*GetNodeGraphReply) GetMessageName() string {
+       return "get_node_graph_reply"
 }
-func (*ShowVersionReply) GetCrcString() string {
-       return "b9bcf6df"
+func (*GetNodeGraphReply) GetCrcString() string {
+       return "06d68297"
 }
-func (*ShowVersionReply) GetMessageType() api.MessageType {
+func (*GetNodeGraphReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ShowThreads represents VPP binary API message 'show_threads':
+// GetNodeIndex represents VPP binary API message 'get_node_index':
 //
-//     "show_threads",
+//     "get_node_index",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -579,25 +565,32 @@ func (*ShowVersionReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
+//     [
+//         "u8",
+//         "node_name",
+//         64
+//     ],
 //     {
-//         "crc": "0x51077d14"
+//         "crc": "0x6c9a495d"
 //     }
 //
-type ShowThreads struct{}
+type GetNodeIndex struct {
+       NodeName []byte `struc:"[64]byte"`
+}
 
-func (*ShowThreads) GetMessageName() string {
-       return "show_threads"
+func (*GetNodeIndex) GetMessageName() string {
+       return "get_node_index"
 }
-func (*ShowThreads) GetCrcString() string {
-       return "51077d14"
+func (*GetNodeIndex) GetCrcString() string {
+       return "6c9a495d"
 }
-func (*ShowThreads) GetMessageType() api.MessageType {
+func (*GetNodeIndex) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ShowThreadsReply represents VPP binary API message 'show_threads_reply':
+// GetNodeIndexReply represents VPP binary API message 'get_node_index_reply':
 //
-//     "show_threads_reply",
+//     "get_node_index_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -612,37 +605,30 @@ func (*ShowThreads) GetMessageType() api.MessageType {
 //     ],
 //     [
 //         "u32",
-//         "count"
-//     ],
-//     [
-//         "vl_api_thread_data_t",
-//         "thread_data",
-//         0,
-//         "count"
+//         "node_index"
 //     ],
 //     {
-//         "crc": "0x6942fb35"
+//         "crc": "0xa8600b89"
 //     }
 //
-type ShowThreadsReply struct {
-       Retval     int32
-       Count      uint32 `struc:"sizeof=ThreadData"`
-       ThreadData []ThreadData
+type GetNodeIndexReply struct {
+       Retval    int32
+       NodeIndex uint32
 }
 
-func (*ShowThreadsReply) GetMessageName() string {
-       return "show_threads_reply"
+func (*GetNodeIndexReply) GetMessageName() string {
+       return "get_node_index_reply"
 }
-func (*ShowThreadsReply) GetCrcString() string {
-       return "6942fb35"
+func (*GetNodeIndexReply) GetCrcString() string {
+       return "a8600b89"
 }
-func (*ShowThreadsReply) GetMessageType() api.MessageType {
+func (*GetNodeIndexReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// GetNodeGraph represents VPP binary API message 'get_node_graph':
+// ShowThreads represents VPP binary API message 'show_threads':
 //
-//     "get_node_graph",
+//     "show_threads",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -659,21 +645,21 @@ func (*ShowThreadsReply) GetMessageType() api.MessageType {
 //         "crc": "0x51077d14"
 //     }
 //
-type GetNodeGraph struct{}
+type ShowThreads struct{}
 
-func (*GetNodeGraph) GetMessageName() string {
-       return "get_node_graph"
+func (*ShowThreads) GetMessageName() string {
+       return "show_threads"
 }
-func (*GetNodeGraph) GetCrcString() string {
+func (*ShowThreads) GetCrcString() string {
        return "51077d14"
 }
-func (*GetNodeGraph) GetMessageType() api.MessageType {
+func (*ShowThreads) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// GetNodeGraphReply represents VPP binary API message 'get_node_graph_reply':
+// ShowThreadsReply represents VPP binary API message 'show_threads_reply':
 //
-//     "get_node_graph_reply",
+//     "show_threads_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -687,31 +673,38 @@ func (*GetNodeGraph) GetMessageType() api.MessageType {
 //         "retval"
 //     ],
 //     [
-//         "u64",
-//         "reply_in_shmem"
+//         "u32",
+//         "count"
+//     ],
+//     [
+//         "vl_api_thread_data_t",
+//         "thread_data",
+//         0,
+//         "count"
 //     ],
 //     {
-//         "crc": "0x06d68297"
+//         "crc": "0x6942fb35"
 //     }
 //
-type GetNodeGraphReply struct {
-       Retval       int32
-       ReplyInShmem uint64
+type ShowThreadsReply struct {
+       Retval     int32
+       Count      uint32 `struc:"sizeof=ThreadData"`
+       ThreadData []ThreadData
 }
 
-func (*GetNodeGraphReply) GetMessageName() string {
-       return "get_node_graph_reply"
+func (*ShowThreadsReply) GetMessageName() string {
+       return "show_threads_reply"
 }
-func (*GetNodeGraphReply) GetCrcString() string {
-       return "06d68297"
+func (*ShowThreadsReply) GetCrcString() string {
+       return "6942fb35"
 }
-func (*GetNodeGraphReply) GetMessageType() api.MessageType {
+func (*ShowThreadsReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// GetNextIndex represents VPP binary API message 'get_next_index':
+// ShowVersion represents VPP binary API message 'show_version':
 //
-//     "get_next_index",
+//     "show_version",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -724,38 +717,25 @@ func (*GetNodeGraphReply) GetMessageType() api.MessageType {
 //         "u32",
 //         "context"
 //     ],
-//     [
-//         "u8",
-//         "node_name",
-//         64
-//     ],
-//     [
-//         "u8",
-//         "next_name",
-//         64
-//     ],
 //     {
-//         "crc": "0x9ab92f7a"
+//         "crc": "0x51077d14"
 //     }
 //
-type GetNextIndex struct {
-       NodeName []byte `struc:"[64]byte"`
-       NextName []byte `struc:"[64]byte"`
-}
+type ShowVersion struct{}
 
-func (*GetNextIndex) GetMessageName() string {
-       return "get_next_index"
+func (*ShowVersion) GetMessageName() string {
+       return "show_version"
 }
-func (*GetNextIndex) GetCrcString() string {
-       return "9ab92f7a"
+func (*ShowVersion) GetCrcString() string {
+       return "51077d14"
 }
-func (*GetNextIndex) GetMessageType() api.MessageType {
+func (*ShowVersion) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// GetNextIndexReply represents VPP binary API message 'get_next_index_reply':
+// ShowVersionReply represents VPP binary API message 'show_version_reply':
 //
-//     "get_next_index_reply",
+//     "show_version_reply",
 //     [
 //         "u16",
 //         "_vl_msg_id"
@@ -769,45 +749,64 @@ func (*GetNextIndex) GetMessageType() api.MessageType {
 //         "retval"
 //     ],
 //     [
-//         "u32",
-//         "next_index"
+//         "string",
+//         "program"
+//     ],
+//     [
+//         "string",
+//         "version"
+//     ],
+//     [
+//         "string",
+//         "build_date"
+//     ],
+//     [
+//         "string",
+//         "build_directory"
 //     ],
 //     {
-//         "crc": "0x2ed75f32"
+//         "crc": "0xb9bcf6df"
 //     }
 //
-type GetNextIndexReply struct {
-       Retval    int32
-       NextIndex uint32
+type ShowVersionReply struct {
+       Retval                int32
+       XXX_ProgramLen        uint32 `struc:"sizeof=Program"`
+       Program               string
+       XXX_VersionLen        uint32 `struc:"sizeof=Version"`
+       Version               string
+       XXX_BuildDateLen      uint32 `struc:"sizeof=BuildDate"`
+       BuildDate             string
+       XXX_BuildDirectoryLen uint32 `struc:"sizeof=BuildDirectory"`
+       BuildDirectory        string
 }
 
-func (*GetNextIndexReply) GetMessageName() string {
-       return "get_next_index_reply"
+func (*ShowVersionReply) GetMessageName() string {
+       return "show_version_reply"
 }
-func (*GetNextIndexReply) GetCrcString() string {
-       return "2ed75f32"
+func (*ShowVersionReply) GetCrcString() string {
+       return "b9bcf6df"
 }
-func (*GetNextIndexReply) GetMessageType() api.MessageType {
+func (*ShowVersionReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
 func init() {
-       api.RegisterMessage((*ControlPing)(nil), "vpe.ControlPing")
-       api.RegisterMessage((*ControlPingReply)(nil), "vpe.ControlPingReply")
+       api.RegisterMessage((*AddNodeNext)(nil), "vpe.AddNodeNext")
+       api.RegisterMessage((*AddNodeNextReply)(nil), "vpe.AddNodeNextReply")
        api.RegisterMessage((*Cli)(nil), "vpe.Cli")
        api.RegisterMessage((*CliInband)(nil), "vpe.CliInband")
-       api.RegisterMessage((*CliReply)(nil), "vpe.CliReply")
        api.RegisterMessage((*CliInbandReply)(nil), "vpe.CliInbandReply")
+       api.RegisterMessage((*CliReply)(nil), "vpe.CliReply")
+       api.RegisterMessage((*ControlPing)(nil), "vpe.ControlPing")
+       api.RegisterMessage((*ControlPingReply)(nil), "vpe.ControlPingReply")
+       api.RegisterMessage((*GetNextIndex)(nil), "vpe.GetNextIndex")
+       api.RegisterMessage((*GetNextIndexReply)(nil), "vpe.GetNextIndexReply")
+       api.RegisterMessage((*GetNodeGraph)(nil), "vpe.GetNodeGraph")
+       api.RegisterMessage((*GetNodeGraphReply)(nil), "vpe.GetNodeGraphReply")
        api.RegisterMessage((*GetNodeIndex)(nil), "vpe.GetNodeIndex")
        api.RegisterMessage((*GetNodeIndexReply)(nil), "vpe.GetNodeIndexReply")
-       api.RegisterMessage((*AddNodeNext)(nil), "vpe.AddNodeNext")
-       api.RegisterMessage((*AddNodeNextReply)(nil), "vpe.AddNodeNextReply")
-       api.RegisterMessage((*ShowVersion)(nil), "vpe.ShowVersion")
-       api.RegisterMessage((*ShowVersionReply)(nil), "vpe.ShowVersionReply")
        api.RegisterMessage((*ShowThreads)(nil), "vpe.ShowThreads")
        api.RegisterMessage((*ShowThreadsReply)(nil), "vpe.ShowThreadsReply")
-       api.RegisterMessage((*GetNodeGraph)(nil), "vpe.GetNodeGraph")
-       api.RegisterMessage((*GetNodeGraphReply)(nil), "vpe.GetNodeGraphReply")
-       api.RegisterMessage((*GetNextIndex)(nil), "vpe.GetNextIndex")
-       api.RegisterMessage((*GetNextIndexReply)(nil), "vpe.GetNextIndexReply")
+       api.RegisterMessage((*ShowVersion)(nil), "vpe.ShowVersion")
+       api.RegisterMessage((*ShowVersionReply)(nil), "vpe.ShowVersionReply")
 }
index 0f801d2..d4563c6 100644 (file)
@@ -17,13 +17,20 @@ package main
 
 import (
        "bytes"
+       "fmt"
        "log"
+       "net"
 
        "git.fd.io/govpp.git/examples/bin_api/ip"
        "github.com/lunixbochs/struc"
 )
 
 func main() {
+       encodingExample()
+       usageExample()
+}
+
+func encodingExample() {
        // create union with IPv4 address
        var unionIP4 ip.AddressUnion
        unionIP4.SetIP4(ip.IP4Address{192, 168, 1, 10})
@@ -31,7 +38,7 @@ func main() {
        // use it in the Address type
        addr := &ip.Address{
                Af: ip.ADDRESS_IP4,
-               Un: unionIP4,
+               Un: ip.AddressUnionIP4(ip.IP4Address{192, 168, 1, 10}),
        }
        log.Printf("encoding union IPv4: %v", addr.Un.GetIP4())
 
@@ -61,3 +68,36 @@ func decode(data []byte) *ip.Address {
        log.Printf("decoded address: %#v", addr)
        return addr
 }
+
+func usageExample() {
+       var convAddr = func(ip string) {
+               addr, err := ipToAddress(ip)
+               if err != nil {
+                       log.Printf("converting ip %q failed: %v", ip, err)
+               }
+               fmt.Printf("% 0X\n", addr)
+       }
+
+       convAddr("10.10.10.10")
+       convAddr("::1")
+       convAddr("")
+}
+
+func ipToAddress(ipstr string) (addr ip.Address, err error) {
+       netIP := net.ParseIP(ipstr)
+       if netIP == nil {
+               return ip.Address{}, fmt.Errorf("invalid IP: %q", ipstr)
+       }
+       if ip4 := netIP.To4(); ip4 == nil {
+               addr.Af = ip.ADDRESS_IP6
+               var ip6addr ip.IP6Address
+               copy(ip6addr[:], netIP.To16())
+               addr.Un.SetIP6(ip6addr)
+       } else {
+               addr.Af = ip.ADDRESS_IP4
+               var ip4addr ip.IP4Address
+               copy(ip4addr[:], ip4)
+               addr.Un.SetIP4(ip4addr)
+       }
+       return
+}