aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorOndrej Fabry <ofabry@cisco.com>2019-01-10 10:57:50 +0100
committerOndrej Fabry <ofabry@cisco.com>2019-01-10 11:05:35 +0100
commit08266e35878f198e2fa59fcfc9f0fc3a4b1dfbf5 (patch)
tree1269acfc3bf6fdd47414eb64da3ecad4865e37d6 /examples
parent3ef6f210edcf7dd753733d46ec3f2dd5dc795b61 (diff)
Add support for string types
- strings are now generated as two fields for length and string itself - aliases are now sorted by name to prevent generating different code - dependencies are now managed by dep - binapi files are regenerated using VPP 19.01-rc0~622-g7b01e9e8 - old stats binary api has been deprecated and removed from VPP Change-Id: Ieb8515c73021339a45f407386f8e3d87dcf4469e Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/bin_api/VPP_VERSION1
-rw-r--r--examples/bin_api/interface.api.json139
-rw-r--r--examples/bin_api/interfaces/interfaces.ba.go199
-rw-r--r--examples/bin_api/ip.api.json33
-rw-r--r--examples/bin_api/ip/ip.ba.go67
-rw-r--r--examples/bin_api/map.api.json112
-rw-r--r--examples/bin_api/maps/maps.ba.go221
-rw-r--r--examples/bin_api/stats.api.json1531
-rw-r--r--examples/bin_api/stats/stats.ba.go2538
-rw-r--r--examples/bin_api/vpe.api.json48
-rw-r--r--examples/bin_api/vpe/vpe.ba.go76
-rw-r--r--examples/cmd/stats-client/stats_client.go165
12 files changed, 400 insertions, 4730 deletions
diff --git a/examples/bin_api/VPP_VERSION b/examples/bin_api/VPP_VERSION
new file mode 100644
index 0000000..4f9e13e
--- /dev/null
+++ b/examples/bin_api/VPP_VERSION
@@ -0,0 +1 @@
+19.01-rc0~622-g7b01e9e8~b1858
diff --git a/examples/bin_api/interface.api.json b/examples/bin_api/interface.api.json
index db255aa..41862d8 100644
--- a/examples/bin_api/interface.api.json
+++ b/examples/bin_api/interface.api.json
@@ -1373,7 +1373,7 @@
}
]
],
- "vl_api_version": "0x1ec8c073",
+ "vl_api_version": "0x672de521",
"unions": [],
"services": {
"create_subif": {
@@ -1458,142 +1458,7 @@
}
},
"enums": [],
- "types": [
- [
- "vlib_counter",
- [
- "u64",
- "packets"
- ],
- [
- "u64",
- "bytes"
- ],
- {
- "crc": "0xce2325a2"
- }
- ],
- [
- "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"
- }
- ],
- [
- "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"
- }
- ]
- ],
+ "types": [],
"aliases": {
"interface_index": {
"type": "u32"
diff --git a/examples/bin_api/interfaces/interfaces.ba.go b/examples/bin_api/interfaces/interfaces.ba.go
index 68a8b44..2e90fbf 100644
--- a/examples/bin_api/interfaces/interfaces.ba.go
+++ b/examples/bin_api/interfaces/interfaces.ba.go
@@ -6,7 +6,6 @@
It contains following objects:
51 messages
- 3 types
1 alias
25 services
@@ -145,204 +144,6 @@ type Services interface {
//
type InterfaceIndex uint32
-/* Types */
-
-// VlibCounter represents VPP binary API type 'vlib_counter':
-//
-// "vlib_counter",
-// [
-// "u64",
-// "packets"
-// ],
-// [
-// "u64",
-// "bytes"
-// ],
-// {
-// "crc": "0xce2325a2"
-// }
-//
-type VlibCounter struct {
- Packets uint64
- Bytes uint64
-}
-
-func (*VlibCounter) GetTypeName() string {
- return "vlib_counter"
-}
-func (*VlibCounter) GetCrcString() string {
- return "ce2325a2"
-}
-
-// 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
- RxPackets uint64
- RxBytes uint64
- RxUnicastPackets uint64
- RxUnicastBytes uint64
- RxMulticastPackets uint64
- RxMulticastBytes uint64
- RxBroadcastPackets uint64
- RxBroadcastBytes uint64
- TxPackets uint64
- TxBytes uint64
- TxUnicastPackets uint64
- TxUnicastBytes uint64
- TxMulticastPackets uint64
- TxMulticastBytes uint64
- TxBroadcastPackets uint64
- TxBroadcastBytes uint64
-}
-
-func (*VnetCombinedCounter) GetTypeName() string {
- return "vnet_combined_counter"
-}
-func (*VnetCombinedCounter) GetCrcString() string {
- return "20905ca4"
-}
-
-// 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
- Drop uint64
- Punt uint64
- RxIP4 uint64
- RxIP6 uint64
- RxNoBuffer uint64
- RxMiss uint64
- RxError uint64
- TxError uint64
- RxMpls uint64
-}
-
-func (*VnetSimpleCounter) GetTypeName() string {
- return "vnet_simple_counter"
-}
-func (*VnetSimpleCounter) GetCrcString() string {
- return "8bd65e2d"
-}
-
/* Messages */
// SwInterfaceSetFlags represents VPP binary API message 'sw_interface_set_flags':
diff --git a/examples/bin_api/ip.api.json b/examples/bin_api/ip.api.json
index 3983288..62c282b 100644
--- a/examples/bin_api/ip.api.json
+++ b/examples/bin_api/ip.api.json
@@ -1070,13 +1070,13 @@
"stats_index"
],
[
- "vl_api_fib_path_t",
+ "vl_api_mfib_path_t",
"path",
0,
"count"
],
{
- "crc": "0x21329a12"
+ "crc": "0x61faa26f"
}
],
[
@@ -1130,13 +1130,13 @@
"count"
],
[
- "vl_api_fib_path_t",
+ "vl_api_mfib_path_t",
"path",
0,
"count"
],
{
- "crc": "0xe02dcb4b"
+ "crc": "0x738c546e"
}
],
[
@@ -2642,7 +2642,7 @@
}
]
],
- "vl_api_version": "0x1eba4868",
+ "vl_api_version": "0xa3532a2f",
"unions": [
[
"address_union",
@@ -2989,6 +2989,10 @@
],
[
"u8",
+ "is_interface_rx"
+ ],
+ [
+ "u8",
"afi"
],
[
@@ -3018,18 +3022,21 @@
16
],
{
- "crc": "0xabe483ef"
+ "crc": "0xba7a81f0"
}
],
[
- "mac_address",
+ "mfib_path",
[
- "u8",
- "bytes",
- 6
+ "vl_api_fib_path_t",
+ "path"
+ ],
+ [
+ "u32",
+ "itf_flags"
],
{
- "crc": "0xefdbdddc"
+ "crc": "0x4ba77d32"
}
],
[
@@ -3106,6 +3113,10 @@
"ip4_address": {
"length": 4,
"type": "u8"
+ },
+ "mac_address": {
+ "length": 6,
+ "type": "u8"
}
}
}
diff --git a/examples/bin_api/ip/ip.ba.go b/examples/bin_api/ip/ip.ba.go
index b4615b5..8f31fd4 100644
--- a/examples/bin_api/ip/ip.ba.go
+++ b/examples/bin_api/ip/ip.ba.go
@@ -7,7 +7,7 @@
It contains following objects:
91 messages
11 types
- 2 aliases
+ 3 aliases
1 enum
1 union
44 services
@@ -262,7 +262,7 @@ const (
// "ip4_address": {
// "length": 4,
// "type": "u8"
-// }
+// },
//
type IP4Address [4]uint8
@@ -275,6 +275,15 @@ type IP4Address [4]uint8
//
type IP6Address [16]uint8
+// MacAddress represents VPP binary API alias 'mac_address':
+//
+// "mac_address": {
+// "length": 6,
+// "type": "u8"
+// }
+//
+type MacAddress [6]uint8
+
/* Types */
// Address represents VPP binary API type 'address':
@@ -506,6 +515,10 @@ func (*FibMplsLabel) GetCrcString() string {
// ],
// [
// "u8",
+// "is_interface_rx"
+// ],
+// [
+// "u8",
// "afi"
// ],
// [
@@ -535,7 +548,7 @@ func (*FibMplsLabel) GetCrcString() string {
// 16
// ],
// {
-// "crc": "0xabe483ef"
+// "crc": "0xba7a81f0"
// }
//
type FibPath struct {
@@ -552,6 +565,7 @@ type FibPath struct {
IsResolveAttached uint8
IsDvr uint8
IsSourceLookup uint8
+ IsInterfaceRx uint8
Afi uint8
NextHop []byte `struc:"[16]byte"`
NextHopID uint32
@@ -565,23 +579,34 @@ func (*FibPath) GetTypeName() string {
return "fib_path"
}
func (*FibPath) GetCrcString() string {
- return "abe483ef"
+ return "ba7a81f0"
}
-// MacAddress represents VPP binary API type 'mac_address':
+// MfibPath represents VPP binary API type 'mfib_path':
//
-// "mac_address",
-// 6
+// "mfib_path",
+// [
+// "vl_api_fib_path_t",
+// "path"
+// ],
+// [
+// "u32",
+// "itf_flags"
+// ],
+// {
+// "crc": "0x4ba77d32"
+// }
//
-type MacAddress struct {
- Bytes []byte `struc:"[6]byte"`
+type MfibPath struct {
+ Path FibPath
+ ItfFlags uint32
}
-func (*MacAddress) GetTypeName() string {
- return "mac_address"
+func (*MfibPath) GetTypeName() string {
+ return "mfib_path"
}
-func (*MacAddress) GetCrcString() string {
- return "efdbdddc"
+func (*MfibPath) GetCrcString() string {
+ return "4ba77d32"
}
// PuntRedirect represents VPP binary API type 'punt_redirect':
@@ -2356,13 +2381,13 @@ func (*IPMfibDump) GetMessageType() api.MessageType {
// "stats_index"
// ],
// [
-// "vl_api_fib_path_t",
+// "vl_api_mfib_path_t",
// "path",
// 0,
// "count"
// ],
// {
-// "crc": "0x21329a12"
+// "crc": "0x61faa26f"
// }
//
type IPMfibDetails struct {
@@ -2374,14 +2399,14 @@ type IPMfibDetails struct {
SrcAddress []byte `struc:"[4]byte"`
Count uint32 `struc:"sizeof=Path"`
StatsIndex uint32
- Path []FibPath
+ Path []MfibPath
}
func (*IPMfibDetails) GetMessageName() string {
return "ip_mfib_details"
}
func (*IPMfibDetails) GetCrcString() string {
- return "21329a12"
+ return "61faa26f"
}
func (*IPMfibDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
@@ -2452,13 +2477,13 @@ func (*IP6MfibDump) GetMessageType() api.MessageType {
// "count"
// ],
// [
-// "vl_api_fib_path_t",
+// "vl_api_mfib_path_t",
// "path",
// 0,
// "count"
// ],
// {
-// "crc": "0xe02dcb4b"
+// "crc": "0x738c546e"
// }
//
type IP6MfibDetails struct {
@@ -2467,14 +2492,14 @@ type IP6MfibDetails struct {
GrpAddress []byte `struc:"[16]byte"`
SrcAddress []byte `struc:"[16]byte"`
Count uint32 `struc:"sizeof=Path"`
- Path []FibPath
+ Path []MfibPath
}
func (*IP6MfibDetails) GetMessageName() string {
return "ip6_mfib_details"
}
func (*IP6MfibDetails) GetCrcString() string {
- return "e02dcb4b"
+ return "738c546e"
}
func (*IP6MfibDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
diff --git a/examples/bin_api/map.api.json b/examples/bin_api/map.api.json
index cb98202..a19bd3a 100644
--- a/examples/bin_api/map.api.json
+++ b/examples/bin_api/map.api.json
@@ -39,19 +39,11 @@
"psid_length"
],
[
- "bool",
- "is_translation"
- ],
- [
- "bool",
- "is_rfc6052"
- ],
- [
"u16",
"mtu"
],
{
- "crc": "0x7a64714e"
+ "crc": "0xa9358068"
}
],
[
@@ -232,12 +224,8 @@
"u16",
"mtu"
],
- [
- "bool",
- "is_translation"
- ],
{
- "crc": "0x7a986fe6"
+ "crc": "0x2a17dcb8"
}
],
[
@@ -285,6 +273,54 @@
}
],
[
+ "map_if_enable_disable",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u32",
+ "sw_if_index"
+ ],
+ [
+ "bool",
+ "is_enable"
+ ],
+ [
+ "bool",
+ "is_translation"
+ ],
+ {
+ "crc": "0x61a30cd9"
+ }
+ ],
+ [
+ "map_if_enable_disable_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
"map_summary_stats",
[
"u16",
@@ -660,6 +696,46 @@
}
],
[
+ "map_param_set_tcp",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "client_index"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "u16",
+ "tcp_mss"
+ ],
+ {
+ "crc": "0x87a825d9"
+ }
+ ],
+ [
+ "map_param_set_tcp_reply",
+ [
+ "u16",
+ "_vl_msg_id"
+ ],
+ [
+ "u32",
+ "context"
+ ],
+ [
+ "i32",
+ "retval"
+ ],
+ {
+ "crc": "0xe8d4e804"
+ }
+ ],
+ [
"map_param_get",
[
"u16",
@@ -768,7 +844,7 @@
}
]
],
- "vl_api_version": "0x14b499d0",
+ "vl_api_version": "0x75de78c3",
"unions": [
[
"address_union",
@@ -792,10 +868,16 @@
"map_param_add_del_pre_resolve": {
"reply": "map_param_add_del_pre_resolve_reply"
},
+ "map_param_set_tcp": {
+ "reply": "map_param_set_tcp_reply"
+ },
"map_rule_dump": {
"reply": "map_rule_details",
"stream": true
},
+ "map_if_enable_disable": {
+ "reply": "map_if_enable_disable_reply"
+ },
"map_param_set_icmp6": {
"reply": "map_param_set_icmp6_reply"
},
diff --git a/examples/bin_api/maps/maps.ba.go b/examples/bin_api/maps/maps.ba.go
index 8620c98..0a1e678 100644
--- a/examples/bin_api/maps/maps.ba.go
+++ b/examples/bin_api/maps/maps.ba.go
@@ -5,12 +5,12 @@
Package maps is a generated from VPP binary API module 'map'.
It contains following objects:
- 28 messages
+ 32 messages
5 types
2 aliases
1 enum
1 union
- 14 services
+ 16 services
*/
package maps
@@ -33,10 +33,16 @@ var _ = bytes.NewBuffer
// "map_param_add_del_pre_resolve": {
// "reply": "map_param_add_del_pre_resolve_reply"
// },
+// "map_param_set_tcp": {
+// "reply": "map_param_set_tcp_reply"
+// },
// "map_rule_dump": {
// "reply": "map_rule_details",
// "stream": true
// },
+// "map_if_enable_disable": {
+// "reply": "map_if_enable_disable_reply"
+// },
// "map_param_set_icmp6": {
// "reply": "map_param_set_icmp6_reply"
// },
@@ -79,6 +85,7 @@ type Services interface {
MapAddDelRule(*MapAddDelRule) (*MapAddDelRuleReply, error)
MapAddDomain(*MapAddDomain) (*MapAddDomainReply, error)
MapDelDomain(*MapDelDomain) (*MapDelDomainReply, error)
+ MapIfEnableDisable(*MapIfEnableDisable) (*MapIfEnableDisableReply, error)
MapParamAddDelPreResolve(*MapParamAddDelPreResolve) (*MapParamAddDelPreResolveReply, error)
MapParamGet(*MapParamGet) (*MapParamGetReply, error)
MapParamSetFragmentation(*MapParamSetFragmentation) (*MapParamSetFragmentationReply, error)
@@ -86,6 +93,7 @@ type Services interface {
MapParamSetICMP6(*MapParamSetICMP6) (*MapParamSetICMP6Reply, error)
MapParamSetReassembly(*MapParamSetReassembly) (*MapParamSetReassemblyReply, error)
MapParamSetSecurityCheck(*MapParamSetSecurityCheck) (*MapParamSetSecurityCheckReply, error)
+ MapParamSetTCP(*MapParamSetTCP) (*MapParamSetTCPReply, error)
MapParamSetTrafficClass(*MapParamSetTrafficClass) (*MapParamSetTrafficClassReply, error)
MapSummaryStats(*MapSummaryStats) (*MapSummaryStatsReply, error)
}
@@ -377,38 +385,28 @@ func (u *AddressUnion) GetIP6() (a IP6Address) {
// "psid_length"
// ],
// [
-// "bool",
-// "is_translation"
-// ],
-// [
-// "bool",
-// "is_rfc6052"
-// ],
-// [
// "u16",
// "mtu"
// ],
// {
-// "crc": "0x7a64714e"
+// "crc": "0xa9358068"
// }
//
type MapAddDomain struct {
- IP6Prefix IP6Prefix
- IP4Prefix IP4Prefix
- IP6Src IP6Prefix
- EaBitsLen uint8
- PsidOffset uint8
- PsidLength uint8
- IsTranslation bool
- IsRfc6052 bool
- Mtu uint16
+ IP6Prefix IP6Prefix
+ IP4Prefix IP4Prefix
+ IP6Src IP6Prefix
+ EaBitsLen uint8
+ PsidOffset uint8
+ PsidLength uint8
+ Mtu uint16
}
func (*MapAddDomain) GetMessageName() string {
return "map_add_domain"
}
func (*MapAddDomain) GetCrcString() string {
- return "7a64714e"
+ return "a9358068"
}
func (*MapAddDomain) GetMessageType() api.MessageType {
return api.RequestMessage
@@ -685,32 +683,27 @@ func (*MapDomainDump) GetMessageType() api.MessageType {
// "u16",
// "mtu"
// ],
-// [
-// "bool",
-// "is_translation"
-// ],
// {
-// "crc": "0x7a986fe6"
+// "crc": "0x2a17dcb8"
// }
//
type MapDomainDetails struct {
- DomainIndex uint32
- IP6Prefix IP6Prefix
- IP4Prefix IP4Prefix
- IP6Src IP6Prefix
- EaBitsLen uint8
- PsidOffset uint8
- PsidLength uint8
- Flags uint8
- Mtu uint16
- IsTranslation bool
+ DomainIndex uint32
+ IP6Prefix IP6Prefix
+ IP4Prefix IP4Prefix
+ IP6Src IP6Prefix
+ EaBitsLen uint8
+ PsidOffset uint8
+ PsidLength uint8
+ Flags uint8
+ Mtu uint16
}
func (*MapDomainDetails) GetMessageName() string {
return "map_domain_details"
}
func (*MapDomainDetails) GetCrcString() string {
- return "7a986fe6"
+ return "2a17dcb8"
}
func (*MapDomainDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
@@ -791,6 +784,86 @@ func (*MapRuleDetails) GetMessageType() api.MessageType {
return api.ReplyMessage
}
+// MapIfEnableDisable represents VPP binary API message 'map_if_enable_disable':
+//
+// "map_if_enable_disable",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "bool",
+// "is_enable"
+// ],
+// [
+// "bool",
+// "is_translation"
+// ],
+// {
+// "crc": "0x61a30cd9"
+// }
+//
+type MapIfEnableDisable struct {
+ SwIfIndex uint32
+ IsEnable bool
+ IsTranslation bool
+}
+
+func (*MapIfEnableDisable) GetMessageName() string {
+ return "map_if_enable_disable"
+}
+func (*MapIfEnableDisable) GetCrcString() string {
+ return "61a30cd9"
+}
+func (*MapIfEnableDisable) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapIfEnableDisableReply represents VPP binary API message 'map_if_enable_disable_reply':
+//
+// "map_if_enable_disable_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+type MapIfEnableDisableReply struct {
+ Retval int32
+}
+
+func (*MapIfEnableDisableReply) GetMessageName() string {
+ return "map_if_enable_disable_reply"
+}
+func (*MapIfEnableDisableReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MapIfEnableDisableReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
// MapSummaryStats represents VPP binary API message 'map_summary_stats':
//
// "map_summary_stats",
@@ -1418,6 +1491,76 @@ func (*MapParamSetTrafficClassReply) GetMessageType() api.MessageType {
return api.ReplyMessage
}
+// MapParamSetTCP represents VPP binary API message 'map_param_set_tcp':
+//
+// "map_param_set_tcp",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u16",
+// "tcp_mss"
+// ],
+// {
+// "crc": "0x87a825d9"
+// }
+//
+type MapParamSetTCP struct {
+ TCPMss uint16
+}
+
+func (*MapParamSetTCP) GetMessageName() string {
+ return "map_param_set_tcp"
+}
+func (*MapParamSetTCP) GetCrcString() string {
+ return "87a825d9"
+}
+func (*MapParamSetTCP) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MapParamSetTCPReply represents VPP binary API message 'map_param_set_tcp_reply':
+//
+// "map_param_set_tcp_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+type MapParamSetTCPReply struct {
+ Retval int32
+}
+
+func (*MapParamSetTCPReply) GetMessageName() string {
+ return "map_param_set_tcp_reply"
+}
+func (*MapParamSetTCPReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MapParamSetTCPReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
// MapParamGet represents VPP binary API message 'map_param_get':
//
// "map_param_get",
@@ -1583,6 +1726,8 @@ func init() {
api.RegisterMessage((*MapDomainDetails)(nil), "map.MapDomainDetails")
api.RegisterMessage((*MapRuleDump)(nil), "map.MapRuleDump")
api.RegisterMessage((*MapRuleDetails)(nil), "map.MapRuleDetails")
+ api.RegisterMessage((*MapIfEnableDisable)(nil), "map.MapIfEnableDisable")
+ api.RegisterMessage((*MapIfEnableDisableReply)(nil), "map.MapIfEnableDisableReply")
api.RegisterMessage((*MapSummaryStats)(nil), "map.MapSummaryStats")
api.RegisterMessage((*MapSummaryStatsReply)(nil), "map.MapSummaryStatsReply")
api.RegisterMessage((*MapParamSetFragmentation)(nil), "map.MapParamSetFragmentation")
@@ -1599,6 +1744,8 @@ func init() {
api.RegisterMessage((*MapParamSetSecurityCheckReply)(nil), "map.MapParamSetSecurityCheckReply")
api.RegisterMessage((*MapParamSetTrafficClass)(nil), "map.MapParamSetTrafficClass")
api.RegisterMessage((*MapParamSetTrafficClassReply)(nil), "map.MapParamSetTrafficClassReply")
+ api.RegisterMessage((*MapParamSetTCP)(nil), "map.MapParamSetTCP")
+ api.RegisterMessage((*MapParamSetTCPReply)(nil), "map.MapParamSetTCPReply")
api.RegisterMessage((*MapParamGet)(nil), "map.MapParamGet")
api.RegisterMessage((*MapParamGetReply)(nil), "map.MapParamGetReply")
}
diff --git a/examples/bin_api/stats.api.json b/examples/bin_api/stats.api.json
deleted file mode 100644
index 31c957e..0000000
--- a/examples/bin_api/stats.api.json
+++ /dev/null
@@ -1,1531 +0,0 @@
-{
- "messages": [
- [
- "want_stats",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- [
- "u32",
- "enable_disable"
- ],
- [
- "u32",
- "pid"
- ],
- {
- "crc": "0x476f5a08"
- }
- ],
- [
- "want_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "want_interface_simple_stats",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- [
- "u32",
- "enable_disable"
- ],
- [
- "u32",
- "pid"
- ],
- {
- "crc": "0x476f5a08"
- }
- ],
- [
- "want_interface_simple_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "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"
- }
- ],
- [
- "want_per_interface_simple_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "want_interface_combined_stats",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- [
- "u32",
- "enable_disable"
- ],
- [
- "u32",
- "pid"
- ],
- {
- "crc": "0x476f5a08"
- }
- ],
- [
- "want_interface_combined_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "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"
- }
- ],
- [
- "want_per_interface_combined_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "want_ip4_fib_stats",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- [
- "u32",
- "enable_disable"
- ],
- [
- "u32",
- "pid"
- ],
- {
- "crc": "0x476f5a08"
- }
- ],
- [
- "want_ip4_fib_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "want_ip6_fib_stats",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- [
- "u32",
- "enable_disable"
- ],
- [
- "u32",
- "pid"
- ],
- {
- "crc": "0x476f5a08"
- }
- ],
- [
- "want_ip6_fib_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "want_ip4_mfib_stats",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- [
- "u32",
- "enable_disable"
- ],
- [
- "u32",
- "pid"
- ],
- {
- "crc": "0x476f5a08"
- }
- ],
- [
- "want_ip4_mfib_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "want_ip6_mfib_stats",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- [
- "u32",
- "enable_disable"
- ],
- [
- "u32",
- "pid"
- ],
- {
- "crc": "0x476f5a08"
- }
- ],
- [
- "want_ip6_mfib_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "want_ip4_nbr_stats",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- [
- "u32",
- "enable_disable"
- ],
- [
- "u32",
- "pid"
- ],
- {
- "crc": "0x476f5a08"
- }
- ],
- [
- "want_ip4_nbr_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "want_ip6_nbr_stats",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- [
- "u32",
- "enable_disable"
- ],
- [
- "u32",
- "pid"
- ],
- {
- "crc": "0x476f5a08"
- }
- ],
- [
- "want_ip6_nbr_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "vnet_ip4_fib_counters",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "vrf_id"
- ],
- [
- "u32",
- "count"
- ],
- [
- "vl_api_ip4_fib_counter_t",
- "c",
- 0,
- "count"
- ],
- {
- "crc": "0x57e3feec"
- }
- ],
- [
- "vnet_ip4_mfib_counters",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "vrf_id"
- ],
- [
- "u32",
- "count"
- ],
- [
- "vl_api_ip4_mfib_counter_t",
- "c",
- 0,
- "count"
- ],
- {
- "crc": "0x946eb588"
- }
- ],
- [
- "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"
- }
- ],
- [
- "vnet_ip6_fib_counters",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "vrf_id"
- ],
- [
- "u32",
- "count"
- ],
- [
- "vl_api_ip6_fib_counter_t",
- "c",
- 0,
- "count"
- ],
- {
- "crc": "0x13aed73d"
- }
- ],
- [
- "vnet_ip6_mfib_counters",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "vrf_id"
- ],
- [
- "u32",
- "count"
- ],
- [
- "vl_api_ip6_mfib_counter_t",
- "c",
- 0,
- "count"
- ],
- {
- "crc": "0x65fe1ae3"
- }
- ],
- [
- "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"
- }
- ],
- [
- "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"
- }
- ],
- [
- "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"
- }
- ],
- [
- "vnet_per_interface_simple_counters",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "count"
- ],
- [
- "u32",
- "timestamp"
- ],
- [
- "vl_api_vnet_simple_counter_t",
- "data",
- 0,
- "count"
- ],
- {
- "crc": "0xd1fba9ba"
- }
- ],
- [
- "vnet_per_interface_combined_counters",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "count"
- ],
- [
- "u32",
- "timestamp"
- ],
- [
- "vl_api_vnet_combined_counter_t",
- "data",
- 0,
- "count"
- ],
- {
- "crc": "0xdc578375"
- }
- ],
- [
- "vnet_get_summary_stats",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- {
- "crc": "0x51077d14"
- }
- ],
- [
- "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"
- }
- ],
- [
- "stats_get_poller_delay",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- {
- "crc": "0x51077d14"
- }
- ],
- [
- "stats_get_poller_delay_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- [
- "u32",
- "delay"
- ],
- {
- "crc": "0x8c445a33"
- }
- ],
- [
- "want_udp_encap_stats",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "client_index"
- ],
- [
- "u32",
- "context"
- ],
- [
- "u32",
- "enable"
- ],
- [
- "u32",
- "pid"
- ],
- {
- "crc": "0xcfaccc1f"
- }
- ],
- [
- "want_udp_encap_stats_reply",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "context"
- ],
- [
- "i32",
- "retval"
- ],
- {
- "crc": "0xe8d4e804"
- }
- ],
- [
- "vnet_udp_encap_counters",
- [
- "u16",
- "_vl_msg_id"
- ],
- [
- "u32",
- "timestamp"
- ],
- [
- "u32",
- "count"
- ],
- [
- "vl_api_udp_encap_counter_t",
- "c",
- 0,
- "count"
- ],
- {
- "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": "0xd3b29d42",
- "unions": [],
- "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"
- ]
- }
- },
- "enums": [],
- "types": [
- [
- "vlib_counter",
- [
- "u64",
- "packets"
- ],
- [
- "u64",
- "bytes"
- ],
- {
- "crc": "0xce2325a2"
- }
- ],
- [
- "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"
- }
- ],
- [
- "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"
- }
- ],
- [
- "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",
- "address"
- ],
- [
- "u8",
- "address_length"
- ],
- [
- "u64",
- "packets"
- ],
- [
- "u64",
- "bytes"
- ],
- {
- "crc": "0xa6ceb0c9"
- }
- ],
- [
- "ip4_mfib_counter",
- [
- "u8",
- "source",
- 4
- ],
- [
- "u8",
- "group",
- 4
- ],
- [
- "u8",
- "group_length"
- ],
- [
- "u64",
- "packets"
- ],
- [
- "u64",
- "bytes"
- ],
- {
- "crc": "0x2cee4721"
- }
- ],
- [
- "ip4_nbr_counter",
- [
- "u32",
- "address"
- ],
- [
- "u8",
- "link_type"
- ],
- [
- "u64",
- "packets"
- ],
- [
- "u64",
- "bytes"
- ],
- {
- "crc": "0xb9f974d6"
- }
- ],
- [
- "ip6_fib_counter",
- [
- "u64",
- "address",
- 2
- ],
- [
- "u8",
- "address_length"
- ],
- [
- "u64",
- "packets"
- ],
- [
- "u64",
- "bytes"
- ],
- {
- "crc": "0xf1197efb"
- }
- ],
- [
- "ip6_mfib_counter",
- [
- "u8",
- "source",
- 16
- ],
- [
- "u8",
- "group",
- 16
- ],
- [
- "u8",
- "group_length"
- ],
- [
- "u64",
- "packets"
- ],
- [
- "u64",
- "bytes"
- ],
- {
- "crc": "0x90a9590e"
- }
- ],
- [
- "ip6_nbr_counter",
- [
- "u64",
- "address",
- 2
- ],
- [
- "u8",
- "link_type"
- ],
- [
- "u64",
- "packets"
- ],
- [
- "u64",
- "bytes"
- ],
- {
- "crc": "0x2d755474"
- }
- ],
- [
- "udp_encap_counter",
- [
- "u32",
- "id"
- ],
- [
- "u64",
- "packets"
- ],
- [
- "u64",
- "bytes"
- ],
- {
- "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
deleted file mode 100644
index 97a6e60..0000000
--- a/examples/bin_api/stats/stats.ba.go
+++ /dev/null
@@ -1,2538 +0,0 @@
-// Code generated by GoVPP binapi-generator. DO NOT EDIT.
-// source: stats.api.json
-
-/*
- Package stats is a generated from VPP binary API module 'stats'.
-
- It contains following objects:
- 42 messages
- 14 types
- 1 alias
- 15 services
-
-*/
-package stats
-
-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": {
-// "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 VPP binary API type 'vlib_counter':
-//
-// "vlib_counter",
-// [
-// "u64",
-// "packets"
-// ],
-// [
-// "u64",
-// "bytes"
-// ],
-// {
-// "crc": "0xce2325a2"
-// }
-//
-type VlibCounter struct {
- Packets uint64
- Bytes uint64
-}
-
-func (*VlibCounter) GetTypeName() string {
- return "vlib_counter"
-}
-func (*VlibCounter) GetCrcString() string {
- return "ce2325a2"
-}
-
-// 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
- RxPackets uint64
- RxBytes uint64
- RxUnicastPackets uint64
- RxUnicastBytes uint64
- RxMulticastPackets uint64
- RxMulticastBytes uint64
- RxBroadcastPackets uint64
- RxBroadcastBytes uint64
- TxPackets uint64
- TxBytes uint64
- TxUnicastPackets uint64
- TxUnicastBytes uint64
- TxMulticastPackets uint64
- TxMulticastBytes uint64
- TxBroadcastPackets uint64
- TxBroadcastBytes uint64
-}
-
-func (*VnetCombinedCounter) GetTypeName() string {
- return "vnet_combined_counter"
-}
-func (*VnetCombinedCounter) GetCrcString() string {
- return "20905ca4"
-}
-
-// 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
- Drop uint64
- Punt uint64
- RxIP4 uint64
- RxIP6 uint64
- RxNoBuffer uint64
- RxMiss uint64
- RxError uint64
- TxError uint64
- RxMpls uint64
-}
-
-func (*VnetSimpleCounter) GetTypeName() string {
- return "vnet_simple_counter"
-}
-func (*VnetSimpleCounter) GetCrcString() string {
- return "8bd65e2d"
-}
-
-// 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
- AddressLength uint8
- Packets uint64
- Bytes uint64
-}
-
-func (*IP4FibCounter) GetTypeName() string {
- return "ip4_fib_counter"
-}
-func (*IP4FibCounter) GetCrcString() string {
- return "a6ceb0c9"
-}
-
-// 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"`
- Group []byte `struc:"[4]byte"`
- GroupLength uint8
- Packets uint64
- Bytes uint64
-}
-
-func (*IP4MfibCounter) GetTypeName() string {
- return "ip4_mfib_counter"
-}
-func (*IP4MfibCounter) GetCrcString() string {
- return "2cee4721"
-}
-
-// 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
- LinkType uint8
- Packets uint64
- Bytes uint64
-}
-
-func (*IP4NbrCounter) GetTypeName() string {
- return "ip4_nbr_counter"
-}
-func (*IP4NbrCounter) GetCrcString() string {
- return "b9f974d6"
-}
-
-// 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"`
- AddressLength uint8
- Packets uint64
- Bytes uint64
-}
-
-func (*IP6FibCounter) GetTypeName() string {
- return "ip6_fib_counter"
-}
-func (*IP6FibCounter) GetCrcString() string {
- return "f1197efb"
-}
-
-// 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"`
- Group []byte `struc:"[16]byte"`
- GroupLength uint8
- Packets uint64
- Bytes uint64
-}
-
-func (*IP6MfibCounter) GetTypeName() string {
- return "ip6_mfib_counter"
-}
-func (*IP6MfibCounter) GetCrcString() string {
- return "90a9590e"
-}
-
-// 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"`
- LinkType uint8
- Packets uint64
- Bytes uint64
-}
-
-func (*IP6NbrCounter) GetTypeName() string {
- return "ip6_nbr_counter"
-}
-func (*IP6NbrCounter) GetCrcString() string {
- return "2d755474"
-}
-
-// 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
- Packets uint64
- Bytes uint64
-}
-
-func (*UDPEncapCounter) GetTypeName() string {
- return "udp_encap_counter"
-}
-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 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
- PID uint32
-}
-
-func (*WantStats) GetMessageName() string {
- return "want_stats"
-}
-func (*WantStats) GetCrcString() string {
- return "476f5a08"
-}
-func (*WantStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantStatsReply) GetMessageName() string {
- return "want_stats_reply"
-}
-func (*WantStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- PID uint32
-}
-
-func (*WantInterfaceSimpleStats) GetMessageName() string {
- return "want_interface_simple_stats"
-}
-func (*WantInterfaceSimpleStats) GetCrcString() string {
- return "476f5a08"
-}
-func (*WantInterfaceSimpleStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantInterfaceSimpleStatsReply) GetMessageName() string {
- return "want_interface_simple_stats_reply"
-}
-func (*WantInterfaceSimpleStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantInterfaceSimpleStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- PID uint32
- Num uint32 `struc:"sizeof=SwIfs"`
- SwIfs []uint32
-}
-
-func (*WantPerInterfaceSimpleStats) GetMessageName() string {
- return "want_per_interface_simple_stats"
-}
-func (*WantPerInterfaceSimpleStats) GetCrcString() string {
- return "729d04f1"
-}
-func (*WantPerInterfaceSimpleStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantPerInterfaceSimpleStatsReply) GetMessageName() string {
- return "want_per_interface_simple_stats_reply"
-}
-func (*WantPerInterfaceSimpleStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantPerInterfaceSimpleStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- PID uint32
-}
-
-func (*WantInterfaceCombinedStats) GetMessageName() string {
- return "want_interface_combined_stats"
-}
-func (*WantInterfaceCombinedStats) GetCrcString() string {
- return "476f5a08"
-}
-func (*WantInterfaceCombinedStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantInterfaceCombinedStatsReply) GetMessageName() string {
- return "want_interface_combined_stats_reply"
-}
-func (*WantInterfaceCombinedStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantInterfaceCombinedStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- PID uint32
- Num uint32 `struc:"sizeof=SwIfs"`
- SwIfs []uint32
-}
-
-func (*WantPerInterfaceCombinedStats) GetMessageName() string {
- return "want_per_interface_combined_stats"
-}
-func (*WantPerInterfaceCombinedStats) GetCrcString() string {
- return "729d04f1"
-}
-func (*WantPerInterfaceCombinedStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantPerInterfaceCombinedStatsReply) GetMessageName() string {
- return "want_per_interface_combined_stats_reply"
-}
-func (*WantPerInterfaceCombinedStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantPerInterfaceCombinedStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- PID uint32
-}
-
-func (*WantIP4FibStats) GetMessageName() string {
- return "want_ip4_fib_stats"
-}
-func (*WantIP4FibStats) GetCrcString() string {
- return "476f5a08"
-}
-func (*WantIP4FibStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantIP4FibStatsReply) GetMessageName() string {
- return "want_ip4_fib_stats_reply"
-}
-func (*WantIP4FibStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantIP4FibStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- PID uint32
-}
-
-func (*WantIP6FibStats) GetMessageName() string {
- return "want_ip6_fib_stats"
-}
-func (*WantIP6FibStats) GetCrcString() string {
- return "476f5a08"
-}
-func (*WantIP6FibStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantIP6FibStatsReply) GetMessageName() string {
- return "want_ip6_fib_stats_reply"
-}
-func (*WantIP6FibStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantIP6FibStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- PID uint32
-}
-
-func (*WantIP4MfibStats) GetMessageName() string {
- return "want_ip4_mfib_stats"
-}
-func (*WantIP4MfibStats) GetCrcString() string {
- return "476f5a08"
-}
-func (*WantIP4MfibStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantIP4MfibStatsReply) GetMessageName() string {
- return "want_ip4_mfib_stats_reply"
-}
-func (*WantIP4MfibStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantIP4MfibStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- PID uint32
-}
-
-func (*WantIP6MfibStats) GetMessageName() string {
- return "want_ip6_mfib_stats"
-}
-func (*WantIP6MfibStats) GetCrcString() string {
- return "476f5a08"
-}
-func (*WantIP6MfibStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantIP6MfibStatsReply) GetMessageName() string {
- return "want_ip6_mfib_stats_reply"
-}
-func (*WantIP6MfibStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantIP6MfibStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- PID uint32
-}
-
-func (*WantIP4NbrStats) GetMessageName() string {
- return "want_ip4_nbr_stats"
-}
-func (*WantIP4NbrStats) GetCrcString() string {
- return "476f5a08"
-}
-func (*WantIP4NbrStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantIP4NbrStatsReply) GetMessageName() string {
- return "want_ip4_nbr_stats_reply"
-}
-func (*WantIP4NbrStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantIP4NbrStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- PID uint32
-}
-
-func (*WantIP6NbrStats) GetMessageName() string {
- return "want_ip6_nbr_stats"
-}
-func (*WantIP6NbrStats) GetCrcString() string {
- return "476f5a08"
-}
-func (*WantIP6NbrStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantIP6NbrStatsReply) GetMessageName() string {
- return "want_ip6_nbr_stats_reply"
-}
-func (*WantIP6NbrStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantIP6NbrStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- Count uint32 `struc:"sizeof=C"`
- C []IP4FibCounter
-}
-
-func (*VnetIP4FibCounters) GetMessageName() string {
- return "vnet_ip4_fib_counters"
-}
-func (*VnetIP4FibCounters) GetCrcString() string {
- return "57e3feec"
-}
-func (*VnetIP4FibCounters) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// 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
- Count uint32 `struc:"sizeof=C"`
- C []IP4MfibCounter
-}
-
-func (*VnetIP4MfibCounters) GetMessageName() string {
- return "vnet_ip4_mfib_counters"
-}
-func (*VnetIP4MfibCounters) GetCrcString() string {
- return "946eb588"
-}
-func (*VnetIP4MfibCounters) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// 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"`
- SwIfIndex uint32
- Begin uint8
- C []IP4NbrCounter
-}
-
-func (*VnetIP4NbrCounters) GetMessageName() string {
- return "vnet_ip4_nbr_counters"
-}
-func (*VnetIP4NbrCounters) GetCrcString() string {
- return "214c4811"
-}
-func (*VnetIP4NbrCounters) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// 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
- Count uint32 `struc:"sizeof=C"`
- C []IP6FibCounter
-}
-
-func (*VnetIP6FibCounters) GetMessageName() string {
- return "vnet_ip6_fib_counters"
-}
-func (*VnetIP6FibCounters) GetCrcString() string {
- return "13aed73d"
-}
-func (*VnetIP6FibCounters) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// 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
- Count uint32 `struc:"sizeof=C"`
- C []IP6MfibCounter
-}
-
-func (*VnetIP6MfibCounters) GetMessageName() string {
- return "vnet_ip6_mfib_counters"
-}
-func (*VnetIP6MfibCounters) GetCrcString() string {
- return "65fe1ae3"
-}
-func (*VnetIP6MfibCounters) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// 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"`
- SwIfIndex uint32
- Begin uint8
- C []IP6NbrCounter
-}
-
-func (*VnetIP6NbrCounters) GetMessageName() string {
- return "vnet_ip6_nbr_counters"
-}
-func (*VnetIP6NbrCounters) GetCrcString() string {
- return "650161c0"
-}
-func (*VnetIP6NbrCounters) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// 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
- FirstSwIfIndex uint32
- Count uint32 `struc:"sizeof=Data"`
- Data []uint64
-}
-
-func (*VnetInterfaceSimpleCounters) GetMessageName() string {
- return "vnet_interface_simple_counters"
-}
-func (*VnetInterfaceSimpleCounters) GetCrcString() string {
- return "9bc4a808"
-}
-func (*VnetInterfaceSimpleCounters) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// 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
- FirstSwIfIndex uint32
- Count uint32 `struc:"sizeof=Data"`
- Data []VlibCounter
-}
-
-func (*VnetInterfaceCombinedCounters) GetMessageName() string {
- return "vnet_interface_combined_counters"
-}
-func (*VnetInterfaceCombinedCounters) GetCrcString() string {
- return "2c595002"
-}
-func (*VnetInterfaceCombinedCounters) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// 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"`
- Timestamp uint32
- Data []VnetSimpleCounter
-}
-
-func (*VnetPerInterfaceSimpleCounters) GetMessageName() string {
- return "vnet_per_interface_simple_counters"
-}
-func (*VnetPerInterfaceSimpleCounters) GetCrcString() string {
- return "d1fba9ba"
-}
-func (*VnetPerInterfaceSimpleCounters) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// 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"`
- Timestamp uint32
- Data []VnetCombinedCounter
-}
-
-func (*VnetPerInterfaceCombinedCounters) GetMessageName() string {
- return "vnet_per_interface_combined_counters"
-}
-func (*VnetPerInterfaceCombinedCounters) GetCrcString() string {
- return "dc578375"
-}
-func (*VnetPerInterfaceCombinedCounters) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// 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{}
-
-func (*VnetGetSummaryStats) GetMessageName() string {
- return "vnet_get_summary_stats"
-}
-func (*VnetGetSummaryStats) GetCrcString() string {
- return "51077d14"
-}
-func (*VnetGetSummaryStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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:"[8]uint64"`
- TotalBytes []uint64 `struc:"[8]uint64"`
- VectorRate float64
-}
-
-func (*VnetGetSummaryStatsReply) GetMessageName() string {
- return "vnet_get_summary_stats_reply"
-}
-func (*VnetGetSummaryStatsReply) GetCrcString() string {
- return "82b5e46c"
-}
-func (*VnetGetSummaryStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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{}
-
-func (*StatsGetPollerDelay) GetMessageName() string {
- return "stats_get_poller_delay"
-}
-func (*StatsGetPollerDelay) GetCrcString() string {
- return "51077d14"
-}
-func (*StatsGetPollerDelay) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
- Delay uint32
-}
-
-func (*StatsGetPollerDelayReply) GetMessageName() string {
- return "stats_get_poller_delay_reply"
-}
-func (*StatsGetPollerDelayReply) GetCrcString() string {
- return "8c445a33"
-}
-func (*StatsGetPollerDelayReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- PID uint32
-}
-
-func (*WantUDPEncapStats) GetMessageName() string {
- return "want_udp_encap_stats"
-}
-func (*WantUDPEncapStats) GetCrcString() string {
- return "cfaccc1f"
-}
-func (*WantUDPEncapStats) GetMessageType() api.MessageType {
- return api.RequestMessage
-}
-
-// 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
-}
-
-func (*WantUDPEncapStatsReply) GetMessageName() string {
- return "want_udp_encap_stats_reply"
-}
-func (*WantUDPEncapStatsReply) GetCrcString() string {
- return "e8d4e804"
-}
-func (*WantUDPEncapStatsReply) GetMessageType() api.MessageType {
- return api.ReplyMessage
-}
-
-// 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
- Count uint32 `struc:"sizeof=C"`
- C []UDPEncapCounter
-}
-
-func (*VnetUDPEncapCounters) GetMessageName() string {
- return "vnet_udp_encap_counters"
-}
-func (*VnetUDPEncapCounters) GetCrcString() string {
- return "1ab5e649"
-}
-func (*VnetUDPEncapCounters) GetMessageType() api.MessageType {
- return api.OtherMessage
-}
-
-// 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
-}
-
-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() {
- api.RegisterMessage((*WantStats)(nil), "stats.WantStats")
- api.RegisterMessage((*WantStatsReply)(nil), "stats.WantStatsReply")
- api.RegisterMessage((*WantInterfaceSimpleStats)(nil), "stats.WantInterfaceSimpleStats")
- api.RegisterMessage((*WantInterfaceSimpleStatsReply)(nil), "stats.WantInterfaceSimpleStatsReply")
- api.RegisterMessage((*WantPerInterfaceSimpleStats)(nil), "stats.WantPerInterfaceSimpleStats")
- api.RegisterMessage((*WantPerInterfaceSimpleStatsReply)(nil), "stats.WantPerInterfaceSimpleStatsReply")
- api.RegisterMessage((*WantInterfaceCombinedStats)(nil), "stats.WantInterfaceCombinedStats")
- api.RegisterMessage((*WantInterfaceCombinedStatsReply)(nil), "stats.WantInterfaceCombinedStatsReply")
- api.RegisterMessage((*WantPerInterfaceCombinedStats)(nil), "stats.WantPerInterfaceCombinedStats")
- api.RegisterMessage((*WantPerInterfaceCombinedStatsReply)(nil), "stats.WantPerInterfaceCombinedStatsReply")
- api.RegisterMessage((*WantIP4FibStats)(nil), "stats.WantIP4FibStats")
- api.RegisterMessage((*WantIP4FibStatsReply)(nil), "stats.WantIP4FibStatsReply")
- api.RegisterMessage((*WantIP6FibStats)(nil), "stats.WantIP6FibStats")
- api.RegisterMessage((*WantIP6FibStatsReply)(nil), "stats.WantIP6FibStatsReply")
- api.RegisterMessage((*WantIP4MfibStats)(nil), "stats.WantIP4MfibStats")
- api.RegisterMessage((*WantIP4MfibStatsReply)(nil), "stats.WantIP4MfibStatsReply")
- api.RegisterMessage((*WantIP6MfibStats)(nil), "stats.WantIP6MfibStats")
- api.RegisterMessage((*WantIP6MfibStatsReply)(nil), "stats.WantIP6MfibStatsReply")
- api.RegisterMessage((*WantIP4NbrStats)(nil), "stats.WantIP4NbrStats")
- api.RegisterMessage((*WantIP4NbrStatsReply)(nil), "stats.WantIP4NbrStatsReply")
- api.RegisterMessage((*WantIP6NbrStats)(nil), "stats.WantIP6NbrStats")
- api.RegisterMessage((*WantIP6NbrStatsReply)(nil), "stats.WantIP6NbrStatsReply")
- api.RegisterMessage((*VnetIP4FibCounters)(nil), "stats.VnetIP4FibCounters")
- api.RegisterMessage((*VnetIP4MfibCounters)(nil), "stats.VnetIP4MfibCounters")
- api.RegisterMessage((*VnetIP4NbrCounters)(nil), "stats.VnetIP4NbrCounters")
- api.RegisterMessage((*VnetIP6FibCounters)(nil), "stats.VnetIP6FibCounters")
- api.RegisterMessage((*VnetIP6MfibCounters)(nil), "stats.VnetIP6MfibCounters")
- api.RegisterMessage((*VnetIP6NbrCounters)(nil), "stats.VnetIP6NbrCounters")
- api.RegisterMessage((*VnetInterfaceSimpleCounters)(nil), "stats.VnetInterfaceSimpleCounters")
- api.RegisterMessage((*VnetInterfaceCombinedCounters)(nil), "stats.VnetInterfaceCombinedCounters")
- api.RegisterMessage((*VnetPerInterfaceSimpleCounters)(nil), "stats.VnetPerInterfaceSimpleCounters")
- api.RegisterMessage((*VnetPerInterfaceCombinedCounters)(nil), "stats.VnetPerInterfaceCombinedCounters")
- api.RegisterMessage((*VnetGetSummaryStats)(nil), "stats.VnetGetSummaryStats")
- api.RegisterMessage((*VnetGetSummaryStatsReply)(nil), "stats.VnetGetSummaryStatsReply")
- api.RegisterMessage((*StatsGetPollerDelay)(nil), "stats.StatsGetPollerDelay")
- api.RegisterMessage((*StatsGetPollerDelayReply)(nil), "stats.StatsGetPollerDelayReply")
- 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/vpe.api.json b/examples/bin_api/vpe.api.json
index edefd20..cc5ddee 100644
--- a/examples/bin_api/vpe.api.json
+++ b/examples/bin_api/vpe.api.json
@@ -81,17 +81,11 @@
"context"
],
[
- "u32",
- "length"
- ],
- [
- "u8",
- "cmd",
- 0,
- "length"
+ "string",
+ "cmd"
],
{
- "crc": "0x74e00a49"
+ "crc": "0xb1ad59b3"
}
],
[
@@ -131,17 +125,11 @@
"retval"
],
[
- "u32",
- "length"
- ],
- [
- "u8",
- "reply",
- 0,
- "length"
+ "string",
+ "reply"
],
{
- "crc": "0x1f22bbb8"
+ "crc": "0x6d3c80a4"
}
],
[
@@ -272,27 +260,23 @@
"retval"
],
[
- "u8",
- "program",
- 32
+ "string",
+ "program"
],
[
- "u8",
- "version",
- 32
+ "string",
+ "version"
],
[
- "u8",
- "build_date",
- 32
+ "string",
+ "build_date"
],
[
- "u8",
- "build_directory",
- 256
+ "string",
+ "build_directory"
],
{
- "crc": "0x8b5a13b4"
+ "crc": "0xb9bcf6df"
}
],
[
@@ -432,7 +416,7 @@
}
]
],
- "vl_api_version": "0x3ce489e",
+ "vl_api_version": "0x2cc8d629",
"unions": [],
"services": {
"cli_inband": {
diff --git a/examples/bin_api/vpe/vpe.ba.go b/examples/bin_api/vpe/vpe.ba.go
index 48925ac..e0d5f97 100644
--- a/examples/bin_api/vpe/vpe.ba.go
+++ b/examples/bin_api/vpe/vpe.ba.go
@@ -219,29 +219,23 @@ func (*Cli) GetMessageType() api.MessageType {
// "context"
// ],
// [
-// "u32",
-// "length"
-// ],
-// [
-// "u8",
-// "cmd",
-// 0,
-// "length"
+// "string",
+// "cmd"
// ],
// {
-// "crc": "0x74e00a49"
+// "crc": "0xb1ad59b3"
// }
//
type CliInband struct {
- Length uint32 `struc:"sizeof=Cmd"`
- Cmd []byte
+ XXX_CmdLen uint32 `struc:"sizeof=Cmd"`
+ Cmd string
}
func (*CliInband) GetMessageName() string {
return "cli_inband"
}
func (*CliInband) GetCrcString() string {
- return "74e00a49"
+ return "b1ad59b3"
}
func (*CliInband) GetMessageType() api.MessageType {
return api.RequestMessage
@@ -301,30 +295,24 @@ func (*CliReply) GetMessageType() api.MessageType {
// "retval"
// ],
// [
-// "u32",
-// "length"
-// ],
-// [
-// "u8",
-// "reply",
-// 0,
-// "length"
+// "string",
+// "reply"
// ],
// {
-// "crc": "0x1f22bbb8"
+// "crc": "0x6d3c80a4"
// }
//
type CliInbandReply struct {
- Retval int32
- Length uint32 `struc:"sizeof=Reply"`
- Reply []byte
+ Retval int32
+ XXX_ReplyLen uint32 `struc:"sizeof=Reply"`
+ Reply string
}
func (*CliInbandReply) GetMessageName() string {
return "cli_inband_reply"
}
func (*CliInbandReply) GetCrcString() string {
- return "1f22bbb8"
+ return "6d3c80a4"
}
func (*CliInbandReply) GetMessageType() api.MessageType {
return api.ReplyMessage
@@ -535,42 +523,42 @@ func (*ShowVersion) GetMessageType() api.MessageType {
// "retval"
// ],
// [
-// "u8",
-// "program",
-// 32
+// "string",
+// "program"
// ],
// [
-// "u8",
-// "version",
-// 32
+// "string",
+// "version"
// ],
// [
-// "u8",
-// "build_date",
-// 32
+// "string",
+// "build_date"
// ],
// [
-// "u8",
-// "build_directory",
-// 256
+// "string",
+// "build_directory"
// ],
// {
-// "crc": "0x8b5a13b4"
+// "crc": "0xb9bcf6df"
// }
//
type ShowVersionReply struct {
- Retval int32
- Program []byte `struc:"[32]byte"`
- Version []byte `struc:"[32]byte"`
- BuildDate []byte `struc:"[32]byte"`
- BuildDirectory []byte `struc:"[256]byte"`
+ Retval int32
+ XXX_ProgramLen uint32 `struc:"sizeof=Program"`
+ Program string
+ XXX_VersionLen uint32 `struc:"sizeof=Version"`
+ Version string
+ XXX_BuildDateLen uint32 `struc:"sizeof=BuildDate"`
+ BuildDate string
+ XXX_BuildDirectoryLen uint32 `struc:"sizeof=BuildDirectory"`
+ BuildDirectory string
}
func (*ShowVersionReply) GetMessageName() string {
return "show_version_reply"
}
func (*ShowVersionReply) GetCrcString() string {
- return "8b5a13b4"
+ return "b9bcf6df"
}
func (*ShowVersionReply) GetMessageType() api.MessageType {
return api.ReplyMessage
diff --git a/examples/cmd/stats-client/stats_client.go b/examples/cmd/stats-client/stats_client.go
deleted file mode 100644
index 7a2c313..0000000
--- a/examples/cmd/stats-client/stats_client.go
+++ /dev/null
@@ -1,165 +0,0 @@
-// Copyright (c) 2017 Cisco and/or its affiliates.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at:
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Binary stats-client is an example VPP management application that exercises the
-// govpp API for interface counters together with asynchronous connection to VPP.
-package main
-
-import (
- "fmt"
- "log"
- "os"
- "os/signal"
-
- "git.fd.io/govpp.git"
- "git.fd.io/govpp.git/api"
- "git.fd.io/govpp.git/core"
- "git.fd.io/govpp.git/examples/bin_api/stats"
-)
-
-/*
-
- IMPORTANT NOTICE!
-
- The binary API module stats used in this example will be deprecated in VPP 19.01.
- VPP's new stats API should be used, you can find basic usage of new stats API in example stats-api.
-
-*/
-
-func main() {
- fmt.Println("Starting stats VPP client..")
-
- // async connect to VPP
- conn, statCh, err := govpp.AsyncConnect("")
- if err != nil {
- log.Fatalln("Error:", err)
- }
- defer conn.Disconnect()
-
- // create an API channel that will be used in the examples
- ch, err := conn.NewAPIChannel()
- if err != nil {
- log.Fatalln("Error:", err)
- }
- defer ch.Close()
-
- // create channel for Interrupt signal
- sigChan := make(chan os.Signal, 1)
- signal.Notify(sigChan, os.Interrupt)
-
- var notifChan chan api.Message
- var simpleSub api.SubscriptionCtx
- var combinedSub api.SubscriptionCtx
-
- // loop until Interrupt signal is received
-loop:
- for {
- select {
- case connEvent := <-statCh:
- // VPP connection state change
- switch connEvent.State {
- case core.Connected:
- fmt.Println("VPP connected.")
- if notifChan == nil {
- simpleSub, combinedSub, notifChan = subscribeNotifications(ch)
- }
- requestStatistics(ch)
-
- case core.Disconnected:
- fmt.Println("VPP disconnected.")
- }
-
- case msg := <-notifChan:
- switch notif := msg.(type) {
- case *stats.VnetInterfaceSimpleCounters:
- // simple counter notification received
- processSimpleCounters(notif)
- case *stats.VnetInterfaceCombinedCounters:
- // combined counter notification received
- processCombinedCounters(notif)
- default:
- fmt.Println("Ignoring unknown VPP notification")
- }
-
- case <-sigChan:
- // interrupt received
- fmt.Println("Interrupt received, exiting.")
- break loop
- }
- }
-
- simpleSub.Unsubscribe()
- combinedSub.Unsubscribe()
-}
-
-// subscribeNotifications subscribes for interface counters notifications.
-func subscribeNotifications(ch api.Channel) (api.SubscriptionCtx, api.SubscriptionCtx, chan api.Message) {
- notifChan := make(chan api.Message, 100)
-
- simpleSub, err := ch.SubscribeNotification(notifChan, &stats.VnetInterfaceSimpleCounters{})
- if err != nil {
- panic(err)
- }
- combinedSub, err := ch.SubscribeNotification(notifChan, &stats.VnetInterfaceCombinedCounters{})
- if err != nil {
- panic(err)
- }
-
- return simpleSub, combinedSub, notifChan
-}
-
-// requestStatistics requests interface counters notifications from VPP.
-func requestStatistics(ch api.Channel) {
- if err := ch.SendRequest(&stats.WantStats{
- PID: uint32(os.Getpid()),
- EnableDisable: 1,
- }).ReceiveReply(&stats.WantStatsReply{}); err != nil {
- panic(err)
- }
-}
-
-// processSimpleCounters processes simple counters received from VPP.
-func processSimpleCounters(counters *stats.VnetInterfaceSimpleCounters) {
- fmt.Printf("SimpleCounters: %+v\n", counters)
-
- counterNames := []string{
- "Drop", "Punt",
- "IPv4", "IPv6",
- "RxNoBuf", "RxMiss",
- "RxError", "TxError",
- "MPLS",
- }
-
- for i := uint32(0); i < counters.Count; i++ {
- fmt.Printf("Interface '%d': %s = %d\n",
- counters.FirstSwIfIndex+i, counterNames[counters.VnetCounterType], counters.Data[i])
- }
-}
-
-// processCombinedCounters processes combined counters received from VPP.
-func processCombinedCounters(counters *stats.VnetInterfaceCombinedCounters) {
- fmt.Printf("CombinedCounters: %+v\n", counters)
-
- counterNames := []string{"Rx", "Tx"}
-
- for i := uint32(0); i < counters.Count; i++ {
- if len(counterNames) <= int(counters.VnetCounterType) {
- continue
- }
- fmt.Printf("Interface '%d': %s packets = %d, %s bytes = %d\n",
- counters.FirstSwIfIndex+i,
- counterNames[counters.VnetCounterType], counters.Data[i].Packets,
- counterNames[counters.VnetCounterType], counters.Data[i].Bytes)
- }
-}