Refactor GoVPP
[govpp.git] / examples / bin_api / stats / stats.ba.go
similarity index 60%
rename from examples/bin_api/stats/stats.go
rename to examples/bin_api/stats/stats.ba.go
index 0285698..eb2dd8f 100644 (file)
-// Code generated by govpp binapi-generator DO NOT EDIT.
-// Package stats represents the VPP binary API of the 'stats' VPP module.
-// Generated from '../../bin_api/stats.api.json'
+// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// source: stats.api.json
+
+/*
+Package stats is a generated VPP binary API of the 'stats' VPP module.
+
+It is generated from this file:
+       stats.api.json
+
+It contains these VPP binary API objects:
+       39 messages
+       10 types
+       14 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 _ = struc.Pack
+var _ = bytes.NewBuffer
+
+/* Types */
+
+// VlibCounter represents the VPP binary API type 'vlib_counter'.
+// Generated from 'stats.api.json', line 1004:
+//
+//            "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 the VPP binary API type 'vnet_combined_counter'.
+// Generated from 'stats.api.json', line 1018:
+//
+//            "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 the VPP binary API type 'vnet_simple_counter'.
+// Generated from 'stats.api.json', line 1092:
+//
+//            "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
+}
 
-// VlApiVersion contains version of the API.
-const VlAPIVersion = 0x50890812
+func (*VnetSimpleCounter) GetTypeName() string {
+       return "vnet_simple_counter"
+}
+func (*VnetSimpleCounter) GetCrcString() string {
+       return "8bd65e2d"
+}
 
-// IP4FibCounter represents the VPP binary API data type 'ip4_fib_counter'.
-// Generated from '../../bin_api/stats.api.json', line 776:
+// IP4FibCounter represents the VPP binary API type 'ip4_fib_counter'.
+// Generated from 'stats.api.json', line 1138:
 //
 //            "ip4_fib_counter",
 //            [
@@ -46,8 +261,8 @@ func (*IP4FibCounter) GetCrcString() string {
        return "a6ceb0c9"
 }
 
-// IP4MfibCounter represents the VPP binary API data type 'ip4_mfib_counter'.
-// Generated from '../../bin_api/stats.api.json', line 798:
+// IP4MfibCounter represents the VPP binary API type 'ip4_mfib_counter'.
+// Generated from 'stats.api.json', line 1160:
 //
 //            "ip4_mfib_counter",
 //            [
@@ -91,8 +306,8 @@ func (*IP4MfibCounter) GetCrcString() string {
        return "2cee4721"
 }
 
-// IP4NbrCounter represents the VPP binary API data type 'ip4_nbr_counter'.
-// Generated from '../../bin_api/stats.api.json', line 826:
+// IP4NbrCounter represents the VPP binary API type 'ip4_nbr_counter'.
+// Generated from 'stats.api.json', line 1188:
 //
 //            "ip4_nbr_counter",
 //            [
@@ -129,8 +344,8 @@ func (*IP4NbrCounter) GetCrcString() string {
        return "b9f974d6"
 }
 
-// IP6FibCounter represents the VPP binary API data type 'ip6_fib_counter'.
-// Generated from '../../bin_api/stats.api.json', line 848:
+// IP6FibCounter represents the VPP binary API type 'ip6_fib_counter'.
+// Generated from 'stats.api.json', line 1210:
 //
 //            "ip6_fib_counter",
 //            [
@@ -168,8 +383,8 @@ func (*IP6FibCounter) GetCrcString() string {
        return "f1197efb"
 }
 
-// IP6MfibCounter represents the VPP binary API data type 'ip6_mfib_counter'.
-// Generated from '../../bin_api/stats.api.json', line 871:
+// IP6MfibCounter represents the VPP binary API type 'ip6_mfib_counter'.
+// Generated from 'stats.api.json', line 1233:
 //
 //            "ip6_mfib_counter",
 //            [
@@ -213,8 +428,8 @@ func (*IP6MfibCounter) GetCrcString() string {
        return "90a9590e"
 }
 
-// IP6NbrCounter represents the VPP binary API data type 'ip6_nbr_counter'.
-// Generated from '../../bin_api/stats.api.json', line 899:
+// IP6NbrCounter represents the VPP binary API type 'ip6_nbr_counter'.
+// Generated from 'stats.api.json', line 1261:
 //
 //            "ip6_nbr_counter",
 //            [
@@ -252,8 +467,43 @@ func (*IP6NbrCounter) GetCrcString() string {
        return "2d755474"
 }
 
+// UDPEncapCounter represents the VPP binary API type 'udp_encap_counter'.
+// Generated from 'stats.api.json', line 1284:
+//
+//            "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"
+}
+
+/* Messages */
+
 // WantStats represents the VPP binary API message 'want_stats'.
-// Generated from '../../bin_api/stats.api.json', line 68:
+// Generated from 'stats.api.json', line 4:
 //
 //            "want_stats",
 //            [
@@ -282,24 +532,24 @@ func (*IP6NbrCounter) GetCrcString() string {
 //
 type WantStats struct {
        EnableDisable uint32
-       Pid           uint32
+       PID           uint32
 }
 
 func (*WantStats) GetMessageName() string {
        return "want_stats"
 }
-func (*WantStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*WantStats) GetCrcString() string {
        return "476f5a08"
 }
+func (*WantStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 func NewWantStats() api.Message {
        return &WantStats{}
 }
 
 // WantStatsReply represents the VPP binary API message 'want_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 94:
+// Generated from 'stats.api.json', line 30:
 //
 //            "want_stats_reply",
 //            [
@@ -325,18 +575,18 @@ type WantStatsReply struct {
 func (*WantStatsReply) GetMessageName() string {
        return "want_stats_reply"
 }
-func (*WantStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*WantStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
+func (*WantStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewWantStatsReply() api.Message {
        return &WantStatsReply{}
 }
 
 // WantInterfaceSimpleStats represents the VPP binary API message 'want_interface_simple_stats'.
-// Generated from '../../bin_api/stats.api.json', line 112:
+// Generated from 'stats.api.json', line 48:
 //
 //            "want_interface_simple_stats",
 //            [
@@ -365,24 +615,24 @@ func NewWantStatsReply() api.Message {
 //
 type WantInterfaceSimpleStats struct {
        EnableDisable uint32
-       Pid           uint32
+       PID           uint32
 }
 
 func (*WantInterfaceSimpleStats) GetMessageName() string {
        return "want_interface_simple_stats"
 }
-func (*WantInterfaceSimpleStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*WantInterfaceSimpleStats) GetCrcString() string {
        return "476f5a08"
 }
+func (*WantInterfaceSimpleStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 func NewWantInterfaceSimpleStats() api.Message {
        return &WantInterfaceSimpleStats{}
 }
 
 // WantInterfaceSimpleStatsReply represents the VPP binary API message 'want_interface_simple_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 138:
+// Generated from 'stats.api.json', line 74:
 //
 //            "want_interface_simple_stats_reply",
 //            [
@@ -408,18 +658,18 @@ type WantInterfaceSimpleStatsReply struct {
 func (*WantInterfaceSimpleStatsReply) GetMessageName() string {
        return "want_interface_simple_stats_reply"
 }
-func (*WantInterfaceSimpleStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*WantInterfaceSimpleStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
+func (*WantInterfaceSimpleStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewWantInterfaceSimpleStatsReply() api.Message {
        return &WantInterfaceSimpleStatsReply{}
 }
 
 // WantPerInterfaceSimpleStats represents the VPP binary API message 'want_per_interface_simple_stats'.
-// Generated from '../../bin_api/stats.api.json', line 156:
+// Generated from 'stats.api.json', line 92:
 //
 //            "want_per_interface_simple_stats",
 //            [
@@ -458,7 +708,7 @@ func NewWantInterfaceSimpleStatsReply() api.Message {
 //
 type WantPerInterfaceSimpleStats struct {
        EnableDisable uint32
-       Pid           uint32
+       PID           uint32
        Num           uint32 `struc:"sizeof=SwIfs"`
        SwIfs         []uint32
 }
@@ -466,18 +716,18 @@ type WantPerInterfaceSimpleStats struct {
 func (*WantPerInterfaceSimpleStats) GetMessageName() string {
        return "want_per_interface_simple_stats"
 }
-func (*WantPerInterfaceSimpleStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*WantPerInterfaceSimpleStats) GetCrcString() string {
        return "729d04f1"
 }
+func (*WantPerInterfaceSimpleStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 func NewWantPerInterfaceSimpleStats() api.Message {
        return &WantPerInterfaceSimpleStats{}
 }
 
 // WantPerInterfaceSimpleStatsReply represents the VPP binary API message 'want_per_interface_simple_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 192:
+// Generated from 'stats.api.json', line 128:
 //
 //            "want_per_interface_simple_stats_reply",
 //            [
@@ -503,18 +753,18 @@ type WantPerInterfaceSimpleStatsReply struct {
 func (*WantPerInterfaceSimpleStatsReply) GetMessageName() string {
        return "want_per_interface_simple_stats_reply"
 }
-func (*WantPerInterfaceSimpleStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*WantPerInterfaceSimpleStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
+func (*WantPerInterfaceSimpleStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewWantPerInterfaceSimpleStatsReply() api.Message {
        return &WantPerInterfaceSimpleStatsReply{}
 }
 
 // WantInterfaceCombinedStats represents the VPP binary API message 'want_interface_combined_stats'.
-// Generated from '../../bin_api/stats.api.json', line 210:
+// Generated from 'stats.api.json', line 146:
 //
 //            "want_interface_combined_stats",
 //            [
@@ -543,24 +793,24 @@ func NewWantPerInterfaceSimpleStatsReply() api.Message {
 //
 type WantInterfaceCombinedStats struct {
        EnableDisable uint32
-       Pid           uint32
+       PID           uint32
 }
 
 func (*WantInterfaceCombinedStats) GetMessageName() string {
        return "want_interface_combined_stats"
 }
-func (*WantInterfaceCombinedStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*WantInterfaceCombinedStats) GetCrcString() string {
        return "476f5a08"
 }
+func (*WantInterfaceCombinedStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 func NewWantInterfaceCombinedStats() api.Message {
        return &WantInterfaceCombinedStats{}
 }
 
 // WantInterfaceCombinedStatsReply represents the VPP binary API message 'want_interface_combined_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 236:
+// Generated from 'stats.api.json', line 172:
 //
 //            "want_interface_combined_stats_reply",
 //            [
@@ -586,18 +836,18 @@ type WantInterfaceCombinedStatsReply struct {
 func (*WantInterfaceCombinedStatsReply) GetMessageName() string {
        return "want_interface_combined_stats_reply"
 }
-func (*WantInterfaceCombinedStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*WantInterfaceCombinedStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
+func (*WantInterfaceCombinedStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewWantInterfaceCombinedStatsReply() api.Message {
        return &WantInterfaceCombinedStatsReply{}
 }
 
 // WantPerInterfaceCombinedStats represents the VPP binary API message 'want_per_interface_combined_stats'.
-// Generated from '../../bin_api/stats.api.json', line 254:
+// Generated from 'stats.api.json', line 190:
 //
 //            "want_per_interface_combined_stats",
 //            [
@@ -636,7 +886,7 @@ func NewWantInterfaceCombinedStatsReply() api.Message {
 //
 type WantPerInterfaceCombinedStats struct {
        EnableDisable uint32
-       Pid           uint32
+       PID           uint32
        Num           uint32 `struc:"sizeof=SwIfs"`
        SwIfs         []uint32
 }
@@ -644,18 +894,18 @@ type WantPerInterfaceCombinedStats struct {
 func (*WantPerInterfaceCombinedStats) GetMessageName() string {
        return "want_per_interface_combined_stats"
 }
-func (*WantPerInterfaceCombinedStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*WantPerInterfaceCombinedStats) GetCrcString() string {
        return "729d04f1"
 }
+func (*WantPerInterfaceCombinedStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 func NewWantPerInterfaceCombinedStats() api.Message {
        return &WantPerInterfaceCombinedStats{}
 }
 
 // WantPerInterfaceCombinedStatsReply represents the VPP binary API message 'want_per_interface_combined_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 290:
+// Generated from 'stats.api.json', line 226:
 //
 //            "want_per_interface_combined_stats_reply",
 //            [
@@ -681,18 +931,18 @@ type WantPerInterfaceCombinedStatsReply struct {
 func (*WantPerInterfaceCombinedStatsReply) GetMessageName() string {
        return "want_per_interface_combined_stats_reply"
 }
-func (*WantPerInterfaceCombinedStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*WantPerInterfaceCombinedStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
+func (*WantPerInterfaceCombinedStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewWantPerInterfaceCombinedStatsReply() api.Message {
        return &WantPerInterfaceCombinedStatsReply{}
 }
 
 // WantIP4FibStats represents the VPP binary API message 'want_ip4_fib_stats'.
-// Generated from '../../bin_api/stats.api.json', line 308:
+// Generated from 'stats.api.json', line 244:
 //
 //            "want_ip4_fib_stats",
 //            [
@@ -721,24 +971,24 @@ func NewWantPerInterfaceCombinedStatsReply() api.Message {
 //
 type WantIP4FibStats struct {
        EnableDisable uint32
-       Pid           uint32
+       PID           uint32
 }
 
 func (*WantIP4FibStats) GetMessageName() string {
        return "want_ip4_fib_stats"
 }
-func (*WantIP4FibStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*WantIP4FibStats) GetCrcString() string {
        return "476f5a08"
 }
+func (*WantIP4FibStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 func NewWantIP4FibStats() api.Message {
        return &WantIP4FibStats{}
 }
 
 // WantIP4FibStatsReply represents the VPP binary API message 'want_ip4_fib_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 334:
+// Generated from 'stats.api.json', line 270:
 //
 //            "want_ip4_fib_stats_reply",
 //            [
@@ -764,18 +1014,18 @@ type WantIP4FibStatsReply struct {
 func (*WantIP4FibStatsReply) GetMessageName() string {
        return "want_ip4_fib_stats_reply"
 }
-func (*WantIP4FibStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*WantIP4FibStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
+func (*WantIP4FibStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewWantIP4FibStatsReply() api.Message {
        return &WantIP4FibStatsReply{}
 }
 
 // WantIP6FibStats represents the VPP binary API message 'want_ip6_fib_stats'.
-// Generated from '../../bin_api/stats.api.json', line 352:
+// Generated from 'stats.api.json', line 288:
 //
 //            "want_ip6_fib_stats",
 //            [
@@ -804,24 +1054,24 @@ func NewWantIP4FibStatsReply() api.Message {
 //
 type WantIP6FibStats struct {
        EnableDisable uint32
-       Pid           uint32
+       PID           uint32
 }
 
 func (*WantIP6FibStats) GetMessageName() string {
        return "want_ip6_fib_stats"
 }
-func (*WantIP6FibStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*WantIP6FibStats) GetCrcString() string {
        return "476f5a08"
 }
+func (*WantIP6FibStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 func NewWantIP6FibStats() api.Message {
        return &WantIP6FibStats{}
 }
 
 // WantIP6FibStatsReply represents the VPP binary API message 'want_ip6_fib_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 378:
+// Generated from 'stats.api.json', line 314:
 //
 //            "want_ip6_fib_stats_reply",
 //            [
@@ -847,18 +1097,18 @@ type WantIP6FibStatsReply struct {
 func (*WantIP6FibStatsReply) GetMessageName() string {
        return "want_ip6_fib_stats_reply"
 }
-func (*WantIP6FibStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*WantIP6FibStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
+func (*WantIP6FibStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewWantIP6FibStatsReply() api.Message {
        return &WantIP6FibStatsReply{}
 }
 
 // WantIP4MfibStats represents the VPP binary API message 'want_ip4_mfib_stats'.
-// Generated from '../../bin_api/stats.api.json', line 396:
+// Generated from 'stats.api.json', line 332:
 //
 //            "want_ip4_mfib_stats",
 //            [
@@ -887,24 +1137,24 @@ func NewWantIP6FibStatsReply() api.Message {
 //
 type WantIP4MfibStats struct {
        EnableDisable uint32
-       Pid           uint32
+       PID           uint32
 }
 
 func (*WantIP4MfibStats) GetMessageName() string {
        return "want_ip4_mfib_stats"
 }
-func (*WantIP4MfibStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*WantIP4MfibStats) GetCrcString() string {
        return "476f5a08"
 }
+func (*WantIP4MfibStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 func NewWantIP4MfibStats() api.Message {
        return &WantIP4MfibStats{}
 }
 
 // WantIP4MfibStatsReply represents the VPP binary API message 'want_ip4_mfib_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 422:
+// Generated from 'stats.api.json', line 358:
 //
 //            "want_ip4_mfib_stats_reply",
 //            [
@@ -930,18 +1180,18 @@ type WantIP4MfibStatsReply struct {
 func (*WantIP4MfibStatsReply) GetMessageName() string {
        return "want_ip4_mfib_stats_reply"
 }
-func (*WantIP4MfibStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*WantIP4MfibStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
+func (*WantIP4MfibStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewWantIP4MfibStatsReply() api.Message {
        return &WantIP4MfibStatsReply{}
 }
 
 // WantIP6MfibStats represents the VPP binary API message 'want_ip6_mfib_stats'.
-// Generated from '../../bin_api/stats.api.json', line 440:
+// Generated from 'stats.api.json', line 376:
 //
 //            "want_ip6_mfib_stats",
 //            [
@@ -970,24 +1220,24 @@ func NewWantIP4MfibStatsReply() api.Message {
 //
 type WantIP6MfibStats struct {
        EnableDisable uint32
-       Pid           uint32
+       PID           uint32
 }
 
 func (*WantIP6MfibStats) GetMessageName() string {
        return "want_ip6_mfib_stats"
 }
-func (*WantIP6MfibStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*WantIP6MfibStats) GetCrcString() string {
        return "476f5a08"
 }
+func (*WantIP6MfibStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 func NewWantIP6MfibStats() api.Message {
        return &WantIP6MfibStats{}
 }
 
 // WantIP6MfibStatsReply represents the VPP binary API message 'want_ip6_mfib_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 466:
+// Generated from 'stats.api.json', line 402:
 //
 //            "want_ip6_mfib_stats_reply",
 //            [
@@ -1013,18 +1263,18 @@ type WantIP6MfibStatsReply struct {
 func (*WantIP6MfibStatsReply) GetMessageName() string {
        return "want_ip6_mfib_stats_reply"
 }
-func (*WantIP6MfibStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*WantIP6MfibStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
+func (*WantIP6MfibStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewWantIP6MfibStatsReply() api.Message {
        return &WantIP6MfibStatsReply{}
 }
 
 // WantIP4NbrStats represents the VPP binary API message 'want_ip4_nbr_stats'.
-// Generated from '../../bin_api/stats.api.json', line 484:
+// Generated from 'stats.api.json', line 420:
 //
 //            "want_ip4_nbr_stats",
 //            [
@@ -1053,24 +1303,24 @@ func NewWantIP6MfibStatsReply() api.Message {
 //
 type WantIP4NbrStats struct {
        EnableDisable uint32
-       Pid           uint32
+       PID           uint32
 }
 
 func (*WantIP4NbrStats) GetMessageName() string {
        return "want_ip4_nbr_stats"
 }
-func (*WantIP4NbrStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*WantIP4NbrStats) GetCrcString() string {
        return "476f5a08"
 }
-func NewWantIP4NbrStats() api.Message {
-       return &WantIP4NbrStats{}
+func (*WantIP4NbrStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+func NewWantIP4NbrStats() api.Message {
+       return &WantIP4NbrStats{}
 }
 
 // WantIP4NbrStatsReply represents the VPP binary API message 'want_ip4_nbr_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 510:
+// Generated from 'stats.api.json', line 446:
 //
 //            "want_ip4_nbr_stats_reply",
 //            [
@@ -1096,18 +1346,18 @@ type WantIP4NbrStatsReply struct {
 func (*WantIP4NbrStatsReply) GetMessageName() string {
        return "want_ip4_nbr_stats_reply"
 }
-func (*WantIP4NbrStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*WantIP4NbrStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
+func (*WantIP4NbrStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewWantIP4NbrStatsReply() api.Message {
        return &WantIP4NbrStatsReply{}
 }
 
 // WantIP6NbrStats represents the VPP binary API message 'want_ip6_nbr_stats'.
-// Generated from '../../bin_api/stats.api.json', line 528:
+// Generated from 'stats.api.json', line 464:
 //
 //            "want_ip6_nbr_stats",
 //            [
@@ -1136,24 +1386,24 @@ func NewWantIP4NbrStatsReply() api.Message {
 //
 type WantIP6NbrStats struct {
        EnableDisable uint32
-       Pid           uint32
+       PID           uint32
 }
 
 func (*WantIP6NbrStats) GetMessageName() string {
        return "want_ip6_nbr_stats"
 }
-func (*WantIP6NbrStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*WantIP6NbrStats) GetCrcString() string {
        return "476f5a08"
 }
+func (*WantIP6NbrStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 func NewWantIP6NbrStats() api.Message {
        return &WantIP6NbrStats{}
 }
 
 // WantIP6NbrStatsReply represents the VPP binary API message 'want_ip6_nbr_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 554:
+// Generated from 'stats.api.json', line 490:
 //
 //            "want_ip6_nbr_stats_reply",
 //            [
@@ -1179,18 +1429,18 @@ type WantIP6NbrStatsReply struct {
 func (*WantIP6NbrStatsReply) GetMessageName() string {
        return "want_ip6_nbr_stats_reply"
 }
-func (*WantIP6NbrStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*WantIP6NbrStatsReply) GetCrcString() string {
        return "e8d4e804"
 }
+func (*WantIP6NbrStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewWantIP6NbrStatsReply() api.Message {
        return &WantIP6NbrStatsReply{}
 }
 
 // VnetIP4FibCounters represents the VPP binary API message 'vnet_ip4_fib_counters'.
-// Generated from '../../bin_api/stats.api.json', line 572:
+// Generated from 'stats.api.json', line 508:
 //
 //            "vnet_ip4_fib_counters",
 //            [
@@ -1224,18 +1474,18 @@ type VnetIP4FibCounters struct {
 func (*VnetIP4FibCounters) GetMessageName() string {
        return "vnet_ip4_fib_counters"
 }
-func (*VnetIP4FibCounters) GetMessageType() api.MessageType {
-       return api.OtherMessage
-}
 func (*VnetIP4FibCounters) GetCrcString() string {
        return "57e3feec"
 }
+func (*VnetIP4FibCounters) GetMessageType() api.MessageType {
+       return api.OtherMessage
+}
 func NewVnetIP4FibCounters() api.Message {
        return &VnetIP4FibCounters{}
 }
 
 // VnetIP4MfibCounters represents the VPP binary API message 'vnet_ip4_mfib_counters'.
-// Generated from '../../bin_api/stats.api.json', line 596:
+// Generated from 'stats.api.json', line 532:
 //
 //            "vnet_ip4_mfib_counters",
 //            [
@@ -1269,18 +1519,18 @@ type VnetIP4MfibCounters struct {
 func (*VnetIP4MfibCounters) GetMessageName() string {
        return "vnet_ip4_mfib_counters"
 }
-func (*VnetIP4MfibCounters) GetMessageType() api.MessageType {
-       return api.OtherMessage
-}
 func (*VnetIP4MfibCounters) GetCrcString() string {
        return "946eb588"
 }
+func (*VnetIP4MfibCounters) GetMessageType() api.MessageType {
+       return api.OtherMessage
+}
 func NewVnetIP4MfibCounters() api.Message {
        return &VnetIP4MfibCounters{}
 }
 
 // VnetIP4NbrCounters represents the VPP binary API message 'vnet_ip4_nbr_counters'.
-// Generated from '../../bin_api/stats.api.json', line 620:
+// Generated from 'stats.api.json', line 556:
 //
 //            "vnet_ip4_nbr_counters",
 //            [
@@ -1319,18 +1569,18 @@ type VnetIP4NbrCounters struct {
 func (*VnetIP4NbrCounters) GetMessageName() string {
        return "vnet_ip4_nbr_counters"
 }
-func (*VnetIP4NbrCounters) GetMessageType() api.MessageType {
-       return api.OtherMessage
-}
 func (*VnetIP4NbrCounters) GetCrcString() string {
        return "214c4811"
 }
+func (*VnetIP4NbrCounters) GetMessageType() api.MessageType {
+       return api.OtherMessage
+}
 func NewVnetIP4NbrCounters() api.Message {
        return &VnetIP4NbrCounters{}
 }
 
 // VnetIP6FibCounters represents the VPP binary API message 'vnet_ip6_fib_counters'.
-// Generated from '../../bin_api/stats.api.json', line 648:
+// Generated from 'stats.api.json', line 584:
 //
 //            "vnet_ip6_fib_counters",
 //            [
@@ -1364,18 +1614,18 @@ type VnetIP6FibCounters struct {
 func (*VnetIP6FibCounters) GetMessageName() string {
        return "vnet_ip6_fib_counters"
 }
-func (*VnetIP6FibCounters) GetMessageType() api.MessageType {
-       return api.OtherMessage
-}
 func (*VnetIP6FibCounters) GetCrcString() string {
        return "13aed73d"
 }
+func (*VnetIP6FibCounters) GetMessageType() api.MessageType {
+       return api.OtherMessage
+}
 func NewVnetIP6FibCounters() api.Message {
        return &VnetIP6FibCounters{}
 }
 
 // VnetIP6MfibCounters represents the VPP binary API message 'vnet_ip6_mfib_counters'.
-// Generated from '../../bin_api/stats.api.json', line 672:
+// Generated from 'stats.api.json', line 608:
 //
 //            "vnet_ip6_mfib_counters",
 //            [
@@ -1409,18 +1659,18 @@ type VnetIP6MfibCounters struct {
 func (*VnetIP6MfibCounters) GetMessageName() string {
        return "vnet_ip6_mfib_counters"
 }
-func (*VnetIP6MfibCounters) GetMessageType() api.MessageType {
-       return api.OtherMessage
-}
 func (*VnetIP6MfibCounters) GetCrcString() string {
        return "65fe1ae3"
 }
+func (*VnetIP6MfibCounters) GetMessageType() api.MessageType {
+       return api.OtherMessage
+}
 func NewVnetIP6MfibCounters() api.Message {
        return &VnetIP6MfibCounters{}
 }
 
 // VnetIP6NbrCounters represents the VPP binary API message 'vnet_ip6_nbr_counters'.
-// Generated from '../../bin_api/stats.api.json', line 696:
+// Generated from 'stats.api.json', line 632:
 //
 //            "vnet_ip6_nbr_counters",
 //            [
@@ -1459,18 +1709,208 @@ type VnetIP6NbrCounters struct {
 func (*VnetIP6NbrCounters) GetMessageName() string {
        return "vnet_ip6_nbr_counters"
 }
-func (*VnetIP6NbrCounters) GetMessageType() api.MessageType {
-       return api.OtherMessage
-}
 func (*VnetIP6NbrCounters) GetCrcString() string {
        return "650161c0"
 }
+func (*VnetIP6NbrCounters) GetMessageType() api.MessageType {
+       return api.OtherMessage
+}
 func NewVnetIP6NbrCounters() api.Message {
        return &VnetIP6NbrCounters{}
 }
 
+// VnetInterfaceSimpleCounters represents the VPP binary API message 'vnet_interface_simple_counters'.
+// Generated from 'stats.api.json', line 660:
+//
+//            "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
+}
+func NewVnetInterfaceSimpleCounters() api.Message {
+       return &VnetInterfaceSimpleCounters{}
+}
+
+// VnetInterfaceCombinedCounters represents the VPP binary API message 'vnet_interface_combined_counters'.
+// Generated from 'stats.api.json', line 688:
+//
+//            "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
+}
+func NewVnetInterfaceCombinedCounters() api.Message {
+       return &VnetInterfaceCombinedCounters{}
+}
+
+// VnetPerInterfaceSimpleCounters represents the VPP binary API message 'vnet_per_interface_simple_counters'.
+// Generated from 'stats.api.json', line 716:
+//
+//            "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
+}
+func NewVnetPerInterfaceSimpleCounters() api.Message {
+       return &VnetPerInterfaceSimpleCounters{}
+}
+
+// VnetPerInterfaceCombinedCounters represents the VPP binary API message 'vnet_per_interface_combined_counters'.
+// Generated from 'stats.api.json', line 740:
+//
+//            "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
+}
+func NewVnetPerInterfaceCombinedCounters() api.Message {
+       return &VnetPerInterfaceCombinedCounters{}
+}
+
 // VnetGetSummaryStats represents the VPP binary API message 'vnet_get_summary_stats'.
-// Generated from '../../bin_api/stats.api.json', line 724:
+// Generated from 'stats.api.json', line 764:
 //
 //            "vnet_get_summary_stats",
 //            [
@@ -1489,24 +1929,23 @@ func NewVnetIP6NbrCounters() api.Message {
 //                "crc": "0x51077d14"
 //            }
 //
-type VnetGetSummaryStats struct {
-}
+type VnetGetSummaryStats struct{}
 
 func (*VnetGetSummaryStats) GetMessageName() string {
        return "vnet_get_summary_stats"
 }
-func (*VnetGetSummaryStats) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
 func (*VnetGetSummaryStats) GetCrcString() string {
        return "51077d14"
 }
+func (*VnetGetSummaryStats) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
 func NewVnetGetSummaryStats() api.Message {
        return &VnetGetSummaryStats{}
 }
 
 // VnetGetSummaryStatsReply represents the VPP binary API message 'vnet_get_summary_stats_reply'.
-// Generated from '../../bin_api/stats.api.json', line 742:
+// Generated from 'stats.api.json', line 782:
 //
 //            "vnet_get_summary_stats_reply",
 //            [
@@ -1549,12 +1988,278 @@ type VnetGetSummaryStatsReply struct {
 func (*VnetGetSummaryStatsReply) GetMessageName() string {
        return "vnet_get_summary_stats_reply"
 }
-func (*VnetGetSummaryStatsReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
 func (*VnetGetSummaryStatsReply) GetCrcString() string {
        return "32b87c56"
 }
+func (*VnetGetSummaryStatsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
 func NewVnetGetSummaryStatsReply() api.Message {
        return &VnetGetSummaryStatsReply{}
 }
+
+// StatsGetPollerDelay represents the VPP binary API message 'stats_get_poller_delay'.
+// Generated from 'stats.api.json', line 814:
+//
+//            "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
+}
+func NewStatsGetPollerDelay() api.Message {
+       return &StatsGetPollerDelay{}
+}
+
+// StatsGetPollerDelayReply represents the VPP binary API message 'stats_get_poller_delay_reply'.
+// Generated from 'stats.api.json', line 832:
+//
+//            "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
+}
+func NewStatsGetPollerDelayReply() api.Message {
+       return &StatsGetPollerDelayReply{}
+}
+
+// WantUDPEncapStats represents the VPP binary API message 'want_udp_encap_stats'.
+// Generated from 'stats.api.json', line 854:
+//
+//            "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
+}
+func NewWantUDPEncapStats() api.Message {
+       return &WantUDPEncapStats{}
+}
+
+// WantUDPEncapStatsReply represents the VPP binary API message 'want_udp_encap_stats_reply'.
+// Generated from 'stats.api.json', line 880:
+//
+//            "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
+}
+func NewWantUDPEncapStatsReply() api.Message {
+       return &WantUDPEncapStatsReply{}
+}
+
+// VnetUDPEncapCounters represents the VPP binary API message 'vnet_udp_encap_counters'.
+// Generated from 'stats.api.json', line 898:
+//
+//            "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
+}
+func NewVnetUDPEncapCounters() api.Message {
+       return &VnetUDPEncapCounters{}
+}
+
+/* Services */
+
+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 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")
+}