Generator improvements
[govpp.git] / examples / bin_api / vpe / vpe.ba.go
index fe0fa03..9eb4c98 100644 (file)
@@ -5,9 +5,9 @@
  Package vpe is a generated from VPP binary API module 'vpe'.
 
  It contains following objects:
-        16 messages
-         8 services
-
+         9 services
+         1 type
+        18 messages
 */
 package vpe
 
@@ -20,104 +20,181 @@ var _ = api.RegisterMessage
 var _ = struc.Pack
 var _ = bytes.NewBuffer
 
+// Services represents VPP binary API services:
+//
+//     "services": {
+//         "cli_inband": {
+//             "reply": "cli_inband_reply"
+//         },
+//         "get_node_index": {
+//             "reply": "get_node_index_reply"
+//         },
+//         "cli": {
+//             "reply": "cli_reply"
+//         },
+//         "show_version": {
+//             "reply": "show_version_reply"
+//         },
+//         "get_node_graph": {
+//             "reply": "get_node_graph_reply"
+//         },
+//         "get_next_index": {
+//             "reply": "get_next_index_reply"
+//         },
+//         "show_threads": {
+//             "reply": "show_threads_reply"
+//         },
+//         "add_node_next": {
+//             "reply": "add_node_next_reply"
+//         },
+//         "control_ping": {
+//             "reply": "control_ping_reply"
+//         }
+//     },
+//
+type Services interface {
+       AddNodeNext(*AddNodeNext) (*AddNodeNextReply, error)
+       Cli(*Cli) (*CliReply, error)
+       CliInband(*CliInband) (*CliInbandReply, error)
+       ControlPing(*ControlPing) (*ControlPingReply, error)
+       GetNextIndex(*GetNextIndex) (*GetNextIndexReply, error)
+       GetNodeGraph(*GetNodeGraph) (*GetNodeGraphReply, error)
+       GetNodeIndex(*GetNodeIndex) (*GetNodeIndexReply, error)
+       ShowThreads(*ShowThreads) (*ShowThreadsReply, error)
+       ShowVersion(*ShowVersion) (*ShowVersionReply, error)
+}
+
+/* Types */
+
+// ThreadData represents VPP binary API type 'thread_data':
+//
+//     "thread_data",
+//     0,
+//     "count"
+//
+type ThreadData struct {
+       ID        uint32
+       Name      []byte `struc:"[64]byte"`
+       Type      []byte `struc:"[64]byte"`
+       PID       uint32
+       CPUID     uint32
+       Core      uint32
+       CPUSocket uint32
+}
+
+func (*ThreadData) GetTypeName() string {
+       return "thread_data"
+}
+func (*ThreadData) GetCrcString() string {
+       return "0f57094e"
+}
+
 /* Messages */
 
-// ControlPing represents the VPP binary API message 'control_ping'.
-//
-//            "control_ping",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            {
-//                "crc": "0x51077d14"
-//            }
+// AddNodeNext represents VPP binary API message 'add_node_next':
+//
+//     "add_node_next",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u8",
+//         "node_name",
+//         64
+//     ],
+//     [
+//         "u8",
+//         "next_name",
+//         64
+//     ],
+//     {
+//         "crc": "0x9ab92f7a"
+//     }
 //
-type ControlPing struct{}
+type AddNodeNext struct {
+       NodeName []byte `struc:"[64]byte"`
+       NextName []byte `struc:"[64]byte"`
+}
 
-func (*ControlPing) GetMessageName() string {
-       return "control_ping"
+func (*AddNodeNext) GetMessageName() string {
+       return "add_node_next"
 }
-func (*ControlPing) GetCrcString() string {
-       return "51077d14"
+func (*AddNodeNext) GetCrcString() string {
+       return "9ab92f7a"
 }
-func (*ControlPing) GetMessageType() api.MessageType {
+func (*AddNodeNext) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ControlPingReply represents the VPP binary API message 'control_ping_reply'.
-//
-//            "control_ping_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "vpe_pid"
-//            ],
-//            {
-//                "crc": "0xf6b0b8ca"
-//            }
+// AddNodeNextReply represents VPP binary API message 'add_node_next_reply':
+//
+//     "add_node_next_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "u32",
+//         "next_index"
+//     ],
+//     {
+//         "crc": "0x2ed75f32"
+//     }
 //
-type ControlPingReply struct {
-       Retval      int32
-       ClientIndex uint32
-       VpePID      uint32
+type AddNodeNextReply struct {
+       Retval    int32
+       NextIndex uint32
 }
 
-func (*ControlPingReply) GetMessageName() string {
-       return "control_ping_reply"
+func (*AddNodeNextReply) GetMessageName() string {
+       return "add_node_next_reply"
 }
-func (*ControlPingReply) GetCrcString() string {
-       return "f6b0b8ca"
+func (*AddNodeNextReply) GetCrcString() string {
+       return "2ed75f32"
 }
-func (*ControlPingReply) GetMessageType() api.MessageType {
+func (*AddNodeNextReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// Cli represents the VPP binary API message 'cli'.
-//
-//            "cli",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u64",
-//                "cmd_in_shmem"
-//            ],
-//            {
-//                "crc": "0x23bfbfff"
-//            }
+// Cli represents VPP binary API message 'cli':
+//
+//     "cli",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u64",
+//         "cmd_in_shmem"
+//     ],
+//     {
+//         "crc": "0x23bfbfff"
+//     }
 //
 type Cli struct {
        CmdInShmem uint64
@@ -133,397 +210,295 @@ func (*Cli) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// CliInband represents the VPP binary API message 'cli_inband'.
-//
-//            "cli_inband",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u32",
-//                "length"
-//            ],
-//            [
-//                "u8",
-//                "cmd",
-//                0,
-//                "length"
-//            ],
-//            {
-//                "crc": "0x74e00a49"
-//            }
+// CliInband represents VPP binary API message 'cli_inband':
+//
+//     "cli_inband",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "string",
+//         "cmd"
+//     ],
+//     {
+//         "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
 }
 
-// CliReply represents the VPP binary API message 'cli_reply'.
-//
-//            "cli_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            [
-//                "u64",
-//                "reply_in_shmem"
-//            ],
-//            {
-//                "crc": "0x06d68297"
-//            }
+// CliInbandReply represents VPP binary API message 'cli_inband_reply':
+//
+//     "cli_inband_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "string",
+//         "reply"
+//     ],
+//     {
+//         "crc": "0x6d3c80a4"
+//     }
 //
-type CliReply struct {
+type CliInbandReply struct {
        Retval       int32
-       ReplyInShmem uint64
+       XXX_ReplyLen uint32 `struc:"sizeof=Reply"`
+       Reply        string
 }
 
-func (*CliReply) GetMessageName() string {
-       return "cli_reply"
+func (*CliInbandReply) GetMessageName() string {
+       return "cli_inband_reply"
 }
-func (*CliReply) GetCrcString() string {
-       return "06d68297"
+func (*CliInbandReply) GetCrcString() string {
+       return "6d3c80a4"
 }
-func (*CliReply) GetMessageType() api.MessageType {
+func (*CliInbandReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// CliInbandReply represents the VPP binary API message 'cli_inband_reply'.
-//
-//            "cli_inband_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            [
-//                "u32",
-//                "length"
-//            ],
-//            [
-//                "u8",
-//                "reply",
-//                0,
-//                "length"
-//            ],
-//            {
-//                "crc": "0x1f22bbb8"
-//            }
+// CliReply represents VPP binary API message 'cli_reply':
+//
+//     "cli_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "u64",
+//         "reply_in_shmem"
+//     ],
+//     {
+//         "crc": "0x06d68297"
+//     }
 //
-type CliInbandReply struct {
-       Retval int32
-       Length uint32 `struc:"sizeof=Reply"`
-       Reply  []byte
+type CliReply struct {
+       Retval       int32
+       ReplyInShmem uint64
 }
 
-func (*CliInbandReply) GetMessageName() string {
-       return "cli_inband_reply"
+func (*CliReply) GetMessageName() string {
+       return "cli_reply"
 }
-func (*CliInbandReply) GetCrcString() string {
-       return "1f22bbb8"
+func (*CliReply) GetCrcString() string {
+       return "06d68297"
 }
-func (*CliInbandReply) GetMessageType() api.MessageType {
+func (*CliReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// GetNodeIndex represents the VPP binary API message 'get_node_index'.
-//
-//            "get_node_index",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "node_name",
-//                64
-//            ],
-//            {
-//                "crc": "0x6c9a495d"
-//            }
+// ControlPing represents VPP binary API message 'control_ping':
+//
+//     "control_ping",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     {
+//         "crc": "0x51077d14"
+//     }
 //
-type GetNodeIndex struct {
-       NodeName []byte `struc:"[64]byte"`
-}
+type ControlPing struct{}
 
-func (*GetNodeIndex) GetMessageName() string {
-       return "get_node_index"
+func (*ControlPing) GetMessageName() string {
+       return "control_ping"
 }
-func (*GetNodeIndex) GetCrcString() string {
-       return "6c9a495d"
+func (*ControlPing) GetCrcString() string {
+       return "51077d14"
 }
-func (*GetNodeIndex) GetMessageType() api.MessageType {
+func (*ControlPing) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// GetNodeIndexReply represents the VPP binary API message 'get_node_index_reply'.
-//
-//            "get_node_index_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            [
-//                "u32",
-//                "node_index"
-//            ],
-//            {
-//                "crc": "0xa8600b89"
-//            }
+// ControlPingReply represents VPP binary API message 'control_ping_reply':
+//
+//     "control_ping_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "vpe_pid"
+//     ],
+//     {
+//         "crc": "0xf6b0b8ca"
+//     }
 //
-type GetNodeIndexReply struct {
-       Retval    int32
-       NodeIndex uint32
+type ControlPingReply struct {
+       Retval      int32
+       ClientIndex uint32
+       VpePID      uint32
 }
 
-func (*GetNodeIndexReply) GetMessageName() string {
-       return "get_node_index_reply"
+func (*ControlPingReply) GetMessageName() string {
+       return "control_ping_reply"
 }
-func (*GetNodeIndexReply) GetCrcString() string {
-       return "a8600b89"
+func (*ControlPingReply) GetCrcString() string {
+       return "f6b0b8ca"
 }
-func (*GetNodeIndexReply) GetMessageType() api.MessageType {
+func (*ControlPingReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// AddNodeNext represents the VPP binary API message 'add_node_next'.
-//
-//            "add_node_next",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "node_name",
-//                64
-//            ],
-//            [
-//                "u8",
-//                "next_name",
-//                64
-//            ],
-//            {
-//                "crc": "0x9ab92f7a"
-//            }
+// GetNextIndex represents VPP binary API message 'get_next_index':
+//
+//     "get_next_index",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u8",
+//         "node_name",
+//         64
+//     ],
+//     [
+//         "u8",
+//         "next_name",
+//         64
+//     ],
+//     {
+//         "crc": "0x9ab92f7a"
+//     }
 //
-type AddNodeNext struct {
+type GetNextIndex struct {
        NodeName []byte `struc:"[64]byte"`
        NextName []byte `struc:"[64]byte"`
 }
 
-func (*AddNodeNext) GetMessageName() string {
-       return "add_node_next"
+func (*GetNextIndex) GetMessageName() string {
+       return "get_next_index"
 }
-func (*AddNodeNext) GetCrcString() string {
+func (*GetNextIndex) GetCrcString() string {
        return "9ab92f7a"
 }
-func (*AddNodeNext) GetMessageType() api.MessageType {
+func (*GetNextIndex) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// AddNodeNextReply represents the VPP binary API message 'add_node_next_reply'.
-//
-//            "add_node_next_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            [
-//                "u32",
-//                "next_index"
-//            ],
-//            {
-//                "crc": "0x2ed75f32"
-//            }
+// GetNextIndexReply represents VPP binary API message 'get_next_index_reply':
+//
+//     "get_next_index_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "u32",
+//         "next_index"
+//     ],
+//     {
+//         "crc": "0x2ed75f32"
+//     }
 //
-type AddNodeNextReply struct {
+type GetNextIndexReply struct {
        Retval    int32
        NextIndex uint32
 }
 
-func (*AddNodeNextReply) GetMessageName() string {
-       return "add_node_next_reply"
+func (*GetNextIndexReply) GetMessageName() string {
+       return "get_next_index_reply"
 }
-func (*AddNodeNextReply) GetCrcString() string {
+func (*GetNextIndexReply) GetCrcString() string {
        return "2ed75f32"
 }
-func (*AddNodeNextReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-// ShowVersion represents the VPP binary API message 'show_version'.
-//
-//            "show_version",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            {
-//                "crc": "0x51077d14"
-//            }
-//
-type ShowVersion struct{}
-
-func (*ShowVersion) GetMessageName() string {
-       return "show_version"
-}
-func (*ShowVersion) GetCrcString() string {
-       return "51077d14"
-}
-func (*ShowVersion) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-// ShowVersionReply represents the VPP binary API message 'show_version_reply'.
-//
-//            "show_version_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            [
-//                "u8",
-//                "program",
-//                32
-//            ],
-//            [
-//                "u8",
-//                "version",
-//                32
-//            ],
-//            [
-//                "u8",
-//                "build_date",
-//                32
-//            ],
-//            [
-//                "u8",
-//                "build_directory",
-//                256
-//            ],
-//            {
-//                "crc": "0x8b5a13b4"
-//            }
-//
-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"`
-}
-
-func (*ShowVersionReply) GetMessageName() string {
-       return "show_version_reply"
-}
-func (*ShowVersionReply) GetCrcString() string {
-       return "8b5a13b4"
-}
-func (*ShowVersionReply) GetMessageType() api.MessageType {
+func (*GetNextIndexReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// GetNodeGraph represents the VPP binary API message 'get_node_graph'.
-//
-//            "get_node_graph",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            {
-//                "crc": "0x51077d14"
-//            }
+// GetNodeGraph represents VPP binary API message 'get_node_graph':
+//
+//     "get_node_graph",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     {
+//         "crc": "0x51077d14"
+//     }
 //
 type GetNodeGraph struct{}
 
@@ -537,28 +512,28 @@ func (*GetNodeGraph) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// GetNodeGraphReply represents the VPP binary API message 'get_node_graph_reply'.
-//
-//            "get_node_graph_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            [
-//                "u64",
-//                "reply_in_shmem"
-//            ],
-//            {
-//                "crc": "0x06d68297"
-//            }
+// GetNodeGraphReply represents VPP binary API message 'get_node_graph_reply':
+//
+//     "get_node_graph_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "u64",
+//         "reply_in_shmem"
+//     ],
+//     {
+//         "crc": "0x06d68297"
+//     }
 //
 type GetNodeGraphReply struct {
        Retval       int32
@@ -575,116 +550,263 @@ func (*GetNodeGraphReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// GetNextIndex represents the VPP binary API message 'get_next_index'.
-//
-//            "get_next_index",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "client_index"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "u8",
-//                "node_name",
-//                64
-//            ],
-//            [
-//                "u8",
-//                "next_name",
-//                64
-//            ],
-//            {
-//                "crc": "0x9ab92f7a"
-//            }
+// GetNodeIndex represents VPP binary API message 'get_node_index':
+//
+//     "get_node_index",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "u8",
+//         "node_name",
+//         64
+//     ],
+//     {
+//         "crc": "0x6c9a495d"
+//     }
 //
-type GetNextIndex struct {
+type GetNodeIndex struct {
        NodeName []byte `struc:"[64]byte"`
-       NextName []byte `struc:"[64]byte"`
 }
 
-func (*GetNextIndex) GetMessageName() string {
-       return "get_next_index"
+func (*GetNodeIndex) GetMessageName() string {
+       return "get_node_index"
 }
-func (*GetNextIndex) GetCrcString() string {
-       return "9ab92f7a"
+func (*GetNodeIndex) GetCrcString() string {
+       return "6c9a495d"
 }
-func (*GetNextIndex) GetMessageType() api.MessageType {
+func (*GetNodeIndex) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// GetNextIndexReply represents the VPP binary API message 'get_next_index_reply'.
-//
-//            "get_next_index_reply",
-//            [
-//                "u16",
-//                "_vl_msg_id"
-//            ],
-//            [
-//                "u32",
-//                "context"
-//            ],
-//            [
-//                "i32",
-//                "retval"
-//            ],
-//            [
-//                "u32",
-//                "next_index"
-//            ],
-//            {
-//                "crc": "0x2ed75f32"
-//            }
+// GetNodeIndexReply represents VPP binary API message 'get_node_index_reply':
+//
+//     "get_node_index_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "u32",
+//         "node_index"
+//     ],
+//     {
+//         "crc": "0xa8600b89"
+//     }
 //
-type GetNextIndexReply struct {
+type GetNodeIndexReply struct {
        Retval    int32
-       NextIndex uint32
+       NodeIndex uint32
 }
 
-func (*GetNextIndexReply) GetMessageName() string {
-       return "get_next_index_reply"
+func (*GetNodeIndexReply) GetMessageName() string {
+       return "get_node_index_reply"
 }
-func (*GetNextIndexReply) GetCrcString() string {
-       return "2ed75f32"
+func (*GetNodeIndexReply) GetCrcString() string {
+       return "a8600b89"
 }
-func (*GetNextIndexReply) GetMessageType() api.MessageType {
+func (*GetNodeIndexReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+// ShowThreads represents VPP binary API message 'show_threads':
+//
+//     "show_threads",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     {
+//         "crc": "0x51077d14"
+//     }
+//
+type ShowThreads struct{}
+
+func (*ShowThreads) GetMessageName() string {
+       return "show_threads"
+}
+func (*ShowThreads) GetCrcString() string {
+       return "51077d14"
+}
+func (*ShowThreads) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// ShowThreadsReply represents VPP binary API message 'show_threads_reply':
+//
+//     "show_threads_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "u32",
+//         "count"
+//     ],
+//     [
+//         "vl_api_thread_data_t",
+//         "thread_data",
+//         0,
+//         "count"
+//     ],
+//     {
+//         "crc": "0x6942fb35"
+//     }
+//
+type ShowThreadsReply struct {
+       Retval     int32
+       Count      uint32 `struc:"sizeof=ThreadData"`
+       ThreadData []ThreadData
+}
+
+func (*ShowThreadsReply) GetMessageName() string {
+       return "show_threads_reply"
+}
+func (*ShowThreadsReply) GetCrcString() string {
+       return "6942fb35"
+}
+func (*ShowThreadsReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-/* Services */
+// ShowVersion represents VPP binary API message 'show_version':
+//
+//     "show_version",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "client_index"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     {
+//         "crc": "0x51077d14"
+//     }
+//
+type ShowVersion struct{}
 
-type Services interface {
-       AddNodeNext(*AddNodeNext) (*AddNodeNextReply, error)
-       Cli(*Cli) (*CliReply, error)
-       CliInband(*CliInband) (*CliInbandReply, error)
-       ControlPing(*ControlPing) (*ControlPingReply, error)
-       GetNextIndex(*GetNextIndex) (*GetNextIndexReply, error)
-       GetNodeGraph(*GetNodeGraph) (*GetNodeGraphReply, error)
-       GetNodeIndex(*GetNodeIndex) (*GetNodeIndexReply, error)
-       ShowVersion(*ShowVersion) (*ShowVersionReply, error)
+func (*ShowVersion) GetMessageName() string {
+       return "show_version"
+}
+func (*ShowVersion) GetCrcString() string {
+       return "51077d14"
+}
+func (*ShowVersion) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+// ShowVersionReply represents VPP binary API message 'show_version_reply':
+//
+//     "show_version_reply",
+//     [
+//         "u16",
+//         "_vl_msg_id"
+//     ],
+//     [
+//         "u32",
+//         "context"
+//     ],
+//     [
+//         "i32",
+//         "retval"
+//     ],
+//     [
+//         "string",
+//         "program"
+//     ],
+//     [
+//         "string",
+//         "version"
+//     ],
+//     [
+//         "string",
+//         "build_date"
+//     ],
+//     [
+//         "string",
+//         "build_directory"
+//     ],
+//     {
+//         "crc": "0xb9bcf6df"
+//     }
+//
+type ShowVersionReply struct {
+       Retval                int32
+       XXX_ProgramLen        uint32 `struc:"sizeof=Program"`
+       Program               string
+       XXX_VersionLen        uint32 `struc:"sizeof=Version"`
+       Version               string
+       XXX_BuildDateLen      uint32 `struc:"sizeof=BuildDate"`
+       BuildDate             string
+       XXX_BuildDirectoryLen uint32 `struc:"sizeof=BuildDirectory"`
+       BuildDirectory        string
+}
+
+func (*ShowVersionReply) GetMessageName() string {
+       return "show_version_reply"
+}
+func (*ShowVersionReply) GetCrcString() string {
+       return "b9bcf6df"
+}
+func (*ShowVersionReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
 func init() {
-       api.RegisterMessage((*ControlPing)(nil), "vpe.ControlPing")
-       api.RegisterMessage((*ControlPingReply)(nil), "vpe.ControlPingReply")
+       api.RegisterMessage((*AddNodeNext)(nil), "vpe.AddNodeNext")
+       api.RegisterMessage((*AddNodeNextReply)(nil), "vpe.AddNodeNextReply")
        api.RegisterMessage((*Cli)(nil), "vpe.Cli")
        api.RegisterMessage((*CliInband)(nil), "vpe.CliInband")
-       api.RegisterMessage((*CliReply)(nil), "vpe.CliReply")
        api.RegisterMessage((*CliInbandReply)(nil), "vpe.CliInbandReply")
+       api.RegisterMessage((*CliReply)(nil), "vpe.CliReply")
+       api.RegisterMessage((*ControlPing)(nil), "vpe.ControlPing")
+       api.RegisterMessage((*ControlPingReply)(nil), "vpe.ControlPingReply")
+       api.RegisterMessage((*GetNextIndex)(nil), "vpe.GetNextIndex")
+       api.RegisterMessage((*GetNextIndexReply)(nil), "vpe.GetNextIndexReply")
+       api.RegisterMessage((*GetNodeGraph)(nil), "vpe.GetNodeGraph")
+       api.RegisterMessage((*GetNodeGraphReply)(nil), "vpe.GetNodeGraphReply")
        api.RegisterMessage((*GetNodeIndex)(nil), "vpe.GetNodeIndex")
        api.RegisterMessage((*GetNodeIndexReply)(nil), "vpe.GetNodeIndexReply")
-       api.RegisterMessage((*AddNodeNext)(nil), "vpe.AddNodeNext")
-       api.RegisterMessage((*AddNodeNextReply)(nil), "vpe.AddNodeNextReply")
+       api.RegisterMessage((*ShowThreads)(nil), "vpe.ShowThreads")
+       api.RegisterMessage((*ShowThreadsReply)(nil), "vpe.ShowThreadsReply")
        api.RegisterMessage((*ShowVersion)(nil), "vpe.ShowVersion")
        api.RegisterMessage((*ShowVersionReply)(nil), "vpe.ShowVersionReply")
-       api.RegisterMessage((*GetNodeGraph)(nil), "vpe.GetNodeGraph")
-       api.RegisterMessage((*GetNodeGraphReply)(nil), "vpe.GetNodeGraphReply")
-       api.RegisterMessage((*GetNextIndex)(nil), "vpe.GetNextIndex")
-       api.RegisterMessage((*GetNextIndexReply)(nil), "vpe.GetNextIndexReply")
 }