aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOndrej Fabry <ofabry@cisco.com>2018-12-13 10:21:49 +0100
committerOndrej Fabry <ofabry@cisco.com>2018-12-13 10:21:49 +0100
commit868b541e296dc47748ad03b8f0174c828d996529 (patch)
treea43650ea7d9c96434d536e557177b38c5f84bd34
parent1768c495416997c7a6769c6a92b33b37c89eed25 (diff)
Add support for aliases and boolean type
- aliases are now generated as new types or arrays (if length > 0) - bool is recognized as a boolean type and generated as Go bool - comment with original JSON is now prepended for each object type - interface Services is now generated at the top of the file to provide overview of what RPC services does the current module consists of - dump services now correctly return slice of the particular details type Change-Id: I788babc1c0f2de33e0febd87e5b200d54065b244 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
-rw-r--r--cmd/binapi-generator/definitions.go21
-rw-r--r--cmd/binapi-generator/generate.go157
-rw-r--r--cmd/binapi-generator/objects.go21
-rw-r--r--cmd/binapi-generator/parse.go136
-rw-r--r--examples/bin_api/acl.api.json56
-rw-r--r--examples/bin_api/acl/acl.ba.go2073
-rw-r--r--examples/bin_api/af_packet.api.json3
-rw-r--r--examples/bin_api/af_packet/af_packet.ba.go378
-rw-r--r--examples/bin_api/interface.api.json191
-rw-r--r--examples/bin_api/interfaces/interfaces.ba.go3122
-rw-r--r--examples/bin_api/ip.api.json393
-rw-r--r--examples/bin_api/ip/ip.ba.go6277
-rw-r--r--examples/bin_api/map.api.json940
-rw-r--r--examples/bin_api/maps/maps.ba.go1604
-rw-r--r--examples/bin_api/memif.api.json3
-rw-r--r--examples/bin_api/memif/memif.ba.go600
-rw-r--r--examples/bin_api/stats.api.json239
-rw-r--r--examples/bin_api/stats/stats.ba.go2916
-rw-r--r--examples/bin_api/tap.api.json3
-rw-r--r--examples/bin_api/tap/tap.ba.go498
-rw-r--r--examples/bin_api/vpe.api.json91
-rw-r--r--examples/bin_api/vpe/vpe.ba.go935
-rw-r--r--examples/cmd/union-example/union_example.go2
23 files changed, 12781 insertions, 7878 deletions
diff --git a/cmd/binapi-generator/definitions.go b/cmd/binapi-generator/definitions.go
index 3ad782f..0176278 100644
--- a/cmd/binapi-generator/definitions.go
+++ b/cmd/binapi-generator/definitions.go
@@ -25,6 +25,8 @@ func getBinapiTypeSize(binapiType string) int {
b, err := strconv.Atoi(strings.TrimLeft(binapiType, "uif"))
if err == nil {
return b / 8
+ } else {
+ return 1
}
}
return -1
@@ -32,15 +34,16 @@ func getBinapiTypeSize(binapiType string) int {
// binapiTypes is a set of types used VPP binary API for translation to Go types
var binapiTypes = map[string]string{
- "u8": "uint8",
- "i8": "int8",
- "u16": "uint16",
- "i16": "int16",
- "u32": "uint32",
- "i32": "int32",
- "u64": "uint64",
- "i64": "int64",
- "f64": "float64",
+ "bool": "bool",
+ "u8": "uint8",
+ "i8": "int8",
+ "u16": "uint16",
+ "i16": "int16",
+ "u32": "uint32",
+ "i32": "int32",
+ "u64": "uint64",
+ "i64": "int64",
+ "f64": "float64",
}
func usesInitialism(s string) string {
diff --git a/cmd/binapi-generator/generate.go b/cmd/binapi-generator/generate.go
index 7cfe338..22b4af6 100644
--- a/cmd/binapi-generator/generate.go
+++ b/cmd/binapi-generator/generate.go
@@ -35,9 +35,7 @@ type context struct {
inputFile string // input file with VPP API in JSON
outputFile string // output file with generated Go package
- inputData []byte // contents of the input file
- inputBuff *bytes.Buffer // contents of the input file currently being read
- inputLine int // currently processed line in the input file
+ inputData []byte // contents of the input file
moduleName string // name of the source VPP module
packageName string // name of the Go package being generated
@@ -87,28 +85,40 @@ func generatePackage(ctx *context, w *bufio.Writer) error {
if *includeAPIVer {
const APIVerConstName = "VlAPIVersion"
- fmt.Fprintf(w, "// %s represents version of the API.\n", APIVerConstName)
+ fmt.Fprintf(w, "// %s represents version of the binary API module.\n", APIVerConstName)
fmt.Fprintf(w, "const %s = %v\n", APIVerConstName, ctx.packageData.APIVersion)
fmt.Fprintln(w)
}
+ // generate services
+ if len(ctx.packageData.Services) > 0 {
+ generateServices(ctx, w, ctx.packageData.Services)
+ }
+
+ // TODO: generate implementation for Services interface
+
// generate enums
if len(ctx.packageData.Enums) > 0 {
fmt.Fprintf(w, "/* Enums */\n\n")
- ctx.inputBuff = bytes.NewBuffer(ctx.inputData)
- ctx.inputLine = 0
for _, enum := range ctx.packageData.Enums {
generateEnum(ctx, w, &enum)
}
}
+ // generate aliases
+ if len(ctx.packageData.Aliases) > 0 {
+ fmt.Fprintf(w, "/* Aliases */\n\n")
+
+ for _, alias := range ctx.packageData.Aliases {
+ generateAlias(ctx, w, &alias)
+ }
+ }
+
// generate types
if len(ctx.packageData.Types) > 0 {
fmt.Fprintf(w, "/* Types */\n\n")
- ctx.inputBuff = bytes.NewBuffer(ctx.inputData)
- ctx.inputLine = 0
for _, typ := range ctx.packageData.Types {
generateType(ctx, w, &typ)
}
@@ -118,8 +128,6 @@ func generatePackage(ctx *context, w *bufio.Writer) error {
if len(ctx.packageData.Unions) > 0 {
fmt.Fprintf(w, "/* Unions */\n\n")
- ctx.inputBuff = bytes.NewBuffer(ctx.inputData)
- ctx.inputLine = 0
for _, union := range ctx.packageData.Unions {
generateUnion(ctx, w, &union)
}
@@ -129,28 +137,11 @@ func generatePackage(ctx *context, w *bufio.Writer) error {
if len(ctx.packageData.Messages) > 0 {
fmt.Fprintf(w, "/* Messages */\n\n")
- ctx.inputBuff = bytes.NewBuffer(ctx.inputData)
- ctx.inputLine = 0
for _, msg := range ctx.packageData.Messages {
generateMessage(ctx, w, &msg)
}
}
- // generate services
- if len(ctx.packageData.Services) > 0 {
- fmt.Fprintf(w, "/* Services */\n\n")
-
- ctx.inputBuff = bytes.NewBuffer(ctx.inputData)
- ctx.inputLine = 0
- fmt.Fprintf(w, "type %s interface {\n", "Services")
- for _, svc := range ctx.packageData.Services {
- generateService(ctx, w, &svc)
- }
- fmt.Fprintln(w, "}")
- }
-
- // TODO: generate implementation for Services interface
-
// generate message registrations
fmt.Fprintln(w)
fmt.Fprintln(w, "func init() {")
@@ -181,13 +172,18 @@ func generateHeader(ctx *context, w io.Writer) {
var printObjNum = func(obj string, num int) {
if num > 0 {
if num > 1 {
- obj += "s"
+ if strings.HasSuffix(obj, "s") {
+ obj += "es"
+ } else {
+ obj += "s"
+ }
}
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("enum", len(ctx.packageData.Enums))
printObjNum("union", len(ctx.packageData.Unions))
printObjNum("service", len(ctx.packageData.Services))
@@ -213,44 +209,96 @@ func generateImports(ctx *context, w io.Writer) {
// generateComment writes generated comment for the object into w
func generateComment(ctx *context, w io.Writer, goName string, vppName string, objKind string) {
- fmt.Fprintf(w, "// %s represents the VPP binary API %s '%s'.\n", goName, objKind, vppName)
+ if objKind == "service" {
+ fmt.Fprintf(w, "// %s represents VPP binary API services:\n", goName)
+ } else {
+ fmt.Fprintf(w, "// %s represents VPP binary API %s '%s':\n", goName, objKind, vppName)
+ }
var isNotSpace = func(r rune) bool {
return !unicode.IsSpace(r)
}
// print out the source of the generated object
+ mapType := false
objFound := false
objTitle := fmt.Sprintf(`"%s",`, vppName)
+ switch objKind {
+ case "alias", "service":
+ objTitle = fmt.Sprintf(`"%s": {`, vppName)
+ mapType = true
+ }
+
+ inputBuff := bytes.NewBuffer(ctx.inputData)
+ inputLine := 0
+
+ var trimIndent string
var indent int
for {
- line, err := ctx.inputBuff.ReadString('\n')
+ line, err := inputBuff.ReadString('\n')
if err != nil {
break
}
- ctx.inputLine++
+ inputLine++
+ noSpaceAt := strings.IndexFunc(line, isNotSpace)
if !objFound {
indent = strings.Index(line, objTitle)
if indent == -1 {
continue
}
+ trimIndent = line[:indent]
// If no other non-whitespace character then we are at the message header.
if trimmed := strings.TrimSpace(line); trimmed == objTitle {
objFound = true
fmt.Fprintln(w, "//")
}
- } else {
- if strings.IndexFunc(line, isNotSpace) < indent {
- break // end of the object definition in JSON
- }
+ } else if noSpaceAt < indent {
+ break // end of the definition in JSON for array types
+ } else if objFound && mapType && noSpaceAt <= indent {
+ fmt.Fprintf(w, "//\t%s", strings.TrimPrefix(line, trimIndent))
+ break // end of the definition in JSON for map types (aliases, services)
}
- fmt.Fprint(w, "//", line)
+ fmt.Fprintf(w, "//\t%s", strings.TrimPrefix(line, trimIndent))
}
fmt.Fprintln(w, "//")
}
+// generateServices writes generated code for the Services interface into w
+func generateServices(ctx *context, w *bufio.Writer, services []Service) {
+ // generate services comment
+ generateComment(ctx, w, "Services", "services", "service")
+
+ // generate interface
+ fmt.Fprintf(w, "type %s interface {\n", "Services")
+ for _, svc := range ctx.packageData.Services {
+ generateService(ctx, w, &svc)
+ }
+ fmt.Fprintln(w, "}")
+
+ fmt.Fprintln(w)
+}
+
+// generateService writes generated code for the service into w
+func generateService(ctx *context, w io.Writer, svc *Service) {
+ reqTyp := camelCaseName(svc.RequestType)
+
+ // method name is same as parameter type name by default
+ method := svc.MethodName()
+ params := fmt.Sprintf("*%s", reqTyp)
+ returns := "error"
+ if replyType := camelCaseName(svc.ReplyType); replyType != "" {
+ repTyp := fmt.Sprintf("*%s", replyType)
+ if svc.Stream {
+ repTyp = fmt.Sprintf("[]%s", repTyp)
+ }
+ returns = fmt.Sprintf("(%s, error)", repTyp)
+ }
+
+ fmt.Fprintf(w, "\t%s(%s) %s\n", method, params, returns)
+}
+
// generateEnum writes generated code for the enum into w
func generateEnum(ctx *context, w io.Writer, enum *Enum) {
name := camelCaseName(enum.Name)
@@ -277,6 +325,28 @@ func generateEnum(ctx *context, w io.Writer, enum *Enum) {
fmt.Fprintln(w)
}
+// generateAlias writes generated code for the alias into w
+func generateAlias(ctx *context, w io.Writer, alias *Alias) {
+ name := camelCaseName(alias.Name)
+
+ logf(" writing type %q (%s), length: %d", alias.Name, name, alias.Length)
+
+ // generate struct comment
+ generateComment(ctx, w, name, alias.Name, "alias")
+
+ // generate struct definition
+ fmt.Fprintf(w, "type %s ", name)
+
+ if alias.Length > 0 {
+ fmt.Fprintf(w, "[%d]", alias.Length)
+ }
+
+ dataType := convertToGoType(ctx, alias.Type)
+ fmt.Fprintf(w, "%s\n", dataType)
+
+ fmt.Fprintln(w)
+}
+
// generateType writes generated code for the type into w
func generateType(ctx *context, w io.Writer, typ *Type) {
name := camelCaseName(typ.Name)
@@ -494,21 +564,6 @@ func generateField(ctx *context, w io.Writer, fields []Field, i int) {
fmt.Fprintln(w)
}
-// generateService writes generated code for the service into w
-func generateService(ctx *context, w io.Writer, svc *Service) {
- reqTyp := camelCaseName(svc.RequestType)
-
- // method name is same as parameter type name by default
- method := svc.MethodName()
- params := fmt.Sprintf("*%s", reqTyp)
- returns := "error"
- if replyTyp := camelCaseName(svc.ReplyType); replyTyp != "" {
- returns = fmt.Sprintf("(*%s, error)", replyTyp)
- }
-
- fmt.Fprintf(w, "\t%s(%s) %s\n", method, params, returns)
-}
-
// generateMessageNameGetter generates getter for original VPP message name into the provider writer
func generateMessageNameGetter(w io.Writer, structName, msgName string) {
fmt.Fprintf(w, `func (*%s) GetMessageName() string {
diff --git a/cmd/binapi-generator/objects.go b/cmd/binapi-generator/objects.go
index 2681085..97318cb 100644
--- a/cmd/binapi-generator/objects.go
+++ b/cmd/binapi-generator/objects.go
@@ -8,6 +8,7 @@ type Package struct {
Enums []Enum
Unions []Union
Types []Type
+ Aliases []Alias
Messages []Message
Services []Service
RefMap map[string]string
@@ -37,6 +38,13 @@ type Type struct {
Fields []Field
}
+// Alias represents VPP binary API alias
+type Alias struct {
+ Name string
+ Type string
+ Length int
+}
+
// Union represents VPP binary API union
type Union struct {
Name string
@@ -105,16 +113,3 @@ func (s Service) IsRequestService() bool {
// some binapi messages might have `null` reply (for example: memclnt)
return s.ReplyType != "" && s.ReplyType != "null" // not null
}
-
-func getSizeOfType(typ *Type) (size int) {
- for _, field := range typ.Fields {
- if n := getBinapiTypeSize(field.Type); n > 0 {
- if field.Length > 0 {
- size += n * field.Length
- } else {
- size += n
- }
- }
- }
- return size
-}
diff --git a/cmd/binapi-generator/parse.go b/cmd/binapi-generator/parse.go
index 2d6fdd4..5dfbe91 100644
--- a/cmd/binapi-generator/parse.go
+++ b/cmd/binapi-generator/parse.go
@@ -23,26 +23,6 @@ import (
"github.com/bennyscetbun/jsongo"
)
-func getTypeByRef(ctx *context, ref string) *Type {
- for _, typ := range ctx.packageData.Types {
- if ref == toApiType(typ.Name) {
- return &typ
- }
- }
- return nil
-}
-
-func getUnionSize(ctx *context, union *Union) (maxSize int) {
- for _, field := range union.Fields {
- if typ := getTypeByRef(ctx, field.Type); typ != nil {
- if size := getSizeOfType(typ); size > maxSize {
- maxSize = size
- }
- }
- }
- return
-}
-
// toApiType returns name that is used as type reference in VPP binary API
func toApiType(name string) string {
return fmt.Sprintf("vl_api_%s_t", name)
@@ -50,13 +30,14 @@ func toApiType(name string) string {
// parsePackage parses provided JSON data into objects prepared for code generation
func parsePackage(ctx *context, jsonRoot *jsongo.JSONNode) (*Package, error) {
- logf(" %s contains: %d services, %d messages, %d types, %d enums, %d unions (version: %s)",
+ logf(" %s contains: %d services, %d messages, %d types, %d enums, %d unions, %d aliases (version: %s)",
ctx.packageName,
jsonRoot.Map("services").Len(),
jsonRoot.Map("messages").Len(),
jsonRoot.Map("types").Len(),
jsonRoot.Map("enums").Len(),
jsonRoot.Map("unions").Len(),
+ jsonRoot.Map("aliases").Len(),
jsonRoot.Map("vl_api_version").Get(),
)
@@ -79,6 +60,22 @@ func parsePackage(ctx *context, jsonRoot *jsongo.JSONNode) (*Package, error) {
pkg.RefMap[toApiType(enum.Name)] = enum.Name
}
+ // parse aliases
+ aliases := jsonRoot.Map("aliases")
+ if aliases.GetType() == jsongo.TypeMap {
+ pkg.Aliases = make([]Alias, aliases.Len())
+ for i, key := range aliases.GetKeys() {
+ aliasNode := aliases.At(key)
+
+ alias, err := parseAlias(ctx, key.(string), aliasNode)
+ if err != nil {
+ return nil, err
+ }
+ pkg.Aliases[i] = *alias
+ pkg.RefMap[toApiType(alias.Name)] = alias.Name
+ }
+ }
+
// parse types
types := jsonRoot.Map("types")
pkg.Types = make([]Type, types.Len())
@@ -308,6 +305,42 @@ func parseType(ctx *context, typeNode *jsongo.JSONNode) (*Type, error) {
return &typ, nil
}
+const (
+ aliasesLength = "length"
+ aliasesType = "type"
+)
+
+// parseAlias parses VPP binary API alias object from JSON node
+func parseAlias(ctx *context, aliasName string, aliasNode *jsongo.JSONNode) (*Alias, error) {
+ if aliasNode.Len() == 0 || aliasNode.At(aliasesType).GetType() != jsongo.TypeValue {
+ return nil, errors.New("invalid JSON for alias specified")
+ }
+
+ alias := Alias{
+ Name: aliasName,
+ }
+
+ if typeNode := aliasNode.At(aliasesType); typeNode.GetType() == jsongo.TypeValue {
+ typ, ok := typeNode.Get().(string)
+ if !ok {
+ return nil, fmt.Errorf("alias type is %T, not a string", typeNode.Get())
+ }
+ if typ != "null" {
+ alias.Type = typ
+ }
+ }
+
+ if lengthNode := aliasNode.At(aliasesLength); lengthNode.GetType() == jsongo.TypeValue {
+ length, ok := lengthNode.Get().(float64)
+ if !ok {
+ return nil, fmt.Errorf("alias length is %T, not a float64", lengthNode.Get())
+ }
+ alias.Length = int(length)
+ }
+
+ return &alias, nil
+}
+
// parseMessage parses VPP binary API message object from JSON node
func parseMessage(ctx *context, msgNode *jsongo.JSONNode) (*Message, error) {
if msgNode.Len() == 0 || msgNode.At(0).GetType() != jsongo.TypeValue {
@@ -364,7 +397,7 @@ func parseField(ctx *context, field *jsongo.JSONNode) (*Field, error) {
if field.Len() >= 3 {
fieldLength, ok = field.At(2).Get().(float64)
if !ok {
- return nil, fmt.Errorf("field length is %T, not an int", field.At(2).Get())
+ return nil, fmt.Errorf("field length is %T, not float64", field.At(2).Get())
}
}
var fieldLengthFrom string
@@ -461,3 +494,62 @@ func convertToGoType(ctx *context, binapiType string) (typ string) {
}
return typ
}
+
+func getSizeOfType(typ *Type) (size int) {
+ for _, field := range typ.Fields {
+ size += getSizeOfBinapiTypeLength(field.Type, field.Length)
+ }
+ return size
+}
+
+func getSizeOfBinapiTypeLength(typ string, length int) (size int) {
+ if n := getBinapiTypeSize(typ); n > 0 {
+ if length > 0 {
+ return n * length
+ } else {
+ return n
+ }
+ }
+ return
+}
+
+func getTypeByRef(ctx *context, ref string) *Type {
+ for _, typ := range ctx.packageData.Types {
+ if ref == toApiType(typ.Name) {
+ return &typ
+ }
+ }
+ return nil
+}
+
+func getAliasByRef(ctx *context, ref string) *Alias {
+ for _, alias := range ctx.packageData.Aliases {
+ if ref == toApiType(alias.Name) {
+ return &alias
+ }
+ }
+ return nil
+}
+
+func getUnionSize(ctx *context, union *Union) (maxSize int) {
+ for _, field := range union.Fields {
+ typ := getTypeByRef(ctx, field.Type)
+ if typ != nil {
+ if size := getSizeOfType(typ); size > maxSize {
+ maxSize = size
+ }
+ continue
+ }
+ alias := getAliasByRef(ctx, field.Type)
+ if alias != nil {
+ if size := getSizeOfBinapiTypeLength(alias.Type, alias.Length); size > maxSize {
+ maxSize = size
+ }
+ continue
+ } else {
+ logf("no type or alias found for union %s field type %q", union.Name, field.Type)
+ continue
+ }
+ }
+ return
+}
diff --git a/examples/bin_api/acl.api.json b/examples/bin_api/acl.api.json
index 13b8665..1aa8285 100644
--- a/examples/bin_api/acl.api.json
+++ b/examples/bin_api/acl.api.json
@@ -85,6 +85,42 @@
}
],
[
+ "acl_plugin_get_conn_table_max_entries",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ {
+ "crc": "0x51077d14"
+ }
+ ],
+ [
+ "acl_plugin_get_conn_table_max_entries_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u64",
+ "conn_table_max_entries"
+ ],
+ {
+ "crc": "0x7a096d3d"
+ }
+ ],
+ [
"acl_add_replace",
[
"u16",
@@ -856,7 +892,7 @@
}
]
],
- "vl_api_version": "0x25a6e1e9",
+ "vl_api_version": "0x8ed22cb9",
"unions": [],
"services": {
"acl_plugin_get_version": {
@@ -872,6 +908,9 @@
"acl_del": {
"reply": "acl_del_reply"
},
+ "macip_acl_del": {
+ "reply": "macip_acl_del_reply"
+ },
"acl_plugin_control_ping": {
"reply": "acl_plugin_control_ping_reply"
},
@@ -885,11 +924,11 @@
"macip_acl_interface_add_del": {
"reply": "macip_acl_interface_add_del_reply"
},
- "macip_acl_del": {
- "reply": "macip_acl_del_reply"
+ "acl_add_replace": {
+ "reply": "acl_add_replace_reply"
},
- "macip_acl_add": {
- "reply": "macip_acl_add_reply"
+ "acl_plugin_get_conn_table_max_entries": {
+ "reply": "acl_plugin_get_conn_table_max_entries_reply"
},
"acl_interface_list_dump": {
"reply": "acl_interface_list_details",
@@ -898,8 +937,8 @@
"acl_interface_set_acl_list": {
"reply": "acl_interface_set_acl_list_reply"
},
- "acl_add_replace": {
- "reply": "acl_add_replace_reply"
+ "macip_acl_add": {
+ "reply": "macip_acl_add_reply"
},
"acl_interface_set_etype_whitelist": {
"reply": "acl_interface_set_etype_whitelist_reply"
@@ -1011,5 +1050,6 @@
"crc": "0x70589f1e"
}
]
- ]
+ ],
+ "aliases": {}
}
diff --git a/examples/bin_api/acl/acl.ba.go b/examples/bin_api/acl/acl.ba.go
index 47b79cf..eff85d4 100644
--- a/examples/bin_api/acl/acl.ba.go
+++ b/examples/bin_api/acl/acl.ba.go
@@ -5,9 +5,9 @@
Package acl is a generated from VPP binary API module 'acl'.
It contains following objects:
- 34 messages
+ 36 messages
2 types
- 17 services
+ 18 services
*/
package acl
@@ -21,68 +21,153 @@ var _ = api.RegisterMessage
var _ = struc.Pack
var _ = bytes.NewBuffer
+// Services represents VPP binary API services:
+//
+// "services": {
+// "acl_plugin_get_version": {
+// "reply": "acl_plugin_get_version_reply"
+// },
+// "acl_dump": {
+// "reply": "acl_details",
+// "stream": true
+// },
+// "acl_interface_add_del": {
+// "reply": "acl_interface_add_del_reply"
+// },
+// "acl_del": {
+// "reply": "acl_del_reply"
+// },
+// "macip_acl_del": {
+// "reply": "macip_acl_del_reply"
+// },
+// "acl_plugin_control_ping": {
+// "reply": "acl_plugin_control_ping_reply"
+// },
+// "macip_acl_interface_get": {
+// "reply": "macip_acl_interface_get_reply"
+// },
+// "acl_interface_etype_whitelist_dump": {
+// "reply": "acl_interface_etype_whitelist_details",
+// "stream": true
+// },
+// "macip_acl_interface_add_del": {
+// "reply": "macip_acl_interface_add_del_reply"
+// },
+// "acl_add_replace": {
+// "reply": "acl_add_replace_reply"
+// },
+// "acl_plugin_get_conn_table_max_entries": {
+// "reply": "acl_plugin_get_conn_table_max_entries_reply"
+// },
+// "acl_interface_list_dump": {
+// "reply": "acl_interface_list_details",
+// "stream": true
+// },
+// "acl_interface_set_acl_list": {
+// "reply": "acl_interface_set_acl_list_reply"
+// },
+// "macip_acl_add": {
+// "reply": "macip_acl_add_reply"
+// },
+// "acl_interface_set_etype_whitelist": {
+// "reply": "acl_interface_set_etype_whitelist_reply"
+// },
+// "macip_acl_add_replace": {
+// "reply": "macip_acl_add_replace_reply"
+// },
+// "macip_acl_dump": {
+// "reply": "macip_acl_details",
+// "stream": true
+// },
+// "macip_acl_interface_list_dump": {
+// "reply": "macip_acl_interface_list_details",
+// "stream": true
+// }
+// },
+//
+type Services interface {
+ DumpACL(*ACLDump) ([]*ACLDetails, error)
+ DumpACLInterfaceEtypeWhitelist(*ACLInterfaceEtypeWhitelistDump) ([]*ACLInterfaceEtypeWhitelistDetails, error)
+ DumpACLInterfaceList(*ACLInterfaceListDump) ([]*ACLInterfaceListDetails, error)
+ DumpMacipACL(*MacipACLDump) ([]*MacipACLDetails, error)
+ DumpMacipACLInterfaceList(*MacipACLInterfaceListDump) ([]*MacipACLInterfaceListDetails, error)
+ ACLAddReplace(*ACLAddReplace) (*ACLAddReplaceReply, error)
+ ACLDel(*ACLDel) (*ACLDelReply, error)
+ ACLInterfaceAddDel(*ACLInterfaceAddDel) (*ACLInterfaceAddDelReply, error)
+ ACLInterfaceSetACLList(*ACLInterfaceSetACLList) (*ACLInterfaceSetACLListReply, error)
+ ACLInterfaceSetEtypeWhitelist(*ACLInterfaceSetEtypeWhitelist) (*ACLInterfaceSetEtypeWhitelistReply, error)
+ ACLPluginControlPing(*ACLPluginControlPing) (*ACLPluginControlPingReply, error)
+ ACLPluginGetConnTableMaxEntries(*ACLPluginGetConnTableMaxEntries) (*ACLPluginGetConnTableMaxEntriesReply, error)
+ ACLPluginGetVersion(*ACLPluginGetVersion) (*ACLPluginGetVersionReply, error)
+ MacipACLAdd(*MacipACLAdd) (*MacipACLAddReply, error)
+ MacipACLAddReplace(*MacipACLAddReplace) (*MacipACLAddReplaceReply, error)
+ MacipACLDel(*MacipACLDel) (*MacipACLDelReply, error)
+ MacipACLInterfaceAddDel(*MacipACLInterfaceAddDel) (*MacipACLInterfaceAddDelReply, error)
+ MacipACLInterfaceGet(*MacipACLInterfaceGet) (*MacipACLInterfaceGetReply, error)
+}
+
/* Types */
-// ACLRule represents the VPP binary API type 'acl_rule'.
-//
-// "acl_rule",
-// [
-// "u8",
-// "is_permit"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u8",
-// "src_ip_addr",
-// 16
-// ],
-// [
-// "u8",
-// "src_ip_prefix_len"
-// ],
-// [
-// "u8",
-// "dst_ip_addr",
-// 16
-// ],
-// [
-// "u8",
-// "dst_ip_prefix_len"
-// ],
-// [
-// "u8",
-// "proto"
-// ],
-// [
-// "u16",
-// "srcport_or_icmptype_first"
-// ],
-// [
-// "u16",
-// "srcport_or_icmptype_last"
-// ],
-// [
-// "u16",
-// "dstport_or_icmpcode_first"
-// ],
-// [
-// "u16",
-// "dstport_or_icmpcode_last"
-// ],
-// [
-// "u8",
-// "tcp_flags_mask"
-// ],
-// [
-// "u8",
-// "tcp_flags_value"
-// ],
-// {
-// "crc": "0x6f99bf4d"
-// }
+// ACLRule represents VPP binary API type 'acl_rule':
+//
+// "acl_rule",
+// [
+// "u8",
+// "is_permit"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u8",
+// "src_ip_addr",
+// 16
+// ],
+// [
+// "u8",
+// "src_ip_prefix_len"
+// ],
+// [
+// "u8",
+// "dst_ip_addr",
+// 16
+// ],
+// [
+// "u8",
+// "dst_ip_prefix_len"
+// ],
+// [
+// "u8",
+// "proto"
+// ],
+// [
+// "u16",
+// "srcport_or_icmptype_first"
+// ],
+// [
+// "u16",
+// "srcport_or_icmptype_last"
+// ],
+// [
+// "u16",
+// "dstport_or_icmpcode_first"
+// ],
+// [
+// "u16",
+// "dstport_or_icmpcode_last"
+// ],
+// [
+// "u8",
+// "tcp_flags_mask"
+// ],
+// [
+// "u8",
+// "tcp_flags_value"
+// ],
+// {
+// "crc": "0x6f99bf4d"
+// }
//
type ACLRule struct {
IsPermit uint8
@@ -107,39 +192,39 @@ func (*ACLRule) GetCrcString() string {
return "6f99bf4d"
}
-// MacipACLRule represents the VPP binary API type 'macip_acl_rule'.
-//
-// "macip_acl_rule",
-// [
-// "u8",
-// "is_permit"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u8",
-// "src_mac",
-// 6
-// ],
-// [
-// "u8",
-// "src_mac_mask",
-// 6
-// ],
-// [
-// "u8",
-// "src_ip_addr",
-// 16
-// ],
-// [
-// "u8",
-// "src_ip_prefix_len"
-// ],
-// {
-// "crc": "0x70589f1e"
-// }
+// MacipACLRule represents VPP binary API type 'macip_acl_rule':
+//
+// "macip_acl_rule",
+// [
+// "u8",
+// "is_permit"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u8",
+// "src_mac",
+// 6
+// ],
+// [
+// "u8",
+// "src_mac_mask",
+// 6
+// ],
+// [
+// "u8",
+// "src_ip_addr",
+// 16
+// ],
+// [
+// "u8",
+// "src_ip_prefix_len"
+// ],
+// {
+// "crc": "0x70589f1e"
+// }
//
type MacipACLRule struct {
IsPermit uint8
@@ -159,24 +244,24 @@ func (*MacipACLRule) GetCrcString() string {
/* Messages */
-// ACLPluginGetVersion represents the VPP binary API message 'acl_plugin_get_version'.
-//
-// "acl_plugin_get_version",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// 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{}
@@ -190,28 +275,28 @@ func (*ACLPluginGetVersion) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ACLPluginGetVersionReply represents the 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"
-// }
+// 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
@@ -228,24 +313,24 @@ func (*ACLPluginGetVersionReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ACLPluginControlPing represents the VPP binary API message 'acl_plugin_control_ping'.
-//
-// "acl_plugin_control_ping",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// 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{}
@@ -259,32 +344,32 @@ func (*ACLPluginControlPing) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ACLPluginControlPingReply represents the 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"
-// }
+// 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
@@ -302,43 +387,107 @@ func (*ACLPluginControlPingReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ACLAddReplace represents the VPP binary API message 'acl_add_replace'.
-//
-// "acl_add_replace",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// [
-// "u8",
-// "tag",
-// 64
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_acl_rule_t",
-// "r",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0xe839997e"
-// }
+// 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",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "acl_index"
+// ],
+// [
+// "u8",
+// "tag",
+// 64
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_acl_rule_t",
+// "r",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xe839997e"
+// }
//
type ACLAddReplace struct {
ACLIndex uint32
@@ -357,28 +506,28 @@ func (*ACLAddReplace) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ACLAddReplaceReply represents the VPP binary API message 'acl_add_replace_reply'.
-//
-// "acl_add_replace_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xac407b0c"
-// }
+// ACLAddReplaceReply represents VPP binary API message 'acl_add_replace_reply':
+//
+// "acl_add_replace_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "acl_index"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xac407b0c"
+// }
//
type ACLAddReplaceReply struct {
ACLIndex uint32
@@ -395,28 +544,28 @@ func (*ACLAddReplaceReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ACLDel represents the VPP binary API message 'acl_del'.
-//
-// "acl_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// {
-// "crc": "0xef34fea4"
-// }
+// ACLDel represents VPP binary API message 'acl_del':
+//
+// "acl_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "acl_index"
+// ],
+// {
+// "crc": "0xef34fea4"
+// }
//
type ACLDel struct {
ACLIndex uint32
@@ -432,24 +581,24 @@ func (*ACLDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ACLDelReply represents the VPP binary API message 'acl_del_reply'.
-//
-// "acl_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// ACLDelReply represents VPP binary API message 'acl_del_reply':
+//
+// "acl_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type ACLDelReply struct {
Retval int32
@@ -465,40 +614,40 @@ func (*ACLDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ACLInterfaceAddDel represents the VPP binary API message 'acl_interface_add_del'.
-//
-// "acl_interface_add_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u8",
-// "is_input"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// {
-// "crc": "0x0b2aedd1"
-// }
+// ACLInterfaceAddDel represents VPP binary API message 'acl_interface_add_del':
+//
+// "acl_interface_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u8",
+// "is_input"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "acl_index"
+// ],
+// {
+// "crc": "0x0b2aedd1"
+// }
//
type ACLInterfaceAddDel struct {
IsAdd uint8
@@ -517,24 +666,24 @@ func (*ACLInterfaceAddDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ACLInterfaceAddDelReply represents the VPP binary API message 'acl_interface_add_del_reply'.
-//
-// "acl_interface_add_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// ACLInterfaceAddDelReply represents VPP binary API message 'acl_interface_add_del_reply':
+//
+// "acl_interface_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type ACLInterfaceAddDelReply struct {
Retval int32
@@ -550,42 +699,42 @@ func (*ACLInterfaceAddDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ACLInterfaceSetACLList represents the VPP binary API message 'acl_interface_set_acl_list'.
-//
-// "acl_interface_set_acl_list",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "count"
-// ],
-// [
-// "u8",
-// "n_input"
-// ],
-// [
-// "u32",
-// "acls",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x8baece38"
-// }
+// ACLInterfaceSetACLList represents VPP binary API message 'acl_interface_set_acl_list':
+//
+// "acl_interface_set_acl_list",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "count"
+// ],
+// [
+// "u8",
+// "n_input"
+// ],
+// [
+// "u32",
+// "acls",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x8baece38"
+// }
//
type ACLInterfaceSetACLList struct {
SwIfIndex uint32
@@ -604,24 +753,24 @@ func (*ACLInterfaceSetACLList) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ACLInterfaceSetACLListReply represents the VPP binary API message 'acl_interface_set_acl_list_reply'.
-//
-// "acl_interface_set_acl_list_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// ACLInterfaceSetACLListReply represents VPP binary API message 'acl_interface_set_acl_list_reply':
+//
+// "acl_interface_set_acl_list_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type ACLInterfaceSetACLListReply struct {
Retval int32
@@ -637,28 +786,28 @@ func (*ACLInterfaceSetACLListReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ACLDump represents the VPP binary API message 'acl_dump'.
-//
-// "acl_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// {
-// "crc": "0xef34fea4"
-// }
+// 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
@@ -674,39 +823,39 @@ func (*ACLDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ACLDetails represents the VPP binary API message 'acl_details'.
-//
-// "acl_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// [
-// "u8",
-// "tag",
-// 64
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_acl_rule_t",
-// "r",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x5bd895be"
-// }
+// ACLDetails represents VPP binary API message 'acl_details':
+//
+// "acl_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "acl_index"
+// ],
+// [
+// "u8",
+// "tag",
+// 64
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_acl_rule_t",
+// "r",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x5bd895be"
+// }
//
type ACLDetails struct {
ACLIndex uint32
@@ -725,28 +874,28 @@ func (*ACLDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ACLInterfaceListDump represents the VPP binary API message 'acl_interface_list_dump'.
-//
-// "acl_interface_list_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0x529cb13f"
-// }
+// ACLInterfaceListDump represents VPP binary API message 'acl_interface_list_dump':
+//
+// "acl_interface_list_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
//
type ACLInterfaceListDump struct {
SwIfIndex uint32
@@ -762,38 +911,38 @@ func (*ACLInterfaceListDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ACLInterfaceListDetails represents the VPP binary API message 'acl_interface_list_details'.
-//
-// "acl_interface_list_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "count"
-// ],
-// [
-// "u8",
-// "n_input"
-// ],
-// [
-// "u32",
-// "acls",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0xd5e80809"
-// }
+// ACLInterfaceListDetails represents VPP binary API message 'acl_interface_list_details':
+//
+// "acl_interface_list_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "count"
+// ],
+// [
+// "u8",
+// "n_input"
+// ],
+// [
+// "u32",
+// "acls",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xd5e80809"
+// }
//
type ACLInterfaceListDetails struct {
SwIfIndex uint32
@@ -812,39 +961,39 @@ func (*ACLInterfaceListDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MacipACLAdd represents the VPP binary API message 'macip_acl_add'.
-//
-// "macip_acl_add",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "tag",
-// 64
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_macip_acl_rule_t",
-// "r",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0xb3d3d65a"
-// }
+// MacipACLAdd represents VPP binary API message 'macip_acl_add':
+//
+// "macip_acl_add",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "tag",
+// 64
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_macip_acl_rule_t",
+// "r",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xb3d3d65a"
+// }
//
type MacipACLAdd struct {
Tag []byte `struc:"[64]byte"`
@@ -862,28 +1011,28 @@ func (*MacipACLAdd) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MacipACLAddReply represents the VPP binary API message 'macip_acl_add_reply'.
-//
-// "macip_acl_add_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xac407b0c"
-// }
+// MacipACLAddReply represents VPP binary API message 'macip_acl_add_reply':
+//
+// "macip_acl_add_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "acl_index"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xac407b0c"
+// }
//
type MacipACLAddReply struct {
ACLIndex uint32
@@ -900,43 +1049,43 @@ func (*MacipACLAddReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MacipACLAddReplace represents the VPP binary API message 'macip_acl_add_replace'.
-//
-// "macip_acl_add_replace",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// [
-// "u8",
-// "tag",
-// 64
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_macip_acl_rule_t",
-// "r",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0xa0e8c01b"
-// }
+// MacipACLAddReplace represents VPP binary API message 'macip_acl_add_replace':
+//
+// "macip_acl_add_replace",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "acl_index"
+// ],
+// [
+// "u8",
+// "tag",
+// 64
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_macip_acl_rule_t",
+// "r",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xa0e8c01b"
+// }
//
type MacipACLAddReplace struct {
ACLIndex uint32
@@ -955,28 +1104,28 @@ func (*MacipACLAddReplace) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MacipACLAddReplaceReply represents the 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"
-// }
+// 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
@@ -993,28 +1142,28 @@ func (*MacipACLAddReplaceReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MacipACLDel represents the VPP binary API message 'macip_acl_del'.
-//
-// "macip_acl_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// {
-// "crc": "0xef34fea4"
-// }
+// MacipACLDel represents VPP binary API message 'macip_acl_del':
+//
+// "macip_acl_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "acl_index"
+// ],
+// {
+// "crc": "0xef34fea4"
+// }
//
type MacipACLDel struct {
ACLIndex uint32
@@ -1030,24 +1179,24 @@ func (*MacipACLDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MacipACLDelReply represents the VPP binary API message 'macip_acl_del_reply'.
-//
-// "macip_acl_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// MacipACLDelReply represents VPP binary API message 'macip_acl_del_reply':
+//
+// "macip_acl_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type MacipACLDelReply struct {
Retval int32
@@ -1063,36 +1212,36 @@ func (*MacipACLDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MacipACLInterfaceAddDel represents the VPP binary API message 'macip_acl_interface_add_del'.
-//
-// "macip_acl_interface_add_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// {
-// "crc": "0x6a6be97c"
-// }
+// MacipACLInterfaceAddDel represents VPP binary API message 'macip_acl_interface_add_del':
+//
+// "macip_acl_interface_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "acl_index"
+// ],
+// {
+// "crc": "0x6a6be97c"
+// }
//
type MacipACLInterfaceAddDel struct {
IsAdd uint8
@@ -1110,24 +1259,24 @@ func (*MacipACLInterfaceAddDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MacipACLInterfaceAddDelReply represents the VPP binary API message 'macip_acl_interface_add_del_reply'.
-//
-// "macip_acl_interface_add_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// MacipACLInterfaceAddDelReply represents VPP binary API message 'macip_acl_interface_add_del_reply':
+//
+// "macip_acl_interface_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type MacipACLInterfaceAddDelReply struct {
Retval int32
@@ -1143,28 +1292,28 @@ func (*MacipACLInterfaceAddDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MacipACLDump represents the VPP binary API message 'macip_acl_dump'.
-//
-// "macip_acl_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// {
-// "crc": "0xef34fea4"
-// }
+// MacipACLDump represents VPP binary API message 'macip_acl_dump':
+//
+// "macip_acl_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "acl_index"
+// ],
+// {
+// "crc": "0xef34fea4"
+// }
//
type MacipACLDump struct {
ACLIndex uint32
@@ -1180,39 +1329,39 @@ func (*MacipACLDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MacipACLDetails represents the VPP binary API message 'macip_acl_details'.
-//
-// "macip_acl_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "acl_index"
-// ],
-// [
-// "u8",
-// "tag",
-// 64
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_macip_acl_rule_t",
-// "r",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0xdd2b55ba"
-// }
+// MacipACLDetails represents VPP binary API message 'macip_acl_details':
+//
+// "macip_acl_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "acl_index"
+// ],
+// [
+// "u8",
+// "tag",
+// 64
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_macip_acl_rule_t",
+// "r",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xdd2b55ba"
+// }
//
type MacipACLDetails struct {
ACLIndex uint32
@@ -1231,24 +1380,24 @@ func (*MacipACLDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MacipACLInterfaceGet represents the VPP binary API message 'macip_acl_interface_get'.
-//
-// "macip_acl_interface_get",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// MacipACLInterfaceGet represents VPP binary API message 'macip_acl_interface_get':
+//
+// "macip_acl_interface_get",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type MacipACLInterfaceGet struct{}
@@ -1262,30 +1411,30 @@ func (*MacipACLInterfaceGet) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MacipACLInterfaceGetReply represents the VPP binary API message 'macip_acl_interface_get_reply'.
-//
-// "macip_acl_interface_get_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "u32",
-// "acls",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0xaccf9b05"
-// }
+// MacipACLInterfaceGetReply represents VPP binary API message 'macip_acl_interface_get_reply':
+//
+// "macip_acl_interface_get_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "u32",
+// "acls",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xaccf9b05"
+// }
//
type MacipACLInterfaceGetReply struct {
Count uint32 `struc:"sizeof=Acls"`
@@ -1302,28 +1451,28 @@ func (*MacipACLInterfaceGetReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MacipACLInterfaceListDump represents the 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"
-// }
+// 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
@@ -1339,34 +1488,34 @@ func (*MacipACLInterfaceListDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MacipACLInterfaceListDetails represents the VPP binary API message 'macip_acl_interface_list_details'.
-//
-// "macip_acl_interface_list_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "count"
-// ],
-// [
-// "u32",
-// "acls",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x29783fa0"
-// }
+// MacipACLInterfaceListDetails represents VPP binary API message 'macip_acl_interface_list_details':
+//
+// "macip_acl_interface_list_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "count"
+// ],
+// [
+// "u32",
+// "acls",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x29783fa0"
+// }
//
type MacipACLInterfaceListDetails struct {
SwIfIndex uint32
@@ -1384,42 +1533,42 @@ func (*MacipACLInterfaceListDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ACLInterfaceSetEtypeWhitelist represents the VPP binary API message 'acl_interface_set_etype_whitelist'.
-//
-// "acl_interface_set_etype_whitelist",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "count"
-// ],
-// [
-// "u8",
-// "n_input"
-// ],
-// [
-// "u16",
-// "whitelist",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0xf515efc5"
-// }
+// ACLInterfaceSetEtypeWhitelist represents VPP binary API message 'acl_interface_set_etype_whitelist':
+//
+// "acl_interface_set_etype_whitelist",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "count"
+// ],
+// [
+// "u8",
+// "n_input"
+// ],
+// [
+// "u16",
+// "whitelist",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xf515efc5"
+// }
//
type ACLInterfaceSetEtypeWhitelist struct {
SwIfIndex uint32
@@ -1438,24 +1587,24 @@ func (*ACLInterfaceSetEtypeWhitelist) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ACLInterfaceSetEtypeWhitelistReply represents the VPP binary API message 'acl_interface_set_etype_whitelist_reply'.
-//
-// "acl_interface_set_etype_whitelist_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// ACLInterfaceSetEtypeWhitelistReply represents VPP binary API message 'acl_interface_set_etype_whitelist_reply':
+//
+// "acl_interface_set_etype_whitelist_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type ACLInterfaceSetEtypeWhitelistReply struct {
Retval int32
@@ -1471,28 +1620,28 @@ func (*ACLInterfaceSetEtypeWhitelistReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ACLInterfaceEtypeWhitelistDump represents the VPP binary API message 'acl_interface_etype_whitelist_dump'.
-//
-// "acl_interface_etype_whitelist_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0x529cb13f"
-// }
+// ACLInterfaceEtypeWhitelistDump represents VPP binary API message 'acl_interface_etype_whitelist_dump':
+//
+// "acl_interface_etype_whitelist_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
//
type ACLInterfaceEtypeWhitelistDump struct {
SwIfIndex uint32
@@ -1508,38 +1657,38 @@ func (*ACLInterfaceEtypeWhitelistDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ACLInterfaceEtypeWhitelistDetails represents the VPP binary API message 'acl_interface_etype_whitelist_details'.
-//
-// "acl_interface_etype_whitelist_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "count"
-// ],
-// [
-// "u8",
-// "n_input"
-// ],
-// [
-// "u16",
-// "whitelist",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x6a5d4e81"
-// }
+// ACLInterfaceEtypeWhitelistDetails represents VPP binary API message 'acl_interface_etype_whitelist_details':
+//
+// "acl_interface_etype_whitelist_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "count"
+// ],
+// [
+// "u8",
+// "n_input"
+// ],
+// [
+// "u16",
+// "whitelist",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x6a5d4e81"
+// }
//
type ACLInterfaceEtypeWhitelistDetails struct {
SwIfIndex uint32
@@ -1558,33 +1707,13 @@ func (*ACLInterfaceEtypeWhitelistDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-/* Services */
-
-type Services interface {
- DumpACL(*ACLDump) (*ACLDetails, error)
- DumpACLInterfaceEtypeWhitelist(*ACLInterfaceEtypeWhitelistDump) (*ACLInterfaceEtypeWhitelistDetails, error)
- DumpACLInterfaceList(*ACLInterfaceListDump) (*ACLInterfaceListDetails, error)
- DumpMacipACL(*MacipACLDump) (*MacipACLDetails, error)
- DumpMacipACLInterfaceList(*MacipACLInterfaceListDump) (*MacipACLInterfaceListDetails, error)
- ACLAddReplace(*ACLAddReplace) (*ACLAddReplaceReply, error)
- ACLDel(*ACLDel) (*ACLDelReply, error)
- ACLInterfaceAddDel(*ACLInterfaceAddDel) (*ACLInterfaceAddDelReply, error)
- ACLInterfaceSetACLList(*ACLInterfaceSetACLList) (*ACLInterfaceSetACLListReply, error)
- ACLInterfaceSetEtypeWhitelist(*ACLInterfaceSetEtypeWhitelist) (*ACLInterfaceSetEtypeWhitelistReply, error)
- ACLPluginControlPing(*ACLPluginControlPing) (*ACLPluginControlPingReply, error)
- ACLPluginGetVersion(*ACLPluginGetVersion) (*ACLPluginGetVersionReply, error)
- MacipACLAdd(*MacipACLAdd) (*MacipACLAddReply, error)
- MacipACLAddReplace(*MacipACLAddReplace) (*MacipACLAddReplaceReply, error)
- MacipACLDel(*MacipACLDel) (*MacipACLDelReply, error)
- MacipACLInterfaceAddDel(*MacipACLInterfaceAddDel) (*MacipACLInterfaceAddDelReply, error)
- MacipACLInterfaceGet(*MacipACLInterfaceGet) (*MacipACLInterfaceGetReply, error)
-}
-
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")
diff --git a/examples/bin_api/af_packet.api.json b/examples/bin_api/af_packet.api.json
index d28c5bb..0d57e38 100644
--- a/examples/bin_api/af_packet.api.json
+++ b/examples/bin_api/af_packet.api.json
@@ -199,5 +199,6 @@
}
},
"enums": [],
- "types": []
+ "types": [],
+ "aliases": {}
}
diff --git a/examples/bin_api/af_packet/af_packet.ba.go b/examples/bin_api/af_packet/af_packet.ba.go
index 81c2b9d..93d5e58 100644
--- a/examples/bin_api/af_packet/af_packet.ba.go
+++ b/examples/bin_api/af_packet/af_packet.ba.go
@@ -20,40 +20,65 @@ var _ = api.RegisterMessage
var _ = struc.Pack
var _ = bytes.NewBuffer
+// Services represents VPP binary API services:
+//
+// "services": {
+// "af_packet_dump": {
+// "reply": "af_packet_details",
+// "stream": true
+// },
+// "af_packet_set_l4_cksum_offload": {
+// "reply": "af_packet_set_l4_cksum_offload_reply"
+// },
+// "af_packet_delete": {
+// "reply": "af_packet_delete_reply"
+// },
+// "af_packet_create": {
+// "reply": "af_packet_create_reply"
+// }
+// },
+//
+type Services interface {
+ DumpAfPacket(*AfPacketDump) ([]*AfPacketDetails, error)
+ AfPacketCreate(*AfPacketCreate) (*AfPacketCreateReply, error)
+ AfPacketDelete(*AfPacketDelete) (*AfPacketDeleteReply, error)
+ AfPacketSetL4CksumOffload(*AfPacketSetL4CksumOffload) (*AfPacketSetL4CksumOffloadReply, error)
+}
+
/* Messages */
-// AfPacketCreate represents the VPP binary API message 'af_packet_create'.
+// AfPacketCreate represents VPP binary API message 'af_packet_create':
//
-// "af_packet_create",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "host_if_name",
-// 64
-// ],
-// [
-// "u8",
-// "hw_addr",
-// 6
-// ],
-// [
-// "u8",
-// "use_random_hw_addr"
-// ],
-// {
-// "crc": "0x6d5d30d6"
-// }
+// "af_packet_create",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "host_if_name",
+// 64
+// ],
+// [
+// "u8",
+// "hw_addr",
+// 6
+// ],
+// [
+// "u8",
+// "use_random_hw_addr"
+// ],
+// {
+// "crc": "0x6d5d30d6"
+// }
//
type AfPacketCreate struct {
HostIfName []byte `struc:"[64]byte"`
@@ -71,28 +96,28 @@ func (*AfPacketCreate) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// AfPacketCreateReply represents the VPP binary API message 'af_packet_create_reply'.
+// AfPacketCreateReply represents VPP binary API message 'af_packet_create_reply':
//
-// "af_packet_create_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0xfda5941f"
-// }
+// "af_packet_create_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
//
type AfPacketCreateReply struct {
Retval int32
@@ -109,29 +134,29 @@ func (*AfPacketCreateReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// AfPacketDelete represents the VPP binary API message 'af_packet_delete'.
+// AfPacketDelete represents VPP binary API message 'af_packet_delete':
//
-// "af_packet_delete",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "host_if_name",
-// 64
-// ],
-// {
-// "crc": "0x3efceda3"
-// }
+// "af_packet_delete",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "host_if_name",
+// 64
+// ],
+// {
+// "crc": "0x3efceda3"
+// }
//
type AfPacketDelete struct {
HostIfName []byte `struc:"[64]byte"`
@@ -147,24 +172,24 @@ func (*AfPacketDelete) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// AfPacketDeleteReply represents the VPP binary API message 'af_packet_delete_reply'.
+// AfPacketDeleteReply represents VPP binary API message 'af_packet_delete_reply':
//
-// "af_packet_delete_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// "af_packet_delete_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type AfPacketDeleteReply struct {
Retval int32
@@ -180,32 +205,32 @@ func (*AfPacketDeleteReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// AfPacketSetL4CksumOffload represents the VPP binary API message 'af_packet_set_l4_cksum_offload'.
+// AfPacketSetL4CksumOffload represents VPP binary API message 'af_packet_set_l4_cksum_offload':
//
-// "af_packet_set_l4_cksum_offload",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "set"
-// ],
-// {
-// "crc": "0x86538585"
-// }
+// "af_packet_set_l4_cksum_offload",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "set"
+// ],
+// {
+// "crc": "0x86538585"
+// }
//
type AfPacketSetL4CksumOffload struct {
SwIfIndex uint8
@@ -222,24 +247,24 @@ func (*AfPacketSetL4CksumOffload) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// AfPacketSetL4CksumOffloadReply represents the VPP binary API message 'af_packet_set_l4_cksum_offload_reply'.
+// AfPacketSetL4CksumOffloadReply represents VPP binary API message 'af_packet_set_l4_cksum_offload_reply':
//
-// "af_packet_set_l4_cksum_offload_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// "af_packet_set_l4_cksum_offload_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type AfPacketSetL4CksumOffloadReply struct {
Retval int32
@@ -255,24 +280,24 @@ func (*AfPacketSetL4CksumOffloadReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// AfPacketDump represents the VPP binary API message 'af_packet_dump'.
+// AfPacketDump represents VPP binary API message 'af_packet_dump':
//
-// "af_packet_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// "af_packet_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type AfPacketDump struct{}
@@ -286,29 +311,29 @@ func (*AfPacketDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// AfPacketDetails represents the VPP binary API message 'af_packet_details'.
+// AfPacketDetails represents VPP binary API message 'af_packet_details':
//
-// "af_packet_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "host_if_name",
-// 64
-// ],
-// {
-// "crc": "0x057205fa"
-// }
+// "af_packet_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "host_if_name",
+// 64
+// ],
+// {
+// "crc": "0x057205fa"
+// }
//
type AfPacketDetails struct {
SwIfIndex uint32
@@ -325,15 +350,6 @@ func (*AfPacketDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-/* Services */
-
-type Services interface {
- DumpAfPacket(*AfPacketDump) (*AfPacketDetails, error)
- AfPacketCreate(*AfPacketCreate) (*AfPacketCreateReply, error)
- AfPacketDelete(*AfPacketDelete) (*AfPacketDeleteReply, error)
- AfPacketSetL4CksumOffload(*AfPacketSetL4CksumOffload) (*AfPacketSetL4CksumOffloadReply, error)
-}
-
func init() {
api.RegisterMessage((*AfPacketCreate)(nil), "af_packet.AfPacketCreate")
api.RegisterMessage((*AfPacketCreateReply)(nil), "af_packet.AfPacketCreateReply")
diff --git a/examples/bin_api/interface.api.json b/examples/bin_api/interface.api.json
index 87c9358..db255aa 100644
--- a/examples/bin_api/interface.api.json
+++ b/examples/bin_api/interface.api.json
@@ -134,6 +134,50 @@
}
],
[
+ "sw_interface_set_ip_directed_broadcast",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u32",
+ "sw_if_index"
+ ],
+ [
+ "u8",
+ "enable"
+ ],
+ {
+ "crc": "0xa36fadc0"
+ }
+ ],
+ [
+ "sw_interface_set_ip_directed_broadcast_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
"sw_interface_event",
[
"u16",
@@ -256,7 +300,7 @@
"link_duplex"
],
[
- "u8",
+ "u32",
"link_speed"
],
[
@@ -352,7 +396,7 @@
"i_sid"
],
{
- "crc": "0x09b4b510"
+ "crc": "0xe4ee7eb6"
}
],
[
@@ -819,6 +863,114 @@
}
],
[
+ "sw_interface_set_rx_placement",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u32",
+ "sw_if_index"
+ ],
+ [
+ "u32",
+ "queue_id"
+ ],
+ [
+ "u32",
+ "worker_id"
+ ],
+ [
+ "u8",
+ "is_main"
+ ],
+ {
+ "crc": "0x4ef4377d"
+ }
+ ],
+ [
+ "sw_interface_set_rx_placement_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "sw_interface_rx_placement_dump",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u32",
+ "sw_if_index"
+ ],
+ {
+ "crc": "0x529cb13f"
+ }
+ ],
+ [
+ "sw_interface_rx_placement_details",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u32",
+ "sw_if_index"
+ ],
+ [
+ "u32",
+ "queue_id"
+ ],
+ [
+ "u32",
+ "worker_id"
+ ],
+ [
+ "u8",
+ "mode"
+ ],
+ {
+ "crc": "0x0e9e33f4"
+ }
+ ],
+ [
"interface_name_renumber",
[
"u16",
@@ -1221,15 +1373,21 @@
}
]
],
- "vl_api_version": "0x6a38a271",
+ "vl_api_version": "0x1ec8c073",
"unions": [],
"services": {
"create_subif": {
"reply": "create_subif_reply"
},
+ "sw_interface_set_ip_directed_broadcast": {
+ "reply": "sw_interface_set_ip_directed_broadcast_reply"
+ },
"delete_subif": {
"reply": "delete_subif_reply"
},
+ "sw_interface_get_mac_address": {
+ "reply": "sw_interface_get_mac_address_reply"
+ },
"sw_interface_tag_add_del": {
"reply": "sw_interface_tag_add_del_reply"
},
@@ -1240,6 +1398,9 @@
"reply": "sw_interface_details",
"stream": true
},
+ "sw_interface_set_rx_placement": {
+ "reply": "sw_interface_set_rx_placement_reply"
+ },
"sw_interface_add_del_address": {
"reply": "sw_interface_add_del_address_reply"
},
@@ -1252,8 +1413,8 @@
"create_loopback_instance": {
"reply": "create_loopback_instance_reply"
},
- "sw_interface_get_mac_address": {
- "reply": "sw_interface_get_mac_address_reply"
+ "sw_interface_set_mtu": {
+ "reply": "sw_interface_set_mtu_reply"
},
"want_interface_events": {
"reply": "want_interface_events_reply",
@@ -1273,11 +1434,12 @@
"sw_interface_set_mac_address": {
"reply": "sw_interface_set_mac_address_reply"
},
- "sw_interface_set_table": {
- "reply": "sw_interface_set_table_reply"
+ "sw_interface_set_unnumbered": {
+ "reply": "sw_interface_set_unnumbered_reply"
},
- "sw_interface_set_mtu": {
- "reply": "sw_interface_set_mtu_reply"
+ "sw_interface_rx_placement_dump": {
+ "reply": "sw_interface_rx_placement_details",
+ "stream": true
},
"sw_interface_set_flags": {
"reply": "sw_interface_set_flags_reply"
@@ -1291,8 +1453,8 @@
"create_vlan_subif": {
"reply": "create_vlan_subif_reply"
},
- "sw_interface_set_unnumbered": {
- "reply": "sw_interface_set_unnumbered_reply"
+ "sw_interface_set_table": {
+ "reply": "sw_interface_set_table_reply"
}
},
"enums": [],
@@ -1431,5 +1593,10 @@
"crc": "0x8bd65e2d"
}
]
- ]
+ ],
+ "aliases": {
+ "interface_index": {
+ "type": "u32"
+ }
+ }
}
diff --git a/examples/bin_api/interfaces/interfaces.ba.go b/examples/bin_api/interfaces/interfaces.ba.go
index 6ab79d3..68a8b44 100644
--- a/examples/bin_api/interfaces/interfaces.ba.go
+++ b/examples/bin_api/interfaces/interfaces.ba.go
@@ -5,9 +5,10 @@
Package interfaces is a generated from VPP binary API module 'interface'.
It contains following objects:
- 45 messages
+ 51 messages
3 types
- 22 services
+ 1 alias
+ 25 services
*/
package interfaces
@@ -21,22 +22,145 @@ var _ = api.RegisterMessage
var _ = struc.Pack
var _ = bytes.NewBuffer
+// Services represents VPP binary API services:
+//
+// "services": {
+// "create_subif": {
+// "reply": "create_subif_reply"
+// },
+// "sw_interface_set_ip_directed_broadcast": {
+// "reply": "sw_interface_set_ip_directed_broadcast_reply"
+// },
+// "delete_subif": {
+// "reply": "delete_subif_reply"
+// },
+// "sw_interface_get_mac_address": {
+// "reply": "sw_interface_get_mac_address_reply"
+// },
+// "sw_interface_tag_add_del": {
+// "reply": "sw_interface_tag_add_del_reply"
+// },
+// "collect_detailed_interface_stats": {
+// "reply": "collect_detailed_interface_stats_reply"
+// },
+// "sw_interface_dump": {
+// "reply": "sw_interface_details",
+// "stream": true
+// },
+// "sw_interface_set_rx_placement": {
+// "reply": "sw_interface_set_rx_placement_reply"
+// },
+// "sw_interface_add_del_address": {
+// "reply": "sw_interface_add_del_address_reply"
+// },
+// "sw_interface_get_table": {
+// "reply": "sw_interface_get_table_reply"
+// },
+// "interface_name_renumber": {
+// "reply": "interface_name_renumber_reply"
+// },
+// "create_loopback_instance": {
+// "reply": "create_loopback_instance_reply"
+// },
+// "sw_interface_set_mtu": {
+// "reply": "sw_interface_set_mtu_reply"
+// },
+// "want_interface_events": {
+// "reply": "want_interface_events_reply",
+// "events": [
+// "sw_interface_event"
+// ]
+// },
+// "create_loopback": {
+// "reply": "create_loopback_reply"
+// },
+// "sw_interface_clear_stats": {
+// "reply": "sw_interface_clear_stats_reply"
+// },
+// "hw_interface_set_mtu": {
+// "reply": "hw_interface_set_mtu_reply"
+// },
+// "sw_interface_set_mac_address": {
+// "reply": "sw_interface_set_mac_address_reply"
+// },
+// "sw_interface_set_unnumbered": {
+// "reply": "sw_interface_set_unnumbered_reply"
+// },
+// "sw_interface_rx_placement_dump": {
+// "reply": "sw_interface_rx_placement_details",
+// "stream": true
+// },
+// "sw_interface_set_flags": {
+// "reply": "sw_interface_set_flags_reply"
+// },
+// "delete_loopback": {
+// "reply": "delete_loopback_reply"
+// },
+// "sw_interface_set_rx_mode": {
+// "reply": "sw_interface_set_rx_mode_reply"
+// },
+// "create_vlan_subif": {
+// "reply": "create_vlan_subif_reply"
+// },
+// "sw_interface_set_table": {
+// "reply": "sw_interface_set_table_reply"
+// }
+// },
+//
+type Services interface {
+ DumpSwInterface(*SwInterfaceDump) ([]*SwInterfaceDetails, error)
+ DumpSwInterfaceRxPlacement(*SwInterfaceRxPlacementDump) ([]*SwInterfaceRxPlacementDetails, error)
+ CollectDetailedInterfaceStats(*CollectDetailedInterfaceStats) (*CollectDetailedInterfaceStatsReply, error)
+ CreateLoopback(*CreateLoopback) (*CreateLoopbackReply, error)
+ CreateLoopbackInstance(*CreateLoopbackInstance) (*CreateLoopbackInstanceReply, error)
+ CreateSubif(*CreateSubif) (*CreateSubifReply, error)
+ CreateVlanSubif(*CreateVlanSubif) (*CreateVlanSubifReply, error)
+ DeleteLoopback(*DeleteLoopback) (*DeleteLoopbackReply, error)
+ DeleteSubif(*DeleteSubif) (*DeleteSubifReply, error)
+ HwInterfaceSetMtu(*HwInterfaceSetMtu) (*HwInterfaceSetMtuReply, error)
+ InterfaceNameRenumber(*InterfaceNameRenumber) (*InterfaceNameRenumberReply, error)
+ SwInterfaceAddDelAddress(*SwInterfaceAddDelAddress) (*SwInterfaceAddDelAddressReply, error)
+ SwInterfaceClearStats(*SwInterfaceClearStats) (*SwInterfaceClearStatsReply, error)
+ SwInterfaceGetMacAddress(*SwInterfaceGetMacAddress) (*SwInterfaceGetMacAddressReply, error)
+ SwInterfaceGetTable(*SwInterfaceGetTable) (*SwInterfaceGetTableReply, error)
+ SwInterfaceSetFlags(*SwInterfaceSetFlags) (*SwInterfaceSetFlagsReply, error)
+ SwInterfaceSetIPDirectedBroadcast(*SwInterfaceSetIPDirectedBroadcast) (*SwInterfaceSetIPDirectedBroadcastReply, error)
+ SwInterfaceSetMacAddress(*SwInterfaceSetMacAddress) (*SwInterfaceSetMacAddressReply, error)
+ SwInterfaceSetMtu(*SwInterfaceSetMtu) (*SwInterfaceSetMtuReply, error)
+ SwInterfaceSetRxMode(*SwInterfaceSetRxMode) (*SwInterfaceSetRxModeReply, error)
+ SwInterfaceSetRxPlacement(*SwInterfaceSetRxPlacement) (*SwInterfaceSetRxPlacementReply, error)
+ SwInterfaceSetTable(*SwInterfaceSetTable) (*SwInterfaceSetTableReply, error)
+ SwInterfaceSetUnnumbered(*SwInterfaceSetUnnumbered) (*SwInterfaceSetUnnumberedReply, error)
+ SwInterfaceTagAddDel(*SwInterfaceTagAddDel) (*SwInterfaceTagAddDelReply, error)
+ WantInterfaceEvents(*WantInterfaceEvents) (*WantInterfaceEventsReply, error)
+}
+
+/* Aliases */
+
+// InterfaceIndex represents VPP binary API alias 'interface_index':
+//
+// "interface_index": {
+// "type": "u32"
+// }
+//
+type InterfaceIndex uint32
+
/* Types */
-// VlibCounter represents the VPP binary API type 'vlib_counter'.
-//
-// "vlib_counter",
-// [
-// "u64",
-// "packets"
-// ],
-// [
-// "u64",
-// "bytes"
-// ],
-// {
-// "crc": "0xce2325a2"
-// }
+// VlibCounter represents VPP binary API type 'vlib_counter':
+//
+// "vlib_counter",
+// [
+// "u64",
+// "packets"
+// ],
+// [
+// "u64",
+// "bytes"
+// ],
+// {
+// "crc": "0xce2325a2"
+// }
//
type VlibCounter struct {
Packets uint64
@@ -50,80 +174,80 @@ func (*VlibCounter) GetCrcString() string {
return "ce2325a2"
}
-// VnetCombinedCounter represents the VPP binary API type 'vnet_combined_counter'.
-//
-// "vnet_combined_counter",
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u64",
-// "rx_packets"
-// ],
-// [
-// "u64",
-// "rx_bytes"
-// ],
-// [
-// "u64",
-// "rx_unicast_packets"
-// ],
-// [
-// "u64",
-// "rx_unicast_bytes"
-// ],
-// [
-// "u64",
-// "rx_multicast_packets"
-// ],
-// [
-// "u64",
-// "rx_multicast_bytes"
-// ],
-// [
-// "u64",
-// "rx_broadcast_packets"
-// ],
-// [
-// "u64",
-// "rx_broadcast_bytes"
-// ],
-// [
-// "u64",
-// "tx_packets"
-// ],
-// [
-// "u64",
-// "tx_bytes"
-// ],
-// [
-// "u64",
-// "tx_unicast_packets"
-// ],
-// [
-// "u64",
-// "tx_unicast_bytes"
-// ],
-// [
-// "u64",
-// "tx_multicast_packets"
-// ],
-// [
-// "u64",
-// "tx_multicast_bytes"
-// ],
-// [
-// "u64",
-// "tx_broadcast_packets"
-// ],
-// [
-// "u64",
-// "tx_broadcast_bytes"
-// ],
-// {
-// "crc": "0x20905ca4"
-// }
+// VnetCombinedCounter represents VPP binary API type 'vnet_combined_counter':
+//
+// "vnet_combined_counter",
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u64",
+// "rx_packets"
+// ],
+// [
+// "u64",
+// "rx_bytes"
+// ],
+// [
+// "u64",
+// "rx_unicast_packets"
+// ],
+// [
+// "u64",
+// "rx_unicast_bytes"
+// ],
+// [
+// "u64",
+// "rx_multicast_packets"
+// ],
+// [
+// "u64",
+// "rx_multicast_bytes"
+// ],
+// [
+// "u64",
+// "rx_broadcast_packets"
+// ],
+// [
+// "u64",
+// "rx_broadcast_bytes"
+// ],
+// [
+// "u64",
+// "tx_packets"
+// ],
+// [
+// "u64",
+// "tx_bytes"
+// ],
+// [
+// "u64",
+// "tx_unicast_packets"
+// ],
+// [
+// "u64",
+// "tx_unicast_bytes"
+// ],
+// [
+// "u64",
+// "tx_multicast_packets"
+// ],
+// [
+// "u64",
+// "tx_multicast_bytes"
+// ],
+// [
+// "u64",
+// "tx_broadcast_packets"
+// ],
+// [
+// "u64",
+// "tx_broadcast_bytes"
+// ],
+// {
+// "crc": "0x20905ca4"
+// }
//
type VnetCombinedCounter struct {
SwIfIndex uint32
@@ -152,52 +276,52 @@ func (*VnetCombinedCounter) GetCrcString() string {
return "20905ca4"
}
-// VnetSimpleCounter represents the VPP binary API type 'vnet_simple_counter'.
-//
-// "vnet_simple_counter",
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u64",
-// "drop"
-// ],
-// [
-// "u64",
-// "punt"
-// ],
-// [
-// "u64",
-// "rx_ip4"
-// ],
-// [
-// "u64",
-// "rx_ip6"
-// ],
-// [
-// "u64",
-// "rx_no_buffer"
-// ],
-// [
-// "u64",
-// "rx_miss"
-// ],
-// [
-// "u64",
-// "rx_error"
-// ],
-// [
-// "u64",
-// "tx_error"
-// ],
-// [
-// "u64",
-// "rx_mpls"
-// ],
-// {
-// "crc": "0x8bd65e2d"
-// }
+// VnetSimpleCounter represents VPP binary API type 'vnet_simple_counter':
+//
+// "vnet_simple_counter",
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u64",
+// "drop"
+// ],
+// [
+// "u64",
+// "punt"
+// ],
+// [
+// "u64",
+// "rx_ip4"
+// ],
+// [
+// "u64",
+// "rx_ip6"
+// ],
+// [
+// "u64",
+// "rx_no_buffer"
+// ],
+// [
+// "u64",
+// "rx_miss"
+// ],
+// [
+// "u64",
+// "rx_error"
+// ],
+// [
+// "u64",
+// "tx_error"
+// ],
+// [
+// "u64",
+// "rx_mpls"
+// ],
+// {
+// "crc": "0x8bd65e2d"
+// }
//
type VnetSimpleCounter struct {
SwIfIndex uint32
@@ -221,32 +345,32 @@ func (*VnetSimpleCounter) GetCrcString() string {
/* Messages */
-// SwInterfaceSetFlags represents the VPP binary API message 'sw_interface_set_flags'.
-//
-// "sw_interface_set_flags",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "admin_up_down"
-// ],
-// {
-// "crc": "0x555485f5"
-// }
+// SwInterfaceSetFlags represents VPP binary API message 'sw_interface_set_flags':
+//
+// "sw_interface_set_flags",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "admin_up_down"
+// ],
+// {
+// "crc": "0x555485f5"
+// }
//
type SwInterfaceSetFlags struct {
SwIfIndex uint32
@@ -263,24 +387,24 @@ func (*SwInterfaceSetFlags) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceSetFlagsReply represents the VPP binary API message 'sw_interface_set_flags_reply'.
-//
-// "sw_interface_set_flags_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SwInterfaceSetFlagsReply represents VPP binary API message 'sw_interface_set_flags_reply':
+//
+// "sw_interface_set_flags_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SwInterfaceSetFlagsReply struct {
Retval int32
@@ -296,32 +420,32 @@ func (*SwInterfaceSetFlagsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// HwInterfaceSetMtu represents the VPP binary API message 'hw_interface_set_mtu'.
-//
-// "hw_interface_set_mtu",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u16",
-// "mtu"
-// ],
-// {
-// "crc": "0x132da1e7"
-// }
+// HwInterfaceSetMtu represents VPP binary API message 'hw_interface_set_mtu':
+//
+// "hw_interface_set_mtu",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u16",
+// "mtu"
+// ],
+// {
+// "crc": "0x132da1e7"
+// }
//
type HwInterfaceSetMtu struct {
SwIfIndex uint32
@@ -338,24 +462,24 @@ func (*HwInterfaceSetMtu) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// HwInterfaceSetMtuReply represents the VPP binary API message 'hw_interface_set_mtu_reply'.
-//
-// "hw_interface_set_mtu_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// HwInterfaceSetMtuReply represents VPP binary API message 'hw_interface_set_mtu_reply':
+//
+// "hw_interface_set_mtu_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type HwInterfaceSetMtuReply struct {
Retval int32
@@ -371,33 +495,33 @@ func (*HwInterfaceSetMtuReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceSetMtu represents the VPP binary API message 'sw_interface_set_mtu'.
-//
-// "sw_interface_set_mtu",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "mtu",
-// 4
-// ],
-// {
-// "crc": "0xd0008db8"
-// }
+// SwInterfaceSetMtu represents VPP binary API message 'sw_interface_set_mtu':
+//
+// "sw_interface_set_mtu",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "mtu",
+// 4
+// ],
+// {
+// "crc": "0xd0008db8"
+// }
//
type SwInterfaceSetMtu struct {
SwIfIndex uint32
@@ -414,24 +538,24 @@ func (*SwInterfaceSetMtu) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceSetMtuReply represents the VPP binary API message 'sw_interface_set_mtu_reply'.
-//
-// "sw_interface_set_mtu_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SwInterfaceSetMtuReply represents VPP binary API message 'sw_interface_set_mtu_reply':
+//
+// "sw_interface_set_mtu_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SwInterfaceSetMtuReply struct {
Retval int32
@@ -447,40 +571,115 @@ func (*SwInterfaceSetMtuReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceEvent represents the VPP binary API message 'sw_interface_event'.
-//
-// "sw_interface_event",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "admin_up_down"
-// ],
-// [
-// "u8",
-// "link_up_down"
-// ],
-// [
-// "u8",
-// "deleted"
-// ],
-// {
-// "crc": "0xbf9938e4"
-// }
+// SwInterfaceSetIPDirectedBroadcast represents VPP binary API message 'sw_interface_set_ip_directed_broadcast':
+//
+// "sw_interface_set_ip_directed_broadcast",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "enable"
+// ],
+// {
+// "crc": "0xa36fadc0"
+// }
+//
+type SwInterfaceSetIPDirectedBroadcast struct {
+ SwIfIndex uint32
+ Enable uint8
+}
+
+func (*SwInterfaceSetIPDirectedBroadcast) GetMessageName() string {
+ return "sw_interface_set_ip_directed_broadcast"
+}
+func (*SwInterfaceSetIPDirectedBroadcast) GetCrcString() string {
+ return "a36fadc0"
+}
+func (*SwInterfaceSetIPDirectedBroadcast) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceSetIPDirectedBroadcastReply represents VPP binary API message 'sw_interface_set_ip_directed_broadcast_reply':
+//
+// "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
+}
+
+// SwInterfaceEvent represents VPP binary API message 'sw_interface_event':
+//
+// "sw_interface_event",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "admin_up_down"
+// ],
+// [
+// "u8",
+// "link_up_down"
+// ],
+// [
+// "u8",
+// "deleted"
+// ],
+// {
+// "crc": "0xbf9938e4"
+// }
//
type SwInterfaceEvent struct {
PID uint32
@@ -500,32 +699,32 @@ func (*SwInterfaceEvent) GetMessageType() api.MessageType {
return api.EventMessage
}
-// WantInterfaceEvents represents the VPP binary API message 'want_interface_events'.
-//
-// "want_interface_events",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0x476f5a08"
-// }
+// WantInterfaceEvents represents VPP binary API message 'want_interface_events':
+//
+// "want_interface_events",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x476f5a08"
+// }
//
type WantInterfaceEvents struct {
EnableDisable uint32
@@ -542,24 +741,24 @@ func (*WantInterfaceEvents) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantInterfaceEventsReply represents the VPP binary API message 'want_interface_events_reply'.
-//
-// "want_interface_events_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantInterfaceEventsReply represents VPP binary API message 'want_interface_events_reply':
+//
+// "want_interface_events_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantInterfaceEventsReply struct {
Retval int32
@@ -575,150 +774,150 @@ func (*WantInterfaceEventsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceDetails represents the VPP binary API message 'sw_interface_details'.
-//
-// "sw_interface_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "sup_sw_if_index"
-// ],
-// [
-// "u32",
-// "l2_address_length"
-// ],
-// [
-// "u8",
-// "l2_address",
-// 8
-// ],
-// [
-// "u8",
-// "interface_name",
-// 64
-// ],
-// [
-// "u8",
-// "admin_up_down"
-// ],
-// [
-// "u8",
-// "link_up_down"
-// ],
-// [
-// "u8",
-// "link_duplex"
-// ],
-// [
-// "u8",
-// "link_speed"
-// ],
-// [
-// "u16",
-// "link_mtu"
-// ],
-// [
-// "u32",
-// "mtu",
-// 4
-// ],
-// [
-// "u32",
-// "sub_id"
-// ],
-// [
-// "u8",
-// "sub_dot1ad"
-// ],
-// [
-// "u8",
-// "sub_dot1ah"
-// ],
-// [
-// "u8",
-// "sub_number_of_tags"
-// ],
-// [
-// "u16",
-// "sub_outer_vlan_id"
-// ],
-// [
-// "u16",
-// "sub_inner_vlan_id"
-// ],
-// [
-// "u8",
-// "sub_exact_match"
-// ],
-// [
-// "u8",
-// "sub_default"
-// ],
-// [
-// "u8",
-// "sub_outer_vlan_id_any"
-// ],
-// [
-// "u8",
-// "sub_inner_vlan_id_any"
-// ],
-// [
-// "u32",
-// "vtr_op"
-// ],
-// [
-// "u32",
-// "vtr_push_dot1q"
-// ],
-// [
-// "u32",
-// "vtr_tag1"
-// ],
-// [
-// "u32",
-// "vtr_tag2"
-// ],
-// [
-// "u8",
-// "tag",
-// 64
-// ],
-// [
-// "u16",
-// "outer_tag"
-// ],
-// [
-// "u8",
-// "b_dmac",
-// 6
-// ],
-// [
-// "u8",
-// "b_smac",
-// 6
-// ],
-// [
-// "u16",
-// "b_vlanid"
-// ],
-// [
-// "u32",
-// "i_sid"
-// ],
-// {
-// "crc": "0x09b4b510"
-// }
+// SwInterfaceDetails represents VPP binary API message 'sw_interface_details':
+//
+// "sw_interface_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "sup_sw_if_index"
+// ],
+// [
+// "u32",
+// "l2_address_length"
+// ],
+// [
+// "u8",
+// "l2_address",
+// 8
+// ],
+// [
+// "u8",
+// "interface_name",
+// 64
+// ],
+// [
+// "u8",
+// "admin_up_down"
+// ],
+// [
+// "u8",
+// "link_up_down"
+// ],
+// [
+// "u8",
+// "link_duplex"
+// ],
+// [
+// "u32",
+// "link_speed"
+// ],
+// [
+// "u16",
+// "link_mtu"
+// ],
+// [
+// "u32",
+// "mtu",
+// 4
+// ],
+// [
+// "u32",
+// "sub_id"
+// ],
+// [
+// "u8",
+// "sub_dot1ad"
+// ],
+// [
+// "u8",
+// "sub_dot1ah"
+// ],
+// [
+// "u8",
+// "sub_number_of_tags"
+// ],
+// [
+// "u16",
+// "sub_outer_vlan_id"
+// ],
+// [
+// "u16",
+// "sub_inner_vlan_id"
+// ],
+// [
+// "u8",
+// "sub_exact_match"
+// ],
+// [
+// "u8",
+// "sub_default"
+// ],
+// [
+// "u8",
+// "sub_outer_vlan_id_any"
+// ],
+// [
+// "u8",
+// "sub_inner_vlan_id_any"
+// ],
+// [
+// "u32",
+// "vtr_op"
+// ],
+// [
+// "u32",
+// "vtr_push_dot1q"
+// ],
+// [
+// "u32",
+// "vtr_tag1"
+// ],
+// [
+// "u32",
+// "vtr_tag2"
+// ],
+// [
+// "u8",
+// "tag",
+// 64
+// ],
+// [
+// "u16",
+// "outer_tag"
+// ],
+// [
+// "u8",
+// "b_dmac",
+// 6
+// ],
+// [
+// "u8",
+// "b_smac",
+// 6
+// ],
+// [
+// "u16",
+// "b_vlanid"
+// ],
+// [
+// "u32",
+// "i_sid"
+// ],
+// {
+// "crc": "0xe4ee7eb6"
+// }
//
type SwInterfaceDetails struct {
SwIfIndex uint32
@@ -729,7 +928,7 @@ type SwInterfaceDetails struct {
AdminUpDown uint8
LinkUpDown uint8
LinkDuplex uint8
- LinkSpeed uint8
+ LinkSpeed uint32
LinkMtu uint16
Mtu []uint32 `struc:"[4]uint32"`
SubID uint32
@@ -758,39 +957,39 @@ func (*SwInterfaceDetails) GetMessageName() string {
return "sw_interface_details"
}
func (*SwInterfaceDetails) GetCrcString() string {
- return "09b4b510"
+ return "e4ee7eb6"
}
func (*SwInterfaceDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceDump represents the VPP binary API message 'sw_interface_dump'.
-//
-// "sw_interface_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "name_filter_valid"
-// ],
-// [
-// "u8",
-// "name_filter",
-// 49
-// ],
-// {
-// "crc": "0x63f5e3b7"
-// }
+// SwInterfaceDump represents VPP binary API message 'sw_interface_dump':
+//
+// "sw_interface_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "name_filter_valid"
+// ],
+// [
+// "u8",
+// "name_filter",
+// 49
+// ],
+// {
+// "crc": "0x63f5e3b7"
+// }
//
type SwInterfaceDump struct {
NameFilterValid uint8
@@ -807,49 +1006,49 @@ func (*SwInterfaceDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceAddDelAddress represents the VPP binary API message 'sw_interface_add_del_address'.
-//
-// "sw_interface_add_del_address",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u8",
-// "del_all"
-// ],
-// [
-// "u8",
-// "address_length"
-// ],
-// [
-// "u8",
-// "address",
-// 16
-// ],
-// {
-// "crc": "0x7b583179"
-// }
+// SwInterfaceAddDelAddress represents VPP binary API message 'sw_interface_add_del_address':
+//
+// "sw_interface_add_del_address",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u8",
+// "del_all"
+// ],
+// [
+// "u8",
+// "address_length"
+// ],
+// [
+// "u8",
+// "address",
+// 16
+// ],
+// {
+// "crc": "0x7b583179"
+// }
//
type SwInterfaceAddDelAddress struct {
SwIfIndex uint32
@@ -870,24 +1069,24 @@ func (*SwInterfaceAddDelAddress) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceAddDelAddressReply represents the VPP binary API message 'sw_interface_add_del_address_reply'.
-//
-// "sw_interface_add_del_address_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SwInterfaceAddDelAddressReply represents VPP binary API message 'sw_interface_add_del_address_reply':
+//
+// "sw_interface_add_del_address_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SwInterfaceAddDelAddressReply struct {
Retval int32
@@ -903,36 +1102,36 @@ func (*SwInterfaceAddDelAddressReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceSetTable represents the VPP binary API message 'sw_interface_set_table'.
-//
-// "sw_interface_set_table",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u32",
-// "vrf_id"
-// ],
-// {
-// "crc": "0xacb25d89"
-// }
+// SwInterfaceSetTable represents VPP binary API message 'sw_interface_set_table':
+//
+// "sw_interface_set_table",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u32",
+// "vrf_id"
+// ],
+// {
+// "crc": "0xacb25d89"
+// }
//
type SwInterfaceSetTable struct {
SwIfIndex uint32
@@ -950,24 +1149,24 @@ func (*SwInterfaceSetTable) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceSetTableReply represents the VPP binary API message 'sw_interface_set_table_reply'.
-//
-// "sw_interface_set_table_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SwInterfaceSetTableReply represents VPP binary API message 'sw_interface_set_table_reply':
+//
+// "sw_interface_set_table_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SwInterfaceSetTableReply struct {
Retval int32
@@ -983,32 +1182,32 @@ func (*SwInterfaceSetTableReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceGetTable represents the VPP binary API message 'sw_interface_get_table'.
-//
-// "sw_interface_get_table",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// {
-// "crc": "0x6b7bcd0a"
-// }
+// SwInterfaceGetTable represents VPP binary API message 'sw_interface_get_table':
+//
+// "sw_interface_get_table",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// {
+// "crc": "0x6b7bcd0a"
+// }
//
type SwInterfaceGetTable struct {
SwIfIndex uint32
@@ -1025,28 +1224,28 @@ func (*SwInterfaceGetTable) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceGetTableReply represents the VPP binary API message 'sw_interface_get_table_reply'.
-//
-// "sw_interface_get_table_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "vrf_id"
-// ],
-// {
-// "crc": "0xa6eb0109"
-// }
+// SwInterfaceGetTableReply represents VPP binary API message 'sw_interface_get_table_reply':
+//
+// "sw_interface_get_table_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "vrf_id"
+// ],
+// {
+// "crc": "0xa6eb0109"
+// }
//
type SwInterfaceGetTableReply struct {
Retval int32
@@ -1063,36 +1262,36 @@ func (*SwInterfaceGetTableReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceSetUnnumbered represents the VPP binary API message 'sw_interface_set_unnumbered'.
-//
-// "sw_interface_set_unnumbered",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "unnumbered_sw_if_index"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// {
-// "crc": "0xa2c1bbda"
-// }
+// SwInterfaceSetUnnumbered represents VPP binary API message 'sw_interface_set_unnumbered':
+//
+// "sw_interface_set_unnumbered",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "unnumbered_sw_if_index"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// {
+// "crc": "0xa2c1bbda"
+// }
//
type SwInterfaceSetUnnumbered struct {
SwIfIndex uint32
@@ -1110,24 +1309,24 @@ func (*SwInterfaceSetUnnumbered) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceSetUnnumberedReply represents the VPP binary API message 'sw_interface_set_unnumbered_reply'.
-//
-// "sw_interface_set_unnumbered_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SwInterfaceSetUnnumberedReply represents VPP binary API message 'sw_interface_set_unnumbered_reply':
+//
+// "sw_interface_set_unnumbered_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SwInterfaceSetUnnumberedReply struct {
Retval int32
@@ -1143,28 +1342,28 @@ func (*SwInterfaceSetUnnumberedReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceClearStats represents the VPP binary API message 'sw_interface_clear_stats'.
-//
-// "sw_interface_clear_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0x529cb13f"
-// }
+// SwInterfaceClearStats represents VPP binary API message 'sw_interface_clear_stats':
+//
+// "sw_interface_clear_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
//
type SwInterfaceClearStats struct {
SwIfIndex uint32
@@ -1180,24 +1379,24 @@ func (*SwInterfaceClearStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceClearStatsReply represents the VPP binary API message 'sw_interface_clear_stats_reply'.
-//
-// "sw_interface_clear_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SwInterfaceClearStatsReply represents VPP binary API message 'sw_interface_clear_stats_reply':
+//
+// "sw_interface_clear_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SwInterfaceClearStatsReply struct {
Retval int32
@@ -1213,37 +1412,37 @@ func (*SwInterfaceClearStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceTagAddDel represents the VPP binary API message 'sw_interface_tag_add_del'.
-//
-// "sw_interface_tag_add_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "tag",
-// 64
-// ],
-// {
-// "crc": "0x14cc636c"
-// }
+// SwInterfaceTagAddDel represents VPP binary API message 'sw_interface_tag_add_del':
+//
+// "sw_interface_tag_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "tag",
+// 64
+// ],
+// {
+// "crc": "0x14cc636c"
+// }
//
type SwInterfaceTagAddDel struct {
IsAdd uint8
@@ -1261,24 +1460,24 @@ func (*SwInterfaceTagAddDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceTagAddDelReply represents the VPP binary API message 'sw_interface_tag_add_del_reply'.
-//
-// "sw_interface_tag_add_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SwInterfaceTagAddDelReply represents VPP binary API message 'sw_interface_tag_add_del_reply':
+//
+// "sw_interface_tag_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SwInterfaceTagAddDelReply struct {
Retval int32
@@ -1294,33 +1493,33 @@ func (*SwInterfaceTagAddDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceSetMacAddress represents the VPP binary API message 'sw_interface_set_mac_address'.
-//
-// "sw_interface_set_mac_address",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "mac_address",
-// 6
-// ],
-// {
-// "crc": "0xeed5dfca"
-// }
+// SwInterfaceSetMacAddress represents VPP binary API message 'sw_interface_set_mac_address':
+//
+// "sw_interface_set_mac_address",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "mac_address",
+// 6
+// ],
+// {
+// "crc": "0xeed5dfca"
+// }
//
type SwInterfaceSetMacAddress struct {
SwIfIndex uint32
@@ -1337,24 +1536,24 @@ func (*SwInterfaceSetMacAddress) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceSetMacAddressReply represents the VPP binary API message 'sw_interface_set_mac_address_reply'.
-//
-// "sw_interface_set_mac_address_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SwInterfaceSetMacAddressReply represents VPP binary API message 'sw_interface_set_mac_address_reply':
+//
+// "sw_interface_set_mac_address_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SwInterfaceSetMacAddressReply struct {
Retval int32
@@ -1370,28 +1569,28 @@ func (*SwInterfaceSetMacAddressReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceGetMacAddress represents the VPP binary API message 'sw_interface_get_mac_address'.
-//
-// "sw_interface_get_mac_address",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0x529cb13f"
-// }
+// SwInterfaceGetMacAddress represents VPP binary API message 'sw_interface_get_mac_address':
+//
+// "sw_interface_get_mac_address",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
//
type SwInterfaceGetMacAddress struct {
SwIfIndex uint32
@@ -1407,29 +1606,29 @@ func (*SwInterfaceGetMacAddress) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceGetMacAddressReply represents the VPP binary API message 'sw_interface_get_mac_address_reply'.
-//
-// "sw_interface_get_mac_address_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u8",
-// "mac_address",
-// 6
-// ],
-// {
-// "crc": "0x8ea538d3"
-// }
+// SwInterfaceGetMacAddressReply represents VPP binary API message 'sw_interface_get_mac_address_reply':
+//
+// "sw_interface_get_mac_address_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u8",
+// "mac_address",
+// 6
+// ],
+// {
+// "crc": "0x8ea538d3"
+// }
//
type SwInterfaceGetMacAddressReply struct {
Retval int32
@@ -1446,40 +1645,40 @@ func (*SwInterfaceGetMacAddressReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceSetRxMode represents the VPP binary API message 'sw_interface_set_rx_mode'.
-//
-// "sw_interface_set_rx_mode",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "queue_id_valid"
-// ],
-// [
-// "u32",
-// "queue_id"
-// ],
-// [
-// "u8",
-// "mode"
-// ],
-// {
-// "crc": "0x2a1cc58c"
-// }
+// SwInterfaceSetRxMode represents VPP binary API message 'sw_interface_set_rx_mode':
+//
+// "sw_interface_set_rx_mode",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "queue_id_valid"
+// ],
+// [
+// "u32",
+// "queue_id"
+// ],
+// [
+// "u8",
+// "mode"
+// ],
+// {
+// "crc": "0x2a1cc58c"
+// }
//
type SwInterfaceSetRxMode struct {
SwIfIndex uint32
@@ -1498,24 +1697,24 @@ func (*SwInterfaceSetRxMode) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceSetRxModeReply represents the VPP binary API message 'sw_interface_set_rx_mode_reply'.
-//
-// "sw_interface_set_rx_mode_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SwInterfaceSetRxModeReply represents VPP binary API message 'sw_interface_set_rx_mode_reply':
+//
+// "sw_interface_set_rx_mode_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SwInterfaceSetRxModeReply struct {
Retval int32
@@ -1531,32 +1730,206 @@ func (*SwInterfaceSetRxModeReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// InterfaceNameRenumber represents the VPP binary API message 'interface_name_renumber'.
-//
-// "interface_name_renumber",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "new_show_dev_instance"
-// ],
-// {
-// "crc": "0x39194269"
-// }
+// SwInterfaceSetRxPlacement represents VPP binary API message 'sw_interface_set_rx_placement':
+//
+// "sw_interface_set_rx_placement",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "queue_id"
+// ],
+// [
+// "u32",
+// "worker_id"
+// ],
+// [
+// "u8",
+// "is_main"
+// ],
+// {
+// "crc": "0x4ef4377d"
+// }
+//
+type SwInterfaceSetRxPlacement struct {
+ SwIfIndex uint32
+ QueueID uint32
+ WorkerID uint32
+ IsMain uint8
+}
+
+func (*SwInterfaceSetRxPlacement) GetMessageName() string {
+ return "sw_interface_set_rx_placement"
+}
+func (*SwInterfaceSetRxPlacement) GetCrcString() string {
+ return "4ef4377d"
+}
+func (*SwInterfaceSetRxPlacement) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceSetRxPlacementReply represents VPP binary API message 'sw_interface_set_rx_placement_reply':
+//
+// "sw_interface_set_rx_placement_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+type SwInterfaceSetRxPlacementReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceSetRxPlacementReply) GetMessageName() string {
+ return "sw_interface_set_rx_placement_reply"
+}
+func (*SwInterfaceSetRxPlacementReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceSetRxPlacementReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceRxPlacementDump represents VPP binary API message 'sw_interface_rx_placement_dump':
+//
+// "sw_interface_rx_placement_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
+//
+type SwInterfaceRxPlacementDump struct {
+ SwIfIndex uint32
+}
+
+func (*SwInterfaceRxPlacementDump) GetMessageName() string {
+ return "sw_interface_rx_placement_dump"
+}
+func (*SwInterfaceRxPlacementDump) GetCrcString() string {
+ return "529cb13f"
+}
+func (*SwInterfaceRxPlacementDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceRxPlacementDetails represents VPP binary API message 'sw_interface_rx_placement_details':
+//
+// "sw_interface_rx_placement_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "queue_id"
+// ],
+// [
+// "u32",
+// "worker_id"
+// ],
+// [
+// "u8",
+// "mode"
+// ],
+// {
+// "crc": "0x0e9e33f4"
+// }
+//
+type SwInterfaceRxPlacementDetails struct {
+ SwIfIndex uint32
+ QueueID uint32
+ WorkerID uint32
+ Mode uint8
+}
+
+func (*SwInterfaceRxPlacementDetails) GetMessageName() string {
+ return "sw_interface_rx_placement_details"
+}
+func (*SwInterfaceRxPlacementDetails) GetCrcString() string {
+ return "0e9e33f4"
+}
+func (*SwInterfaceRxPlacementDetails) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// InterfaceNameRenumber represents VPP binary API message 'interface_name_renumber':
+//
+// "interface_name_renumber",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "new_show_dev_instance"
+// ],
+// {
+// "crc": "0x39194269"
+// }
//
type InterfaceNameRenumber struct {
SwIfIndex uint32
@@ -1573,24 +1946,24 @@ func (*InterfaceNameRenumber) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// InterfaceNameRenumberReply represents the VPP binary API message 'interface_name_renumber_reply'.
-//
-// "interface_name_renumber_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// InterfaceNameRenumberReply represents VPP binary API message 'interface_name_renumber_reply':
+//
+// "interface_name_renumber_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type InterfaceNameRenumberReply struct {
Retval int32
@@ -1606,72 +1979,72 @@ func (*InterfaceNameRenumberReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// CreateSubif represents the VPP binary API message 'create_subif'.
-//
-// "create_subif",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "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"
-// ],
-// {
-// "crc": "0x86cfe408"
-// }
+// CreateSubif represents VPP binary API message 'create_subif':
+//
+// "create_subif",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "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"
+// ],
+// {
+// "crc": "0x86cfe408"
+// }
//
type CreateSubif struct {
SwIfIndex uint32
@@ -1698,28 +2071,28 @@ func (*CreateSubif) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// CreateSubifReply represents the VPP binary API message 'create_subif_reply'.
-//
-// "create_subif_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0xfda5941f"
-// }
+// CreateSubifReply represents VPP binary API message 'create_subif_reply':
+//
+// "create_subif_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
//
type CreateSubifReply struct {
Retval int32
@@ -1736,32 +2109,32 @@ func (*CreateSubifReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// CreateVlanSubif represents the VPP binary API message 'create_vlan_subif'.
-//
-// "create_vlan_subif",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "vlan_id"
-// ],
-// {
-// "crc": "0x70cadeda"
-// }
+// CreateVlanSubif represents VPP binary API message 'create_vlan_subif':
+//
+// "create_vlan_subif",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "vlan_id"
+// ],
+// {
+// "crc": "0x70cadeda"
+// }
//
type CreateVlanSubif struct {
SwIfIndex uint32
@@ -1778,28 +2151,28 @@ func (*CreateVlanSubif) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// CreateVlanSubifReply represents the VPP binary API message 'create_vlan_subif_reply'.
-//
-// "create_vlan_subif_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0xfda5941f"
-// }
+// CreateVlanSubifReply represents VPP binary API message 'create_vlan_subif_reply':
+//
+// "create_vlan_subif_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
//
type CreateVlanSubifReply struct {
Retval int32
@@ -1816,28 +2189,28 @@ func (*CreateVlanSubifReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// DeleteSubif represents the VPP binary API message 'delete_subif'.
-//
-// "delete_subif",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0x529cb13f"
-// }
+// DeleteSubif represents VPP binary API message 'delete_subif':
+//
+// "delete_subif",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
//
type DeleteSubif struct {
SwIfIndex uint32
@@ -1853,24 +2226,24 @@ func (*DeleteSubif) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// DeleteSubifReply represents the VPP binary API message 'delete_subif_reply'.
-//
-// "delete_subif_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// DeleteSubifReply represents VPP binary API message 'delete_subif_reply':
+//
+// "delete_subif_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type DeleteSubifReply struct {
Retval int32
@@ -1886,29 +2259,29 @@ func (*DeleteSubifReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// CreateLoopback represents the VPP binary API message 'create_loopback'.
-//
-// "create_loopback",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "mac_address",
-// 6
-// ],
-// {
-// "crc": "0x3b54129c"
-// }
+// CreateLoopback represents VPP binary API message 'create_loopback':
+//
+// "create_loopback",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "mac_address",
+// 6
+// ],
+// {
+// "crc": "0x3b54129c"
+// }
//
type CreateLoopback struct {
MacAddress []byte `struc:"[6]byte"`
@@ -1924,28 +2297,28 @@ func (*CreateLoopback) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// CreateLoopbackReply represents the VPP binary API message 'create_loopback_reply'.
-//
-// "create_loopback_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0xfda5941f"
-// }
+// CreateLoopbackReply represents VPP binary API message 'create_loopback_reply':
+//
+// "create_loopback_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
//
type CreateLoopbackReply struct {
Retval int32
@@ -1962,37 +2335,37 @@ func (*CreateLoopbackReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// CreateLoopbackInstance represents the VPP binary API message 'create_loopback_instance'.
-//
-// "create_loopback_instance",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "mac_address",
-// 6
-// ],
-// [
-// "u8",
-// "is_specified"
-// ],
-// [
-// "u32",
-// "user_instance"
-// ],
-// {
-// "crc": "0x7bbd53b6"
-// }
+// CreateLoopbackInstance represents VPP binary API message 'create_loopback_instance':
+//
+// "create_loopback_instance",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "mac_address",
+// 6
+// ],
+// [
+// "u8",
+// "is_specified"
+// ],
+// [
+// "u32",
+// "user_instance"
+// ],
+// {
+// "crc": "0x7bbd53b6"
+// }
//
type CreateLoopbackInstance struct {
MacAddress []byte `struc:"[6]byte"`
@@ -2010,28 +2383,28 @@ func (*CreateLoopbackInstance) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// CreateLoopbackInstanceReply represents the VPP binary API message 'create_loopback_instance_reply'.
-//
-// "create_loopback_instance_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0xfda5941f"
-// }
+// CreateLoopbackInstanceReply represents VPP binary API message 'create_loopback_instance_reply':
+//
+// "create_loopback_instance_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
//
type CreateLoopbackInstanceReply struct {
Retval int32
@@ -2048,28 +2421,28 @@ func (*CreateLoopbackInstanceReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// DeleteLoopback represents the VPP binary API message 'delete_loopback'.
-//
-// "delete_loopback",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0x529cb13f"
-// }
+// DeleteLoopback represents VPP binary API message 'delete_loopback':
+//
+// "delete_loopback",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
//
type DeleteLoopback struct {
SwIfIndex uint32
@@ -2085,24 +2458,24 @@ func (*DeleteLoopback) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// DeleteLoopbackReply represents the VPP binary API message 'delete_loopback_reply'.
-//
-// "delete_loopback_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// DeleteLoopbackReply represents VPP binary API message 'delete_loopback_reply':
+//
+// "delete_loopback_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type DeleteLoopbackReply struct {
Retval int32
@@ -2118,32 +2491,32 @@ func (*DeleteLoopbackReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// CollectDetailedInterfaceStats represents the VPP binary API message 'collect_detailed_interface_stats'.
-//
-// "collect_detailed_interface_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "enable_disable"
-// ],
-// {
-// "crc": "0x69d24598"
-// }
+// CollectDetailedInterfaceStats represents VPP binary API message 'collect_detailed_interface_stats':
+//
+// "collect_detailed_interface_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "enable_disable"
+// ],
+// {
+// "crc": "0x69d24598"
+// }
//
type CollectDetailedInterfaceStats struct {
SwIfIndex uint32
@@ -2160,24 +2533,24 @@ func (*CollectDetailedInterfaceStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// CollectDetailedInterfaceStatsReply represents the VPP binary API message 'collect_detailed_interface_stats_reply'.
-//
-// "collect_detailed_interface_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// CollectDetailedInterfaceStatsReply represents VPP binary API message 'collect_detailed_interface_stats_reply':
+//
+// "collect_detailed_interface_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type CollectDetailedInterfaceStatsReply struct {
Retval int32
@@ -2193,33 +2566,6 @@ func (*CollectDetailedInterfaceStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-/* Services */
-
-type Services interface {
- DumpSwInterface(*SwInterfaceDump) (*SwInterfaceDetails, error)
- CollectDetailedInterfaceStats(*CollectDetailedInterfaceStats) (*CollectDetailedInterfaceStatsReply, error)
- CreateLoopback(*CreateLoopback) (*CreateLoopbackReply, error)
- CreateLoopbackInstance(*CreateLoopbackInstance) (*CreateLoopbackInstanceReply, error)
- CreateSubif(*CreateSubif) (*CreateSubifReply, error)
- CreateVlanSubif(*CreateVlanSubif) (*CreateVlanSubifReply, error)
- DeleteLoopback(*DeleteLoopback) (*DeleteLoopbackReply, error)
- DeleteSubif(*DeleteSubif) (*DeleteSubifReply, error)
- HwInterfaceSetMtu(*HwInterfaceSetMtu) (*HwInterfaceSetMtuReply, error)
- InterfaceNameRenumber(*InterfaceNameRenumber) (*InterfaceNameRenumberReply, error)
- SwInterfaceAddDelAddress(*SwInterfaceAddDelAddress) (*SwInterfaceAddDelAddressReply, error)
- SwInterfaceClearStats(*SwInterfaceClearStats) (*SwInterfaceClearStatsReply, error)
- SwInterfaceGetMacAddress(*SwInterfaceGetMacAddress) (*SwInterfaceGetMacAddressReply, error)
- SwInterfaceGetTable(*SwInterfaceGetTable) (*SwInterfaceGetTableReply, error)
- SwInterfaceSetFlags(*SwInterfaceSetFlags) (*SwInterfaceSetFlagsReply, error)
- SwInterfaceSetMacAddress(*SwInterfaceSetMacAddress) (*SwInterfaceSetMacAddressReply, error)
- SwInterfaceSetMtu(*SwInterfaceSetMtu) (*SwInterfaceSetMtuReply, error)
- SwInterfaceSetRxMode(*SwInterfaceSetRxMode) (*SwInterfaceSetRxModeReply, error)
- SwInterfaceSetTable(*SwInterfaceSetTable) (*SwInterfaceSetTableReply, error)
- SwInterfaceSetUnnumbered(*SwInterfaceSetUnnumbered) (*SwInterfaceSetUnnumberedReply, error)
- SwInterfaceTagAddDel(*SwInterfaceTagAddDel) (*SwInterfaceTagAddDelReply, error)
- WantInterfaceEvents(*WantInterfaceEvents) (*WantInterfaceEventsReply, error)
-}
-
func init() {
api.RegisterMessage((*SwInterfaceSetFlags)(nil), "interface.SwInterfaceSetFlags")
api.RegisterMessage((*SwInterfaceSetFlagsReply)(nil), "interface.SwInterfaceSetFlagsReply")
@@ -2227,6 +2573,8 @@ func init() {
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")
@@ -2250,6 +2598,10 @@ func init() {
api.RegisterMessage((*SwInterfaceGetMacAddressReply)(nil), "interface.SwInterfaceGetMacAddressReply")
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")
diff --git a/examples/bin_api/ip.api.json b/examples/bin_api/ip.api.json
index d9b4277..3983288 100644
--- a/examples/bin_api/ip.api.json
+++ b/examples/bin_api/ip.api.json
@@ -104,13 +104,17 @@
"count"
],
[
+ "u32",
+ "stats_index"
+ ],
+ [
"vl_api_fib_path_t",
"path",
0,
"count"
],
{
- "crc": "0x99dfd73b"
+ "crc": "0xf6a2fab3"
}
],
[
@@ -164,13 +168,17 @@
"count"
],
[
+ "u32",
+ "stats_index"
+ ],
+ [
"vl_api_fib_path_t",
"path",
0,
"count"
],
{
- "crc": "0xabd0060e"
+ "crc": "0xef11e94d"
}
],
[
@@ -214,6 +222,10 @@
"sw_if_index"
],
[
+ "u32",
+ "stats_index"
+ ],
+ [
"u8",
"is_static"
],
@@ -232,7 +244,7 @@
16
],
{
- "crc": "0x85e32a72"
+ "crc": "0xc7001770"
}
],
[
@@ -297,8 +309,12 @@
"i32",
"retval"
],
+ [
+ "u32",
+ "stats_index"
+ ],
{
- "crc": "0xe8d4e804"
+ "crc": "0x1992deab"
}
],
[
@@ -347,8 +363,12 @@
"u8",
"reverse"
],
+ [
+ "u8",
+ "symmetric"
+ ],
{
- "crc": "0x32ebf737"
+ "crc": "0xa9084bfb"
}
],
[
@@ -599,10 +619,6 @@
],
[
"u32",
- "client_index"
- ],
- [
- "u32",
"context"
],
[
@@ -615,7 +631,7 @@
16
],
{
- "crc": "0xd73bf1ab"
+ "crc": "0x6a47c974"
}
],
[
@@ -741,51 +757,6 @@
}
],
[
- "sw_interface_ip6_set_link_local_address",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- [
- "u32",
- "sw_if_index"
- ],
- [
- "u8",
- "address",
- 16
- ],
- {
- "crc": "0xd73bf1ab"
- }
- ],
- [
- "sw_interface_ip6_set_link_local_address_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
"ip_add_del_route",
[
"u16",
@@ -929,8 +900,12 @@
"i32",
"retval"
],
+ [
+ "u32",
+ "stats_index"
+ ],
{
- "crc": "0xe8d4e804"
+ "crc": "0x1992deab"
}
],
[
@@ -1024,8 +999,12 @@
"i32",
"retval"
],
+ [
+ "u32",
+ "stats_index"
+ ],
{
- "crc": "0xe8d4e804"
+ "crc": "0x1992deab"
}
],
[
@@ -1087,13 +1066,17 @@
"count"
],
[
+ "u32",
+ "stats_index"
+ ],
+ [
"vl_api_fib_path_t",
"path",
0,
"count"
],
{
- "crc": "0x5e530d5e"
+ "crc": "0x21329a12"
}
],
[
@@ -1164,10 +1147,6 @@
],
[
"u32",
- "client_index"
- ],
- [
- "u32",
"context"
],
[
@@ -1188,7 +1167,7 @@
"is_ipv6"
],
{
- "crc": "0xbc7442f2"
+ "crc": "0x9bc25966"
}
],
[
@@ -1225,10 +1204,6 @@
],
[
"u32",
- "client_index"
- ],
- [
- "u32",
"context"
],
[
@@ -1240,7 +1215,7 @@
"ip_sw_if_index"
],
{
- "crc": "0x05b717ca"
+ "crc": "0xae694cf4"
}
],
[
@@ -1273,18 +1248,18 @@
],
[
"u32",
- "sw_if_index"
+ "context"
],
[
"u32",
- "context"
+ "sw_if_index"
],
[
"u8",
"is_ipv6"
],
{
- "crc": "0x452ffc5a"
+ "crc": "0x8bb37ec4"
}
],
[
@@ -1335,10 +1310,6 @@
],
[
"u32",
- "client_index"
- ],
- [
- "u32",
"context"
],
[
@@ -1373,7 +1344,7 @@
256
],
{
- "crc": "0x791bbeab"
+ "crc": "0x3f5f03f5"
}
],
[
@@ -1439,32 +1410,63 @@
"context"
],
[
+ "vl_api_punt_redirect_t",
+ "punt"
+ ],
+ [
+ "u8",
+ "is_add"
+ ],
+ {
+ "crc": "0xa953495b"
+ }
+ ],
+ [
+ "ip_punt_redirect_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
"u32",
- "rx_sw_if_index"
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "ip_punt_redirect_dump",
+ [
+ "u16",
+ "_vl_msg_id"
],
[
"u32",
- "tx_sw_if_index"
+ "client_index"
],
[
- "u8",
- "is_add"
+ "u32",
+ "context"
],
[
- "u8",
- "is_ip6"
+ "u32",
+ "sw_if_index"
],
[
"u8",
- "nh",
- 16
+ "is_ipv6"
],
{
- "crc": "0x996b6603"
+ "crc": "0x6b7bcd0a"
}
],
[
- "ip_punt_redirect_reply",
+ "ip_punt_redirect_details",
[
"u16",
"_vl_msg_id"
@@ -1474,11 +1476,11 @@
"context"
],
[
- "i32",
- "retval"
+ "vl_api_punt_redirect_t",
+ "punt"
],
{
- "crc": "0xe8d4e804"
+ "crc": "0xa47f70da"
}
],
[
@@ -1539,6 +1541,46 @@
}
],
[
+ "ip_container_proxy_dump",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ {
+ "crc": "0x51077d14"
+ }
+ ],
+ [
+ "ip_container_proxy_details",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u32",
+ "sw_if_index"
+ ],
+ [
+ "vl_api_prefix_t",
+ "prefix"
+ ],
+ {
+ "crc": "0xd528df63"
+ }
+ ],
+ [
"ip_source_and_port_range_check_add_del",
[
"u16",
@@ -1670,6 +1712,54 @@
}
],
[
+ "ip_source_check_interface_add_del",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u8",
+ "is_add"
+ ],
+ [
+ "u8",
+ "loose"
+ ],
+ [
+ "u32",
+ "sw_if_index"
+ ],
+ {
+ "crc": "0x0a60152a"
+ }
+ ],
+ [
+ "ip_source_check_interface_add_del_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
"ip_scan_neighbor_enable_disable",
[
"u16",
@@ -2477,10 +2567,6 @@
],
[
"u32",
- "client_index"
- ],
- [
- "u32",
"context"
],
[
@@ -2504,7 +2590,7 @@
"is_ip6"
],
{
- "crc": "0xd746fc57"
+ "crc": "0x1f90afd1"
}
],
[
@@ -2556,7 +2642,7 @@
}
]
],
- "vl_api_version": "0xff691c00",
+ "vl_api_version": "0x1eba4868",
"unions": [
[
"address_union",
@@ -2574,6 +2660,10 @@
]
],
"services": {
+ "ip_container_proxy_dump": {
+ "reply": "ip_container_proxy_details",
+ "stream": true
+ },
"ip_address_dump": {
"reply": "ip_address_details",
"stream": true
@@ -2612,6 +2702,9 @@
"ip6nd_send_router_solicitation": {
"reply": "ip6nd_send_router_solicitation_reply"
},
+ "ip_source_check_interface_add_del": {
+ "reply": "ip_source_check_interface_add_del_reply"
+ },
"ip_table_add_del": {
"reply": "ip_table_add_del_reply"
},
@@ -2645,13 +2738,14 @@
"ip_source_and_port_range_check_interface_add_del": {
"reply": "ip_source_and_port_range_check_interface_add_del_reply"
},
- "sw_interface_ip6_set_link_local_address": {
- "reply": "sw_interface_ip6_set_link_local_address_reply"
- },
"mfib_signal_dump": {
"reply": "mfib_signal_details",
"stream": true
},
+ "ip_punt_redirect_dump": {
+ "reply": "ip_punt_redirect_details",
+ "stream": true
+ },
"ip_container_proxy_add_del": {
"reply": "ip_container_proxy_add_del_reply"
},
@@ -2740,53 +2834,81 @@
],
"types": [
[
- "ip4_address",
+ "address",
[
- "u8",
- "address",
- 4
+ "vl_api_address_family_t",
+ "af"
+ ],
+ [
+ "vl_api_address_union_t",
+ "un"
],
{
- "crc": "0xfc4baa28"
+ "crc": "0x09f11671"
}
],
[
- "ip6_address",
+ "prefix",
+ [
+ "vl_api_address_t",
+ "address"
+ ],
[
"u8",
- "address",
- 16
+ "address_length"
],
{
- "crc": "0xad99ccc2"
+ "crc": "0x0403aebc"
}
],
[
- "address",
+ "mprefix",
[
"vl_api_address_family_t",
"af"
],
[
+ "u16",
+ "grp_address_length"
+ ],
+ [
"vl_api_address_union_t",
- "un"
+ "grp_address"
+ ],
+ [
+ "vl_api_address_union_t",
+ "src_address"
],
{
- "crc": "0x09f11671"
+ "crc": "0x1c4cba05"
}
],
[
- "prefix",
+ "ip6_prefix",
[
- "vl_api_address_t",
- "address"
+ "vl_api_ip6_address_t",
+ "prefix"
],
[
"u8",
- "address_length"
+ "len"
],
{
- "crc": "0x0403aebc"
+ "crc": "0x779fd64f"
+ }
+ ],
+ [
+ "ip4_prefix",
+ [
+ "vl_api_ip4_address_t",
+ "prefix"
+ ],
+ [
+ "u8",
+ "len"
+ ],
+ {
+ "crc": "0xea8dc11d"
}
],
[
@@ -2900,6 +3022,35 @@
}
],
[
+ "mac_address",
+ [
+ "u8",
+ "bytes",
+ 6
+ ],
+ {
+ "crc": "0xefdbdddc"
+ }
+ ],
+ [
+ "punt_redirect",
+ [
+ "u32",
+ "rx_sw_if_index"
+ ],
+ [
+ "u32",
+ "tx_sw_if_index"
+ ],
+ [
+ "vl_api_address_t",
+ "nh"
+ ],
+ {
+ "crc": "0x3e7a801f"
+ }
+ ],
+ [
"ip6_ra_prefix_info",
[
"u8",
@@ -2946,5 +3097,15 @@
"crc": "0x6d88106e"
}
]
- ]
+ ],
+ "aliases": {
+ "ip6_address": {
+ "length": 16,
+ "type": "u8"
+ },
+ "ip4_address": {
+ "length": 4,
+ "type": "u8"
+ }
+ }
}
diff --git a/examples/bin_api/ip/ip.ba.go b/examples/bin_api/ip/ip.ba.go
index abbddb9..b4615b5 100644
--- a/examples/bin_api/ip/ip.ba.go
+++ b/examples/bin_api/ip/ip.ba.go
@@ -5,11 +5,12 @@
Package ip is a generated from VPP binary API module 'ip'.
It contains following objects:
- 87 messages
- 8 types
+ 91 messages
+ 11 types
+ 2 aliases
1 enum
1 union
- 42 services
+ 44 services
*/
package ip
@@ -23,22 +24,229 @@ var _ = api.RegisterMessage
var _ = struc.Pack
var _ = bytes.NewBuffer
+// Services represents VPP binary API services:
+//
+// "services": {
+// "ip_container_proxy_dump": {
+// "reply": "ip_container_proxy_details",
+// "stream": true
+// },
+// "ip_address_dump": {
+// "reply": "ip_address_details",
+// "stream": true
+// },
+// "ip_source_and_port_range_check_add_del": {
+// "reply": "ip_source_and_port_range_check_add_del_reply"
+// },
+// "reset_fib": {
+// "reply": "reset_fib_reply"
+// },
+// "ip_probe_neighbor": {
+// "reply": "ip_probe_neighbor_reply"
+// },
+// "want_ip6_nd_events": {
+// "reply": "want_ip6_nd_events_reply",
+// "events": [
+// "ip6_nd_event"
+// ]
+// },
+// "ip_punt_police": {
+// "reply": "ip_punt_police_reply"
+// },
+// "ip6nd_proxy_add_del": {
+// "reply": "ip6nd_proxy_add_del_reply"
+// },
+// "set_arp_neighbor_limit": {
+// "reply": "set_arp_neighbor_limit_reply"
+// },
+// "ip_reassembly_enable_disable": {
+// "reply": "ip_reassembly_enable_disable_reply"
+// },
+// "ip6_fib_dump": {
+// "reply": "ip6_fib_details",
+// "stream": true
+// },
+// "ip6nd_send_router_solicitation": {
+// "reply": "ip6nd_send_router_solicitation_reply"
+// },
+// "ip_source_check_interface_add_del": {
+// "reply": "ip_source_check_interface_add_del_reply"
+// },
+// "ip_table_add_del": {
+// "reply": "ip_table_add_del_reply"
+// },
+// "ip_neighbor_dump": {
+// "reply": "ip_neighbor_details",
+// "stream": true
+// },
+// "ip_punt_redirect": {
+// "reply": "ip_punt_redirect_reply"
+// },
+// "sw_interface_ip6nd_ra_prefix": {
+// "reply": "sw_interface_ip6nd_ra_prefix_reply"
+// },
+// "ip_reassembly_set": {
+// "reply": "ip_reassembly_set_reply"
+// },
+// "ip6_mfib_dump": {
+// "reply": "ip6_mfib_details",
+// "stream": true
+// },
+// "sw_interface_ip6nd_ra_config": {
+// "reply": "sw_interface_ip6nd_ra_config_reply"
+// },
+// "proxy_arp_dump": {
+// "reply": "proxy_arp_details",
+// "stream": true
+// },
+// "sw_interface_ip6_enable_disable": {
+// "reply": "sw_interface_ip6_enable_disable_reply"
+// },
+// "ip_source_and_port_range_check_interface_add_del": {
+// "reply": "ip_source_and_port_range_check_interface_add_del_reply"
+// },
+// "mfib_signal_dump": {
+// "reply": "mfib_signal_details",
+// "stream": true
+// },
+// "ip_punt_redirect_dump": {
+// "reply": "ip_punt_redirect_details",
+// "stream": true
+// },
+// "ip_container_proxy_add_del": {
+// "reply": "ip_container_proxy_add_del_reply"
+// },
+// "ip_mfib_dump": {
+// "reply": "ip_mfib_details",
+// "stream": true
+// },
+// "ip_unnumbered_dump": {
+// "reply": "ip_unnumbered_details",
+// "stream": true
+// },
+// "ip_dump": {
+// "reply": "ip_details",
+// "stream": true
+// },
+// "ip_neighbor_add_del": {
+// "reply": "ip_neighbor_add_del_reply"
+// },
+// "proxy_arp_intfc_enable_disable": {
+// "reply": "proxy_arp_intfc_enable_disable_reply"
+// },
+// "proxy_arp_add_del": {
+// "reply": "proxy_arp_add_del_reply"
+// },
+// "ip_add_del_route": {
+// "reply": "ip_add_del_route_reply"
+// },
+// "ip6nd_proxy_dump": {
+// "reply": "ip6nd_proxy_details",
+// "stream": true
+// },
+// "want_ip6_ra_events": {
+// "reply": "want_ip6_ra_events_reply",
+// "events": [
+// "ip6_ra_event"
+// ]
+// },
+// "ip_fib_dump": {
+// "reply": "ip_fib_details",
+// "stream": true
+// },
+// "ip_scan_neighbor_enable_disable": {
+// "reply": "ip_scan_neighbor_enable_disable_reply"
+// },
+// "ioam_enable": {
+// "reply": "ioam_enable_reply"
+// },
+// "ip_mroute_add_del": {
+// "reply": "ip_mroute_add_del_reply"
+// },
+// "proxy_arp_intfc_dump": {
+// "reply": "proxy_arp_intfc_details",
+// "stream": true
+// },
+// "want_ip4_arp_events": {
+// "reply": "want_ip4_arp_events_reply",
+// "events": [
+// "ip4_arp_event"
+// ]
+// },
+// "ip_reassembly_get": {
+// "reply": "ip_reassembly_get_reply"
+// },
+// "set_ip_flow_hash": {
+// "reply": "set_ip_flow_hash_reply"
+// },
+// "ioam_disable": {
+// "reply": "ioam_disable_reply"
+// }
+// },
+//
+type Services interface {
+ DumpIP6Fib(*IP6FibDump) ([]*IP6FibDetails, error)
+ DumpIP6Mfib(*IP6MfibDump) ([]*IP6MfibDetails, error)
+ DumpIP6ndProxy(*IP6ndProxyDump) ([]*IP6ndProxyDetails, error)
+ DumpIPAddress(*IPAddressDump) ([]*IPAddressDetails, error)
+ DumpIPContainerProxy(*IPContainerProxyDump) ([]*IPContainerProxyDetails, error)
+ DumpIP(*IPDump) ([]*IPDetails, error)
+ DumpIPFib(*IPFibDump) ([]*IPFibDetails, error)
+ DumpIPMfib(*IPMfibDump) ([]*IPMfibDetails, error)
+ DumpIPNeighbor(*IPNeighborDump) ([]*IPNeighborDetails, error)
+ DumpIPPuntRedirect(*IPPuntRedirectDump) ([]*IPPuntRedirectDetails, error)
+ DumpIPUnnumbered(*IPUnnumberedDump) ([]*IPUnnumberedDetails, error)
+ DumpMfibSignal(*MfibSignalDump) ([]*MfibSignalDetails, error)
+ DumpProxyArp(*ProxyArpDump) ([]*ProxyArpDetails, error)
+ DumpProxyArpIntfc(*ProxyArpIntfcDump) ([]*ProxyArpIntfcDetails, error)
+ IoamDisable(*IoamDisable) (*IoamDisableReply, error)
+ IoamEnable(*IoamEnable) (*IoamEnableReply, error)
+ IP6ndProxyAddDel(*IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error)
+ IP6ndSendRouterSolicitation(*IP6ndSendRouterSolicitation) (*IP6ndSendRouterSolicitationReply, error)
+ IPAddDelRoute(*IPAddDelRoute) (*IPAddDelRouteReply, error)
+ IPContainerProxyAddDel(*IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error)
+ IPMrouteAddDel(*IPMrouteAddDel) (*IPMrouteAddDelReply, error)
+ IPNeighborAddDel(*IPNeighborAddDel) (*IPNeighborAddDelReply, error)
+ IPProbeNeighbor(*IPProbeNeighbor) (*IPProbeNeighborReply, error)
+ IPPuntPolice(*IPPuntPolice) (*IPPuntPoliceReply, error)
+ IPPuntRedirect(*IPPuntRedirect) (*IPPuntRedirectReply, error)
+ IPReassemblyEnableDisable(*IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error)
+ IPReassemblyGet(*IPReassemblyGet) (*IPReassemblyGetReply, error)
+ IPReassemblySet(*IPReassemblySet) (*IPReassemblySetReply, error)
+ IPScanNeighborEnableDisable(*IPScanNeighborEnableDisable) (*IPScanNeighborEnableDisableReply, error)
+ IPSourceAndPortRangeCheckAddDel(*IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error)
+ IPSourceAndPortRangeCheckInterfaceAddDel(*IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error)
+ IPSourceCheckInterfaceAddDel(*IPSourceCheckInterfaceAddDel) (*IPSourceCheckInterfaceAddDelReply, error)
+ IPTableAddDel(*IPTableAddDel) (*IPTableAddDelReply, error)
+ ProxyArpAddDel(*ProxyArpAddDel) (*ProxyArpAddDelReply, error)
+ ProxyArpIntfcEnableDisable(*ProxyArpIntfcEnableDisable) (*ProxyArpIntfcEnableDisableReply, error)
+ ResetFib(*ResetFib) (*ResetFibReply, error)
+ SetArpNeighborLimit(*SetArpNeighborLimit) (*SetArpNeighborLimitReply, error)
+ SetIPFlowHash(*SetIPFlowHash) (*SetIPFlowHashReply, error)
+ SwInterfaceIP6EnableDisable(*SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error)
+ SwInterfaceIP6ndRaConfig(*SwInterfaceIP6ndRaConfig) (*SwInterfaceIP6ndRaConfigReply, error)
+ SwInterfaceIP6ndRaPrefix(*SwInterfaceIP6ndRaPrefix) (*SwInterfaceIP6ndRaPrefixReply, error)
+ WantIP4ArpEvents(*WantIP4ArpEvents) (*WantIP4ArpEventsReply, error)
+ WantIP6NdEvents(*WantIP6NdEvents) (*WantIP6NdEventsReply, error)
+ WantIP6RaEvents(*WantIP6RaEvents) (*WantIP6RaEventsReply, error)
+}
+
/* Enums */
-// AddressFamily represents the VPP binary API enum 'address_family'.
-//
-// "address_family",
-// [
-// "ADDRESS_IP4",
-// 0
-// ],
-// [
-// "ADDRESS_IP6",
-// 1
-// ],
-// {
-// "enumtype": "u32"
-// }
+// AddressFamily represents VPP binary API enum 'address_family':
+//
+// "address_family",
+// [
+// "ADDRESS_IP4",
+// 0
+// ],
+// [
+// "ADDRESS_IP6",
+// 1
+// ],
+// {
+// "enumtype": "u32"
+// }
//
type AddressFamily uint32
@@ -47,68 +255,32 @@ const (
ADDRESS_IP6 AddressFamily = 1
)
-/* Types */
+/* Aliases */
-// IP4Address represents the VPP binary API type 'ip4_address'.
+// IP4Address represents VPP binary API alias 'ip4_address':
//
-// "ip4_address",
-// [
-// "u8",
-// "address",
-// 4
-// ],
-// {
-// "crc": "0xfc4baa28"
-// }
+// "ip4_address": {
+// "length": 4,
+// "type": "u8"
+// }
//
-type IP4Address struct {
- Address []byte `struc:"[4]byte"`
-}
+type IP4Address [4]uint8
-func (*IP4Address) GetTypeName() string {
- return "ip4_address"
-}
-func (*IP4Address) GetCrcString() string {
- return "fc4baa28"
-}
-
-// IP6Address represents the VPP binary API type 'ip6_address'.
+// IP6Address represents VPP binary API alias 'ip6_address':
//
-// "ip6_address",
-// [
-// "u8",
-// "address",
-// 16
-// ],
-// {
-// "crc": "0xad99ccc2"
-// }
+// "ip6_address": {
+// "length": 16,
+// "type": "u8"
+// },
//
-type IP6Address struct {
- Address []byte `struc:"[16]byte"`
-}
+type IP6Address [16]uint8
-func (*IP6Address) GetTypeName() string {
- return "ip6_address"
-}
-func (*IP6Address) GetCrcString() string {
- return "ad99ccc2"
-}
+/* Types */
-// Address represents the VPP binary API type 'address'.
+// Address represents VPP binary API type 'address':
//
-// "address",
-// [
-// "vl_api_address_family_t",
-// "af"
-// ],
-// [
-// "vl_api_address_union_t",
-// "un"
-// ],
-// {
-// "crc": "0x09f11671"
-// }
+// "address",
+// 4
//
type Address struct {
Af AddressFamily
@@ -122,20 +294,20 @@ func (*Address) GetCrcString() string {
return "09f11671"
}
-// Prefix represents the VPP binary API type 'prefix'.
+// Prefix represents VPP binary API type 'prefix':
//
-// "prefix",
-// [
-// "vl_api_address_t",
-// "address"
-// ],
-// [
-// "u8",
-// "address_length"
-// ],
-// {
-// "crc": "0x0403aebc"
-// }
+// "prefix",
+// [
+// "vl_api_address_t",
+// "address"
+// ],
+// [
+// "u8",
+// "address_length"
+// ],
+// {
+// "crc": "0x0403aebc"
+// }
//
type Prefix struct {
Address Address
@@ -149,28 +321,119 @@ func (*Prefix) GetCrcString() string {
return "0403aebc"
}
-// FibMplsLabel represents the VPP binary API type 'fib_mpls_label'.
-//
-// "fib_mpls_label",
-// [
-// "u8",
-// "is_uniform"
-// ],
-// [
-// "u32",
-// "label"
-// ],
-// [
-// "u8",
-// "ttl"
-// ],
-// [
-// "u8",
-// "exp"
-// ],
-// {
-// "crc": "0xc93bf35c"
-// }
+// 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",
+// [
+// "u8",
+// "is_uniform"
+// ],
+// [
+// "u32",
+// "label"
+// ],
+// [
+// "u8",
+// "ttl"
+// ],
+// [
+// "u8",
+// "exp"
+// ],
+// {
+// "crc": "0xc93bf35c"
+// }
//
type FibMplsLabel struct {
IsUniform uint8
@@ -186,94 +449,94 @@ func (*FibMplsLabel) GetCrcString() string {
return "c93bf35c"
}
-// FibPath represents the VPP binary API type 'fib_path'.
-//
-// "fib_path",
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "table_id"
-// ],
-// [
-// "u8",
-// "weight"
-// ],
-// [
-// "u8",
-// "preference"
-// ],
-// [
-// "u8",
-// "is_local"
-// ],
-// [
-// "u8",
-// "is_drop"
-// ],
-// [
-// "u8",
-// "is_udp_encap"
-// ],
-// [
-// "u8",
-// "is_unreach"
-// ],
-// [
-// "u8",
-// "is_prohibit"
-// ],
-// [
-// "u8",
-// "is_resolve_host"
-// ],
-// [
-// "u8",
-// "is_resolve_attached"
-// ],
-// [
-// "u8",
-// "is_dvr"
-// ],
-// [
-// "u8",
-// "is_source_lookup"
-// ],
-// [
-// "u8",
-// "afi"
-// ],
-// [
-// "u8",
-// "next_hop",
-// 16
-// ],
-// [
-// "u32",
-// "next_hop_id"
-// ],
-// [
-// "u32",
-// "rpf_id"
-// ],
-// [
-// "u32",
-// "via_label"
-// ],
-// [
-// "u8",
-// "n_labels"
-// ],
-// [
-// "vl_api_fib_mpls_label_t",
-// "label_stack",
-// 16
-// ],
-// {
-// "crc": "0xabe483ef"
-// }
+// FibPath represents VPP binary API type 'fib_path':
+//
+// "fib_path",
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "table_id"
+// ],
+// [
+// "u8",
+// "weight"
+// ],
+// [
+// "u8",
+// "preference"
+// ],
+// [
+// "u8",
+// "is_local"
+// ],
+// [
+// "u8",
+// "is_drop"
+// ],
+// [
+// "u8",
+// "is_udp_encap"
+// ],
+// [
+// "u8",
+// "is_unreach"
+// ],
+// [
+// "u8",
+// "is_prohibit"
+// ],
+// [
+// "u8",
+// "is_resolve_host"
+// ],
+// [
+// "u8",
+// "is_resolve_attached"
+// ],
+// [
+// "u8",
+// "is_dvr"
+// ],
+// [
+// "u8",
+// "is_source_lookup"
+// ],
+// [
+// "u8",
+// "afi"
+// ],
+// [
+// "u8",
+// "next_hop",
+// 16
+// ],
+// [
+// "u32",
+// "next_hop_id"
+// ],
+// [
+// "u32",
+// "rpf_id"
+// ],
+// [
+// "u32",
+// "via_label"
+// ],
+// [
+// "u8",
+// "n_labels"
+// ],
+// [
+// "vl_api_fib_mpls_label_t",
+// "label_stack",
+// 16
+// ],
+// {
+// "crc": "0xabe483ef"
+// }
//
type FibPath struct {
SwIfIndex uint32
@@ -305,33 +568,81 @@ func (*FibPath) GetCrcString() string {
return "abe483ef"
}
-// IP6RaPrefixInfo represents the VPP binary API type 'ip6_ra_prefix_info'.
-//
-// "ip6_ra_prefix_info",
-// [
-// "u8",
-// "dst_address",
-// 16
-// ],
-// [
-// "u8",
-// "dst_address_length"
-// ],
-// [
-// "u8",
-// "flags"
-// ],
-// [
-// "u32",
-// "valid_time"
-// ],
-// [
-// "u32",
-// "preferred_time"
-// ],
-// {
-// "crc": "0x83d7c6e5"
-// }
+// MacAddress represents VPP binary API type 'mac_address':
+//
+// "mac_address",
+// 6
+//
+type MacAddress struct {
+ Bytes []byte `struc:"[6]byte"`
+}
+
+func (*MacAddress) GetTypeName() string {
+ return "mac_address"
+}
+func (*MacAddress) GetCrcString() string {
+ return "efdbdddc"
+}
+
+// PuntRedirect represents VPP binary API type 'punt_redirect':
+//
+// "punt_redirect",
+// [
+// "u32",
+// "rx_sw_if_index"
+// ],
+// [
+// "u32",
+// "tx_sw_if_index"
+// ],
+// [
+// "vl_api_address_t",
+// "nh"
+// ],
+// {
+// "crc": "0x3e7a801f"
+// }
+//
+type PuntRedirect struct {
+ RxSwIfIndex uint32
+ TxSwIfIndex uint32
+ Nh Address
+}
+
+func (*PuntRedirect) GetTypeName() string {
+ return "punt_redirect"
+}
+func (*PuntRedirect) GetCrcString() string {
+ return "3e7a801f"
+}
+
+// IP6RaPrefixInfo represents VPP binary API type 'ip6_ra_prefix_info':
+//
+// "ip6_ra_prefix_info",
+// [
+// "u8",
+// "dst_address",
+// 16
+// ],
+// [
+// "u8",
+// "dst_address_length"
+// ],
+// [
+// "u8",
+// "flags"
+// ],
+// [
+// "u32",
+// "valid_time"
+// ],
+// [
+// "u32",
+// "preferred_time"
+// ],
+// {
+// "crc": "0x83d7c6e5"
+// }
//
type IP6RaPrefixInfo struct {
DstAddress []byte `struc:"[16]byte"`
@@ -348,26 +659,26 @@ func (*IP6RaPrefixInfo) GetCrcString() string {
return "83d7c6e5"
}
-// ProxyArp represents the VPP binary API type 'proxy_arp'.
-//
-// "proxy_arp",
-// [
-// "u32",
-// "vrf_id"
-// ],
-// [
-// "u8",
-// "low_address",
-// 4
-// ],
-// [
-// "u8",
-// "hi_address",
-// 4
-// ],
-// {
-// "crc": "0x6d88106e"
-// }
+// ProxyArp represents VPP binary API type 'proxy_arp':
+//
+// "proxy_arp",
+// [
+// "u32",
+// "vrf_id"
+// ],
+// [
+// "u8",
+// "low_address",
+// 4
+// ],
+// [
+// "u8",
+// "hi_address",
+// 4
+// ],
+// {
+// "crc": "0x6d88106e"
+// }
//
type ProxyArp struct {
VrfID uint32
@@ -384,20 +695,20 @@ func (*ProxyArp) GetCrcString() string {
/* Unions */
-// AddressUnion represents the VPP binary API union 'address_union'.
-//
-// "address_union",
-// [
-// "vl_api_ip4_address_t",
-// "ip4"
-// ],
-// [
-// "vl_api_ip6_address_t",
-// "ip6"
-// ],
-// {
-// "crc": "0xd68a2fb4"
-// }
+// AddressUnion represents VPP binary API union 'address_union':
+//
+// "address_union",
+// [
+// "vl_api_ip4_address_t",
+// "ip4"
+// ],
+// [
+// "vl_api_ip6_address_t",
+// "ip6"
+// ],
+// {
+// "crc": "0xd68a2fb4"
+// }
//
type AddressUnion struct {
Union_data [16]byte
@@ -438,41 +749,41 @@ func (u *AddressUnion) GetIP6() (a IP6Address) {
/* Messages */
-// IPTableAddDel represents the VPP binary API message 'ip_table_add_del'.
-//
-// "ip_table_add_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "table_id"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u8",
-// "name",
-// 64
-// ],
-// {
-// "crc": "0x0240c89d"
-// }
+// IPTableAddDel represents VPP binary API message 'ip_table_add_del':
+//
+// "ip_table_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "table_id"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u8",
+// "name",
+// 64
+// ],
+// {
+// "crc": "0x0240c89d"
+// }
//
type IPTableAddDel struct {
TableID uint32
@@ -491,24 +802,24 @@ func (*IPTableAddDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPTableAddDelReply represents the VPP binary API message 'ip_table_add_del_reply'.
-//
-// "ip_table_add_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPTableAddDelReply represents VPP binary API message 'ip_table_add_del_reply':
+//
+// "ip_table_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IPTableAddDelReply struct {
Retval int32
@@ -524,24 +835,24 @@ func (*IPTableAddDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPFibDump represents the VPP binary API message 'ip_fib_dump'.
-//
-// "ip_fib_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// 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{}
@@ -555,48 +866,52 @@ func (*IPFibDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPFibDetails represents the VPP binary API message 'ip_fib_details'.
-//
-// "ip_fib_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "table_id"
-// ],
-// [
-// "u8",
-// "table_name",
-// 64
-// ],
-// [
-// "u8",
-// "address_length"
-// ],
-// [
-// "u8",
-// "address",
-// 4
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_fib_path_t",
-// "path",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x99dfd73b"
-// }
+// IPFibDetails represents VPP binary API message 'ip_fib_details':
+//
+// "ip_fib_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "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": "0xf6a2fab3"
+// }
//
type IPFibDetails struct {
TableID uint32
@@ -604,6 +919,7 @@ type IPFibDetails struct {
AddressLength uint8
Address []byte `struc:"[4]byte"`
Count uint32 `struc:"sizeof=Path"`
+ StatsIndex uint32
Path []FibPath
}
@@ -611,30 +927,30 @@ func (*IPFibDetails) GetMessageName() string {
return "ip_fib_details"
}
func (*IPFibDetails) GetCrcString() string {
- return "99dfd73b"
+ return "f6a2fab3"
}
func (*IPFibDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IP6FibDump represents the VPP binary API message 'ip6_fib_dump'.
-//
-// "ip6_fib_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// 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{}
@@ -648,48 +964,52 @@ func (*IP6FibDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IP6FibDetails represents the VPP binary API message 'ip6_fib_details'.
-//
-// "ip6_fib_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "table_id"
-// ],
-// [
-// "u8",
-// "table_name",
-// 64
-// ],
-// [
-// "u8",
-// "address_length"
-// ],
-// [
-// "u8",
-// "address",
-// 16
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_fib_path_t",
-// "path",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0xabd0060e"
-// }
+// IP6FibDetails represents VPP binary API message 'ip6_fib_details':
+//
+// "ip6_fib_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "table_id"
+// ],
+// [
+// "u8",
+// "table_name",
+// 64
+// ],
+// [
+// "u8",
+// "address_length"
+// ],
+// [
+// "u8",
+// "address",
+// 16
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "u32",
+// "stats_index"
+// ],
+// [
+// "vl_api_fib_path_t",
+// "path",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xef11e94d"
+// }
//
type IP6FibDetails struct {
TableID uint32
@@ -697,6 +1017,7 @@ type IP6FibDetails struct {
AddressLength uint8
Address []byte `struc:"[16]byte"`
Count uint32 `struc:"sizeof=Path"`
+ StatsIndex uint32
Path []FibPath
}
@@ -704,38 +1025,38 @@ func (*IP6FibDetails) GetMessageName() string {
return "ip6_fib_details"
}
func (*IP6FibDetails) GetCrcString() string {
- return "abd0060e"
+ return "ef11e94d"
}
func (*IP6FibDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPNeighborDump represents the VPP binary API message 'ip_neighbor_dump'.
-//
-// "ip_neighbor_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// {
-// "crc": "0x6b7bcd0a"
-// }
+// IPNeighborDump represents VPP binary API message 'ip_neighbor_dump':
+//
+// "ip_neighbor_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// {
+// "crc": "0x6b7bcd0a"
+// }
//
type IPNeighborDump struct {
SwIfIndex uint32
@@ -752,45 +1073,50 @@ func (*IPNeighborDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPNeighborDetails represents the VPP binary API message 'ip_neighbor_details'.
-//
-// "ip_neighbor_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "is_static"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u8",
-// "mac_address",
-// 6
-// ],
-// [
-// "u8",
-// "ip_address",
-// 16
-// ],
-// {
-// "crc": "0x85e32a72"
-// }
+// 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"`
@@ -801,60 +1127,60 @@ func (*IPNeighborDetails) GetMessageName() string {
return "ip_neighbor_details"
}
func (*IPNeighborDetails) GetCrcString() string {
- return "85e32a72"
+ return "c7001770"
}
func (*IPNeighborDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPNeighborAddDel represents the VPP binary API message 'ip_neighbor_add_del'.
-//
-// "ip_neighbor_add_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u8",
-// "is_static"
-// ],
-// [
-// "u8",
-// "is_no_adj_fib"
-// ],
-// [
-// "u8",
-// "mac_address",
-// 6
-// ],
-// [
-// "u8",
-// "dst_address",
-// 16
-// ],
-// {
-// "crc": "0x4711eb25"
-// }
+// IPNeighborAddDel represents VPP binary API message 'ip_neighbor_add_del':
+//
+// "ip_neighbor_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u8",
+// "is_static"
+// ],
+// [
+// "u8",
+// "is_no_adj_fib"
+// ],
+// [
+// "u8",
+// "mac_address",
+// 6
+// ],
+// [
+// "u8",
+// "dst_address",
+// 16
+// ],
+// {
+// "crc": "0x4711eb25"
+// }
//
type IPNeighborAddDel struct {
SwIfIndex uint32
@@ -876,129 +1202,139 @@ func (*IPNeighborAddDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPNeighborAddDelReply represents the VPP binary API message 'ip_neighbor_add_del_reply'.
-//
-// "ip_neighbor_add_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPNeighborAddDelReply represents VPP binary API message 'ip_neighbor_add_del_reply':
+//
+// "ip_neighbor_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "stats_index"
+// ],
+// {
+// "crc": "0x1992deab"
+// }
//
type IPNeighborAddDelReply struct {
- Retval int32
+ Retval int32
+ StatsIndex uint32
}
func (*IPNeighborAddDelReply) GetMessageName() string {
return "ip_neighbor_add_del_reply"
}
func (*IPNeighborAddDelReply) GetCrcString() string {
- return "e8d4e804"
+ return "1992deab"
}
func (*IPNeighborAddDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SetIPFlowHash represents the VPP binary API message 'set_ip_flow_hash'.
-//
-// "set_ip_flow_hash",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "vrf_id"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u8",
-// "src"
-// ],
-// [
-// "u8",
-// "dst"
-// ],
-// [
-// "u8",
-// "sport"
-// ],
-// [
-// "u8",
-// "dport"
-// ],
-// [
-// "u8",
-// "proto"
-// ],
-// [
-// "u8",
-// "reverse"
-// ],
-// {
-// "crc": "0x32ebf737"
-// }
+// SetIPFlowHash represents VPP binary API message 'set_ip_flow_hash':
+//
+// "set_ip_flow_hash",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "vrf_id"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u8",
+// "src"
+// ],
+// [
+// "u8",
+// "dst"
+// ],
+// [
+// "u8",
+// "sport"
+// ],
+// [
+// "u8",
+// "dport"
+// ],
+// [
+// "u8",
+// "proto"
+// ],
+// [
+// "u8",
+// "reverse"
+// ],
+// [
+// "u8",
+// "symmetric"
+// ],
+// {
+// "crc": "0xa9084bfb"
+// }
//
type SetIPFlowHash struct {
- VrfID uint32
- IsIPv6 uint8
- Src uint8
- Dst uint8
- Sport uint8
- Dport uint8
- Proto uint8
- Reverse uint8
+ VrfID uint32
+ IsIPv6 uint8
+ Src uint8
+ Dst uint8
+ Sport uint8
+ Dport uint8
+ Proto uint8
+ Reverse uint8
+ Symmetric uint8
}
func (*SetIPFlowHash) GetMessageName() string {
return "set_ip_flow_hash"
}
func (*SetIPFlowHash) GetCrcString() string {
- return "32ebf737"
+ return "a9084bfb"
}
func (*SetIPFlowHash) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SetIPFlowHashReply represents the VPP binary API message 'set_ip_flow_hash_reply'.
-//
-// "set_ip_flow_hash_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SetIPFlowHashReply represents VPP binary API message 'set_ip_flow_hash_reply':
+//
+// "set_ip_flow_hash_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SetIPFlowHashReply struct {
Retval int32
@@ -1014,80 +1350,80 @@ func (*SetIPFlowHashReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceIP6ndRaConfig represents the VPP binary API message 'sw_interface_ip6nd_ra_config'.
-//
-// "sw_interface_ip6nd_ra_config",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "suppress"
-// ],
-// [
-// "u8",
-// "managed"
-// ],
-// [
-// "u8",
-// "other"
-// ],
-// [
-// "u8",
-// "ll_option"
-// ],
-// [
-// "u8",
-// "send_unicast"
-// ],
-// [
-// "u8",
-// "cease"
-// ],
-// [
-// "u8",
-// "is_no"
-// ],
-// [
-// "u8",
-// "default_router"
-// ],
-// [
-// "u32",
-// "max_interval"
-// ],
-// [
-// "u32",
-// "min_interval"
-// ],
-// [
-// "u32",
-// "lifetime"
-// ],
-// [
-// "u32",
-// "initial_count"
-// ],
-// [
-// "u32",
-// "initial_interval"
-// ],
-// {
-// "crc": "0xc3f02daa"
-// }
+// SwInterfaceIP6ndRaConfig represents VPP binary API message 'sw_interface_ip6nd_ra_config':
+//
+// "sw_interface_ip6nd_ra_config",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "suppress"
+// ],
+// [
+// "u8",
+// "managed"
+// ],
+// [
+// "u8",
+// "other"
+// ],
+// [
+// "u8",
+// "ll_option"
+// ],
+// [
+// "u8",
+// "send_unicast"
+// ],
+// [
+// "u8",
+// "cease"
+// ],
+// [
+// "u8",
+// "is_no"
+// ],
+// [
+// "u8",
+// "default_router"
+// ],
+// [
+// "u32",
+// "max_interval"
+// ],
+// [
+// "u32",
+// "min_interval"
+// ],
+// [
+// "u32",
+// "lifetime"
+// ],
+// [
+// "u32",
+// "initial_count"
+// ],
+// [
+// "u32",
+// "initial_interval"
+// ],
+// {
+// "crc": "0xc3f02daa"
+// }
//
type SwInterfaceIP6ndRaConfig struct {
SwIfIndex uint32
@@ -1116,24 +1452,24 @@ func (*SwInterfaceIP6ndRaConfig) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceIP6ndRaConfigReply represents the VPP binary API message 'sw_interface_ip6nd_ra_config_reply'.
-//
-// "sw_interface_ip6nd_ra_config_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SwInterfaceIP6ndRaConfigReply represents VPP binary API message 'sw_interface_ip6nd_ra_config_reply':
+//
+// "sw_interface_ip6nd_ra_config_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SwInterfaceIP6ndRaConfigReply struct {
Retval int32
@@ -1149,69 +1485,69 @@ func (*SwInterfaceIP6ndRaConfigReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceIP6ndRaPrefix represents the VPP binary API message 'sw_interface_ip6nd_ra_prefix'.
-//
-// "sw_interface_ip6nd_ra_prefix",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "address",
-// 16
-// ],
-// [
-// "u8",
-// "address_length"
-// ],
-// [
-// "u8",
-// "use_default"
-// ],
-// [
-// "u8",
-// "no_advertise"
-// ],
-// [
-// "u8",
-// "off_link"
-// ],
-// [
-// "u8",
-// "no_autoconfig"
-// ],
-// [
-// "u8",
-// "no_onlink"
-// ],
-// [
-// "u8",
-// "is_no"
-// ],
-// [
-// "u32",
-// "val_lifetime"
-// ],
-// [
-// "u32",
-// "pref_lifetime"
-// ],
-// {
-// "crc": "0xca763c9a"
-// }
+// SwInterfaceIP6ndRaPrefix represents VPP binary API message 'sw_interface_ip6nd_ra_prefix':
+//
+// "sw_interface_ip6nd_ra_prefix",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "address",
+// 16
+// ],
+// [
+// "u8",
+// "address_length"
+// ],
+// [
+// "u8",
+// "use_default"
+// ],
+// [
+// "u8",
+// "no_advertise"
+// ],
+// [
+// "u8",
+// "off_link"
+// ],
+// [
+// "u8",
+// "no_autoconfig"
+// ],
+// [
+// "u8",
+// "no_onlink"
+// ],
+// [
+// "u8",
+// "is_no"
+// ],
+// [
+// "u32",
+// "val_lifetime"
+// ],
+// [
+// "u32",
+// "pref_lifetime"
+// ],
+// {
+// "crc": "0xca763c9a"
+// }
//
type SwInterfaceIP6ndRaPrefix struct {
SwIfIndex uint32
@@ -1237,24 +1573,24 @@ func (*SwInterfaceIP6ndRaPrefix) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceIP6ndRaPrefixReply represents the VPP binary API message 'sw_interface_ip6nd_ra_prefix_reply'.
-//
-// "sw_interface_ip6nd_ra_prefix_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SwInterfaceIP6ndRaPrefixReply represents VPP binary API message 'sw_interface_ip6nd_ra_prefix_reply':
+//
+// "sw_interface_ip6nd_ra_prefix_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SwInterfaceIP6ndRaPrefixReply struct {
Retval int32
@@ -1270,37 +1606,37 @@ func (*SwInterfaceIP6ndRaPrefixReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IP6ndProxyAddDel represents the VPP binary API message 'ip6nd_proxy_add_del'.
-//
-// "ip6nd_proxy_add_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "is_del"
-// ],
-// [
-// "u8",
-// "address",
-// 16
-// ],
-// {
-// "crc": "0xd95f0fa0"
-// }
+// IP6ndProxyAddDel represents VPP binary API message 'ip6nd_proxy_add_del':
+//
+// "ip6nd_proxy_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "is_del"
+// ],
+// [
+// "u8",
+// "address",
+// 16
+// ],
+// {
+// "crc": "0xd95f0fa0"
+// }
//
type IP6ndProxyAddDel struct {
SwIfIndex uint32
@@ -1318,24 +1654,24 @@ func (*IP6ndProxyAddDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IP6ndProxyAddDelReply represents the VPP binary API message 'ip6nd_proxy_add_del_reply'.
-//
-// "ip6nd_proxy_add_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IP6ndProxyAddDelReply represents VPP binary API message 'ip6nd_proxy_add_del_reply':
+//
+// "ip6nd_proxy_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IP6ndProxyAddDelReply struct {
Retval int32
@@ -1351,33 +1687,29 @@ func (*IP6ndProxyAddDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IP6ndProxyDetails represents the VPP binary API message 'ip6nd_proxy_details'.
-//
-// "ip6nd_proxy_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "address",
-// 16
-// ],
-// {
-// "crc": "0xd73bf1ab"
-// }
+// IP6ndProxyDetails represents VPP binary API message 'ip6nd_proxy_details':
+//
+// "ip6nd_proxy_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "address",
+// 16
+// ],
+// {
+// "crc": "0x6a47c974"
+// }
//
type IP6ndProxyDetails struct {
SwIfIndex uint32
@@ -1388,30 +1720,30 @@ func (*IP6ndProxyDetails) GetMessageName() string {
return "ip6nd_proxy_details"
}
func (*IP6ndProxyDetails) GetCrcString() string {
- return "d73bf1ab"
+ return "6a47c974"
}
func (*IP6ndProxyDetails) GetMessageType() api.MessageType {
- return api.RequestMessage
+ return api.ReplyMessage
}
-// IP6ndProxyDump represents the VPP binary API message 'ip6nd_proxy_dump'.
-//
-// "ip6nd_proxy_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// IP6ndProxyDump represents VPP binary API message 'ip6nd_proxy_dump':
+//
+// "ip6nd_proxy_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type IP6ndProxyDump struct{}
@@ -1425,48 +1757,48 @@ func (*IP6ndProxyDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IP6ndSendRouterSolicitation represents the VPP binary API message 'ip6nd_send_router_solicitation'.
-//
-// "ip6nd_send_router_solicitation",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "irt"
-// ],
-// [
-// "u32",
-// "mrt"
-// ],
-// [
-// "u32",
-// "mrc"
-// ],
-// [
-// "u32",
-// "mrd"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "stop"
-// ],
-// {
-// "crc": "0xbd968917"
-// }
+// IP6ndSendRouterSolicitation represents VPP binary API message 'ip6nd_send_router_solicitation':
+//
+// "ip6nd_send_router_solicitation",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "irt"
+// ],
+// [
+// "u32",
+// "mrt"
+// ],
+// [
+// "u32",
+// "mrc"
+// ],
+// [
+// "u32",
+// "mrd"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "stop"
+// ],
+// {
+// "crc": "0xbd968917"
+// }
//
type IP6ndSendRouterSolicitation struct {
Irt uint32
@@ -1487,24 +1819,24 @@ func (*IP6ndSendRouterSolicitation) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IP6ndSendRouterSolicitationReply represents the VPP binary API message 'ip6nd_send_router_solicitation_reply'.
-//
-// "ip6nd_send_router_solicitation_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IP6ndSendRouterSolicitationReply represents VPP binary API message 'ip6nd_send_router_solicitation_reply':
+//
+// "ip6nd_send_router_solicitation_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IP6ndSendRouterSolicitationReply struct {
Retval int32
@@ -1520,32 +1852,32 @@ func (*IP6ndSendRouterSolicitationReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceIP6EnableDisable represents the 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"
-// }
+// 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
@@ -1562,24 +1894,24 @@ func (*SwInterfaceIP6EnableDisable) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceIP6EnableDisableReply represents the 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"
-// }
+// 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
@@ -1595,212 +1927,136 @@ func (*SwInterfaceIP6EnableDisableReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceIP6SetLinkLocalAddress represents the VPP binary API message 'sw_interface_ip6_set_link_local_address'.
-//
-// "sw_interface_ip6_set_link_local_address",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "address",
-// 16
-// ],
-// {
-// "crc": "0xd73bf1ab"
-// }
-//
-type SwInterfaceIP6SetLinkLocalAddress struct {
- SwIfIndex uint32
- Address []byte `struc:"[16]byte"`
-}
-
-func (*SwInterfaceIP6SetLinkLocalAddress) GetMessageName() string {
- return "sw_interface_ip6_set_link_local_address"
-}
-func (*SwInterfaceIP6SetLinkLocalAddress) GetCrcString() string {
- return "d73bf1ab"
-}
-func (*SwInterfaceIP6SetLinkLocalAddress) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// SwInterfaceIP6SetLinkLocalAddressReply represents the VPP binary API message 'sw_interface_ip6_set_link_local_address_reply'.
-//
-// "sw_interface_ip6_set_link_local_address_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
-//
-type SwInterfaceIP6SetLinkLocalAddressReply struct {
- Retval int32
-}
-
-func (*SwInterfaceIP6SetLinkLocalAddressReply) GetMessageName() string {
- return "sw_interface_ip6_set_link_local_address_reply"
-}
-func (*SwInterfaceIP6SetLinkLocalAddressReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*SwInterfaceIP6SetLinkLocalAddressReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// IPAddDelRoute represents the VPP binary API message 'ip_add_del_route'.
-//
-// "ip_add_del_route",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "next_hop_sw_if_index"
-// ],
-// [
-// "u32",
-// "table_id"
-// ],
-// [
-// "u32",
-// "classify_table_index"
-// ],
-// [
-// "u32",
-// "next_hop_table_id"
-// ],
-// [
-// "u32",
-// "next_hop_id"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u8",
-// "is_drop"
-// ],
-// [
-// "u8",
-// "is_unreach"
-// ],
-// [
-// "u8",
-// "is_prohibit"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u8",
-// "is_local"
-// ],
-// [
-// "u8",
-// "is_classify"
-// ],
-// [
-// "u8",
-// "is_multipath"
-// ],
-// [
-// "u8",
-// "is_resolve_host"
-// ],
-// [
-// "u8",
-// "is_resolve_attached"
-// ],
-// [
-// "u8",
-// "is_dvr"
-// ],
-// [
-// "u8",
-// "is_source_lookup"
-// ],
-// [
-// "u8",
-// "is_udp_encap"
-// ],
-// [
-// "u8",
-// "next_hop_weight"
-// ],
-// [
-// "u8",
-// "next_hop_preference"
-// ],
-// [
-// "u8",
-// "next_hop_proto"
-// ],
-// [
-// "u8",
-// "dst_address_length"
-// ],
-// [
-// "u8",
-// "dst_address",
-// 16
-// ],
-// [
-// "u8",
-// "next_hop_address",
-// 16
-// ],
-// [
-// "u8",
-// "next_hop_n_out_labels"
-// ],
-// [
-// "u32",
-// "next_hop_via_label"
-// ],
-// [
-// "vl_api_fib_mpls_label_t",
-// "next_hop_out_label_stack",
-// 0,
-// "next_hop_n_out_labels"
-// ],
-// {
-// "crc": "0x4219d62d"
-// }
+// IPAddDelRoute represents VPP binary API message 'ip_add_del_route':
+//
+// "ip_add_del_route",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "next_hop_sw_if_index"
+// ],
+// [
+// "u32",
+// "table_id"
+// ],
+// [
+// "u32",
+// "classify_table_index"
+// ],
+// [
+// "u32",
+// "next_hop_table_id"
+// ],
+// [
+// "u32",
+// "next_hop_id"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u8",
+// "is_drop"
+// ],
+// [
+// "u8",
+// "is_unreach"
+// ],
+// [
+// "u8",
+// "is_prohibit"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u8",
+// "is_local"
+// ],
+// [
+// "u8",
+// "is_classify"
+// ],
+// [
+// "u8",
+// "is_multipath"
+// ],
+// [
+// "u8",
+// "is_resolve_host"
+// ],
+// [
+// "u8",
+// "is_resolve_attached"
+// ],
+// [
+// "u8",
+// "is_dvr"
+// ],
+// [
+// "u8",
+// "is_source_lookup"
+// ],
+// [
+// "u8",
+// "is_udp_encap"
+// ],
+// [
+// "u8",
+// "next_hop_weight"
+// ],
+// [
+// "u8",
+// "next_hop_preference"
+// ],
+// [
+// "u8",
+// "next_hop_proto"
+// ],
+// [
+// "u8",
+// "dst_address_length"
+// ],
+// [
+// "u8",
+// "dst_address",
+// 16
+// ],
+// [
+// "u8",
+// "next_hop_address",
+// 16
+// ],
+// [
+// "u8",
+// "next_hop_n_out_labels"
+// ],
+// [
+// "u32",
+// "next_hop_via_label"
+// ],
+// [
+// "vl_api_fib_mpls_label_t",
+// "next_hop_out_label_stack",
+// 0,
+// "next_hop_n_out_labels"
+// ],
+// {
+// "crc": "0x4219d62d"
+// }
//
type IPAddDelRoute struct {
NextHopSwIfIndex uint32
@@ -1842,116 +2098,121 @@ func (*IPAddDelRoute) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPAddDelRouteReply represents the VPP binary API message 'ip_add_del_route_reply'.
-//
-// "ip_add_del_route_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPAddDelRouteReply represents VPP binary API message 'ip_add_del_route_reply':
+//
+// "ip_add_del_route_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "stats_index"
+// ],
+// {
+// "crc": "0x1992deab"
+// }
//
type IPAddDelRouteReply struct {
- Retval int32
+ Retval int32
+ StatsIndex uint32
}
func (*IPAddDelRouteReply) GetMessageName() string {
return "ip_add_del_route_reply"
}
func (*IPAddDelRouteReply) GetCrcString() string {
- return "e8d4e804"
+ return "1992deab"
}
func (*IPAddDelRouteReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPMrouteAddDel represents the VPP binary API message 'ip_mroute_add_del'.
-//
-// "ip_mroute_add_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "next_hop_sw_if_index"
-// ],
-// [
-// "u32",
-// "table_id"
-// ],
-// [
-// "u32",
-// "entry_flags"
-// ],
-// [
-// "u32",
-// "itf_flags"
-// ],
-// [
-// "u32",
-// "rpf_id"
-// ],
-// [
-// "u32",
-// "bier_imp"
-// ],
-// [
-// "u16",
-// "grp_address_length"
-// ],
-// [
-// "u8",
-// "next_hop_afi"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u8",
-// "is_local"
-// ],
-// [
-// "u8",
-// "grp_address",
-// 16
-// ],
-// [
-// "u8",
-// "src_address",
-// 16
-// ],
-// [
-// "u8",
-// "nh_address",
-// 16
-// ],
-// {
-// "crc": "0xf44c17b1"
-// }
+// IPMrouteAddDel represents VPP binary API message 'ip_mroute_add_del':
+//
+// "ip_mroute_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "next_hop_sw_if_index"
+// ],
+// [
+// "u32",
+// "table_id"
+// ],
+// [
+// "u32",
+// "entry_flags"
+// ],
+// [
+// "u32",
+// "itf_flags"
+// ],
+// [
+// "u32",
+// "rpf_id"
+// ],
+// [
+// "u32",
+// "bier_imp"
+// ],
+// [
+// "u16",
+// "grp_address_length"
+// ],
+// [
+// "u8",
+// "next_hop_afi"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u8",
+// "is_local"
+// ],
+// [
+// "u8",
+// "grp_address",
+// 16
+// ],
+// [
+// "u8",
+// "src_address",
+// 16
+// ],
+// [
+// "u8",
+// "nh_address",
+// 16
+// ],
+// {
+// "crc": "0xf44c17b1"
+// }
//
type IPMrouteAddDel struct {
NextHopSwIfIndex uint32
@@ -1980,57 +2241,62 @@ func (*IPMrouteAddDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPMrouteAddDelReply represents the VPP binary API message 'ip_mroute_add_del_reply'.
-//
-// "ip_mroute_add_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPMrouteAddDelReply represents VPP binary API message 'ip_mroute_add_del_reply':
+//
+// "ip_mroute_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "stats_index"
+// ],
+// {
+// "crc": "0x1992deab"
+// }
//
type IPMrouteAddDelReply struct {
- Retval int32
+ Retval int32
+ StatsIndex uint32
}
func (*IPMrouteAddDelReply) GetMessageName() string {
return "ip_mroute_add_del_reply"
}
func (*IPMrouteAddDelReply) GetCrcString() string {
- return "e8d4e804"
+ return "1992deab"
}
func (*IPMrouteAddDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPMfibDump represents the VPP binary API message 'ip_mfib_dump'.
-//
-// "ip_mfib_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// IPMfibDump represents VPP binary API message 'ip_mfib_dump':
+//
+// "ip_mfib_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type IPMfibDump struct{}
@@ -2044,56 +2310,60 @@ func (*IPMfibDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPMfibDetails represents the VPP binary API message 'ip_mfib_details'.
-//
-// "ip_mfib_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "table_id"
-// ],
-// [
-// "u32",
-// "entry_flags"
-// ],
-// [
-// "u32",
-// "rpf_id"
-// ],
-// [
-// "u8",
-// "address_length"
-// ],
-// [
-// "u8",
-// "grp_address",
-// 4
-// ],
-// [
-// "u8",
-// "src_address",
-// 4
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_fib_path_t",
-// "path",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x5e530d5e"
-// }
+// IPMfibDetails represents VPP binary API message 'ip_mfib_details':
+//
+// "ip_mfib_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "table_id"
+// ],
+// [
+// "u32",
+// "entry_flags"
+// ],
+// [
+// "u32",
+// "rpf_id"
+// ],
+// [
+// "u8",
+// "address_length"
+// ],
+// [
+// "u8",
+// "grp_address",
+// 4
+// ],
+// [
+// "u8",
+// "src_address",
+// 4
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "u32",
+// "stats_index"
+// ],
+// [
+// "vl_api_fib_path_t",
+// "path",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x21329a12"
+// }
//
type IPMfibDetails struct {
TableID uint32
@@ -2103,6 +2373,7 @@ type IPMfibDetails struct {
GrpAddress []byte `struc:"[4]byte"`
SrcAddress []byte `struc:"[4]byte"`
Count uint32 `struc:"sizeof=Path"`
+ StatsIndex uint32
Path []FibPath
}
@@ -2110,30 +2381,30 @@ func (*IPMfibDetails) GetMessageName() string {
return "ip_mfib_details"
}
func (*IPMfibDetails) GetCrcString() string {
- return "5e530d5e"
+ return "21329a12"
}
func (*IPMfibDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IP6MfibDump represents the VPP binary API message 'ip6_mfib_dump'.
-//
-// "ip6_mfib_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// IP6MfibDump represents VPP binary API message 'ip6_mfib_dump':
+//
+// "ip6_mfib_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type IP6MfibDump struct{}
@@ -2147,48 +2418,48 @@ func (*IP6MfibDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IP6MfibDetails represents the VPP binary API message 'ip6_mfib_details'.
-//
-// "ip6_mfib_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "table_id"
-// ],
-// [
-// "u8",
-// "address_length"
-// ],
-// [
-// "u8",
-// "grp_address",
-// 16
-// ],
-// [
-// "u8",
-// "src_address",
-// 16
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_fib_path_t",
-// "path",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0xe02dcb4b"
-// }
+// IP6MfibDetails represents VPP binary API message 'ip6_mfib_details':
+//
+// "ip6_mfib_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "table_id"
+// ],
+// [
+// "u8",
+// "address_length"
+// ],
+// [
+// "u8",
+// "grp_address",
+// 16
+// ],
+// [
+// "u8",
+// "src_address",
+// 16
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_fib_path_t",
+// "path",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xe02dcb4b"
+// }
//
type IP6MfibDetails struct {
TableID uint32
@@ -2209,41 +2480,37 @@ func (*IP6MfibDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPAddressDetails represents the VPP binary API message 'ip_address_details'.
-//
-// "ip_address_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "ip",
-// 16
-// ],
-// [
-// "u8",
-// "prefix_length"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// {
-// "crc": "0xbc7442f2"
-// }
+// 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"`
@@ -2256,38 +2523,38 @@ func (*IPAddressDetails) GetMessageName() string {
return "ip_address_details"
}
func (*IPAddressDetails) GetCrcString() string {
- return "bc7442f2"
+ return "9bc25966"
}
func (*IPAddressDetails) GetMessageType() api.MessageType {
- return api.RequestMessage
+ return api.ReplyMessage
}
-// IPAddressDump represents the 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"
-// }
+// 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
@@ -2304,32 +2571,28 @@ func (*IPAddressDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPUnnumberedDetails represents the VPP binary API message 'ip_unnumbered_details'.
-//
-// "ip_unnumbered_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "ip_sw_if_index"
-// ],
-// {
-// "crc": "0x05b717ca"
-// }
+// IPUnnumberedDetails represents VPP binary API message 'ip_unnumbered_details':
+//
+// "ip_unnumbered_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "ip_sw_if_index"
+// ],
+// {
+// "crc": "0xae694cf4"
+// }
//
type IPUnnumberedDetails struct {
SwIfIndex uint32
@@ -2340,34 +2603,34 @@ func (*IPUnnumberedDetails) GetMessageName() string {
return "ip_unnumbered_details"
}
func (*IPUnnumberedDetails) GetCrcString() string {
- return "05b717ca"
+ return "ae694cf4"
}
func (*IPUnnumberedDetails) GetMessageType() api.MessageType {
- return api.RequestMessage
+ return api.ReplyMessage
}
-// IPUnnumberedDump represents the VPP binary API message 'ip_unnumbered_dump'.
-//
-// "ip_unnumbered_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0x529cb13f"
-// }
+// IPUnnumberedDump represents VPP binary API message 'ip_unnumbered_dump':
+//
+// "ip_unnumbered_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
//
type IPUnnumberedDump struct {
SwIfIndex uint32
@@ -2383,32 +2646,31 @@ func (*IPUnnumberedDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPDetails represents the VPP binary API message 'ip_details'.
-//
-// "ip_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// {
-// "crc": "0x452ffc5a"
-// }
+// IPDetails represents VPP binary API message 'ip_details':
+//
+// "ip_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// {
+// "crc": "0x8bb37ec4"
+// }
//
type IPDetails struct {
SwIfIndex uint32
- Context uint32
IsIPv6 uint8
}
@@ -2416,34 +2678,34 @@ func (*IPDetails) GetMessageName() string {
return "ip_details"
}
func (*IPDetails) GetCrcString() string {
- return "452ffc5a"
+ return "8bb37ec4"
}
func (*IPDetails) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// IPDump represents the VPP binary API message 'ip_dump'.
-//
-// "ip_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// {
-// "crc": "0xde883da4"
-// }
+ return api.ReplyMessage
+}
+
+// IPDump represents VPP binary API message 'ip_dump':
+//
+// "ip_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// {
+// "crc": "0xde883da4"
+// }
//
type IPDump struct {
IsIPv6 uint8
@@ -2459,24 +2721,24 @@ func (*IPDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MfibSignalDump represents the VPP binary API message 'mfib_signal_dump'.
-//
-// "mfib_signal_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// MfibSignalDump represents VPP binary API message 'mfib_signal_dump':
+//
+// "mfib_signal_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type MfibSignalDump struct{}
@@ -2490,55 +2752,51 @@ func (*MfibSignalDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MfibSignalDetails represents the VPP binary API message 'mfib_signal_details'.
-//
-// "mfib_signal_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "table_id"
-// ],
-// [
-// "u16",
-// "grp_address_len"
-// ],
-// [
-// "u8",
-// "grp_address",
-// 16
-// ],
-// [
-// "u8",
-// "src_address",
-// 16
-// ],
-// [
-// "u16",
-// "ip_packet_len"
-// ],
-// [
-// "u8",
-// "ip_packet_data",
-// 256
-// ],
-// {
-// "crc": "0x791bbeab"
-// }
+// MfibSignalDetails represents VPP binary API message 'mfib_signal_details':
+//
+// "mfib_signal_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "table_id"
+// ],
+// [
+// "u16",
+// "grp_address_len"
+// ],
+// [
+// "u8",
+// "grp_address",
+// 16
+// ],
+// [
+// "u8",
+// "src_address",
+// 16
+// ],
+// [
+// "u16",
+// "ip_packet_len"
+// ],
+// [
+// "u8",
+// "ip_packet_data",
+// 256
+// ],
+// {
+// "crc": "0x3f5f03f5"
+// }
//
type MfibSignalDetails struct {
SwIfIndex uint32
@@ -2554,42 +2812,42 @@ func (*MfibSignalDetails) GetMessageName() string {
return "mfib_signal_details"
}
func (*MfibSignalDetails) GetCrcString() string {
- return "791bbeab"
+ return "3f5f03f5"
}
func (*MfibSignalDetails) GetMessageType() api.MessageType {
- return api.RequestMessage
+ return api.ReplyMessage
}
-// IPPuntPolice represents the VPP binary API message 'ip_punt_police'.
-//
-// "ip_punt_police",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "policer_index"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u8",
-// "is_ip6"
-// ],
-// {
-// "crc": "0x38691592"
-// }
+// IPPuntPolice represents VPP binary API message 'ip_punt_police':
+//
+// "ip_punt_police",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "policer_index"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u8",
+// "is_ip6"
+// ],
+// {
+// "crc": "0x38691592"
+// }
//
type IPPuntPolice struct {
PolicerIndex uint32
@@ -2607,24 +2865,24 @@ func (*IPPuntPolice) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPPuntPoliceReply represents the VPP binary API message 'ip_punt_police_reply'.
-//
-// "ip_punt_police_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPPuntPoliceReply represents VPP binary API message 'ip_punt_police_reply':
+//
+// "ip_punt_police_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IPPuntPoliceReply struct {
Retval int32
@@ -2640,82 +2898,66 @@ func (*IPPuntPoliceReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPPuntRedirect represents the VPP binary API message 'ip_punt_redirect'.
-//
-// "ip_punt_redirect",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "rx_sw_if_index"
-// ],
-// [
-// "u32",
-// "tx_sw_if_index"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u8",
-// "is_ip6"
-// ],
-// [
-// "u8",
-// "nh",
-// 16
-// ],
-// {
-// "crc": "0x996b6603"
-// }
+// IPPuntRedirect represents VPP binary API message 'ip_punt_redirect':
+//
+// "ip_punt_redirect",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "vl_api_punt_redirect_t",
+// "punt"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// {
+// "crc": "0xa953495b"
+// }
//
type IPPuntRedirect struct {
- RxSwIfIndex uint32
- TxSwIfIndex uint32
- IsAdd uint8
- IsIP6 uint8
- Nh []byte `struc:"[16]byte"`
+ Punt PuntRedirect
+ IsAdd uint8
}
func (*IPPuntRedirect) GetMessageName() string {
return "ip_punt_redirect"
}
func (*IPPuntRedirect) GetCrcString() string {
- return "996b6603"
+ return "a953495b"
}
func (*IPPuntRedirect) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPPuntRedirectReply represents the VPP binary API message 'ip_punt_redirect_reply'.
-//
-// "ip_punt_redirect_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPPuntRedirectReply represents VPP binary API message 'ip_punt_redirect_reply':
+//
+// "ip_punt_redirect_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IPPuntRedirectReply struct {
Retval int32
@@ -2731,45 +2973,120 @@ func (*IPPuntRedirectReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPContainerProxyAddDel represents the 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"
-// }
+// IPPuntRedirectDump represents VPP binary API message 'ip_punt_redirect_dump':
+//
+// "ip_punt_redirect_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// {
+// "crc": "0x6b7bcd0a"
+// }
+//
+type IPPuntRedirectDump struct {
+ SwIfIndex uint32
+ IsIPv6 uint8
+}
+
+func (*IPPuntRedirectDump) GetMessageName() string {
+ return "ip_punt_redirect_dump"
+}
+func (*IPPuntRedirectDump) GetCrcString() string {
+ return "6b7bcd0a"
+}
+func (*IPPuntRedirectDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPPuntRedirectDetails represents VPP binary API message 'ip_punt_redirect_details':
+//
+// "ip_punt_redirect_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "vl_api_punt_redirect_t",
+// "punt"
+// ],
+// {
+// "crc": "0xa47f70da"
+// }
+//
+type IPPuntRedirectDetails struct {
+ Punt PuntRedirect
+}
+
+func (*IPPuntRedirectDetails) GetMessageName() string {
+ return "ip_punt_redirect_details"
+}
+func (*IPPuntRedirectDetails) GetCrcString() string {
+ return "a47f70da"
+}
+func (*IPPuntRedirectDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// 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"`
@@ -2789,24 +3106,24 @@ func (*IPContainerProxyAddDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPContainerProxyAddDelReply represents the 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"
-// }
+// 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
@@ -2822,59 +3139,128 @@ func (*IPContainerProxyAddDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPSourceAndPortRangeCheckAddDel represents the VPP binary API message 'ip_source_and_port_range_check_add_del'.
-//
-// "ip_source_and_port_range_check_add_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u8",
-// "mask_length"
-// ],
-// [
-// "u8",
-// "address",
-// 16
-// ],
-// [
-// "u8",
-// "number_of_ranges"
-// ],
-// [
-// "u16",
-// "low_ports",
-// 32
-// ],
-// [
-// "u16",
-// "high_ports",
-// 32
-// ],
-// [
-// "u32",
-// "vrf_id"
-// ],
-// {
-// "crc": "0x03d6b03a"
-// }
+// IPContainerProxyDump represents VPP binary API message 'ip_container_proxy_dump':
+//
+// "ip_container_proxy_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
+//
+type IPContainerProxyDump struct{}
+
+func (*IPContainerProxyDump) GetMessageName() string {
+ return "ip_container_proxy_dump"
+}
+func (*IPContainerProxyDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*IPContainerProxyDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// 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
+}
+
+// IPSourceAndPortRangeCheckAddDel represents VPP binary API message 'ip_source_and_port_range_check_add_del':
+//
+// "ip_source_and_port_range_check_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u8",
+// "mask_length"
+// ],
+// [
+// "u8",
+// "address",
+// 16
+// ],
+// [
+// "u8",
+// "number_of_ranges"
+// ],
+// [
+// "u16",
+// "low_ports",
+// 32
+// ],
+// [
+// "u16",
+// "high_ports",
+// 32
+// ],
+// [
+// "u32",
+// "vrf_id"
+// ],
+// {
+// "crc": "0x03d6b03a"
+// }
//
type IPSourceAndPortRangeCheckAddDel struct {
IsIPv6 uint8
@@ -2897,24 +3283,24 @@ func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPSourceAndPortRangeCheckAddDelReply represents the VPP binary API message 'ip_source_and_port_range_check_add_del_reply'.
-//
-// "ip_source_and_port_range_check_add_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPSourceAndPortRangeCheckAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_add_del_reply':
+//
+// "ip_source_and_port_range_check_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IPSourceAndPortRangeCheckAddDelReply struct {
Retval int32
@@ -2930,48 +3316,48 @@ func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPSourceAndPortRangeCheckInterfaceAddDel represents the VPP binary API message 'ip_source_and_port_range_check_interface_add_del'.
-//
-// "ip_source_and_port_range_check_interface_add_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u32",
-// "tcp_in_vrf_id"
-// ],
-// [
-// "u32",
-// "tcp_out_vrf_id"
-// ],
-// [
-// "u32",
-// "udp_in_vrf_id"
-// ],
-// [
-// "u32",
-// "udp_out_vrf_id"
-// ],
-// {
-// "crc": "0x6966bc44"
-// }
+// IPSourceAndPortRangeCheckInterfaceAddDel represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del':
+//
+// "ip_source_and_port_range_check_interface_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "tcp_in_vrf_id"
+// ],
+// [
+// "u32",
+// "tcp_out_vrf_id"
+// ],
+// [
+// "u32",
+// "udp_in_vrf_id"
+// ],
+// [
+// "u32",
+// "udp_out_vrf_id"
+// ],
+// {
+// "crc": "0x6966bc44"
+// }
//
type IPSourceAndPortRangeCheckInterfaceAddDel struct {
IsAdd uint8
@@ -2992,24 +3378,24 @@ func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageType() api.MessageTyp
return api.RequestMessage
}
-// IPSourceAndPortRangeCheckInterfaceAddDelReply represents the VPP binary API message 'ip_source_and_port_range_check_interface_add_del_reply'.
-//
-// "ip_source_and_port_range_check_interface_add_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPSourceAndPortRangeCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del_reply':
+//
+// "ip_source_and_port_range_check_interface_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IPSourceAndPortRangeCheckInterfaceAddDelReply struct {
Retval int32
@@ -3025,48 +3411,128 @@ func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageType() api.Messa
return api.ReplyMessage
}
-// IPScanNeighborEnableDisable represents the VPP binary API message 'ip_scan_neighbor_enable_disable'.
-//
-// "ip_scan_neighbor_enable_disable",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "mode"
-// ],
-// [
-// "u8",
-// "scan_interval"
-// ],
-// [
-// "u8",
-// "max_proc_time"
-// ],
-// [
-// "u8",
-// "max_update"
-// ],
-// [
-// "u8",
-// "scan_int_delay"
-// ],
-// [
-// "u8",
-// "stale_threshold"
-// ],
-// {
-// "crc": "0x0a6bf57a"
-// }
+// IPSourceCheckInterfaceAddDel represents VPP binary API message 'ip_source_check_interface_add_del':
+//
+// "ip_source_check_interface_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u8",
+// "loose"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x0a60152a"
+// }
+//
+type IPSourceCheckInterfaceAddDel struct {
+ IsAdd uint8
+ Loose uint8
+ SwIfIndex uint32
+}
+
+func (*IPSourceCheckInterfaceAddDel) GetMessageName() string {
+ return "ip_source_check_interface_add_del"
+}
+func (*IPSourceCheckInterfaceAddDel) GetCrcString() string {
+ return "0a60152a"
+}
+func (*IPSourceCheckInterfaceAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPSourceCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_check_interface_add_del_reply':
+//
+// "ip_source_check_interface_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+type IPSourceCheckInterfaceAddDelReply struct {
+ Retval int32
+}
+
+func (*IPSourceCheckInterfaceAddDelReply) GetMessageName() string {
+ return "ip_source_check_interface_add_del_reply"
+}
+func (*IPSourceCheckInterfaceAddDelReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IPSourceCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPScanNeighborEnableDisable represents VPP binary API message 'ip_scan_neighbor_enable_disable':
+//
+// "ip_scan_neighbor_enable_disable",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "mode"
+// ],
+// [
+// "u8",
+// "scan_interval"
+// ],
+// [
+// "u8",
+// "max_proc_time"
+// ],
+// [
+// "u8",
+// "max_update"
+// ],
+// [
+// "u8",
+// "scan_int_delay"
+// ],
+// [
+// "u8",
+// "stale_threshold"
+// ],
+// {
+// "crc": "0x0a6bf57a"
+// }
//
type IPScanNeighborEnableDisable struct {
Mode uint8
@@ -3087,24 +3553,24 @@ func (*IPScanNeighborEnableDisable) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPScanNeighborEnableDisableReply represents the VPP binary API message 'ip_scan_neighbor_enable_disable_reply'.
-//
-// "ip_scan_neighbor_enable_disable_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPScanNeighborEnableDisableReply represents VPP binary API message 'ip_scan_neighbor_enable_disable_reply':
+//
+// "ip_scan_neighbor_enable_disable_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IPScanNeighborEnableDisableReply struct {
Retval int32
@@ -3120,37 +3586,37 @@ func (*IPScanNeighborEnableDisableReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPProbeNeighbor represents the VPP binary API message 'ip_probe_neighbor'.
-//
-// "ip_probe_neighbor",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "dst_address",
-// 16
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// {
-// "crc": "0x1e44bfd7"
-// }
+// IPProbeNeighbor represents VPP binary API message 'ip_probe_neighbor':
+//
+// "ip_probe_neighbor",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "dst_address",
+// 16
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// {
+// "crc": "0x1e44bfd7"
+// }
//
type IPProbeNeighbor struct {
SwIfIndex uint32
@@ -3168,24 +3634,24 @@ func (*IPProbeNeighbor) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPProbeNeighborReply represents the VPP binary API message 'ip_probe_neighbor_reply'.
-//
-// "ip_probe_neighbor_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPProbeNeighborReply represents VPP binary API message 'ip_probe_neighbor_reply':
+//
+// "ip_probe_neighbor_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IPProbeNeighborReply struct {
Retval int32
@@ -3201,36 +3667,36 @@ func (*IPProbeNeighborReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantIP4ArpEvents represents the VPP binary API message 'want_ip4_arp_events'.
-//
-// "want_ip4_arp_events",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// [
-// "u32",
-// "address"
-// ],
-// {
-// "crc": "0x77e06379"
-// }
+// WantIP4ArpEvents represents VPP binary API message 'want_ip4_arp_events':
+//
+// "want_ip4_arp_events",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// [
+// "u32",
+// "address"
+// ],
+// {
+// "crc": "0x77e06379"
+// }
//
type WantIP4ArpEvents struct {
EnableDisable uint8
@@ -3248,24 +3714,24 @@ func (*WantIP4ArpEvents) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantIP4ArpEventsReply represents the VPP binary API message 'want_ip4_arp_events_reply'.
-//
-// "want_ip4_arp_events_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantIP4ArpEventsReply represents VPP binary API message 'want_ip4_arp_events_reply':
+//
+// "want_ip4_arp_events_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantIP4ArpEventsReply struct {
Retval int32
@@ -3281,41 +3747,41 @@ func (*WantIP4ArpEventsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IP4ArpEvent represents the VPP binary API message 'ip4_arp_event'.
-//
-// "ip4_arp_event",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "address"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "new_mac",
-// 6
-// ],
-// [
-// "u8",
-// "mac_ip"
-// ],
-// {
-// "crc": "0xef7235f7"
-// }
+// IP4ArpEvent represents VPP binary API message 'ip4_arp_event':
+//
+// "ip4_arp_event",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "address"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "new_mac",
+// 6
+// ],
+// [
+// "u8",
+// "mac_ip"
+// ],
+// {
+// "crc": "0xef7235f7"
+// }
//
type IP4ArpEvent struct {
Address uint32
@@ -3335,37 +3801,37 @@ func (*IP4ArpEvent) GetMessageType() api.MessageType {
return api.EventMessage
}
-// WantIP6NdEvents represents the VPP binary API message 'want_ip6_nd_events'.
-//
-// "want_ip6_nd_events",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// [
-// "u8",
-// "address",
-// 16
-// ],
-// {
-// "crc": "0x1cf65fbb"
-// }
+// WantIP6NdEvents represents VPP binary API message 'want_ip6_nd_events':
+//
+// "want_ip6_nd_events",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// [
+// "u8",
+// "address",
+// 16
+// ],
+// {
+// "crc": "0x1cf65fbb"
+// }
//
type WantIP6NdEvents struct {
EnableDisable uint8
@@ -3383,24 +3849,24 @@ func (*WantIP6NdEvents) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantIP6NdEventsReply represents the VPP binary API message 'want_ip6_nd_events_reply'.
-//
-// "want_ip6_nd_events_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantIP6NdEventsReply represents VPP binary API message 'want_ip6_nd_events_reply':
+//
+// "want_ip6_nd_events_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantIP6NdEventsReply struct {
Retval int32
@@ -3416,42 +3882,42 @@ func (*WantIP6NdEventsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IP6NdEvent represents the VPP binary API message 'ip6_nd_event'.
-//
-// "ip6_nd_event",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "address",
-// 16
-// ],
-// [
-// "u8",
-// "new_mac",
-// 6
-// ],
-// [
-// "u8",
-// "mac_ip"
-// ],
-// {
-// "crc": "0x96ab2fdd"
-// }
+// IP6NdEvent represents VPP binary API message 'ip6_nd_event':
+//
+// "ip6_nd_event",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "address",
+// 16
+// ],
+// [
+// "u8",
+// "new_mac",
+// 6
+// ],
+// [
+// "u8",
+// "mac_ip"
+// ],
+// {
+// "crc": "0x96ab2fdd"
+// }
//
type IP6NdEvent struct {
PID uint32
@@ -3471,32 +3937,32 @@ func (*IP6NdEvent) GetMessageType() api.MessageType {
return api.EventMessage
}
-// WantIP6RaEvents represents the VPP binary API message 'want_ip6_ra_events'.
-//
-// "want_ip6_ra_events",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0x05b454b5"
-// }
+// WantIP6RaEvents represents VPP binary API message 'want_ip6_ra_events':
+//
+// "want_ip6_ra_events",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x05b454b5"
+// }
//
type WantIP6RaEvents struct {
EnableDisable uint8
@@ -3513,24 +3979,24 @@ func (*WantIP6RaEvents) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantIP6RaEventsReply represents the VPP binary API message 'want_ip6_ra_events_reply'.
-//
-// "want_ip6_ra_events_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantIP6RaEventsReply represents VPP binary API message 'want_ip6_ra_events_reply':
+//
+// "want_ip6_ra_events_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantIP6RaEventsReply struct {
Retval int32
@@ -3546,63 +4012,63 @@ func (*WantIP6RaEventsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IP6RaEvent represents the VPP binary API message 'ip6_ra_event'.
-//
-// "ip6_ra_event",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "router_address",
-// 16
-// ],
-// [
-// "u8",
-// "current_hop_limit"
-// ],
-// [
-// "u8",
-// "flags"
-// ],
-// [
-// "u16",
-// "router_lifetime_in_sec"
-// ],
-// [
-// "u32",
-// "neighbor_reachable_time_in_msec"
-// ],
-// [
-// "u32",
-// "time_in_msec_between_retransmitted_neighbor_solicitations"
-// ],
-// [
-// "u32",
-// "n_prefixes"
-// ],
-// [
-// "vl_api_ip6_ra_prefix_info_t",
-// "prefixes",
-// 0,
-// "n_prefixes"
-// ],
-// {
-// "crc": "0xc5e54257"
-// }
+// IP6RaEvent represents VPP binary API message 'ip6_ra_event':
+//
+// "ip6_ra_event",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "router_address",
+// 16
+// ],
+// [
+// "u8",
+// "current_hop_limit"
+// ],
+// [
+// "u8",
+// "flags"
+// ],
+// [
+// "u16",
+// "router_lifetime_in_sec"
+// ],
+// [
+// "u32",
+// "neighbor_reachable_time_in_msec"
+// ],
+// [
+// "u32",
+// "time_in_msec_between_retransmitted_neighbor_solicitations"
+// ],
+// [
+// "u32",
+// "n_prefixes"
+// ],
+// [
+// "vl_api_ip6_ra_prefix_info_t",
+// "prefixes",
+// 0,
+// "n_prefixes"
+// ],
+// {
+// "crc": "0xc5e54257"
+// }
//
type IP6RaEvent struct {
PID uint32
@@ -3627,32 +4093,32 @@ func (*IP6RaEvent) GetMessageType() api.MessageType {
return api.EventMessage
}
-// ProxyArpAddDel represents the VPP binary API message 'proxy_arp_add_del'.
-//
-// "proxy_arp_add_del",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "is_add"
-// ],
-// [
-// "vl_api_proxy_arp_t",
-// "proxy"
-// ],
-// {
-// "crc": "0x227988d9"
-// }
+// ProxyArpAddDel represents VPP binary API message 'proxy_arp_add_del':
+//
+// "proxy_arp_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "vl_api_proxy_arp_t",
+// "proxy"
+// ],
+// {
+// "crc": "0x227988d9"
+// }
//
type ProxyArpAddDel struct {
IsAdd uint8
@@ -3669,24 +4135,24 @@ func (*ProxyArpAddDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ProxyArpAddDelReply represents the VPP binary API message 'proxy_arp_add_del_reply'.
-//
-// "proxy_arp_add_del_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// ProxyArpAddDelReply represents VPP binary API message 'proxy_arp_add_del_reply':
+//
+// "proxy_arp_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type ProxyArpAddDelReply struct {
Retval int32
@@ -3702,24 +4168,24 @@ func (*ProxyArpAddDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ProxyArpDump represents the VPP binary API message 'proxy_arp_dump'.
-//
-// "proxy_arp_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// ProxyArpDump represents VPP binary API message 'proxy_arp_dump':
+//
+// "proxy_arp_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type ProxyArpDump struct{}
@@ -3733,24 +4199,24 @@ func (*ProxyArpDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ProxyArpDetails represents the VPP binary API message 'proxy_arp_details'.
-//
-// "proxy_arp_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "vl_api_proxy_arp_t",
-// "proxy"
-// ],
-// {
-// "crc": "0x9b707c77"
-// }
+// ProxyArpDetails represents VPP binary API message 'proxy_arp_details':
+//
+// "proxy_arp_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "vl_api_proxy_arp_t",
+// "proxy"
+// ],
+// {
+// "crc": "0x9b707c77"
+// }
//
type ProxyArpDetails struct {
Proxy ProxyArp
@@ -3766,32 +4232,32 @@ func (*ProxyArpDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ProxyArpIntfcEnableDisable represents the VPP binary API message 'proxy_arp_intfc_enable_disable'.
-//
-// "proxy_arp_intfc_enable_disable",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "enable_disable"
-// ],
-// {
-// "crc": "0x69d24598"
-// }
+// ProxyArpIntfcEnableDisable represents VPP binary API message 'proxy_arp_intfc_enable_disable':
+//
+// "proxy_arp_intfc_enable_disable",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "enable_disable"
+// ],
+// {
+// "crc": "0x69d24598"
+// }
//
type ProxyArpIntfcEnableDisable struct {
SwIfIndex uint32
@@ -3808,24 +4274,24 @@ func (*ProxyArpIntfcEnableDisable) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ProxyArpIntfcEnableDisableReply represents the VPP binary API message 'proxy_arp_intfc_enable_disable_reply'.
-//
-// "proxy_arp_intfc_enable_disable_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// ProxyArpIntfcEnableDisableReply represents VPP binary API message 'proxy_arp_intfc_enable_disable_reply':
+//
+// "proxy_arp_intfc_enable_disable_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type ProxyArpIntfcEnableDisableReply struct {
Retval int32
@@ -3841,24 +4307,24 @@ func (*ProxyArpIntfcEnableDisableReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ProxyArpIntfcDump represents the VPP binary API message 'proxy_arp_intfc_dump'.
-//
-// "proxy_arp_intfc_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// ProxyArpIntfcDump represents VPP binary API message 'proxy_arp_intfc_dump':
+//
+// "proxy_arp_intfc_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type ProxyArpIntfcDump struct{}
@@ -3872,24 +4338,24 @@ func (*ProxyArpIntfcDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ProxyArpIntfcDetails represents the VPP binary API message 'proxy_arp_intfc_details'.
-//
-// "proxy_arp_intfc_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0xf6458e5f"
-// }
+// ProxyArpIntfcDetails represents VPP binary API message 'proxy_arp_intfc_details':
+//
+// "proxy_arp_intfc_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xf6458e5f"
+// }
//
type ProxyArpIntfcDetails struct {
SwIfIndex uint32
@@ -3905,32 +4371,32 @@ func (*ProxyArpIntfcDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ResetFib represents the VPP binary API message 'reset_fib'.
-//
-// "reset_fib",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "vrf_id"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// {
-// "crc": "0x8553ebd9"
-// }
+// ResetFib represents VPP binary API message 'reset_fib':
+//
+// "reset_fib",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "vrf_id"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// {
+// "crc": "0x8553ebd9"
+// }
//
type ResetFib struct {
VrfID uint32
@@ -3947,24 +4413,24 @@ func (*ResetFib) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ResetFibReply represents the VPP binary API message 'reset_fib_reply'.
-//
-// "reset_fib_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// ResetFibReply represents VPP binary API message 'reset_fib_reply':
+//
+// "reset_fib_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type ResetFibReply struct {
Retval int32
@@ -3980,32 +4446,32 @@ func (*ResetFibReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SetArpNeighborLimit represents the VPP binary API message 'set_arp_neighbor_limit'.
-//
-// "set_arp_neighbor_limit",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "is_ipv6"
-// ],
-// [
-// "u32",
-// "arp_neighbor_limit"
-// ],
-// {
-// "crc": "0x97d01fd6"
-// }
+// SetArpNeighborLimit represents VPP binary API message 'set_arp_neighbor_limit':
+//
+// "set_arp_neighbor_limit",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u32",
+// "arp_neighbor_limit"
+// ],
+// {
+// "crc": "0x97d01fd6"
+// }
//
type SetArpNeighborLimit struct {
IsIPv6 uint8
@@ -4022,24 +4488,24 @@ func (*SetArpNeighborLimit) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SetArpNeighborLimitReply represents the VPP binary API message 'set_arp_neighbor_limit_reply'.
-//
-// "set_arp_neighbor_limit_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// SetArpNeighborLimitReply represents VPP binary API message 'set_arp_neighbor_limit_reply':
+//
+// "set_arp_neighbor_limit_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type SetArpNeighborLimitReply struct {
Retval int32
@@ -4055,48 +4521,48 @@ func (*SetArpNeighborLimitReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IoamEnable represents the VPP binary API message 'ioam_enable'.
-//
-// "ioam_enable",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u16",
-// "id"
-// ],
-// [
-// "u8",
-// "seqno"
-// ],
-// [
-// "u8",
-// "analyse"
-// ],
-// [
-// "u8",
-// "pot_enable"
-// ],
-// [
-// "u8",
-// "trace_enable"
-// ],
-// [
-// "u32",
-// "node_id"
-// ],
-// {
-// "crc": "0x9392e032"
-// }
+// IoamEnable represents VPP binary API message 'ioam_enable':
+//
+// "ioam_enable",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u16",
+// "id"
+// ],
+// [
+// "u8",
+// "seqno"
+// ],
+// [
+// "u8",
+// "analyse"
+// ],
+// [
+// "u8",
+// "pot_enable"
+// ],
+// [
+// "u8",
+// "trace_enable"
+// ],
+// [
+// "u32",
+// "node_id"
+// ],
+// {
+// "crc": "0x9392e032"
+// }
//
type IoamEnable struct {
ID uint16
@@ -4117,24 +4583,24 @@ func (*IoamEnable) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IoamEnableReply represents the VPP binary API message 'ioam_enable_reply'.
-//
-// "ioam_enable_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IoamEnableReply represents VPP binary API message 'ioam_enable_reply':
+//
+// "ioam_enable_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IoamEnableReply struct {
Retval int32
@@ -4150,28 +4616,28 @@ func (*IoamEnableReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IoamDisable represents the VPP binary API message 'ioam_disable'.
-//
-// "ioam_disable",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u16",
-// "id"
-// ],
-// {
-// "crc": "0x6b16a45e"
-// }
+// IoamDisable represents VPP binary API message 'ioam_disable':
+//
+// "ioam_disable",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u16",
+// "id"
+// ],
+// {
+// "crc": "0x6b16a45e"
+// }
//
type IoamDisable struct {
ID uint16
@@ -4187,24 +4653,24 @@ func (*IoamDisable) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IoamDisableReply represents the VPP binary API message 'ioam_disable_reply'.
-//
-// "ioam_disable_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IoamDisableReply represents VPP binary API message 'ioam_disable_reply':
+//
+// "ioam_disable_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IoamDisableReply struct {
Retval int32
@@ -4220,40 +4686,40 @@ func (*IoamDisableReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPReassemblySet represents the VPP binary API message 'ip_reassembly_set'.
-//
-// "ip_reassembly_set",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "timeout_ms"
-// ],
-// [
-// "u32",
-// "max_reassemblies"
-// ],
-// [
-// "u32",
-// "expire_walk_interval_ms"
-// ],
-// [
-// "u8",
-// "is_ip6"
-// ],
-// {
-// "crc": "0x1db184de"
-// }
+// IPReassemblySet represents VPP binary API message 'ip_reassembly_set':
+//
+// "ip_reassembly_set",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "timeout_ms"
+// ],
+// [
+// "u32",
+// "max_reassemblies"
+// ],
+// [
+// "u32",
+// "expire_walk_interval_ms"
+// ],
+// [
+// "u8",
+// "is_ip6"
+// ],
+// {
+// "crc": "0x1db184de"
+// }
//
type IPReassemblySet struct {
TimeoutMs uint32
@@ -4272,24 +4738,24 @@ func (*IPReassemblySet) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPReassemblySetReply represents the VPP binary API message 'ip_reassembly_set_reply'.
-//
-// "ip_reassembly_set_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPReassemblySetReply represents VPP binary API message 'ip_reassembly_set_reply':
+//
+// "ip_reassembly_set_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IPReassemblySetReply struct {
Retval int32
@@ -4305,28 +4771,28 @@ func (*IPReassemblySetReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// IPReassemblyGet represents the VPP binary API message 'ip_reassembly_get'.
-//
-// "ip_reassembly_get",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "is_ip6"
-// ],
-// {
-// "crc": "0x6fe91190"
-// }
+// IPReassemblyGet represents VPP binary API message 'ip_reassembly_get':
+//
+// "ip_reassembly_get",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "is_ip6"
+// ],
+// {
+// "crc": "0x6fe91190"
+// }
//
type IPReassemblyGet struct {
IsIP6 uint8
@@ -4342,44 +4808,40 @@ func (*IPReassemblyGet) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPReassemblyGetReply represents the VPP binary API message 'ip_reassembly_get_reply'.
-//
-// "ip_reassembly_get_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "timeout_ms"
-// ],
-// [
-// "u32",
-// "max_reassemblies"
-// ],
-// [
-// "u32",
-// "expire_walk_interval_ms"
-// ],
-// [
-// "u8",
-// "is_ip6"
-// ],
-// {
-// "crc": "0xd746fc57"
-// }
+// IPReassemblyGetReply represents VPP binary API message 'ip_reassembly_get_reply':
+//
+// "ip_reassembly_get_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "timeout_ms"
+// ],
+// [
+// "u32",
+// "max_reassemblies"
+// ],
+// [
+// "u32",
+// "expire_walk_interval_ms"
+// ],
+// [
+// "u8",
+// "is_ip6"
+// ],
+// {
+// "crc": "0x1f90afd1"
+// }
//
type IPReassemblyGetReply struct {
Retval int32
@@ -4393,42 +4855,42 @@ func (*IPReassemblyGetReply) GetMessageName() string {
return "ip_reassembly_get_reply"
}
func (*IPReassemblyGetReply) GetCrcString() string {
- return "d746fc57"
+ return "1f90afd1"
}
func (*IPReassemblyGetReply) GetMessageType() api.MessageType {
- return api.RequestMessage
+ return api.ReplyMessage
}
-// IPReassemblyEnableDisable represents the VPP binary API message 'ip_reassembly_enable_disable'.
-//
-// "ip_reassembly_enable_disable",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "enable_ip4"
-// ],
-// [
-// "u8",
-// "enable_ip6"
-// ],
-// {
-// "crc": "0xbb8dc5d0"
-// }
+// IPReassemblyEnableDisable represents VPP binary API message 'ip_reassembly_enable_disable':
+//
+// "ip_reassembly_enable_disable",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "enable_ip4"
+// ],
+// [
+// "u8",
+// "enable_ip6"
+// ],
+// {
+// "crc": "0xbb8dc5d0"
+// }
//
type IPReassemblyEnableDisable struct {
SwIfIndex uint32
@@ -4446,24 +4908,24 @@ func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// IPReassemblyEnableDisableReply represents the VPP binary API message 'ip_reassembly_enable_disable_reply'.
-//
-// "ip_reassembly_enable_disable_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// IPReassemblyEnableDisableReply represents VPP binary API message 'ip_reassembly_enable_disable_reply':
+//
+// "ip_reassembly_enable_disable_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type IPReassemblyEnableDisableReply struct {
Retval int32
@@ -4479,53 +4941,6 @@ func (*IPReassemblyEnableDisableReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-/* Services */
-
-type Services interface {
- DumpIP6Fib(*IP6FibDump) (*IP6FibDetails, error)
- DumpIP6Mfib(*IP6MfibDump) (*IP6MfibDetails, error)
- DumpIP6ndProxy(*IP6ndProxyDump) (*IP6ndProxyDetails, error)
- DumpIPAddress(*IPAddressDump) (*IPAddressDetails, error)
- DumpIP(*IPDump) (*IPDetails, error)
- DumpIPFib(*IPFibDump) (*IPFibDetails, error)
- DumpIPMfib(*IPMfibDump) (*IPMfibDetails, error)
- DumpIPNeighbor(*IPNeighborDump) (*IPNeighborDetails, error)
- DumpIPUnnumbered(*IPUnnumberedDump) (*IPUnnumberedDetails, error)
- DumpMfibSignal(*MfibSignalDump) (*MfibSignalDetails, error)
- DumpProxyArp(*ProxyArpDump) (*ProxyArpDetails, error)
- DumpProxyArpIntfc(*ProxyArpIntfcDump) (*ProxyArpIntfcDetails, error)
- IoamDisable(*IoamDisable) (*IoamDisableReply, error)
- IoamEnable(*IoamEnable) (*IoamEnableReply, error)
- IP6ndProxyAddDel(*IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error)
- IP6ndSendRouterSolicitation(*IP6ndSendRouterSolicitation) (*IP6ndSendRouterSolicitationReply, error)
- IPAddDelRoute(*IPAddDelRoute) (*IPAddDelRouteReply, error)
- IPContainerProxyAddDel(*IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error)
- IPMrouteAddDel(*IPMrouteAddDel) (*IPMrouteAddDelReply, error)
- IPNeighborAddDel(*IPNeighborAddDel) (*IPNeighborAddDelReply, error)
- IPProbeNeighbor(*IPProbeNeighbor) (*IPProbeNeighborReply, error)
- IPPuntPolice(*IPPuntPolice) (*IPPuntPoliceReply, error)
- IPPuntRedirect(*IPPuntRedirect) (*IPPuntRedirectReply, error)
- IPReassemblyEnableDisable(*IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error)
- IPReassemblyGet(*IPReassemblyGet) (*IPReassemblyGetReply, error)
- IPReassemblySet(*IPReassemblySet) (*IPReassemblySetReply, error)
- IPScanNeighborEnableDisable(*IPScanNeighborEnableDisable) (*IPScanNeighborEnableDisableReply, error)
- IPSourceAndPortRangeCheckAddDel(*IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error)
- IPSourceAndPortRangeCheckInterfaceAddDel(*IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error)
- IPTableAddDel(*IPTableAddDel) (*IPTableAddDelReply, error)
- ProxyArpAddDel(*ProxyArpAddDel) (*ProxyArpAddDelReply, error)
- ProxyArpIntfcEnableDisable(*ProxyArpIntfcEnableDisable) (*ProxyArpIntfcEnableDisableReply, error)
- ResetFib(*ResetFib) (*ResetFibReply, error)
- SetArpNeighborLimit(*SetArpNeighborLimit) (*SetArpNeighborLimitReply, error)
- SetIPFlowHash(*SetIPFlowHash) (*SetIPFlowHashReply, error)
- SwInterfaceIP6EnableDisable(*SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error)
- SwInterfaceIP6SetLinkLocalAddress(*SwInterfaceIP6SetLinkLocalAddress) (*SwInterfaceIP6SetLinkLocalAddressReply, error)
- SwInterfaceIP6ndRaConfig(*SwInterfaceIP6ndRaConfig) (*SwInterfaceIP6ndRaConfigReply, error)
- SwInterfaceIP6ndRaPrefix(*SwInterfaceIP6ndRaPrefix) (*SwInterfaceIP6ndRaPrefixReply, error)
- WantIP4ArpEvents(*WantIP4ArpEvents) (*WantIP4ArpEventsReply, error)
- WantIP6NdEvents(*WantIP6NdEvents) (*WantIP6NdEventsReply, error)
- WantIP6RaEvents(*WantIP6RaEvents) (*WantIP6RaEventsReply, error)
-}
-
func init() {
api.RegisterMessage((*IPTableAddDel)(nil), "ip.IPTableAddDel")
api.RegisterMessage((*IPTableAddDelReply)(nil), "ip.IPTableAddDelReply")
@@ -4551,8 +4966,6 @@ func init() {
api.RegisterMessage((*IP6ndSendRouterSolicitationReply)(nil), "ip.IP6ndSendRouterSolicitationReply")
api.RegisterMessage((*SwInterfaceIP6EnableDisable)(nil), "ip.SwInterfaceIP6EnableDisable")
api.RegisterMessage((*SwInterfaceIP6EnableDisableReply)(nil), "ip.SwInterfaceIP6EnableDisableReply")
- api.RegisterMessage((*SwInterfaceIP6SetLinkLocalAddress)(nil), "ip.SwInterfaceIP6SetLinkLocalAddress")
- api.RegisterMessage((*SwInterfaceIP6SetLinkLocalAddressReply)(nil), "ip.SwInterfaceIP6SetLinkLocalAddressReply")
api.RegisterMessage((*IPAddDelRoute)(nil), "ip.IPAddDelRoute")
api.RegisterMessage((*IPAddDelRouteReply)(nil), "ip.IPAddDelRouteReply")
api.RegisterMessage((*IPMrouteAddDel)(nil), "ip.IPMrouteAddDel")
@@ -4573,12 +4986,18 @@ func init() {
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((*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")
diff --git a/examples/bin_api/map.api.json b/examples/bin_api/map.api.json
new file mode 100644
index 0000000..cb98202
--- /dev/null
+++ b/examples/bin_api/map.api.json
@@ -0,0 +1,940 @@
+{
+ "messages": [
+ [
+ "map_add_domain",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "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"
+ ],
+ [
+ "bool",
+ "is_translation"
+ ],
+ [
+ "bool",
+ "is_rfc6052"
+ ],
+ [
+ "u16",
+ "mtu"
+ ],
+ {
+ "crc": "0x7a64714e"
+ }
+ ],
+ [
+ "map_add_domain_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u32",
+ "index"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0x3e6d4e2c"
+ }
+ ],
+ [
+ "map_del_domain",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u32",
+ "index"
+ ],
+ {
+ "crc": "0x8ac76db6"
+ }
+ ],
+ [
+ "map_del_domain_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "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"
+ }
+ ],
+ [
+ "map_add_del_rule_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "map_domain_dump",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ {
+ "crc": "0x51077d14"
+ }
+ ],
+ [
+ "map_domain_details",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "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"
+ ],
+ [
+ "bool",
+ "is_translation"
+ ],
+ {
+ "crc": "0x7a986fe6"
+ }
+ ],
+ [
+ "map_rule_dump",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u32",
+ "domain_index"
+ ],
+ {
+ "crc": "0xe43e6ff6"
+ }
+ ],
+ [
+ "map_rule_details",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "vl_api_ip6_address_t",
+ "ip6_dst"
+ ],
+ [
+ "u16",
+ "psid"
+ ],
+ {
+ "crc": "0x4f932665"
+ }
+ ],
+ [
+ "map_summary_stats",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ {
+ "crc": "0x51077d14"
+ }
+ ],
+ [
+ "map_summary_stats_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ [
+ "u64",
+ "total_bindings"
+ ],
+ [
+ "u64",
+ "total_pkts",
+ 2
+ ],
+ [
+ "u64",
+ "total_bytes",
+ 2
+ ],
+ [
+ "u64",
+ "total_ip4_fragments"
+ ],
+ [
+ "u64",
+ "total_security_check",
+ 2
+ ],
+ {
+ "crc": "0x0e4ace0e"
+ }
+ ],
+ [
+ "map_param_set_fragmentation",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "bool",
+ "inner"
+ ],
+ [
+ "bool",
+ "ignore_df"
+ ],
+ {
+ "crc": "0x9ff54d90"
+ }
+ ],
+ [
+ "map_param_set_fragmentation_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "map_param_set_icmp",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "vl_api_ip4_address_t",
+ "ip4_err_relay_src"
+ ],
+ {
+ "crc": "0x4c0a4fd2"
+ }
+ ],
+ [
+ "map_param_set_icmp_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "map_param_set_icmp6",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "bool",
+ "enable_unreachable"
+ ],
+ {
+ "crc": "0x5d01f8c1"
+ }
+ ],
+ [
+ "map_param_set_icmp6_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "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"
+ }
+ ],
+ [
+ "map_param_add_del_pre_resolve_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "map_param_set_reassembly",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "bool",
+ "is_ip6"
+ ],
+ [
+ "u16",
+ "lifetime_ms"
+ ],
+ [
+ "u16",
+ "pool_size"
+ ],
+ [
+ "u32",
+ "buffers"
+ ],
+ [
+ "f64",
+ "ht_ratio"
+ ],
+ {
+ "crc": "0x54172b10"
+ }
+ ],
+ [
+ "map_param_set_reassembly_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "map_param_set_security_check",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "bool",
+ "enable"
+ ],
+ [
+ "bool",
+ "fragments"
+ ],
+ {
+ "crc": "0x6abe9836"
+ }
+ ],
+ [
+ "map_param_set_security_check_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "map_param_set_traffic_class",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "bool",
+ "copy"
+ ],
+ [
+ "u8",
+ "class"
+ ],
+ {
+ "crc": "0x007ee563"
+ }
+ ],
+ [
+ "map_param_set_traffic_class_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "map_param_get",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ {
+ "crc": "0x51077d14"
+ }
+ ],
+ [
+ "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",
+ "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"
+ ],
+ [
+ "bool",
+ "sec_check_enable"
+ ],
+ [
+ "bool",
+ "sec_check_fragments"
+ ],
+ [
+ "bool",
+ "tc_copy"
+ ],
+ [
+ "u8",
+ "tc_class"
+ ],
+ {
+ "crc": "0xb40e9226"
+ }
+ ]
+ ],
+ "vl_api_version": "0x14b499d0",
+ "unions": [
+ [
+ "address_union",
+ [
+ "vl_api_ip4_address_t",
+ "ip4"
+ ],
+ [
+ "vl_api_ip6_address_t",
+ "ip6"
+ ],
+ {
+ "crc": "0xd68a2fb4"
+ }
+ ]
+ ],
+ "services": {
+ "map_param_set_fragmentation": {
+ "reply": "map_param_set_fragmentation_reply"
+ },
+ "map_param_add_del_pre_resolve": {
+ "reply": "map_param_add_del_pre_resolve_reply"
+ },
+ "map_rule_dump": {
+ "reply": "map_rule_details",
+ "stream": true
+ },
+ "map_param_set_icmp6": {
+ "reply": "map_param_set_icmp6_reply"
+ },
+ "map_add_del_rule": {
+ "reply": "map_add_del_rule_reply"
+ },
+ "map_domain_dump": {
+ "reply": "map_domain_details",
+ "stream": true
+ },
+ "map_param_get": {
+ "reply": "map_param_get_reply"
+ },
+ "map_param_set_icmp": {
+ "reply": "map_param_set_icmp_reply"
+ },
+ "map_add_domain": {
+ "reply": "map_add_domain_reply"
+ },
+ "map_summary_stats": {
+ "reply": "map_summary_stats_reply"
+ },
+ "map_param_set_traffic_class": {
+ "reply": "map_param_set_traffic_class_reply"
+ },
+ "map_del_domain": {
+ "reply": "map_del_domain_reply"
+ },
+ "map_param_set_reassembly": {
+ "reply": "map_param_set_reassembly_reply"
+ },
+ "map_param_set_security_check": {
+ "reply": "map_param_set_security_check_reply"
+ }
+ },
+ "enums": [
+ [
+ "address_family",
+ [
+ "ADDRESS_IP4",
+ 0
+ ],
+ [
+ "ADDRESS_IP6",
+ 1
+ ],
+ {
+ "enumtype": "u32"
+ }
+ ]
+ ],
+ "types": [
+ [
+ "address",
+ [
+ "vl_api_address_family_t",
+ "af"
+ ],
+ [
+ "vl_api_address_union_t",
+ "un"
+ ],
+ {
+ "crc": "0x09f11671"
+ }
+ ],
+ [
+ "prefix",
+ [
+ "vl_api_address_t",
+ "address"
+ ],
+ [
+ "u8",
+ "address_length"
+ ],
+ {
+ "crc": "0x0403aebc"
+ }
+ ],
+ [
+ "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"
+ }
+ ],
+ [
+ "ip6_prefix",
+ [
+ "vl_api_ip6_address_t",
+ "prefix"
+ ],
+ [
+ "u8",
+ "len"
+ ],
+ {
+ "crc": "0x779fd64f"
+ }
+ ],
+ [
+ "ip4_prefix",
+ [
+ "vl_api_ip4_address_t",
+ "prefix"
+ ],
+ [
+ "u8",
+ "len"
+ ],
+ {
+ "crc": "0xea8dc11d"
+ }
+ ]
+ ],
+ "aliases": {
+ "ip6_address": {
+ "length": 16,
+ "type": "u8"
+ },
+ "ip4_address": {
+ "length": 4,
+ "type": "u8"
+ }
+ }
+}
diff --git a/examples/bin_api/maps/maps.ba.go b/examples/bin_api/maps/maps.ba.go
new file mode 100644
index 0000000..8620c98
--- /dev/null
+++ b/examples/bin_api/maps/maps.ba.go
@@ -0,0 +1,1604 @@
+// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// source: map.api.json
+
+/*
+ Package maps is a generated from VPP binary API module 'map'.
+
+ It contains following objects:
+ 28 messages
+ 5 types
+ 2 aliases
+ 1 enum
+ 1 union
+ 14 services
+
+*/
+package maps
+
+import "git.fd.io/govpp.git/api"
+import "github.com/lunixbochs/struc"
+import "bytes"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = api.RegisterMessage
+var _ = struc.Pack
+var _ = bytes.NewBuffer
+
+// Services represents VPP binary API services:
+//
+// "services": {
+// "map_param_set_fragmentation": {
+// "reply": "map_param_set_fragmentation_reply"
+// },
+// "map_param_add_del_pre_resolve": {
+// "reply": "map_param_add_del_pre_resolve_reply"
+// },
+// "map_rule_dump": {
+// "reply": "map_rule_details",
+// "stream": true
+// },
+// "map_param_set_icmp6": {
+// "reply": "map_param_set_icmp6_reply"
+// },
+// "map_add_del_rule": {
+// "reply": "map_add_del_rule_reply"
+// },
+// "map_domain_dump": {
+// "reply": "map_domain_details",
+// "stream": true
+// },
+// "map_param_get": {
+// "reply": "map_param_get_reply"
+// },
+// "map_param_set_icmp": {
+// "reply": "map_param_set_icmp_reply"
+// },
+// "map_add_domain": {
+// "reply": "map_add_domain_reply"
+// },
+// "map_summary_stats": {
+// "reply": "map_summary_stats_reply"
+// },
+// "map_param_set_traffic_class": {
+// "reply": "map_param_set_traffic_class_reply"
+// },
+// "map_del_domain": {
+// "reply": "map_del_domain_reply"
+// },
+// "map_param_set_reassembly": {
+// "reply": "map_param_set_reassembly_reply"
+// },
+// "map_param_set_security_check": {
+// "reply": "map_param_set_security_check_reply"
+// }
+// },
+//
+type Services interface {
+ DumpMapDomain(*MapDomainDump) ([]*MapDomainDetails, error)
+ DumpMapRule(*MapRuleDump) ([]*MapRuleDetails, error)
+ MapAddDelRule(*MapAddDelRule) (*MapAddDelRuleReply, error)
+ MapAddDomain(*MapAddDomain) (*MapAddDomainReply, error)
+ MapDelDomain(*MapDelDomain) (*MapDelDomainReply, error)
+ MapParamAddDelPreResolve(*MapParamAddDelPreResolve) (*MapParamAddDelPreResolveReply, error)
+ MapParamGet(*MapParamGet) (*MapParamGetReply, error)
+ MapParamSetFragmentation(*MapParamSetFragmentation) (*MapParamSetFragmentationReply, error)
+ MapParamSetICMP(*MapParamSetICMP) (*MapParamSetICMPReply, error)
+ MapParamSetICMP6(*MapParamSetICMP6) (*MapParamSetICMP6Reply, error)
+ MapParamSetReassembly(*MapParamSetReassembly) (*MapParamSetReassemblyReply, error)
+ MapParamSetSecurityCheck(*MapParamSetSecurityCheck) (*MapParamSetSecurityCheckReply, error)
+ MapParamSetTrafficClass(*MapParamSetTrafficClass) (*MapParamSetTrafficClassReply, error)
+ MapSummaryStats(*MapSummaryStats) (*MapSummaryStatsReply, error)
+}
+
+/* Enums */
+
+// AddressFamily represents VPP binary API enum 'address_family':
+//
+// "address_family",
+// [
+// "ADDRESS_IP4",
+// 0
+// ],
+// [
+// "ADDRESS_IP6",
+// 1
+// ],
+// {
+// "enumtype": "u32"
+// }
+//
+type AddressFamily uint32
+
+const (
+ ADDRESS_IP4 AddressFamily = 0
+ ADDRESS_IP6 AddressFamily = 1
+)
+
+/* Aliases */
+
+// IP4Address represents VPP binary API alias 'ip4_address':
+//
+// "ip4_address": {
+// "length": 4,
+// "type": "u8"
+// }
+//
+type IP4Address [4]uint8
+
+// IP6Address represents VPP binary API alias 'ip6_address':
+//
+// "ip6_address": {
+// "length": 16,
+// "type": "u8"
+// },
+//
+type IP6Address [16]uint8
+
+/* Types */
+
+// Address represents VPP binary API type 'address':
+//
+// "address",
+// [
+// "vl_api_address_family_t",
+// "af"
+// ],
+// [
+// "vl_api_address_union_t",
+// "un"
+// ],
+// {
+// "crc": "0x09f11671"
+// }
+//
+type Address struct {
+ Af AddressFamily
+ Un AddressUnion
+}
+
+func (*Address) GetTypeName() string {
+ return "address"
+}
+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"
+}
+
+/* Unions */
+
+// AddressUnion represents VPP binary API union 'address_union':
+//
+// "address_union",
+// [
+// "vl_api_ip4_address_t",
+// "ip4"
+// ],
+// [
+// "vl_api_ip6_address_t",
+// "ip6"
+// ],
+// {
+// "crc": "0xd68a2fb4"
+// }
+//
+type AddressUnion struct {
+ Union_data [16]byte
+}
+
+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 (u *AddressUnion) GetIP6() (a IP6Address) {
+ var b = bytes.NewReader(u.Union_data[:])
+ struc.Unpack(b, &a)
+ return
+}
+
+/* Messages */
+
+// MapAddDomain represents VPP binary API message 'map_add_domain':
+//
+// "map_add_domain",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "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"
+// ],
+// [
+// "bool",
+// "is_translation"
+// ],
+// [
+// "bool",
+// "is_rfc6052"
+// ],
+// [
+// "u16",
+// "mtu"
+// ],
+// {
+// "crc": "0x7a64714e"
+// }
+//
+type MapAddDomain struct {
+ IP6Prefix IP6Prefix
+ IP4Prefix IP4Prefix
+ IP6Src IP6Prefix
+ EaBitsLen uint8
+ PsidOffset uint8
+ PsidLength uint8
+ IsTranslation bool
+ IsRfc6052 bool
+ Mtu uint16
+}
+
+func (*MapAddDomain) GetMessageName() string {
+ return "map_add_domain"
+}
+func (*MapAddDomain) GetCrcString() string {
+ return "7a64714e"
+}
+func (*MapAddDomain) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapAddDomainReply represents VPP binary API message 'map_add_domain_reply':
+//
+// "map_add_domain_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "index"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0x3e6d4e2c"
+// }
+//
+type MapAddDomainReply struct {
+ Index uint32
+ Retval int32
+}
+
+func (*MapAddDomainReply) GetMessageName() string {
+ return "map_add_domain_reply"
+}
+func (*MapAddDomainReply) GetCrcString() string {
+ return "3e6d4e2c"
+}
+func (*MapAddDomainReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MapDelDomain represents VPP binary API message 'map_del_domain':
+//
+// "map_del_domain",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "index"
+// ],
+// {
+// "crc": "0x8ac76db6"
+// }
+//
+type MapDelDomain struct {
+ Index uint32
+}
+
+func (*MapDelDomain) GetMessageName() string {
+ return "map_del_domain"
+}
+func (*MapDelDomain) GetCrcString() string {
+ return "8ac76db6"
+}
+func (*MapDelDomain) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapDelDomainReply represents VPP binary API message 'map_del_domain_reply':
+//
+// "map_del_domain_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+type MapDelDomainReply struct {
+ Retval int32
+}
+
+func (*MapDelDomainReply) GetMessageName() string {
+ return "map_del_domain_reply"
+}
+func (*MapDelDomainReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MapDelDomainReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// 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
+}
+
+// MapDomainDump represents VPP binary API message 'map_domain_dump':
+//
+// "map_domain_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
+//
+type MapDomainDump struct{}
+
+func (*MapDomainDump) GetMessageName() string {
+ return "map_domain_dump"
+}
+func (*MapDomainDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*MapDomainDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapDomainDetails represents VPP binary API message 'map_domain_details':
+//
+// "map_domain_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "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"
+// ],
+// [
+// "bool",
+// "is_translation"
+// ],
+// {
+// "crc": "0x7a986fe6"
+// }
+//
+type MapDomainDetails struct {
+ DomainIndex uint32
+ IP6Prefix IP6Prefix
+ IP4Prefix IP4Prefix
+ IP6Src IP6Prefix
+ EaBitsLen uint8
+ PsidOffset uint8
+ PsidLength uint8
+ Flags uint8
+ Mtu uint16
+ IsTranslation bool
+}
+
+func (*MapDomainDetails) GetMessageName() string {
+ return "map_domain_details"
+}
+func (*MapDomainDetails) GetCrcString() string {
+ return "7a986fe6"
+}
+func (*MapDomainDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MapRuleDump represents VPP binary API message 'map_rule_dump':
+//
+// "map_rule_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "domain_index"
+// ],
+// {
+// "crc": "0xe43e6ff6"
+// }
+//
+type MapRuleDump struct {
+ DomainIndex uint32
+}
+
+func (*MapRuleDump) GetMessageName() string {
+ return "map_rule_dump"
+}
+func (*MapRuleDump) GetCrcString() string {
+ return "e43e6ff6"
+}
+func (*MapRuleDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapRuleDetails represents VPP binary API message 'map_rule_details':
+//
+// "map_rule_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "vl_api_ip6_address_t",
+// "ip6_dst"
+// ],
+// [
+// "u16",
+// "psid"
+// ],
+// {
+// "crc": "0x4f932665"
+// }
+//
+type MapRuleDetails struct {
+ IP6Dst IP6Address
+ Psid uint16
+}
+
+func (*MapRuleDetails) GetMessageName() string {
+ return "map_rule_details"
+}
+func (*MapRuleDetails) GetCrcString() string {
+ return "4f932665"
+}
+func (*MapRuleDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MapSummaryStats represents VPP binary API message 'map_summary_stats':
+//
+// "map_summary_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
+//
+type MapSummaryStats struct{}
+
+func (*MapSummaryStats) GetMessageName() string {
+ return "map_summary_stats"
+}
+func (*MapSummaryStats) GetCrcString() string {
+ return "51077d14"
+}
+func (*MapSummaryStats) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapSummaryStatsReply represents VPP binary API message 'map_summary_stats_reply':
+//
+// "map_summary_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u64",
+// "total_bindings"
+// ],
+// [
+// "u64",
+// "total_pkts",
+// 2
+// ],
+// [
+// "u64",
+// "total_bytes",
+// 2
+// ],
+// [
+// "u64",
+// "total_ip4_fragments"
+// ],
+// [
+// "u64",
+// "total_security_check",
+// 2
+// ],
+// {
+// "crc": "0x0e4ace0e"
+// }
+//
+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 (*MapSummaryStatsReply) GetMessageName() string {
+ return "map_summary_stats_reply"
+}
+func (*MapSummaryStatsReply) GetCrcString() string {
+ return "0e4ace0e"
+}
+func (*MapSummaryStatsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MapParamSetFragmentation represents VPP binary API message 'map_param_set_fragmentation':
+//
+// "map_param_set_fragmentation",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "bool",
+// "inner"
+// ],
+// [
+// "bool",
+// "ignore_df"
+// ],
+// {
+// "crc": "0x9ff54d90"
+// }
+//
+type MapParamSetFragmentation struct {
+ Inner bool
+ IgnoreDf bool
+}
+
+func (*MapParamSetFragmentation) GetMessageName() string {
+ return "map_param_set_fragmentation"
+}
+func (*MapParamSetFragmentation) GetCrcString() string {
+ return "9ff54d90"
+}
+func (*MapParamSetFragmentation) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapParamSetFragmentationReply represents VPP binary API message 'map_param_set_fragmentation_reply':
+//
+// "map_param_set_fragmentation_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+type MapParamSetFragmentationReply struct {
+ Retval int32
+}
+
+func (*MapParamSetFragmentationReply) GetMessageName() string {
+ return "map_param_set_fragmentation_reply"
+}
+func (*MapParamSetFragmentationReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MapParamSetFragmentationReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MapParamSetICMP represents VPP binary API message 'map_param_set_icmp':
+//
+// "map_param_set_icmp",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "vl_api_ip4_address_t",
+// "ip4_err_relay_src"
+// ],
+// {
+// "crc": "0x4c0a4fd2"
+// }
+//
+type MapParamSetICMP struct {
+ IP4ErrRelaySrc IP4Address
+}
+
+func (*MapParamSetICMP) GetMessageName() string {
+ return "map_param_set_icmp"
+}
+func (*MapParamSetICMP) GetCrcString() string {
+ return "4c0a4fd2"
+}
+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",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "bool",
+// "enable_unreachable"
+// ],
+// {
+// "crc": "0x5d01f8c1"
+// }
+//
+type MapParamSetICMP6 struct {
+ EnableUnreachable bool
+}
+
+func (*MapParamSetICMP6) GetMessageName() string {
+ return "map_param_set_icmp6"
+}
+func (*MapParamSetICMP6) GetCrcString() string {
+ return "5d01f8c1"
+}
+func (*MapParamSetICMP6) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapParamSetICMP6Reply represents VPP binary API message 'map_param_set_icmp6_reply':
+//
+// "map_param_set_icmp6_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+type MapParamSetICMP6Reply struct {
+ Retval int32
+}
+
+func (*MapParamSetICMP6Reply) GetMessageName() string {
+ return "map_param_set_icmp6_reply"
+}
+func (*MapParamSetICMP6Reply) GetCrcString() string {
+ return "e8d4e804"
+}
+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':
+//
+// "map_param_add_del_pre_resolve_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+type MapParamAddDelPreResolveReply struct {
+ Retval int32
+}
+
+func (*MapParamAddDelPreResolveReply) GetMessageName() string {
+ return "map_param_add_del_pre_resolve_reply"
+}
+func (*MapParamAddDelPreResolveReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MapParamAddDelPreResolveReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MapParamSetReassembly represents VPP binary API message 'map_param_set_reassembly':
+//
+// "map_param_set_reassembly",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "bool",
+// "is_ip6"
+// ],
+// [
+// "u16",
+// "lifetime_ms"
+// ],
+// [
+// "u16",
+// "pool_size"
+// ],
+// [
+// "u32",
+// "buffers"
+// ],
+// [
+// "f64",
+// "ht_ratio"
+// ],
+// {
+// "crc": "0x54172b10"
+// }
+//
+type MapParamSetReassembly struct {
+ IsIP6 bool
+ LifetimeMs uint16
+ PoolSize uint16
+ Buffers uint32
+ HtRatio float64
+}
+
+func (*MapParamSetReassembly) GetMessageName() string {
+ return "map_param_set_reassembly"
+}
+func (*MapParamSetReassembly) GetCrcString() string {
+ return "54172b10"
+}
+func (*MapParamSetReassembly) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapParamSetReassemblyReply represents VPP binary API message 'map_param_set_reassembly_reply':
+//
+// "map_param_set_reassembly_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+type MapParamSetReassemblyReply struct {
+ Retval int32
+}
+
+func (*MapParamSetReassemblyReply) GetMessageName() string {
+ return "map_param_set_reassembly_reply"
+}
+func (*MapParamSetReassemblyReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MapParamSetReassemblyReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MapParamSetSecurityCheck represents VPP binary API message 'map_param_set_security_check':
+//
+// "map_param_set_security_check",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "bool",
+// "enable"
+// ],
+// [
+// "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
+}
+
+// MapParamSetTrafficClass represents VPP binary API message 'map_param_set_traffic_class':
+//
+// "map_param_set_traffic_class",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "bool",
+// "copy"
+// ],
+// [
+// "u8",
+// "class"
+// ],
+// {
+// "crc": "0x007ee563"
+// }
+//
+type MapParamSetTrafficClass struct {
+ Copy bool
+ Class uint8
+}
+
+func (*MapParamSetTrafficClass) GetMessageName() string {
+ return "map_param_set_traffic_class"
+}
+func (*MapParamSetTrafficClass) GetCrcString() string {
+ return "007ee563"
+}
+func (*MapParamSetTrafficClass) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapParamSetTrafficClassReply represents VPP binary API message 'map_param_set_traffic_class_reply':
+//
+// "map_param_set_traffic_class_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+type MapParamSetTrafficClassReply struct {
+ Retval int32
+}
+
+func (*MapParamSetTrafficClassReply) GetMessageName() string {
+ return "map_param_set_traffic_class_reply"
+}
+func (*MapParamSetTrafficClassReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MapParamSetTrafficClassReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MapParamGet represents VPP binary API message 'map_param_get':
+//
+// "map_param_get",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
+//
+type MapParamGet struct{}
+
+func (*MapParamGet) GetMessageName() string {
+ return "map_param_get"
+}
+func (*MapParamGet) GetCrcString() string {
+ return "51077d14"
+}
+func (*MapParamGet) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapParamGetReply represents VPP binary API message 'map_param_get_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",
+// "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"
+// ],
+// [
+// "bool",
+// "sec_check_enable"
+// ],
+// [
+// "bool",
+// "sec_check_fragments"
+// ],
+// [
+// "bool",
+// "tc_copy"
+// ],
+// [
+// "u8",
+// "tc_class"
+// ],
+// {
+// "crc": "0xb40e9226"
+// }
+//
+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 (*MapParamGetReply) GetMessageName() string {
+ return "map_param_get_reply"
+}
+func (*MapParamGetReply) GetCrcString() string {
+ return "b40e9226"
+}
+func (*MapParamGetReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+func init() {
+ 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((*MapSummaryStats)(nil), "map.MapSummaryStats")
+ api.RegisterMessage((*MapSummaryStatsReply)(nil), "map.MapSummaryStatsReply")
+ 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((*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((*MapParamGet)(nil), "map.MapParamGet")
+ api.RegisterMessage((*MapParamGetReply)(nil), "map.MapParamGetReply")
+}
diff --git a/examples/bin_api/memif.api.json b/examples/bin_api/memif.api.json
index b0ff645..4399f1c 100644
--- a/examples/bin_api/memif.api.json
+++ b/examples/bin_api/memif.api.json
@@ -313,5 +313,6 @@
}
},
"enums": [],
- "types": []
+ "types": [],
+ "aliases": {}
}
diff --git a/examples/bin_api/memif/memif.ba.go b/examples/bin_api/memif/memif.ba.go
index ce8c9c0..c28d2f5 100644
--- a/examples/bin_api/memif/memif.ba.go
+++ b/examples/bin_api/memif/memif.ba.go
@@ -20,39 +20,69 @@ var _ = api.RegisterMessage
var _ = struc.Pack
var _ = bytes.NewBuffer
+// Services represents VPP binary API services:
+//
+// "services": {
+// "memif_delete": {
+// "reply": "memif_delete_reply"
+// },
+// "memif_socket_filename_add_del": {
+// "reply": "memif_socket_filename_add_del_reply"
+// },
+// "memif_create": {
+// "reply": "memif_create_reply"
+// },
+// "memif_socket_filename_dump": {
+// "reply": "memif_socket_filename_details",
+// "stream": true
+// },
+// "memif_dump": {
+// "reply": "memif_details",
+// "stream": true
+// }
+// },
+//
+type Services interface {
+ DumpMemif(*MemifDump) ([]*MemifDetails, error)
+ DumpMemifSocketFilename(*MemifSocketFilenameDump) ([]*MemifSocketFilenameDetails, error)
+ MemifCreate(*MemifCreate) (*MemifCreateReply, error)
+ MemifDelete(*MemifDelete) (*MemifDeleteReply, error)
+ MemifSocketFilenameAddDel(*MemifSocketFilenameAddDel) (*MemifSocketFilenameAddDelReply, error)
+}
+
/* Messages */
-// MemifSocketFilenameAddDel represents the VPP binary API message 'memif_socket_filename_add_del'.
+// 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"
-// }
+// "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
@@ -70,24 +100,24 @@ func (*MemifSocketFilenameAddDel) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MemifSocketFilenameAddDelReply represents the VPP binary API message 'memif_socket_filename_add_del_reply'.
+// 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"
-// }
+// "memif_socket_filename_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type MemifSocketFilenameAddDelReply struct {
Retval int32
@@ -103,66 +133,66 @@ func (*MemifSocketFilenameAddDelReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MemifCreate represents the VPP binary API message 'memif_create'.
+// MemifCreate represents VPP binary API message 'memif_create':
//
-// "memif_create",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "role"
-// ],
-// [
-// "u8",
-// "mode"
-// ],
-// [
-// "u8",
-// "rx_queues"
-// ],
-// [
-// "u8",
-// "tx_queues"
-// ],
-// [
-// "u32",
-// "id"
-// ],
-// [
-// "u32",
-// "socket_id"
-// ],
-// [
-// "u8",
-// "secret",
-// 24
-// ],
-// [
-// "u32",
-// "ring_size"
-// ],
-// [
-// "u16",
-// "buffer_size"
-// ],
-// [
-// "u8",
-// "hw_addr",
-// 6
-// ],
-// {
-// "crc": "0x6597cdb2"
-// }
+// "memif_create",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "role"
+// ],
+// [
+// "u8",
+// "mode"
+// ],
+// [
+// "u8",
+// "rx_queues"
+// ],
+// [
+// "u8",
+// "tx_queues"
+// ],
+// [
+// "u32",
+// "id"
+// ],
+// [
+// "u32",
+// "socket_id"
+// ],
+// [
+// "u8",
+// "secret",
+// 24
+// ],
+// [
+// "u32",
+// "ring_size"
+// ],
+// [
+// "u16",
+// "buffer_size"
+// ],
+// [
+// "u8",
+// "hw_addr",
+// 6
+// ],
+// {
+// "crc": "0x6597cdb2"
+// }
//
type MemifCreate struct {
Role uint8
@@ -187,28 +217,28 @@ func (*MemifCreate) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MemifCreateReply represents the VPP binary API message 'memif_create_reply'.
+// MemifCreateReply represents VPP binary API message 'memif_create_reply':
//
-// "memif_create_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0xfda5941f"
-// }
+// "memif_create_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
//
type MemifCreateReply struct {
Retval int32
@@ -225,28 +255,28 @@ func (*MemifCreateReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MemifDelete represents the VPP binary API message 'memif_delete'.
+// MemifDelete represents VPP binary API message 'memif_delete':
//
-// "memif_delete",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0x529cb13f"
-// }
+// "memif_delete",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
//
type MemifDelete struct {
SwIfIndex uint32
@@ -262,24 +292,24 @@ func (*MemifDelete) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MemifDeleteReply represents the VPP binary API message 'memif_delete_reply'.
+// MemifDeleteReply represents VPP binary API message 'memif_delete_reply':
//
-// "memif_delete_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// "memif_delete_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type MemifDeleteReply struct {
Retval int32
@@ -295,29 +325,29 @@ func (*MemifDeleteReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MemifSocketFilenameDetails represents the VPP binary API message 'memif_socket_filename_details'.
+// MemifSocketFilenameDetails represents VPP binary API message 'memif_socket_filename_details':
//
-// "memif_socket_filename_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "socket_id"
-// ],
-// [
-// "u8",
-// "socket_filename",
-// 128
-// ],
-// {
-// "crc": "0xe347e32f"
-// }
+// "memif_socket_filename_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "socket_id"
+// ],
+// [
+// "u8",
+// "socket_filename",
+// 128
+// ],
+// {
+// "crc": "0xe347e32f"
+// }
//
type MemifSocketFilenameDetails struct {
SocketID uint32
@@ -334,24 +364,24 @@ func (*MemifSocketFilenameDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MemifSocketFilenameDump represents the VPP binary API message 'memif_socket_filename_dump'.
+// MemifSocketFilenameDump represents VPP binary API message 'memif_socket_filename_dump':
//
-// "memif_socket_filename_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// "memif_socket_filename_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type MemifSocketFilenameDump struct{}
@@ -365,66 +395,66 @@ func (*MemifSocketFilenameDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// MemifDetails represents the VPP binary API message 'memif_details'.
+// MemifDetails represents VPP binary API message 'memif_details':
//
-// "memif_details",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "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",
-// "admin_up_down"
-// ],
-// [
-// "u8",
-// "link_up_down"
-// ],
-// {
-// "crc": "0x4f5a3397"
-// }
+// "memif_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "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",
+// "admin_up_down"
+// ],
+// [
+// "u8",
+// "link_up_down"
+// ],
+// {
+// "crc": "0x4f5a3397"
+// }
//
type MemifDetails struct {
SwIfIndex uint32
@@ -450,24 +480,24 @@ func (*MemifDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// MemifDump represents the VPP binary API message 'memif_dump'.
+// MemifDump represents VPP binary API message 'memif_dump':
//
-// "memif_dump",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// "memif_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type MemifDump struct{}
@@ -481,16 +511,6 @@ func (*MemifDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-/* Services */
-
-type Services interface {
- DumpMemif(*MemifDump) (*MemifDetails, error)
- DumpMemifSocketFilename(*MemifSocketFilenameDump) (*MemifSocketFilenameDetails, error)
- MemifCreate(*MemifCreate) (*MemifCreateReply, error)
- MemifDelete(*MemifDelete) (*MemifDeleteReply, error)
- MemifSocketFilenameAddDel(*MemifSocketFilenameAddDel) (*MemifSocketFilenameAddDelReply, error)
-}
-
func init() {
api.RegisterMessage((*MemifSocketFilenameAddDel)(nil), "memif.MemifSocketFilenameAddDel")
api.RegisterMessage((*MemifSocketFilenameAddDelReply)(nil), "memif.MemifSocketFilenameAddDelReply")
diff --git a/examples/bin_api/stats.api.json b/examples/bin_api/stats.api.json
index 9ac3640..31c957e 100644
--- a/examples/bin_api/stats.api.json
+++ b/examples/bin_api/stats.api.json
@@ -795,19 +795,19 @@
[
"u64",
"total_pkts",
- 2
+ 8
],
[
"u64",
"total_bytes",
- 2
+ 8
],
[
"f64",
"vector_rate"
],
{
- "crc": "0x32b87c56"
+ "crc": "0x82b5e46c"
}
],
[
@@ -917,9 +917,77 @@
{
"crc": "0x1ab5e649"
}
+ ],
+ [
+ "want_bier_neighbor_stats",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u32",
+ "enable"
+ ],
+ [
+ "u32",
+ "pid"
+ ],
+ {
+ "crc": "0xcfaccc1f"
+ }
+ ],
+ [
+ "want_bier_neighbor_stats_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
+ "vnet_bier_neighbor_counters",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "timestamp"
+ ],
+ [
+ "u32",
+ "count"
+ ],
+ [
+ "vl_api_bier_neighbor_counter_t",
+ "c",
+ 0,
+ "count"
+ ],
+ {
+ "crc": "0xee0481ce"
+ }
]
],
- "vl_api_version": "0xfc484aa",
+ "vl_api_version": "0xd3b29d42",
"unions": [],
"services": {
"want_ip4_fib_stats": {
@@ -955,6 +1023,12 @@
"vnet_get_summary_stats": {
"reply": "vnet_get_summary_stats_reply"
},
+ "want_bier_neighbor_stats": {
+ "reply": "want_bier_neighbor_stats_reply",
+ "events": [
+ "vnet_bier_neighbor_counters"
+ ]
+ },
"want_udp_encap_stats": {
"reply": "want_udp_encap_stats_reply",
"events": [
@@ -1135,6 +1209,134 @@
}
],
[
+ "fib_mpls_label",
+ [
+ "u8",
+ "is_uniform"
+ ],
+ [
+ "u32",
+ "label"
+ ],
+ [
+ "u8",
+ "ttl"
+ ],
+ [
+ "u8",
+ "exp"
+ ],
+ {
+ "crc": "0xc93bf35c"
+ }
+ ],
+ [
+ "fib_path",
+ [
+ "u32",
+ "sw_if_index"
+ ],
+ [
+ "u32",
+ "table_id"
+ ],
+ [
+ "u8",
+ "weight"
+ ],
+ [
+ "u8",
+ "preference"
+ ],
+ [
+ "u8",
+ "is_local"
+ ],
+ [
+ "u8",
+ "is_drop"
+ ],
+ [
+ "u8",
+ "is_udp_encap"
+ ],
+ [
+ "u8",
+ "is_unreach"
+ ],
+ [
+ "u8",
+ "is_prohibit"
+ ],
+ [
+ "u8",
+ "is_resolve_host"
+ ],
+ [
+ "u8",
+ "is_resolve_attached"
+ ],
+ [
+ "u8",
+ "is_dvr"
+ ],
+ [
+ "u8",
+ "is_source_lookup"
+ ],
+ [
+ "u8",
+ "afi"
+ ],
+ [
+ "u8",
+ "next_hop",
+ 16
+ ],
+ [
+ "u32",
+ "next_hop_id"
+ ],
+ [
+ "u32",
+ "rpf_id"
+ ],
+ [
+ "u32",
+ "via_label"
+ ],
+ [
+ "u8",
+ "n_labels"
+ ],
+ [
+ "vl_api_fib_mpls_label_t",
+ "label_stack",
+ 16
+ ],
+ {
+ "crc": "0xabe483ef"
+ }
+ ],
+ [
+ "bier_table_id",
+ [
+ "u8",
+ "bt_set"
+ ],
+ [
+ "u8",
+ "bt_sub_domain"
+ ],
+ [
+ "u8",
+ "bt_hdr_len_id"
+ ],
+ {
+ "crc": "0x435c691d"
+ }
+ ],
+ [
"ip4_fib_counter",
[
"u32",
@@ -1297,6 +1499,33 @@
{
"crc": "0x7107035f"
}
+ ],
+ [
+ "bier_neighbor_counter",
+ [
+ "vl_api_bier_table_id_t",
+ "tbl_id"
+ ],
+ [
+ "vl_api_fib_path_t",
+ "path"
+ ],
+ [
+ "u64",
+ "packets"
+ ],
+ [
+ "u64",
+ "bytes"
+ ],
+ {
+ "crc": "0x91fe1748"
+ }
]
- ]
+ ],
+ "aliases": {
+ "interface_index": {
+ "type": "u32"
+ }
+ }
}
diff --git a/examples/bin_api/stats/stats.ba.go b/examples/bin_api/stats/stats.ba.go
index 58c178f..97a6e60 100644
--- a/examples/bin_api/stats/stats.ba.go
+++ b/examples/bin_api/stats/stats.ba.go
@@ -5,9 +5,10 @@
Package stats is a generated from VPP binary API module 'stats'.
It contains following objects:
- 39 messages
- 10 types
- 14 services
+ 42 messages
+ 14 types
+ 1 alias
+ 15 services
*/
package stats
@@ -21,22 +22,136 @@ var _ = api.RegisterMessage
var _ = struc.Pack
var _ = bytes.NewBuffer
+// Services represents VPP binary API services:
+//
+// "services": {
+// "want_ip4_fib_stats": {
+// "reply": "want_ip4_fib_stats_reply",
+// "events": [
+// "vnet_ip4_fib_counters"
+// ]
+// },
+// "want_ip6_fib_stats": {
+// "reply": "want_ip6_fib_stats_reply",
+// "events": [
+// "vnet_ip6_fib_counters"
+// ]
+// },
+// "want_stats": {
+// "reply": "want_stats_reply"
+// },
+// "want_interface_simple_stats": {
+// "reply": "want_interface_simple_stats_reply",
+// "events": [
+// "vnet_interface_simple_counters"
+// ]
+// },
+// "stats_get_poller_delay": {
+// "reply": "stats_get_poller_delay_reply"
+// },
+// "want_per_interface_combined_stats": {
+// "reply": "want_per_interface_combined_stats_reply",
+// "events": [
+// "vnet_per_interface_combined_counters"
+// ]
+// },
+// "vnet_get_summary_stats": {
+// "reply": "vnet_get_summary_stats_reply"
+// },
+// "want_bier_neighbor_stats": {
+// "reply": "want_bier_neighbor_stats_reply",
+// "events": [
+// "vnet_bier_neighbor_counters"
+// ]
+// },
+// "want_udp_encap_stats": {
+// "reply": "want_udp_encap_stats_reply",
+// "events": [
+// "vnet_udp_encap_counters"
+// ]
+// },
+// "want_ip6_nbr_stats": {
+// "reply": "want_ip6_nbr_stats_reply",
+// "events": [
+// "vnet_ip6_nbr_counters"
+// ]
+// },
+// "want_ip4_mfib_stats": {
+// "reply": "want_ip4_mfib_stats_reply",
+// "events": [
+// "vnet_ip4_mfib_counters"
+// ]
+// },
+// "want_ip6_mfib_stats": {
+// "reply": "want_ip6_mfib_stats_reply",
+// "events": [
+// "vnet_ip6_mfib_counters"
+// ]
+// },
+// "want_per_interface_simple_stats": {
+// "reply": "want_per_interface_simple_stats_reply",
+// "events": [
+// "vnet_per_interface_simple_counters"
+// ]
+// },
+// "want_interface_combined_stats": {
+// "reply": "want_interface_combined_stats_reply",
+// "events": [
+// "vnet_interface_combined_counters"
+// ]
+// },
+// "want_ip4_nbr_stats": {
+// "reply": "want_ip4_nbr_stats_reply",
+// "events": [
+// "vnet_ip4_nbr_counters"
+// ]
+// }
+// },
+//
+type Services interface {
+ StatsGetPollerDelay(*StatsGetPollerDelay) (*StatsGetPollerDelayReply, error)
+ VnetGetSummaryStats(*VnetGetSummaryStats) (*VnetGetSummaryStatsReply, error)
+ WantBierNeighborStats(*WantBierNeighborStats) (*WantBierNeighborStatsReply, error)
+ WantInterfaceCombinedStats(*WantInterfaceCombinedStats) (*WantInterfaceCombinedStatsReply, error)
+ WantInterfaceSimpleStats(*WantInterfaceSimpleStats) (*WantInterfaceSimpleStatsReply, error)
+ WantIP4FibStats(*WantIP4FibStats) (*WantIP4FibStatsReply, error)
+ WantIP4MfibStats(*WantIP4MfibStats) (*WantIP4MfibStatsReply, error)
+ WantIP4NbrStats(*WantIP4NbrStats) (*WantIP4NbrStatsReply, error)
+ WantIP6FibStats(*WantIP6FibStats) (*WantIP6FibStatsReply, error)
+ WantIP6MfibStats(*WantIP6MfibStats) (*WantIP6MfibStatsReply, error)
+ WantIP6NbrStats(*WantIP6NbrStats) (*WantIP6NbrStatsReply, error)
+ WantPerInterfaceCombinedStats(*WantPerInterfaceCombinedStats) (*WantPerInterfaceCombinedStatsReply, error)
+ WantPerInterfaceSimpleStats(*WantPerInterfaceSimpleStats) (*WantPerInterfaceSimpleStatsReply, error)
+ WantStats(*WantStats) (*WantStatsReply, error)
+ WantUDPEncapStats(*WantUDPEncapStats) (*WantUDPEncapStatsReply, error)
+}
+
+/* Aliases */
+
+// InterfaceIndex represents VPP binary API alias 'interface_index':
+//
+// "interface_index": {
+// "type": "u32"
+// }
+//
+type InterfaceIndex uint32
+
/* Types */
-// VlibCounter represents the VPP binary API type 'vlib_counter'.
-//
-// "vlib_counter",
-// [
-// "u64",
-// "packets"
-// ],
-// [
-// "u64",
-// "bytes"
-// ],
-// {
-// "crc": "0xce2325a2"
-// }
+// VlibCounter represents VPP binary API type 'vlib_counter':
+//
+// "vlib_counter",
+// [
+// "u64",
+// "packets"
+// ],
+// [
+// "u64",
+// "bytes"
+// ],
+// {
+// "crc": "0xce2325a2"
+// }
//
type VlibCounter struct {
Packets uint64
@@ -50,80 +165,80 @@ func (*VlibCounter) GetCrcString() string {
return "ce2325a2"
}
-// VnetCombinedCounter represents the VPP binary API type 'vnet_combined_counter'.
-//
-// "vnet_combined_counter",
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u64",
-// "rx_packets"
-// ],
-// [
-// "u64",
-// "rx_bytes"
-// ],
-// [
-// "u64",
-// "rx_unicast_packets"
-// ],
-// [
-// "u64",
-// "rx_unicast_bytes"
-// ],
-// [
-// "u64",
-// "rx_multicast_packets"
-// ],
-// [
-// "u64",
-// "rx_multicast_bytes"
-// ],
-// [
-// "u64",
-// "rx_broadcast_packets"
-// ],
-// [
-// "u64",
-// "rx_broadcast_bytes"
-// ],
-// [
-// "u64",
-// "tx_packets"
-// ],
-// [
-// "u64",
-// "tx_bytes"
-// ],
-// [
-// "u64",
-// "tx_unicast_packets"
-// ],
-// [
-// "u64",
-// "tx_unicast_bytes"
-// ],
-// [
-// "u64",
-// "tx_multicast_packets"
-// ],
-// [
-// "u64",
-// "tx_multicast_bytes"
-// ],
-// [
-// "u64",
-// "tx_broadcast_packets"
-// ],
-// [
-// "u64",
-// "tx_broadcast_bytes"
-// ],
-// {
-// "crc": "0x20905ca4"
-// }
+// VnetCombinedCounter represents VPP binary API type 'vnet_combined_counter':
+//
+// "vnet_combined_counter",
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u64",
+// "rx_packets"
+// ],
+// [
+// "u64",
+// "rx_bytes"
+// ],
+// [
+// "u64",
+// "rx_unicast_packets"
+// ],
+// [
+// "u64",
+// "rx_unicast_bytes"
+// ],
+// [
+// "u64",
+// "rx_multicast_packets"
+// ],
+// [
+// "u64",
+// "rx_multicast_bytes"
+// ],
+// [
+// "u64",
+// "rx_broadcast_packets"
+// ],
+// [
+// "u64",
+// "rx_broadcast_bytes"
+// ],
+// [
+// "u64",
+// "tx_packets"
+// ],
+// [
+// "u64",
+// "tx_bytes"
+// ],
+// [
+// "u64",
+// "tx_unicast_packets"
+// ],
+// [
+// "u64",
+// "tx_unicast_bytes"
+// ],
+// [
+// "u64",
+// "tx_multicast_packets"
+// ],
+// [
+// "u64",
+// "tx_multicast_bytes"
+// ],
+// [
+// "u64",
+// "tx_broadcast_packets"
+// ],
+// [
+// "u64",
+// "tx_broadcast_bytes"
+// ],
+// {
+// "crc": "0x20905ca4"
+// }
//
type VnetCombinedCounter struct {
SwIfIndex uint32
@@ -152,52 +267,52 @@ func (*VnetCombinedCounter) GetCrcString() string {
return "20905ca4"
}
-// VnetSimpleCounter represents the VPP binary API type 'vnet_simple_counter'.
-//
-// "vnet_simple_counter",
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u64",
-// "drop"
-// ],
-// [
-// "u64",
-// "punt"
-// ],
-// [
-// "u64",
-// "rx_ip4"
-// ],
-// [
-// "u64",
-// "rx_ip6"
-// ],
-// [
-// "u64",
-// "rx_no_buffer"
-// ],
-// [
-// "u64",
-// "rx_miss"
-// ],
-// [
-// "u64",
-// "rx_error"
-// ],
-// [
-// "u64",
-// "tx_error"
-// ],
-// [
-// "u64",
-// "rx_mpls"
-// ],
-// {
-// "crc": "0x8bd65e2d"
-// }
+// VnetSimpleCounter represents VPP binary API type 'vnet_simple_counter':
+//
+// "vnet_simple_counter",
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u64",
+// "drop"
+// ],
+// [
+// "u64",
+// "punt"
+// ],
+// [
+// "u64",
+// "rx_ip4"
+// ],
+// [
+// "u64",
+// "rx_ip6"
+// ],
+// [
+// "u64",
+// "rx_no_buffer"
+// ],
+// [
+// "u64",
+// "rx_miss"
+// ],
+// [
+// "u64",
+// "rx_error"
+// ],
+// [
+// "u64",
+// "tx_error"
+// ],
+// [
+// "u64",
+// "rx_mpls"
+// ],
+// {
+// "crc": "0x8bd65e2d"
+// }
//
type VnetSimpleCounter struct {
SwIfIndex uint32
@@ -219,28 +334,216 @@ func (*VnetSimpleCounter) GetCrcString() string {
return "8bd65e2d"
}
-// IP4FibCounter represents the VPP binary API type 'ip4_fib_counter'.
-//
-// "ip4_fib_counter",
-// [
-// "u32",
-// "address"
-// ],
-// [
-// "u8",
-// "address_length"
-// ],
-// [
-// "u64",
-// "packets"
-// ],
-// [
-// "u64",
-// "bytes"
-// ],
-// {
-// "crc": "0xa6ceb0c9"
-// }
+// FibMplsLabel represents VPP binary API type 'fib_mpls_label':
+//
+// "fib_mpls_label",
+// [
+// "u8",
+// "is_uniform"
+// ],
+// [
+// "u32",
+// "label"
+// ],
+// [
+// "u8",
+// "ttl"
+// ],
+// [
+// "u8",
+// "exp"
+// ],
+// {
+// "crc": "0xc93bf35c"
+// }
+//
+type FibMplsLabel struct {
+ IsUniform uint8
+ Label uint32
+ TTL uint8
+ Exp uint8
+}
+
+func (*FibMplsLabel) GetTypeName() string {
+ return "fib_mpls_label"
+}
+func (*FibMplsLabel) GetCrcString() string {
+ return "c93bf35c"
+}
+
+// FibPath represents VPP binary API type 'fib_path':
+//
+// "fib_path",
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "table_id"
+// ],
+// [
+// "u8",
+// "weight"
+// ],
+// [
+// "u8",
+// "preference"
+// ],
+// [
+// "u8",
+// "is_local"
+// ],
+// [
+// "u8",
+// "is_drop"
+// ],
+// [
+// "u8",
+// "is_udp_encap"
+// ],
+// [
+// "u8",
+// "is_unreach"
+// ],
+// [
+// "u8",
+// "is_prohibit"
+// ],
+// [
+// "u8",
+// "is_resolve_host"
+// ],
+// [
+// "u8",
+// "is_resolve_attached"
+// ],
+// [
+// "u8",
+// "is_dvr"
+// ],
+// [
+// "u8",
+// "is_source_lookup"
+// ],
+// [
+// "u8",
+// "afi"
+// ],
+// [
+// "u8",
+// "next_hop",
+// 16
+// ],
+// [
+// "u32",
+// "next_hop_id"
+// ],
+// [
+// "u32",
+// "rpf_id"
+// ],
+// [
+// "u32",
+// "via_label"
+// ],
+// [
+// "u8",
+// "n_labels"
+// ],
+// [
+// "vl_api_fib_mpls_label_t",
+// "label_stack",
+// 16
+// ],
+// {
+// "crc": "0xabe483ef"
+// }
+//
+type FibPath struct {
+ SwIfIndex uint32
+ TableID uint32
+ Weight uint8
+ Preference uint8
+ IsLocal uint8
+ IsDrop uint8
+ IsUDPEncap uint8
+ IsUnreach uint8
+ IsProhibit uint8
+ IsResolveHost uint8
+ IsResolveAttached uint8
+ IsDvr uint8
+ IsSourceLookup uint8
+ Afi uint8
+ NextHop []byte `struc:"[16]byte"`
+ NextHopID uint32
+ RpfID uint32
+ ViaLabel uint32
+ NLabels uint8
+ LabelStack []FibMplsLabel `struc:"[16]FibMplsLabel"`
+}
+
+func (*FibPath) GetTypeName() string {
+ return "fib_path"
+}
+func (*FibPath) GetCrcString() string {
+ return "abe483ef"
+}
+
+// BierTableID represents VPP binary API type 'bier_table_id':
+//
+// "bier_table_id",
+// [
+// "u8",
+// "bt_set"
+// ],
+// [
+// "u8",
+// "bt_sub_domain"
+// ],
+// [
+// "u8",
+// "bt_hdr_len_id"
+// ],
+// {
+// "crc": "0x435c691d"
+// }
+//
+type BierTableID struct {
+ BtSet uint8
+ BtSubDomain uint8
+ BtHdrLenID uint8
+}
+
+func (*BierTableID) GetTypeName() string {
+ return "bier_table_id"
+}
+func (*BierTableID) GetCrcString() string {
+ return "435c691d"
+}
+
+// IP4FibCounter represents VPP binary API type 'ip4_fib_counter':
+//
+// "ip4_fib_counter",
+// [
+// "u32",
+// "address"
+// ],
+// [
+// "u8",
+// "address_length"
+// ],
+// [
+// "u64",
+// "packets"
+// ],
+// [
+// "u64",
+// "bytes"
+// ],
+// {
+// "crc": "0xa6ceb0c9"
+// }
//
type IP4FibCounter struct {
Address uint32
@@ -256,34 +559,34 @@ func (*IP4FibCounter) GetCrcString() string {
return "a6ceb0c9"
}
-// IP4MfibCounter represents the VPP binary API type 'ip4_mfib_counter'.
-//
-// "ip4_mfib_counter",
-// [
-// "u8",
-// "source",
-// 4
-// ],
-// [
-// "u8",
-// "group",
-// 4
-// ],
-// [
-// "u8",
-// "group_length"
-// ],
-// [
-// "u64",
-// "packets"
-// ],
-// [
-// "u64",
-// "bytes"
-// ],
-// {
-// "crc": "0x2cee4721"
-// }
+// IP4MfibCounter represents VPP binary API type 'ip4_mfib_counter':
+//
+// "ip4_mfib_counter",
+// [
+// "u8",
+// "source",
+// 4
+// ],
+// [
+// "u8",
+// "group",
+// 4
+// ],
+// [
+// "u8",
+// "group_length"
+// ],
+// [
+// "u64",
+// "packets"
+// ],
+// [
+// "u64",
+// "bytes"
+// ],
+// {
+// "crc": "0x2cee4721"
+// }
//
type IP4MfibCounter struct {
Source []byte `struc:"[4]byte"`
@@ -300,28 +603,28 @@ func (*IP4MfibCounter) GetCrcString() string {
return "2cee4721"
}
-// IP4NbrCounter represents the VPP binary API type 'ip4_nbr_counter'.
-//
-// "ip4_nbr_counter",
-// [
-// "u32",
-// "address"
-// ],
-// [
-// "u8",
-// "link_type"
-// ],
-// [
-// "u64",
-// "packets"
-// ],
-// [
-// "u64",
-// "bytes"
-// ],
-// {
-// "crc": "0xb9f974d6"
-// }
+// IP4NbrCounter represents VPP binary API type 'ip4_nbr_counter':
+//
+// "ip4_nbr_counter",
+// [
+// "u32",
+// "address"
+// ],
+// [
+// "u8",
+// "link_type"
+// ],
+// [
+// "u64",
+// "packets"
+// ],
+// [
+// "u64",
+// "bytes"
+// ],
+// {
+// "crc": "0xb9f974d6"
+// }
//
type IP4NbrCounter struct {
Address uint32
@@ -337,29 +640,29 @@ func (*IP4NbrCounter) GetCrcString() string {
return "b9f974d6"
}
-// IP6FibCounter represents the VPP binary API type 'ip6_fib_counter'.
-//
-// "ip6_fib_counter",
-// [
-// "u64",
-// "address",
-// 2
-// ],
-// [
-// "u8",
-// "address_length"
-// ],
-// [
-// "u64",
-// "packets"
-// ],
-// [
-// "u64",
-// "bytes"
-// ],
-// {
-// "crc": "0xf1197efb"
-// }
+// IP6FibCounter represents VPP binary API type 'ip6_fib_counter':
+//
+// "ip6_fib_counter",
+// [
+// "u64",
+// "address",
+// 2
+// ],
+// [
+// "u8",
+// "address_length"
+// ],
+// [
+// "u64",
+// "packets"
+// ],
+// [
+// "u64",
+// "bytes"
+// ],
+// {
+// "crc": "0xf1197efb"
+// }
//
type IP6FibCounter struct {
Address []uint64 `struc:"[2]uint64"`
@@ -375,34 +678,34 @@ func (*IP6FibCounter) GetCrcString() string {
return "f1197efb"
}
-// IP6MfibCounter represents the VPP binary API type 'ip6_mfib_counter'.
-//
-// "ip6_mfib_counter",
-// [
-// "u8",
-// "source",
-// 16
-// ],
-// [
-// "u8",
-// "group",
-// 16
-// ],
-// [
-// "u8",
-// "group_length"
-// ],
-// [
-// "u64",
-// "packets"
-// ],
-// [
-// "u64",
-// "bytes"
-// ],
-// {
-// "crc": "0x90a9590e"
-// }
+// IP6MfibCounter represents VPP binary API type 'ip6_mfib_counter':
+//
+// "ip6_mfib_counter",
+// [
+// "u8",
+// "source",
+// 16
+// ],
+// [
+// "u8",
+// "group",
+// 16
+// ],
+// [
+// "u8",
+// "group_length"
+// ],
+// [
+// "u64",
+// "packets"
+// ],
+// [
+// "u64",
+// "bytes"
+// ],
+// {
+// "crc": "0x90a9590e"
+// }
//
type IP6MfibCounter struct {
Source []byte `struc:"[16]byte"`
@@ -419,29 +722,29 @@ func (*IP6MfibCounter) GetCrcString() string {
return "90a9590e"
}
-// IP6NbrCounter represents the VPP binary API type 'ip6_nbr_counter'.
-//
-// "ip6_nbr_counter",
-// [
-// "u64",
-// "address",
-// 2
-// ],
-// [
-// "u8",
-// "link_type"
-// ],
-// [
-// "u64",
-// "packets"
-// ],
-// [
-// "u64",
-// "bytes"
-// ],
-// {
-// "crc": "0x2d755474"
-// }
+// IP6NbrCounter represents VPP binary API type 'ip6_nbr_counter':
+//
+// "ip6_nbr_counter",
+// [
+// "u64",
+// "address",
+// 2
+// ],
+// [
+// "u8",
+// "link_type"
+// ],
+// [
+// "u64",
+// "packets"
+// ],
+// [
+// "u64",
+// "bytes"
+// ],
+// {
+// "crc": "0x2d755474"
+// }
//
type IP6NbrCounter struct {
Address []uint64 `struc:"[2]uint64"`
@@ -457,24 +760,24 @@ func (*IP6NbrCounter) GetCrcString() string {
return "2d755474"
}
-// UDPEncapCounter represents the VPP binary API type 'udp_encap_counter'.
-//
-// "udp_encap_counter",
-// [
-// "u32",
-// "id"
-// ],
-// [
-// "u64",
-// "packets"
-// ],
-// [
-// "u64",
-// "bytes"
-// ],
-// {
-// "crc": "0x7107035f"
-// }
+// UDPEncapCounter represents VPP binary API type 'udp_encap_counter':
+//
+// "udp_encap_counter",
+// [
+// "u32",
+// "id"
+// ],
+// [
+// "u64",
+// "packets"
+// ],
+// [
+// "u64",
+// "bytes"
+// ],
+// {
+// "crc": "0x7107035f"
+// }
//
type UDPEncapCounter struct {
ID uint32
@@ -489,34 +792,71 @@ func (*UDPEncapCounter) GetCrcString() string {
return "7107035f"
}
+// BierNeighborCounter represents VPP binary API type 'bier_neighbor_counter':
+//
+// "bier_neighbor_counter",
+// [
+// "vl_api_bier_table_id_t",
+// "tbl_id"
+// ],
+// [
+// "vl_api_fib_path_t",
+// "path"
+// ],
+// [
+// "u64",
+// "packets"
+// ],
+// [
+// "u64",
+// "bytes"
+// ],
+// {
+// "crc": "0x91fe1748"
+// }
+//
+type BierNeighborCounter struct {
+ TblID BierTableID
+ Path FibPath
+ Packets uint64
+ Bytes uint64
+}
+
+func (*BierNeighborCounter) GetTypeName() string {
+ return "bier_neighbor_counter"
+}
+func (*BierNeighborCounter) GetCrcString() string {
+ return "91fe1748"
+}
+
/* Messages */
-// WantStats represents the VPP binary API message 'want_stats'.
-//
-// "want_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0x476f5a08"
-// }
+// WantStats represents VPP binary API message 'want_stats':
+//
+// "want_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x476f5a08"
+// }
//
type WantStats struct {
EnableDisable uint32
@@ -533,24 +873,24 @@ func (*WantStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantStatsReply represents the VPP binary API message 'want_stats_reply'.
-//
-// "want_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantStatsReply represents VPP binary API message 'want_stats_reply':
+//
+// "want_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantStatsReply struct {
Retval int32
@@ -566,32 +906,32 @@ func (*WantStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantInterfaceSimpleStats represents the VPP binary API message 'want_interface_simple_stats'.
-//
-// "want_interface_simple_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0x476f5a08"
-// }
+// WantInterfaceSimpleStats represents VPP binary API message 'want_interface_simple_stats':
+//
+// "want_interface_simple_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x476f5a08"
+// }
//
type WantInterfaceSimpleStats struct {
EnableDisable uint32
@@ -608,24 +948,24 @@ func (*WantInterfaceSimpleStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantInterfaceSimpleStatsReply represents the VPP binary API message 'want_interface_simple_stats_reply'.
-//
-// "want_interface_simple_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantInterfaceSimpleStatsReply represents VPP binary API message 'want_interface_simple_stats_reply':
+//
+// "want_interface_simple_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantInterfaceSimpleStatsReply struct {
Retval int32
@@ -641,42 +981,42 @@ func (*WantInterfaceSimpleStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantPerInterfaceSimpleStats represents the VPP binary API message 'want_per_interface_simple_stats'.
-//
-// "want_per_interface_simple_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// [
-// "u32",
-// "num"
-// ],
-// [
-// "u32",
-// "sw_ifs",
-// 0,
-// "num"
-// ],
-// {
-// "crc": "0x729d04f1"
-// }
+// WantPerInterfaceSimpleStats represents VPP binary API message 'want_per_interface_simple_stats':
+//
+// "want_per_interface_simple_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// [
+// "u32",
+// "num"
+// ],
+// [
+// "u32",
+// "sw_ifs",
+// 0,
+// "num"
+// ],
+// {
+// "crc": "0x729d04f1"
+// }
//
type WantPerInterfaceSimpleStats struct {
EnableDisable uint32
@@ -695,24 +1035,24 @@ func (*WantPerInterfaceSimpleStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantPerInterfaceSimpleStatsReply represents the VPP binary API message 'want_per_interface_simple_stats_reply'.
-//
-// "want_per_interface_simple_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantPerInterfaceSimpleStatsReply represents VPP binary API message 'want_per_interface_simple_stats_reply':
+//
+// "want_per_interface_simple_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantPerInterfaceSimpleStatsReply struct {
Retval int32
@@ -728,32 +1068,32 @@ func (*WantPerInterfaceSimpleStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantInterfaceCombinedStats represents the VPP binary API message 'want_interface_combined_stats'.
-//
-// "want_interface_combined_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0x476f5a08"
-// }
+// WantInterfaceCombinedStats represents VPP binary API message 'want_interface_combined_stats':
+//
+// "want_interface_combined_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x476f5a08"
+// }
//
type WantInterfaceCombinedStats struct {
EnableDisable uint32
@@ -770,24 +1110,24 @@ func (*WantInterfaceCombinedStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantInterfaceCombinedStatsReply represents the VPP binary API message 'want_interface_combined_stats_reply'.
-//
-// "want_interface_combined_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantInterfaceCombinedStatsReply represents VPP binary API message 'want_interface_combined_stats_reply':
+//
+// "want_interface_combined_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantInterfaceCombinedStatsReply struct {
Retval int32
@@ -803,42 +1143,42 @@ func (*WantInterfaceCombinedStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantPerInterfaceCombinedStats represents the VPP binary API message 'want_per_interface_combined_stats'.
-//
-// "want_per_interface_combined_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// [
-// "u32",
-// "num"
-// ],
-// [
-// "u32",
-// "sw_ifs",
-// 0,
-// "num"
-// ],
-// {
-// "crc": "0x729d04f1"
-// }
+// WantPerInterfaceCombinedStats represents VPP binary API message 'want_per_interface_combined_stats':
+//
+// "want_per_interface_combined_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// [
+// "u32",
+// "num"
+// ],
+// [
+// "u32",
+// "sw_ifs",
+// 0,
+// "num"
+// ],
+// {
+// "crc": "0x729d04f1"
+// }
//
type WantPerInterfaceCombinedStats struct {
EnableDisable uint32
@@ -857,24 +1197,24 @@ func (*WantPerInterfaceCombinedStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantPerInterfaceCombinedStatsReply represents the VPP binary API message 'want_per_interface_combined_stats_reply'.
-//
-// "want_per_interface_combined_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantPerInterfaceCombinedStatsReply represents VPP binary API message 'want_per_interface_combined_stats_reply':
+//
+// "want_per_interface_combined_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantPerInterfaceCombinedStatsReply struct {
Retval int32
@@ -890,32 +1230,32 @@ func (*WantPerInterfaceCombinedStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantIP4FibStats represents the VPP binary API message 'want_ip4_fib_stats'.
-//
-// "want_ip4_fib_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0x476f5a08"
-// }
+// WantIP4FibStats represents VPP binary API message 'want_ip4_fib_stats':
+//
+// "want_ip4_fib_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x476f5a08"
+// }
//
type WantIP4FibStats struct {
EnableDisable uint32
@@ -932,24 +1272,24 @@ func (*WantIP4FibStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantIP4FibStatsReply represents the VPP binary API message 'want_ip4_fib_stats_reply'.
-//
-// "want_ip4_fib_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantIP4FibStatsReply represents VPP binary API message 'want_ip4_fib_stats_reply':
+//
+// "want_ip4_fib_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantIP4FibStatsReply struct {
Retval int32
@@ -965,32 +1305,32 @@ func (*WantIP4FibStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantIP6FibStats represents the VPP binary API message 'want_ip6_fib_stats'.
-//
-// "want_ip6_fib_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0x476f5a08"
-// }
+// WantIP6FibStats represents VPP binary API message 'want_ip6_fib_stats':
+//
+// "want_ip6_fib_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x476f5a08"
+// }
//
type WantIP6FibStats struct {
EnableDisable uint32
@@ -1007,24 +1347,24 @@ func (*WantIP6FibStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantIP6FibStatsReply represents the VPP binary API message 'want_ip6_fib_stats_reply'.
-//
-// "want_ip6_fib_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantIP6FibStatsReply represents VPP binary API message 'want_ip6_fib_stats_reply':
+//
+// "want_ip6_fib_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantIP6FibStatsReply struct {
Retval int32
@@ -1040,32 +1380,32 @@ func (*WantIP6FibStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantIP4MfibStats represents the VPP binary API message 'want_ip4_mfib_stats'.
-//
-// "want_ip4_mfib_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0x476f5a08"
-// }
+// WantIP4MfibStats represents VPP binary API message 'want_ip4_mfib_stats':
+//
+// "want_ip4_mfib_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x476f5a08"
+// }
//
type WantIP4MfibStats struct {
EnableDisable uint32
@@ -1082,24 +1422,24 @@ func (*WantIP4MfibStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantIP4MfibStatsReply represents the VPP binary API message 'want_ip4_mfib_stats_reply'.
-//
-// "want_ip4_mfib_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantIP4MfibStatsReply represents VPP binary API message 'want_ip4_mfib_stats_reply':
+//
+// "want_ip4_mfib_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantIP4MfibStatsReply struct {
Retval int32
@@ -1115,32 +1455,32 @@ func (*WantIP4MfibStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantIP6MfibStats represents the VPP binary API message 'want_ip6_mfib_stats'.
-//
-// "want_ip6_mfib_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0x476f5a08"
-// }
+// WantIP6MfibStats represents VPP binary API message 'want_ip6_mfib_stats':
+//
+// "want_ip6_mfib_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x476f5a08"
+// }
//
type WantIP6MfibStats struct {
EnableDisable uint32
@@ -1157,24 +1497,24 @@ func (*WantIP6MfibStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantIP6MfibStatsReply represents the VPP binary API message 'want_ip6_mfib_stats_reply'.
-//
-// "want_ip6_mfib_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantIP6MfibStatsReply represents VPP binary API message 'want_ip6_mfib_stats_reply':
+//
+// "want_ip6_mfib_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantIP6MfibStatsReply struct {
Retval int32
@@ -1190,32 +1530,32 @@ func (*WantIP6MfibStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantIP4NbrStats represents the VPP binary API message 'want_ip4_nbr_stats'.
-//
-// "want_ip4_nbr_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0x476f5a08"
-// }
+// WantIP4NbrStats represents VPP binary API message 'want_ip4_nbr_stats':
+//
+// "want_ip4_nbr_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x476f5a08"
+// }
//
type WantIP4NbrStats struct {
EnableDisable uint32
@@ -1232,24 +1572,24 @@ func (*WantIP4NbrStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantIP4NbrStatsReply represents the VPP binary API message 'want_ip4_nbr_stats_reply'.
-//
-// "want_ip4_nbr_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantIP4NbrStatsReply represents VPP binary API message 'want_ip4_nbr_stats_reply':
+//
+// "want_ip4_nbr_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantIP4NbrStatsReply struct {
Retval int32
@@ -1265,32 +1605,32 @@ func (*WantIP4NbrStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantIP6NbrStats represents the VPP binary API message 'want_ip6_nbr_stats'.
-//
-// "want_ip6_nbr_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable_disable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0x476f5a08"
-// }
+// WantIP6NbrStats represents VPP binary API message 'want_ip6_nbr_stats':
+//
+// "want_ip6_nbr_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x476f5a08"
+// }
//
type WantIP6NbrStats struct {
EnableDisable uint32
@@ -1307,24 +1647,24 @@ func (*WantIP6NbrStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantIP6NbrStatsReply represents the VPP binary API message 'want_ip6_nbr_stats_reply'.
-//
-// "want_ip6_nbr_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantIP6NbrStatsReply represents VPP binary API message 'want_ip6_nbr_stats_reply':
+//
+// "want_ip6_nbr_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantIP6NbrStatsReply struct {
Retval int32
@@ -1340,30 +1680,30 @@ func (*WantIP6NbrStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// VnetIP4FibCounters represents the VPP binary API message 'vnet_ip4_fib_counters'.
-//
-// "vnet_ip4_fib_counters",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "vrf_id"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_ip4_fib_counter_t",
-// "c",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x57e3feec"
-// }
+// VnetIP4FibCounters represents VPP binary API message 'vnet_ip4_fib_counters':
+//
+// "vnet_ip4_fib_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "vrf_id"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_ip4_fib_counter_t",
+// "c",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x57e3feec"
+// }
//
type VnetIP4FibCounters struct {
VrfID uint32
@@ -1381,30 +1721,30 @@ func (*VnetIP4FibCounters) GetMessageType() api.MessageType {
return api.OtherMessage
}
-// VnetIP4MfibCounters represents the VPP binary API message 'vnet_ip4_mfib_counters'.
-//
-// "vnet_ip4_mfib_counters",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "vrf_id"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_ip4_mfib_counter_t",
-// "c",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x946eb588"
-// }
+// VnetIP4MfibCounters represents VPP binary API message 'vnet_ip4_mfib_counters':
+//
+// "vnet_ip4_mfib_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "vrf_id"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_ip4_mfib_counter_t",
+// "c",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x946eb588"
+// }
//
type VnetIP4MfibCounters struct {
VrfID uint32
@@ -1422,34 +1762,34 @@ func (*VnetIP4MfibCounters) GetMessageType() api.MessageType {
return api.OtherMessage
}
-// VnetIP4NbrCounters represents the VPP binary API message 'vnet_ip4_nbr_counters'.
-//
-// "vnet_ip4_nbr_counters",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "begin"
-// ],
-// [
-// "vl_api_ip4_nbr_counter_t",
-// "c",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x214c4811"
-// }
+// VnetIP4NbrCounters represents VPP binary API message 'vnet_ip4_nbr_counters':
+//
+// "vnet_ip4_nbr_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "begin"
+// ],
+// [
+// "vl_api_ip4_nbr_counter_t",
+// "c",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x214c4811"
+// }
//
type VnetIP4NbrCounters struct {
Count uint32 `struc:"sizeof=C"`
@@ -1468,30 +1808,30 @@ func (*VnetIP4NbrCounters) GetMessageType() api.MessageType {
return api.OtherMessage
}
-// VnetIP6FibCounters represents the VPP binary API message 'vnet_ip6_fib_counters'.
-//
-// "vnet_ip6_fib_counters",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "vrf_id"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_ip6_fib_counter_t",
-// "c",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x13aed73d"
-// }
+// VnetIP6FibCounters represents VPP binary API message 'vnet_ip6_fib_counters':
+//
+// "vnet_ip6_fib_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "vrf_id"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_ip6_fib_counter_t",
+// "c",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x13aed73d"
+// }
//
type VnetIP6FibCounters struct {
VrfID uint32
@@ -1509,30 +1849,30 @@ func (*VnetIP6FibCounters) GetMessageType() api.MessageType {
return api.OtherMessage
}
-// VnetIP6MfibCounters represents the VPP binary API message 'vnet_ip6_mfib_counters'.
-//
-// "vnet_ip6_mfib_counters",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "vrf_id"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_ip6_mfib_counter_t",
-// "c",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x65fe1ae3"
-// }
+// VnetIP6MfibCounters represents VPP binary API message 'vnet_ip6_mfib_counters':
+//
+// "vnet_ip6_mfib_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "vrf_id"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_ip6_mfib_counter_t",
+// "c",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x65fe1ae3"
+// }
//
type VnetIP6MfibCounters struct {
VrfID uint32
@@ -1550,34 +1890,34 @@ func (*VnetIP6MfibCounters) GetMessageType() api.MessageType {
return api.OtherMessage
}
-// VnetIP6NbrCounters represents the VPP binary API message 'vnet_ip6_nbr_counters'.
-//
-// "vnet_ip6_nbr_counters",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// [
-// "u8",
-// "begin"
-// ],
-// [
-// "vl_api_ip6_nbr_counter_t",
-// "c",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x650161c0"
-// }
+// VnetIP6NbrCounters represents VPP binary API message 'vnet_ip6_nbr_counters':
+//
+// "vnet_ip6_nbr_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "begin"
+// ],
+// [
+// "vl_api_ip6_nbr_counter_t",
+// "c",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x650161c0"
+// }
//
type VnetIP6NbrCounters struct {
Count uint32 `struc:"sizeof=C"`
@@ -1596,34 +1936,34 @@ func (*VnetIP6NbrCounters) GetMessageType() api.MessageType {
return api.OtherMessage
}
-// VnetInterfaceSimpleCounters represents the VPP binary API message 'vnet_interface_simple_counters'.
-//
-// "vnet_interface_simple_counters",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u8",
-// "vnet_counter_type"
-// ],
-// [
-// "u32",
-// "first_sw_if_index"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "u64",
-// "data",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x9bc4a808"
-// }
+// VnetInterfaceSimpleCounters represents VPP binary API message 'vnet_interface_simple_counters':
+//
+// "vnet_interface_simple_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u8",
+// "vnet_counter_type"
+// ],
+// [
+// "u32",
+// "first_sw_if_index"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "u64",
+// "data",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x9bc4a808"
+// }
//
type VnetInterfaceSimpleCounters struct {
VnetCounterType uint8
@@ -1642,34 +1982,34 @@ func (*VnetInterfaceSimpleCounters) GetMessageType() api.MessageType {
return api.OtherMessage
}
-// VnetInterfaceCombinedCounters represents the VPP binary API message 'vnet_interface_combined_counters'.
-//
-// "vnet_interface_combined_counters",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u8",
-// "vnet_counter_type"
-// ],
-// [
-// "u32",
-// "first_sw_if_index"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_vlib_counter_t",
-// "data",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x2c595002"
-// }
+// VnetInterfaceCombinedCounters represents VPP binary API message 'vnet_interface_combined_counters':
+//
+// "vnet_interface_combined_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u8",
+// "vnet_counter_type"
+// ],
+// [
+// "u32",
+// "first_sw_if_index"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_vlib_counter_t",
+// "data",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x2c595002"
+// }
//
type VnetInterfaceCombinedCounters struct {
VnetCounterType uint8
@@ -1688,30 +2028,30 @@ func (*VnetInterfaceCombinedCounters) GetMessageType() api.MessageType {
return api.OtherMessage
}
-// VnetPerInterfaceSimpleCounters represents the VPP binary API message 'vnet_per_interface_simple_counters'.
-//
-// "vnet_per_interface_simple_counters",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "u32",
-// "timestamp"
-// ],
-// [
-// "vl_api_vnet_simple_counter_t",
-// "data",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0xd1fba9ba"
-// }
+// VnetPerInterfaceSimpleCounters represents VPP binary API message 'vnet_per_interface_simple_counters':
+//
+// "vnet_per_interface_simple_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "u32",
+// "timestamp"
+// ],
+// [
+// "vl_api_vnet_simple_counter_t",
+// "data",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xd1fba9ba"
+// }
//
type VnetPerInterfaceSimpleCounters struct {
Count uint32 `struc:"sizeof=Data"`
@@ -1729,30 +2069,30 @@ func (*VnetPerInterfaceSimpleCounters) GetMessageType() api.MessageType {
return api.OtherMessage
}
-// VnetPerInterfaceCombinedCounters represents the VPP binary API message 'vnet_per_interface_combined_counters'.
-//
-// "vnet_per_interface_combined_counters",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "u32",
-// "timestamp"
-// ],
-// [
-// "vl_api_vnet_combined_counter_t",
-// "data",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0xdc578375"
-// }
+// VnetPerInterfaceCombinedCounters represents VPP binary API message 'vnet_per_interface_combined_counters':
+//
+// "vnet_per_interface_combined_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "u32",
+// "timestamp"
+// ],
+// [
+// "vl_api_vnet_combined_counter_t",
+// "data",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xdc578375"
+// }
//
type VnetPerInterfaceCombinedCounters struct {
Count uint32 `struc:"sizeof=Data"`
@@ -1770,24 +2110,24 @@ func (*VnetPerInterfaceCombinedCounters) GetMessageType() api.MessageType {
return api.OtherMessage
}
-// VnetGetSummaryStats represents the VPP binary API message 'vnet_get_summary_stats'.
-//
-// "vnet_get_summary_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// VnetGetSummaryStats represents VPP binary API message 'vnet_get_summary_stats':
+//
+// "vnet_get_summary_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type VnetGetSummaryStats struct{}
@@ -1801,43 +2141,43 @@ func (*VnetGetSummaryStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// VnetGetSummaryStatsReply represents the VPP binary API message 'vnet_get_summary_stats_reply'.
-//
-// "vnet_get_summary_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u64",
-// "total_pkts",
-// 2
-// ],
-// [
-// "u64",
-// "total_bytes",
-// 2
-// ],
-// [
-// "f64",
-// "vector_rate"
-// ],
-// {
-// "crc": "0x32b87c56"
-// }
+// VnetGetSummaryStatsReply represents VPP binary API message 'vnet_get_summary_stats_reply':
+//
+// "vnet_get_summary_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u64",
+// "total_pkts",
+// 8
+// ],
+// [
+// "u64",
+// "total_bytes",
+// 8
+// ],
+// [
+// "f64",
+// "vector_rate"
+// ],
+// {
+// "crc": "0x82b5e46c"
+// }
//
type VnetGetSummaryStatsReply struct {
Retval int32
- TotalPkts []uint64 `struc:"[2]uint64"`
- TotalBytes []uint64 `struc:"[2]uint64"`
+ TotalPkts []uint64 `struc:"[8]uint64"`
+ TotalBytes []uint64 `struc:"[8]uint64"`
VectorRate float64
}
@@ -1845,30 +2185,30 @@ func (*VnetGetSummaryStatsReply) GetMessageName() string {
return "vnet_get_summary_stats_reply"
}
func (*VnetGetSummaryStatsReply) GetCrcString() string {
- return "32b87c56"
+ return "82b5e46c"
}
func (*VnetGetSummaryStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// StatsGetPollerDelay represents the VPP binary API message 'stats_get_poller_delay'.
-//
-// "stats_get_poller_delay",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// StatsGetPollerDelay represents VPP binary API message 'stats_get_poller_delay':
+//
+// "stats_get_poller_delay",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type StatsGetPollerDelay struct{}
@@ -1882,28 +2222,28 @@ func (*StatsGetPollerDelay) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// StatsGetPollerDelayReply represents the VPP binary API message 'stats_get_poller_delay_reply'.
-//
-// "stats_get_poller_delay_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "delay"
-// ],
-// {
-// "crc": "0x8c445a33"
-// }
+// StatsGetPollerDelayReply represents VPP binary API message 'stats_get_poller_delay_reply':
+//
+// "stats_get_poller_delay_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "delay"
+// ],
+// {
+// "crc": "0x8c445a33"
+// }
//
type StatsGetPollerDelayReply struct {
Retval int32
@@ -1920,32 +2260,32 @@ func (*StatsGetPollerDelayReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// WantUDPEncapStats represents the VPP binary API message 'want_udp_encap_stats'.
-//
-// "want_udp_encap_stats",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "enable"
-// ],
-// [
-// "u32",
-// "pid"
-// ],
-// {
-// "crc": "0xcfaccc1f"
-// }
+// WantUDPEncapStats represents VPP binary API message 'want_udp_encap_stats':
+//
+// "want_udp_encap_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0xcfaccc1f"
+// }
//
type WantUDPEncapStats struct {
Enable uint32
@@ -1962,24 +2302,24 @@ func (*WantUDPEncapStats) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// WantUDPEncapStatsReply represents the VPP binary API message 'want_udp_encap_stats_reply'.
-//
-// "want_udp_encap_stats_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// WantUDPEncapStatsReply represents VPP binary API message 'want_udp_encap_stats_reply':
+//
+// "want_udp_encap_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type WantUDPEncapStatsReply struct {
Retval int32
@@ -1995,30 +2335,30 @@ func (*WantUDPEncapStatsReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// VnetUDPEncapCounters represents the VPP binary API message 'vnet_udp_encap_counters'.
-//
-// "vnet_udp_encap_counters",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "timestamp"
-// ],
-// [
-// "u32",
-// "count"
-// ],
-// [
-// "vl_api_udp_encap_counter_t",
-// "c",
-// 0,
-// "count"
-// ],
-// {
-// "crc": "0x1ab5e649"
-// }
+// VnetUDPEncapCounters represents VPP binary API message 'vnet_udp_encap_counters':
+//
+// "vnet_udp_encap_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "timestamp"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_udp_encap_counter_t",
+// "c",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x1ab5e649"
+// }
//
type VnetUDPEncapCounters struct {
Timestamp uint32
@@ -2036,23 +2376,120 @@ func (*VnetUDPEncapCounters) GetMessageType() api.MessageType {
return api.OtherMessage
}
-/* Services */
+// WantBierNeighborStats represents VPP binary API message 'want_bier_neighbor_stats':
+//
+// "want_bier_neighbor_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0xcfaccc1f"
+// }
+//
+type WantBierNeighborStats struct {
+ Enable uint32
+ PID uint32
+}
-type Services interface {
- StatsGetPollerDelay(*StatsGetPollerDelay) (*StatsGetPollerDelayReply, error)
- VnetGetSummaryStats(*VnetGetSummaryStats) (*VnetGetSummaryStatsReply, error)
- WantInterfaceCombinedStats(*WantInterfaceCombinedStats) (*WantInterfaceCombinedStatsReply, error)
- WantInterfaceSimpleStats(*WantInterfaceSimpleStats) (*WantInterfaceSimpleStatsReply, error)
- WantIP4FibStats(*WantIP4FibStats) (*WantIP4FibStatsReply, error)
- WantIP4MfibStats(*WantIP4MfibStats) (*WantIP4MfibStatsReply, error)
- WantIP4NbrStats(*WantIP4NbrStats) (*WantIP4NbrStatsReply, error)
- WantIP6FibStats(*WantIP6FibStats) (*WantIP6FibStatsReply, error)
- WantIP6MfibStats(*WantIP6MfibStats) (*WantIP6MfibStatsReply, error)
- WantIP6NbrStats(*WantIP6NbrStats) (*WantIP6NbrStatsReply, error)
- WantPerInterfaceCombinedStats(*WantPerInterfaceCombinedStats) (*WantPerInterfaceCombinedStatsReply, error)
- WantPerInterfaceSimpleStats(*WantPerInterfaceSimpleStats) (*WantPerInterfaceSimpleStatsReply, error)
- WantStats(*WantStats) (*WantStatsReply, error)
- WantUDPEncapStats(*WantUDPEncapStats) (*WantUDPEncapStatsReply, error)
+func (*WantBierNeighborStats) GetMessageName() string {
+ return "want_bier_neighbor_stats"
+}
+func (*WantBierNeighborStats) GetCrcString() string {
+ return "cfaccc1f"
+}
+func (*WantBierNeighborStats) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// WantBierNeighborStatsReply represents VPP binary API message 'want_bier_neighbor_stats_reply':
+//
+// "want_bier_neighbor_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+type WantBierNeighborStatsReply struct {
+ Retval int32
+}
+
+func (*WantBierNeighborStatsReply) GetMessageName() string {
+ return "want_bier_neighbor_stats_reply"
+}
+func (*WantBierNeighborStatsReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*WantBierNeighborStatsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// VnetBierNeighborCounters represents VPP binary API message 'vnet_bier_neighbor_counters':
+//
+// "vnet_bier_neighbor_counters",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "timestamp"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_bier_neighbor_counter_t",
+// "c",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0xee0481ce"
+// }
+//
+type VnetBierNeighborCounters struct {
+ Timestamp uint32
+ Count uint32 `struc:"sizeof=C"`
+ C []BierNeighborCounter
+}
+
+func (*VnetBierNeighborCounters) GetMessageName() string {
+ return "vnet_bier_neighbor_counters"
+}
+func (*VnetBierNeighborCounters) GetCrcString() string {
+ return "ee0481ce"
+}
+func (*VnetBierNeighborCounters) GetMessageType() api.MessageType {
+ return api.OtherMessage
}
func init() {
@@ -2095,4 +2532,7 @@ func init() {
api.RegisterMessage((*WantUDPEncapStats)(nil), "stats.WantUDPEncapStats")
api.RegisterMessage((*WantUDPEncapStatsReply)(nil), "stats.WantUDPEncapStatsReply")
api.RegisterMessage((*VnetUDPEncapCounters)(nil), "stats.VnetUDPEncapCounters")
+ api.RegisterMessage((*WantBierNeighborStats)(nil), "stats.WantBierNeighborStats")
+ api.RegisterMessage((*WantBierNeighborStatsReply)(nil), "stats.WantBierNeighborStatsReply")
+ api.RegisterMessage((*VnetBierNeighborCounters)(nil), "stats.VnetBierNeighborCounters")
}
diff --git a/examples/bin_api/tap.api.json b/examples/bin_api/tap.api.json
index 5a0ab74..45edc6a 100644
--- a/examples/bin_api/tap.api.json
+++ b/examples/bin_api/tap.api.json
@@ -259,5 +259,6 @@
}
},
"enums": [],
- "types": []
+ "types": [],
+ "aliases": {}
}
diff --git a/examples/bin_api/tap/tap.ba.go b/examples/bin_api/tap/tap.ba.go
index d4daa1d..f94f7be 100644
--- a/examples/bin_api/tap/tap.ba.go
+++ b/examples/bin_api/tap/tap.ba.go
@@ -20,79 +20,104 @@ var _ = api.RegisterMessage
var _ = struc.Pack
var _ = bytes.NewBuffer
+// Services represents VPP binary API services:
+//
+// "services": {
+// "tap_delete": {
+// "reply": "tap_delete_reply"
+// },
+// "sw_interface_tap_dump": {
+// "reply": "sw_interface_tap_details",
+// "stream": true
+// },
+// "tap_modify": {
+// "reply": "tap_modify_reply"
+// },
+// "tap_connect": {
+// "reply": "tap_connect_reply"
+// }
+// },
+//
+type Services interface {
+ DumpSwInterfaceTap(*SwInterfaceTapDump) ([]*SwInterfaceTapDetails, error)
+ TapConnect(*TapConnect) (*TapConnectReply, error)
+ TapDelete(*TapDelete) (*TapDeleteReply, error)
+ TapModify(*TapModify) (*TapModifyReply, error)
+}
+
/* Messages */
-// TapConnect represents the VPP binary API message 'tap_connect'.
+// TapConnect represents VPP binary API message 'tap_connect':
//
-// "tap_connect",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "use_random_mac"
-// ],
-// [
-// "u8",
-// "tap_name",
-// 64
-// ],
-// [
-// "u8",
-// "mac_address",
-// 6
-// ],
-// [
-// "u8",
-// "renumber"
-// ],
-// [
-// "u32",
-// "custom_dev_instance"
-// ],
-// [
-// "u8",
-// "ip4_address_set"
-// ],
-// [
-// "u8",
-// "ip4_address",
-// 4
-// ],
-// [
-// "u8",
-// "ip4_mask_width"
-// ],
-// [
-// "u8",
-// "ip6_address_set"
-// ],
-// [
-// "u8",
-// "ip6_address",
-// 16
-// ],
-// [
-// "u8",
-// "ip6_mask_width"
-// ],
-// [
-// "u8",
-// "tag",
-// 64
-// ],
-// {
-// "crc": "0x9b9c396f"
-// }
+// "tap_connect",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "use_random_mac"
+// ],
+// [
+// "u8",
+// "tap_name",
+// 64
+// ],
+// [
+// "u8",
+// "mac_address",
+// 6
+// ],
+// [
+// "u8",
+// "renumber"
+// ],
+// [
+// "u32",
+// "custom_dev_instance"
+// ],
+// [
+// "u8",
+// "ip4_address_set"
+// ],
+// [
+// "u8",
+// "ip4_address",
+// 4
+// ],
+// [
+// "u8",
+// "ip4_mask_width"
+// ],
+// [
+// "u8",
+// "ip6_address_set"
+// ],
+// [
+// "u8",
+// "ip6_address",
+// 16
+// ],
+// [
+// "u8",
+// "ip6_mask_width"
+// ],
+// [
+// "u8",
+// "tag",
+// 64
+// ],
+// {
+// "crc": "0x9b9c396f"
+// }
//
type TapConnect struct {
UseRandomMac uint8
@@ -119,28 +144,28 @@ func (*TapConnect) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// TapConnectReply represents the VPP binary API message 'tap_connect_reply'.
+// TapConnectReply represents VPP binary API message 'tap_connect_reply':
//
-// "tap_connect_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0xfda5941f"
-// }
+// "tap_connect_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
//
type TapConnectReply struct {
Retval int32
@@ -157,50 +182,50 @@ func (*TapConnectReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// TapModify represents the VPP binary API message 'tap_modify'.
+// 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"
-// }
+// "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
@@ -221,28 +246,28 @@ func (*TapModify) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// TapModifyReply represents the VPP binary API message 'tap_modify_reply'.
+// 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"
-// }
+// "tap_modify_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
//
type TapModifyReply struct {
Retval int32
@@ -259,28 +284,28 @@ func (*TapModifyReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// TapDelete represents the VPP binary API message 'tap_delete'.
+// TapDelete represents VPP binary API message 'tap_delete':
//
-// "tap_delete",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "sw_if_index"
-// ],
-// {
-// "crc": "0x529cb13f"
-// }
+// "tap_delete",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
//
type TapDelete struct {
SwIfIndex uint32
@@ -296,24 +321,24 @@ func (*TapDelete) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// TapDeleteReply represents the VPP binary API message 'tap_delete_reply'.
+// TapDeleteReply represents VPP binary API message 'tap_delete_reply':
//
-// "tap_delete_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// {
-// "crc": "0xe8d4e804"
-// }
+// "tap_delete_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
//
type TapDeleteReply struct {
Retval int32
@@ -329,24 +354,24 @@ func (*TapDeleteReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// SwInterfaceTapDump represents the VPP binary API message 'sw_interface_tap_dump'.
+// 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"
-// }
+// "sw_interface_tap_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type SwInterfaceTapDump struct{}
@@ -360,29 +385,29 @@ func (*SwInterfaceTapDump) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// SwInterfaceTapDetails represents the VPP binary API message 'sw_interface_tap_details'.
+// 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"
-// }
+// "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
@@ -399,15 +424,6 @@ func (*SwInterfaceTapDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-/* Services */
-
-type Services interface {
- DumpSwInterfaceTap(*SwInterfaceTapDump) (*SwInterfaceTapDetails, error)
- TapConnect(*TapConnect) (*TapConnectReply, error)
- TapDelete(*TapDelete) (*TapDeleteReply, error)
- TapModify(*TapModify) (*TapModifyReply, error)
-}
-
func init() {
api.RegisterMessage((*TapConnect)(nil), "tap.TapConnect")
api.RegisterMessage((*TapConnectReply)(nil), "tap.TapConnectReply")
diff --git a/examples/bin_api/vpe.api.json b/examples/bin_api/vpe.api.json
index 9f973af..edefd20 100644
--- a/examples/bin_api/vpe.api.json
+++ b/examples/bin_api/vpe.api.json
@@ -296,6 +296,52 @@
}
],
[
+ "show_threads",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ {
+ "crc": "0x51077d14"
+ }
+ ],
+ [
+ "show_threads_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ [
+ "u32",
+ "count"
+ ],
+ [
+ "vl_api_thread_data_t",
+ "thread_data",
+ 0,
+ "count"
+ ],
+ {
+ "crc": "0x6942fb35"
+ }
+ ],
+ [
"get_node_graph",
[
"u16",
@@ -386,7 +432,7 @@
}
]
],
- "vl_api_version": "0x9a1baa50",
+ "vl_api_version": "0x3ce489e",
"unions": [],
"services": {
"cli_inband": {
@@ -407,6 +453,9 @@
"get_next_index": {
"reply": "get_next_index_reply"
},
+ "show_threads": {
+ "reply": "show_threads_reply"
+ },
"add_node_next": {
"reply": "add_node_next_reply"
},
@@ -415,5 +464,43 @@
}
},
"enums": [],
- "types": []
+ "types": [
+ [
+ "thread_data",
+ [
+ "u32",
+ "id"
+ ],
+ [
+ "u8",
+ "name",
+ 64
+ ],
+ [
+ "u8",
+ "type",
+ 64
+ ],
+ [
+ "u32",
+ "pid"
+ ],
+ [
+ "u32",
+ "cpu_id"
+ ],
+ [
+ "u32",
+ "core"
+ ],
+ [
+ "u32",
+ "cpu_socket"
+ ],
+ {
+ "crc": "0x0f57094e"
+ }
+ ]
+ ],
+ "aliases": {}
}
diff --git a/examples/bin_api/vpe/vpe.ba.go b/examples/bin_api/vpe/vpe.ba.go
index fe0fa03..48925ac 100644
--- a/examples/bin_api/vpe/vpe.ba.go
+++ b/examples/bin_api/vpe/vpe.ba.go
@@ -5,8 +5,9 @@
Package vpe is a generated from VPP binary API module 'vpe'.
It contains following objects:
- 16 messages
- 8 services
+ 18 messages
+ 1 type
+ 9 services
*/
package vpe
@@ -20,26 +21,95 @@ var _ = api.RegisterMessage
var _ = struc.Pack
var _ = bytes.NewBuffer
+// Services represents VPP binary API services:
+//
+// "services": {
+// "cli_inband": {
+// "reply": "cli_inband_reply"
+// },
+// "get_node_index": {
+// "reply": "get_node_index_reply"
+// },
+// "cli": {
+// "reply": "cli_reply"
+// },
+// "show_version": {
+// "reply": "show_version_reply"
+// },
+// "get_node_graph": {
+// "reply": "get_node_graph_reply"
+// },
+// "get_next_index": {
+// "reply": "get_next_index_reply"
+// },
+// "show_threads": {
+// "reply": "show_threads_reply"
+// },
+// "add_node_next": {
+// "reply": "add_node_next_reply"
+// },
+// "control_ping": {
+// "reply": "control_ping_reply"
+// }
+// },
+//
+type Services interface {
+ AddNodeNext(*AddNodeNext) (*AddNodeNextReply, error)
+ Cli(*Cli) (*CliReply, error)
+ CliInband(*CliInband) (*CliInbandReply, error)
+ ControlPing(*ControlPing) (*ControlPingReply, error)
+ GetNextIndex(*GetNextIndex) (*GetNextIndexReply, error)
+ GetNodeGraph(*GetNodeGraph) (*GetNodeGraphReply, error)
+ GetNodeIndex(*GetNodeIndex) (*GetNodeIndexReply, error)
+ ShowThreads(*ShowThreads) (*ShowThreadsReply, error)
+ ShowVersion(*ShowVersion) (*ShowVersionReply, error)
+}
+
+/* Types */
+
+// ThreadData represents VPP binary API type 'thread_data':
+//
+// "thread_data",
+// 0,
+// "count"
+//
+type ThreadData struct {
+ ID uint32
+ Name []byte `struc:"[64]byte"`
+ Type []byte `struc:"[64]byte"`
+ PID uint32
+ CPUID uint32
+ Core uint32
+ CPUSocket uint32
+}
+
+func (*ThreadData) GetTypeName() string {
+ return "thread_data"
+}
+func (*ThreadData) GetCrcString() string {
+ return "0f57094e"
+}
+
/* Messages */
-// ControlPing represents the VPP binary API message 'control_ping'.
-//
-// "control_ping",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// ControlPing represents VPP binary API message 'control_ping':
+//
+// "control_ping",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type ControlPing struct{}
@@ -53,32 +123,32 @@ func (*ControlPing) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ControlPingReply represents the VPP binary API message 'control_ping_reply'.
-//
-// "control_ping_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "vpe_pid"
-// ],
-// {
-// "crc": "0xf6b0b8ca"
-// }
+// ControlPingReply represents VPP binary API message 'control_ping_reply':
+//
+// "control_ping_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "vpe_pid"
+// ],
+// {
+// "crc": "0xf6b0b8ca"
+// }
//
type ControlPingReply struct {
Retval int32
@@ -96,28 +166,28 @@ func (*ControlPingReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// Cli represents the VPP binary API message 'cli'.
-//
-// "cli",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u64",
-// "cmd_in_shmem"
-// ],
-// {
-// "crc": "0x23bfbfff"
-// }
+// Cli represents VPP binary API message 'cli':
+//
+// "cli",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u64",
+// "cmd_in_shmem"
+// ],
+// {
+// "crc": "0x23bfbfff"
+// }
//
type Cli struct {
CmdInShmem uint64
@@ -133,34 +203,34 @@ func (*Cli) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// CliInband represents the VPP binary API message 'cli_inband'.
-//
-// "cli_inband",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u32",
-// "length"
-// ],
-// [
-// "u8",
-// "cmd",
-// 0,
-// "length"
-// ],
-// {
-// "crc": "0x74e00a49"
-// }
+// CliInband represents VPP binary API message 'cli_inband':
+//
+// "cli_inband",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "length"
+// ],
+// [
+// "u8",
+// "cmd",
+// 0,
+// "length"
+// ],
+// {
+// "crc": "0x74e00a49"
+// }
//
type CliInband struct {
Length uint32 `struc:"sizeof=Cmd"`
@@ -177,28 +247,28 @@ func (*CliInband) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// CliReply represents the VPP binary API message 'cli_reply'.
-//
-// "cli_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u64",
-// "reply_in_shmem"
-// ],
-// {
-// "crc": "0x06d68297"
-// }
+// CliReply represents VPP binary API message 'cli_reply':
+//
+// "cli_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u64",
+// "reply_in_shmem"
+// ],
+// {
+// "crc": "0x06d68297"
+// }
//
type CliReply struct {
Retval int32
@@ -215,34 +285,34 @@ func (*CliReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// CliInbandReply represents the VPP binary API message 'cli_inband_reply'.
-//
-// "cli_inband_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "length"
-// ],
-// [
-// "u8",
-// "reply",
-// 0,
-// "length"
-// ],
-// {
-// "crc": "0x1f22bbb8"
-// }
+// CliInbandReply represents VPP binary API message 'cli_inband_reply':
+//
+// "cli_inband_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "length"
+// ],
+// [
+// "u8",
+// "reply",
+// 0,
+// "length"
+// ],
+// {
+// "crc": "0x1f22bbb8"
+// }
//
type CliInbandReply struct {
Retval int32
@@ -260,29 +330,29 @@ func (*CliInbandReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// GetNodeIndex represents the VPP binary API message 'get_node_index'.
-//
-// "get_node_index",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "node_name",
-// 64
-// ],
-// {
-// "crc": "0x6c9a495d"
-// }
+// GetNodeIndex represents VPP binary API message 'get_node_index':
+//
+// "get_node_index",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "node_name",
+// 64
+// ],
+// {
+// "crc": "0x6c9a495d"
+// }
//
type GetNodeIndex struct {
NodeName []byte `struc:"[64]byte"`
@@ -298,28 +368,28 @@ func (*GetNodeIndex) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// GetNodeIndexReply represents the VPP binary API message 'get_node_index_reply'.
-//
-// "get_node_index_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "node_index"
-// ],
-// {
-// "crc": "0xa8600b89"
-// }
+// GetNodeIndexReply represents VPP binary API message 'get_node_index_reply':
+//
+// "get_node_index_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "node_index"
+// ],
+// {
+// "crc": "0xa8600b89"
+// }
//
type GetNodeIndexReply struct {
Retval int32
@@ -336,34 +406,34 @@ func (*GetNodeIndexReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// AddNodeNext represents the VPP binary API message 'add_node_next'.
-//
-// "add_node_next",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "node_name",
-// 64
-// ],
-// [
-// "u8",
-// "next_name",
-// 64
-// ],
-// {
-// "crc": "0x9ab92f7a"
-// }
+// AddNodeNext represents VPP binary API message 'add_node_next':
+//
+// "add_node_next",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "node_name",
+// 64
+// ],
+// [
+// "u8",
+// "next_name",
+// 64
+// ],
+// {
+// "crc": "0x9ab92f7a"
+// }
//
type AddNodeNext struct {
NodeName []byte `struc:"[64]byte"`
@@ -380,28 +450,28 @@ func (*AddNodeNext) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// AddNodeNextReply represents the VPP binary API message 'add_node_next_reply'.
-//
-// "add_node_next_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "next_index"
-// ],
-// {
-// "crc": "0x2ed75f32"
-// }
+// AddNodeNextReply represents VPP binary API message 'add_node_next_reply':
+//
+// "add_node_next_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "next_index"
+// ],
+// {
+// "crc": "0x2ed75f32"
+// }
//
type AddNodeNextReply struct {
Retval int32
@@ -418,24 +488,24 @@ func (*AddNodeNextReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// ShowVersion represents the VPP binary API message 'show_version'.
-//
-// "show_version",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// ShowVersion represents VPP binary API message 'show_version':
+//
+// "show_version",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type ShowVersion struct{}
@@ -449,44 +519,44 @@ func (*ShowVersion) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// ShowVersionReply represents the VPP binary API message 'show_version_reply'.
-//
-// "show_version_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u8",
-// "program",
-// 32
-// ],
-// [
-// "u8",
-// "version",
-// 32
-// ],
-// [
-// "u8",
-// "build_date",
-// 32
-// ],
-// [
-// "u8",
-// "build_directory",
-// 256
-// ],
-// {
-// "crc": "0x8b5a13b4"
-// }
+// ShowVersionReply represents VPP binary API message 'show_version_reply':
+//
+// "show_version_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u8",
+// "program",
+// 32
+// ],
+// [
+// "u8",
+// "version",
+// 32
+// ],
+// [
+// "u8",
+// "build_date",
+// 32
+// ],
+// [
+// "u8",
+// "build_directory",
+// 256
+// ],
+// {
+// "crc": "0x8b5a13b4"
+// }
//
type ShowVersionReply struct {
Retval int32
@@ -506,24 +576,100 @@ func (*ShowVersionReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// GetNodeGraph represents the VPP binary API message 'get_node_graph'.
-//
-// "get_node_graph",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// {
-// "crc": "0x51077d14"
-// }
+// ShowThreads represents VPP binary API message 'show_threads':
+//
+// "show_threads",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
+//
+type ShowThreads struct{}
+
+func (*ShowThreads) GetMessageName() string {
+ return "show_threads"
+}
+func (*ShowThreads) GetCrcString() string {
+ return "51077d14"
+}
+func (*ShowThreads) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ShowThreadsReply represents VPP binary API message 'show_threads_reply':
+//
+// "show_threads_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "count"
+// ],
+// [
+// "vl_api_thread_data_t",
+// "thread_data",
+// 0,
+// "count"
+// ],
+// {
+// "crc": "0x6942fb35"
+// }
+//
+type ShowThreadsReply struct {
+ Retval int32
+ Count uint32 `struc:"sizeof=ThreadData"`
+ ThreadData []ThreadData
+}
+
+func (*ShowThreadsReply) GetMessageName() string {
+ return "show_threads_reply"
+}
+func (*ShowThreadsReply) GetCrcString() string {
+ return "6942fb35"
+}
+func (*ShowThreadsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// GetNodeGraph represents VPP binary API message 'get_node_graph':
+//
+// "get_node_graph",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// {
+// "crc": "0x51077d14"
+// }
//
type GetNodeGraph struct{}
@@ -537,28 +683,28 @@ func (*GetNodeGraph) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// GetNodeGraphReply represents the VPP binary API message 'get_node_graph_reply'.
-//
-// "get_node_graph_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u64",
-// "reply_in_shmem"
-// ],
-// {
-// "crc": "0x06d68297"
-// }
+// GetNodeGraphReply represents VPP binary API message 'get_node_graph_reply':
+//
+// "get_node_graph_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u64",
+// "reply_in_shmem"
+// ],
+// {
+// "crc": "0x06d68297"
+// }
//
type GetNodeGraphReply struct {
Retval int32
@@ -575,34 +721,34 @@ func (*GetNodeGraphReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-// GetNextIndex represents the VPP binary API message 'get_next_index'.
-//
-// "get_next_index",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "client_index"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "u8",
-// "node_name",
-// 64
-// ],
-// [
-// "u8",
-// "next_name",
-// 64
-// ],
-// {
-// "crc": "0x9ab92f7a"
-// }
+// GetNextIndex represents VPP binary API message 'get_next_index':
+//
+// "get_next_index",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "node_name",
+// 64
+// ],
+// [
+// "u8",
+// "next_name",
+// 64
+// ],
+// {
+// "crc": "0x9ab92f7a"
+// }
//
type GetNextIndex struct {
NodeName []byte `struc:"[64]byte"`
@@ -619,28 +765,28 @@ func (*GetNextIndex) GetMessageType() api.MessageType {
return api.RequestMessage
}
-// GetNextIndexReply represents the VPP binary API message 'get_next_index_reply'.
-//
-// "get_next_index_reply",
-// [
-// "u16",
-// "_vl_msg_id"
-// ],
-// [
-// "u32",
-// "context"
-// ],
-// [
-// "i32",
-// "retval"
-// ],
-// [
-// "u32",
-// "next_index"
-// ],
-// {
-// "crc": "0x2ed75f32"
-// }
+// GetNextIndexReply represents VPP binary API message 'get_next_index_reply':
+//
+// "get_next_index_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "next_index"
+// ],
+// {
+// "crc": "0x2ed75f32"
+// }
//
type GetNextIndexReply struct {
Retval int32
@@ -657,19 +803,6 @@ func (*GetNextIndexReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
-/* Services */
-
-type Services interface {
- AddNodeNext(*AddNodeNext) (*AddNodeNextReply, error)
- Cli(*Cli) (*CliReply, error)
- CliInband(*CliInband) (*CliInbandReply, error)
- ControlPing(*ControlPing) (*ControlPingReply, error)
- GetNextIndex(*GetNextIndex) (*GetNextIndexReply, error)
- GetNodeGraph(*GetNodeGraph) (*GetNodeGraphReply, error)
- GetNodeIndex(*GetNodeIndex) (*GetNodeIndexReply, error)
- ShowVersion(*ShowVersion) (*ShowVersionReply, error)
-}
-
func init() {
api.RegisterMessage((*ControlPing)(nil), "vpe.ControlPing")
api.RegisterMessage((*ControlPingReply)(nil), "vpe.ControlPingReply")
@@ -683,6 +816,8 @@ func init() {
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")
diff --git a/examples/cmd/union-example/union_example.go b/examples/cmd/union-example/union_example.go
index bb6c8a1..0f801d2 100644
--- a/examples/cmd/union-example/union_example.go
+++ b/examples/cmd/union-example/union_example.go
@@ -26,7 +26,7 @@ import (
func main() {
// create union with IPv4 address
var unionIP4 ip.AddressUnion
- unionIP4.SetIP4(ip.IP4Address{Address: []byte{192, 168, 1, 10}})
+ unionIP4.SetIP4(ip.IP4Address{192, 168, 1, 10})
// use it in the Address type
addr := &ip.Address{