package session

import "git.fd.io/govpp.git/api"

const VlAPIVersion = 0x26da6a93

type ApplicationAttach struct {
	InitialSegmentSize uint32
	Options            []uint64 `struc:"[16]uint64"`
	NamespaceIDLen     uint8
	NamespaceID        []byte `struc:"[64]byte"`
}

func (*ApplicationAttach) GetMessageName() string {
	return "application_attach"
}
func (*ApplicationAttach) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ApplicationAttach) GetCrcString() string {
	return "81d4f974"
}
func NewApplicationAttach() api.Message {
	return &ApplicationAttach{}
}

type ApplicationAttachReply struct {
	Retval               int32
	AppEventQueueAddress uint64
	SegmentSize          uint32
	SegmentNameLength    uint8
	SegmentName          []byte `struc:"[128]byte"`
}

func (*ApplicationAttachReply) GetMessageName() string {
	return "application_attach_reply"
}
func (*ApplicationAttachReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*ApplicationAttachReply) GetCrcString() string {
	return "b3bf3789"
}
func NewApplicationAttachReply() api.Message {
	return &ApplicationAttachReply{}
}

type ApplicationDetach struct {
}

func (*ApplicationDetach) GetMessageName() string {
	return "application_detach"
}
func (*ApplicationDetach) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ApplicationDetach) GetCrcString() string {
	return "51077d14"
}
func NewApplicationDetach() api.Message {
	return &ApplicationDetach{}
}

type ApplicationDetachReply struct {
	Retval int32
}

func (*ApplicationDetachReply) GetMessageName() string {
	return "application_detach_reply"
}
func (*ApplicationDetachReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*ApplicationDetachReply) GetCrcString() string {
	return "e8d4e804"
}
func NewApplicationDetachReply() api.Message {
	return &ApplicationDetachReply{}
}

type MapAnotherSegment struct {
	SegmentSize uint32
	SegmentName []byte `struc:"[128]byte"`
}

func (*MapAnotherSegment) GetMessageName() string {
	return "map_another_segment"
}
func (*MapAnotherSegment) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*MapAnotherSegment) GetCrcString() string {
	return "9db38ca6"
}
func NewMapAnotherSegment() api.Message {
	return &MapAnotherSegment{}
}

type MapAnotherSegmentReply struct {
	Retval int32
}

func (*MapAnotherSegmentReply) GetMessageName() string {
	return "map_another_segment_reply"
}
func (*MapAnotherSegmentReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*MapAnotherSegmentReply) GetCrcString() string {
	return "e8d4e804"
}
func NewMapAnotherSegmentReply() api.Message {
	return &MapAnotherSegmentReply{}
}

type BindURI struct {
	AcceptCookie uint32
	URI          []byte `struc:"[128]byte"`
}

func (*BindURI) GetMessageName() string {
	return "bind_uri"
}
func (*BindURI) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*BindURI) GetCrcString() string {
	return "fae140cb"
}
func NewBindURI() api.Message {
	return &BindURI{}
}

type BindURIReply struct {
	Retval int32
}

func (*BindURIReply) GetMessageName() string {
	return "bind_uri_reply"
}
func (*BindURIReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*BindURIReply) GetCrcString() string {
	return "e8d4e804"
}
func NewBindURIReply() api.Message {
	return &BindURIReply{}
}

type UnbindURI struct {
	URI []byte `struc:"[128]byte"`
}

func (*UnbindURI) GetMessageName() string {
	return "unbind_uri"
}
func (*UnbindURI) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*UnbindURI) GetCrcString() string {
	return "294cf07d"
}
func NewUnbindURI() api.Message {
	return &UnbindURI{}
}

type UnbindURIReply struct {
	Retval int32
}

func (*UnbindURIReply) GetMessageName() string {
	return "unbind_uri_reply"
}
func (*UnbindURIReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*UnbindURIReply) GetCrcString() string {
	return "e8d4e804"
}
func NewUnbindURIReply() api.Message {
	return &UnbindURIReply{}
}

type ConnectURI struct {
	ClientQueueAddress uint64
	Options            []uint64 `struc:"[16]uint64"`
	URI                []byte   `struc:"[128]byte"`
}

func (*ConnectURI) GetMessageName() string {
	return "connect_uri"
}
func (*ConnectURI) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ConnectURI) GetCrcString() string {
	return "a36143d6"
}
func NewConnectURI() api.Message {
	return &ConnectURI{}
}

type ConnectURIReply struct {
	Retval int32
}

func (*ConnectURIReply) GetMessageName() string {
	return "connect_uri_reply"
}
func (*ConnectURIReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*ConnectURIReply) GetCrcString() string {
	return "e8d4e804"
}
func NewConnectURIReply() api.Message {
	return &ConnectURIReply{}
}

type AcceptSession struct {
	ListenerHandle       uint64
	Handle               uint64
	ServerRxFifo         uint64
	ServerTxFifo         uint64
	VppEventQueueAddress uint64
	Port                 uint16
	IsIP4                uint8
	IP                   []byte `struc:"[16]byte"`
}

func (*AcceptSession) GetMessageName() string {
	return "accept_session"
}
func (*AcceptSession) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*AcceptSession) GetCrcString() string {
	return "44be3d5f"
}
func NewAcceptSession() api.Message {
	return &AcceptSession{}
}

type AcceptSessionReply struct {
	Retval int32
	Handle uint64
}

func (*AcceptSessionReply) GetMessageName() string {
	return "accept_session_reply"
}
func (*AcceptSessionReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*AcceptSessionReply) GetCrcString() string {
	return "d6960a03"
}
func NewAcceptSessionReply() api.Message {
	return &AcceptSessionReply{}
}

type DisconnectSession struct {
	Handle uint64
}

func (*DisconnectSession) GetMessageName() string {
	return "disconnect_session"
}
func (*DisconnectSession) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*DisconnectSession) GetCrcString() string {
	return "7279205b"
}
func NewDisconnectSession() api.Message {
	return &DisconnectSession{}
}

type DisconnectSessionReply struct {
	Retval int32
	Handle uint64
}

func (*DisconnectSessionReply) GetMessageName() string {
	return "disconnect_session_reply"
}
func (*DisconnectSessionReply) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*DisconnectSessionReply) GetCrcString() string {
	return "faf37b87"
}
func NewDisconnectSessionReply() api.Message {
	return &DisconnectSessionReply{}
}

type ResetSession struct {
	Handle uint64
}

func (*ResetSession) GetMessageName() string {
	return "reset_session"
}
func (*ResetSession) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ResetSession) GetCrcString() string {
	return "7279205b"
}
func NewResetSession() api.Message {
	return &ResetSession{}
}

type ResetSessionReply struct {
	Retval int32
	Handle uint64
}

func (*ResetSessionReply) GetMessageName() string {
	return "reset_session_reply"
}
func (*ResetSessionReply) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ResetSessionReply) GetCrcString() string {
	return "faf37b87"
}
func NewResetSessionReply() api.Message {
	return &ResetSessionReply{}
}

type BindSock struct {
	Vrf     uint32
	IsIP4   uint8
	IP      []byte `struc:"[16]byte"`
	Port    uint16
	Proto   uint8
	Options []uint64 `struc:"[16]uint64"`
}

func (*BindSock) GetMessageName() string {
	return "bind_sock"
}
func (*BindSock) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*BindSock) GetCrcString() string {
	return "6a6a40d0"
}
func NewBindSock() api.Message {
	return &BindSock{}
}

type UnbindSock struct {
	Handle uint64
}

func (*UnbindSock) GetMessageName() string {
	return "unbind_sock"
}
func (*UnbindSock) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*UnbindSock) GetCrcString() string {
	return "7279205b"
}
func NewUnbindSock() api.Message {
	return &UnbindSock{}
}

type UnbindSockReply struct {
	Retval int32
}

func (*UnbindSockReply) GetMessageName() string {
	return "unbind_sock_reply"
}
func (*UnbindSockReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*UnbindSockReply) GetCrcString() string {
	return "e8d4e804"
}
func NewUnbindSockReply() api.Message {
	return &UnbindSockReply{}
}

type ConnectSock struct {
	ClientQueueAddress uint64
	Options            []uint64 `struc:"[16]uint64"`
	Vrf                uint32
	IsIP4              uint8
	IP                 []byte `struc:"[16]byte"`
	Port               uint16
	Proto              uint8
}

func (*ConnectSock) GetMessageName() string {
	return "connect_sock"
}
func (*ConnectSock) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ConnectSock) GetCrcString() string {
	return "9be21cac"
}
func NewConnectSock() api.Message {
	return &ConnectSock{}
}

type ConnectSockReply struct {
	Retval int32
}

func (*ConnectSockReply) GetMessageName() string {
	return "connect_sock_reply"
}
func (*ConnectSockReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*ConnectSockReply) GetCrcString() string {
	return "e8d4e804"
}
func NewConnectSockReply() api.Message {
	return &ConnectSockReply{}
}

type BindSockReply struct {
	Handle                  uint64
	Retval                  int32
	ServerEventQueueAddress uint64
	LclIsIP4                uint8
	LclIP                   []byte `struc:"[16]byte"`
	LclPort                 uint16
	SegmentSize             uint32
	SegmentNameLength       uint8
	SegmentName             []byte `struc:"[128]byte"`
}

func (*BindSockReply) GetMessageName() string {
	return "bind_sock_reply"
}
func (*BindSockReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*BindSockReply) GetCrcString() string {
	return "5dccb3c7"
}
func NewBindSockReply() api.Message {
	return &BindSockReply{}
}

type ConnectSession struct {
}

func (*ConnectSession) GetMessageName() string {
	return "connect_session"
}
func (*ConnectSession) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ConnectSession) GetCrcString() string {
	return "51077d14"
}
func NewConnectSession() api.Message {
	return &ConnectSession{}
}

type ConnectSessionReply struct {
	Retval               int32
	Handle               uint64
	ServerRxFifo         uint64
	ServerTxFifo         uint64
	VppEventQueueAddress uint64
	SegmentSize          uint32
	SegmentNameLength    uint8
	SegmentName          []byte `struc:"[128]byte"`
	LclIP                []byte `struc:"[16]byte"`
	IsIP4                uint8
	LclPort              uint16
}

func (*ConnectSessionReply) GetMessageName() string {
	return "connect_session_reply"
}
func (*ConnectSessionReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*ConnectSessionReply) GetCrcString() string {
	return "da89af27"
}
func NewConnectSessionReply() api.Message {
	return &ConnectSessionReply{}
}

type SessionEnableDisable struct {
	IsEnable uint8
}

func (*SessionEnableDisable) GetMessageName() string {
	return "session_enable_disable"
}
func (*SessionEnableDisable) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*SessionEnableDisable) GetCrcString() string {
	return "30ac9be7"
}
func NewSessionEnableDisable() api.Message {
	return &SessionEnableDisable{}
}

type SessionEnableDisableReply struct {
	Retval int32
}

func (*SessionEnableDisableReply) GetMessageName() string {
	return "session_enable_disable_reply"
}
func (*SessionEnableDisableReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*SessionEnableDisableReply) GetCrcString() string {
	return "e8d4e804"
}
func NewSessionEnableDisableReply() api.Message {
	return &SessionEnableDisableReply{}
}

type AppNamespaceAddDel struct {
	Secret         uint64
	SwIfIndex      uint32
	IP4FibID       uint32
	IP6FibID       uint32
	NamespaceIDLen uint8
	NamespaceID    []byte `struc:"[64]byte"`
}

func (*AppNamespaceAddDel) GetMessageName() string {
	return "app_namespace_add_del"
}
func (*AppNamespaceAddDel) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*AppNamespaceAddDel) GetCrcString() string {
	return "dd074c65"
}
func NewAppNamespaceAddDel() api.Message {
	return &AppNamespaceAddDel{}
}

type AppNamespaceAddDelReply struct {
	Retval     int32
	AppnsIndex uint32
}

func (*AppNamespaceAddDelReply) GetMessageName() string {
	return "app_namespace_add_del_reply"
}
func (*AppNamespaceAddDelReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*AppNamespaceAddDelReply) GetCrcString() string {
	return "85137120"
}
func NewAppNamespaceAddDelReply() api.Message {
	return &AppNamespaceAddDelReply{}
}

type SessionRuleAddDel struct {
	TransportProto uint8
	IsIP4          uint8
	LclIP          []byte `struc:"[16]byte"`
	LclPlen        uint8
	RmtIP          []byte `struc:"[16]byte"`
	RmtPlen        uint8
	LclPort        uint16
	RmtPort        uint16
	ActionIndex    uint32
	IsAdd          uint8
	AppnsIndex     uint32
	Scope          uint8
	Tag            []byte `struc:"[64]byte"`
}

func (*SessionRuleAddDel) GetMessageName() string {
	return "session_rule_add_del"
}
func (*SessionRuleAddDel) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*SessionRuleAddDel) GetCrcString() string {
	return "4ab2eb06"
}
func NewSessionRuleAddDel() api.Message {
	return &SessionRuleAddDel{}
}

type SessionRuleAddDelReply struct {
	Retval int32
}

func (*SessionRuleAddDelReply) GetMessageName() string {
	return "session_rule_add_del_reply"
}
func (*SessionRuleAddDelReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*SessionRuleAddDelReply) GetCrcString() string {
	return "e8d4e804"
}
func NewSessionRuleAddDelReply() api.Message {
	return &SessionRuleAddDelReply{}
}

type SessionRulesDump struct {
}

func (*SessionRulesDump) GetMessageName() string {
	return "session_rules_dump"
}
func (*SessionRulesDump) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*SessionRulesDump) GetCrcString() string {
	return "51077d14"
}
func NewSessionRulesDump() api.Message {
	return &SessionRulesDump{}
}

type SessionRulesDetails struct {
	TransportProto uint8
	IsIP4          uint8
	LclIP          []byte `struc:"[16]byte"`
	LclPlen        uint8
	RmtIP          []byte `struc:"[16]byte"`
	RmtPlen        uint8
	LclPort        uint16
	RmtPort        uint16
	ActionIndex    uint32
	AppnsIndex     uint32
	Scope          uint8
	Tag            []byte `struc:"[64]byte"`
}

func (*SessionRulesDetails) GetMessageName() string {
	return "session_rules_details"
}
func (*SessionRulesDetails) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*SessionRulesDetails) GetCrcString() string {
	return "a52b0e96"
}
func NewSessionRulesDetails() api.Message {
	return &SessionRulesDetails{}
}
// Code generated by govpp binapi-generator DO NOT EDIT.
// Package session represents the VPP binary API of the 'session' VPP module.
// Generated from '/usr/share/vpp/api/session.api.json'
package session

import "git.fd.io/govpp.git/api"

// VlApiVersion contains version of the API.
const VlAPIVersion = 0x26da6a93

// ApplicationAttach represents the VPP binary API message 'application_attach'.
// Generated from '/usr/share/vpp/api/session.api.json', line 94:
//
//            "application_attach",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u32",
//                "initial_segment_size"
//            ],
//            [
//                "u64",
//                "options",
//                16
//            ],
//            [
//                "u8",
//                "namespace_id_len"
//            ],
//            [
//                "u8",
//                "namespace_id",
//                64
//            ],
//            {
//                "crc": "0x81d4f974"
//            }
//
type ApplicationAttach struct {
	InitialSegmentSize uint32
	Options            []uint64 `struc:"[16]uint64"`
	NamespaceIDLen     uint8
	NamespaceID        []byte `struc:"[64]byte"`
}

func (*ApplicationAttach) GetMessageName() string {
	return "application_attach"
}
func (*ApplicationAttach) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ApplicationAttach) GetCrcString() string {
	return "81d4f974"
}
func NewApplicationAttach() api.Message {
	return &ApplicationAttach{}
}

// ApplicationAttachReply represents the VPP binary API message 'application_attach_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 130:
//
//            "application_attach_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            [
//                "u64",
//                "app_event_queue_address"
//            ],
//            [
//                "u32",
//                "segment_size"
//            ],
//            [
//                "u8",
//                "segment_name_length"
//            ],
//            [
//                "u8",
//                "segment_name",
//                128
//            ],
//            {
//                "crc": "0xb3bf3789"
//            }
//
type ApplicationAttachReply struct {
	Retval               int32
	AppEventQueueAddress uint64
	SegmentSize          uint32
	SegmentNameLength    uint8
	SegmentName          []byte `struc:"[128]byte"`
}

func (*ApplicationAttachReply) GetMessageName() string {
	return "application_attach_reply"
}
func (*ApplicationAttachReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*ApplicationAttachReply) GetCrcString() string {
	return "b3bf3789"
}
func NewApplicationAttachReply() api.Message {
	return &ApplicationAttachReply{}
}

// ApplicationDetach represents the VPP binary API message 'application_detach'.
// Generated from '/usr/share/vpp/api/session.api.json', line 165:
//
//            "application_detach",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            {
//                "crc": "0x51077d14"
//            }
//
type ApplicationDetach struct {
}

func (*ApplicationDetach) GetMessageName() string {
	return "application_detach"
}
func (*ApplicationDetach) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ApplicationDetach) GetCrcString() string {
	return "51077d14"
}
func NewApplicationDetach() api.Message {
	return &ApplicationDetach{}
}

// ApplicationDetachReply represents the VPP binary API message 'application_detach_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 183:
//
//            "application_detach_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            {
//                "crc": "0xe8d4e804"
//            }
//
type ApplicationDetachReply struct {
	Retval int32
}

func (*ApplicationDetachReply) GetMessageName() string {
	return "application_detach_reply"
}
func (*ApplicationDetachReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*ApplicationDetachReply) GetCrcString() string {
	return "e8d4e804"
}
func NewApplicationDetachReply() api.Message {
	return &ApplicationDetachReply{}
}

// MapAnotherSegment represents the VPP binary API message 'map_another_segment'.
// Generated from '/usr/share/vpp/api/session.api.json', line 201:
//
//            "map_another_segment",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u32",
//                "segment_size"
//            ],
//            [
//                "u8",
//                "segment_name",
//                128
//            ],
//            {
//                "crc": "0x9db38ca6"
//            }
//
type MapAnotherSegment struct {
	SegmentSize uint32
	SegmentName []byte `struc:"[128]byte"`
}

func (*MapAnotherSegment) GetMessageName() string {
	return "map_another_segment"
}
func (*MapAnotherSegment) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*MapAnotherSegment) GetCrcString() string {
	return "9db38ca6"
}
func NewMapAnotherSegment() api.Message {
	return &MapAnotherSegment{}
}

// MapAnotherSegmentReply represents the VPP binary API message 'map_another_segment_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 228:
//
//            "map_another_segment_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            {
//                "crc": "0xe8d4e804"
//            }
//
type MapAnotherSegmentReply struct {
	Retval int32
}

func (*MapAnotherSegmentReply) GetMessageName() string {
	return "map_another_segment_reply"
}
func (*MapAnotherSegmentReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*MapAnotherSegmentReply) GetCrcString() string {
	return "e8d4e804"
}
func NewMapAnotherSegmentReply() api.Message {
	return &MapAnotherSegmentReply{}
}

// BindURI represents the VPP binary API message 'bind_uri'.
// Generated from '/usr/share/vpp/api/session.api.json', line 246:
//
//            "bind_uri",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u32",
//                "accept_cookie"
//            ],
//            [
//                "u8",
//                "uri",
//                128
//            ],
//            {
//                "crc": "0xfae140cb"
//            }
//
type BindURI struct {
	AcceptCookie uint32
	URI          []byte `struc:"[128]byte"`
}

func (*BindURI) GetMessageName() string {
	return "bind_uri"
}
func (*BindURI) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*BindURI) GetCrcString() string {
	return "fae140cb"
}
func NewBindURI() api.Message {
	return &BindURI{}
}

// BindURIReply represents the VPP binary API message 'bind_uri_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 273:
//
//            "bind_uri_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            {
//                "crc": "0xe8d4e804"
//            }
//
type BindURIReply struct {
	Retval int32
}

func (*BindURIReply) GetMessageName() string {
	return "bind_uri_reply"
}
func (*BindURIReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*BindURIReply) GetCrcString() string {
	return "e8d4e804"
}
func NewBindURIReply() api.Message {
	return &BindURIReply{}
}

// UnbindURI represents the VPP binary API message 'unbind_uri'.
// Generated from '/usr/share/vpp/api/session.api.json', line 291:
//
//            "unbind_uri",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u8",
//                "uri",
//                128
//            ],
//            {
//                "crc": "0x294cf07d"
//            }
//
type UnbindURI struct {
	URI []byte `struc:"[128]byte"`
}

func (*UnbindURI) GetMessageName() string {
	return "unbind_uri"
}
func (*UnbindURI) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*UnbindURI) GetCrcString() string {
	return "294cf07d"
}
func NewUnbindURI() api.Message {
	return &UnbindURI{}
}

// UnbindURIReply represents the VPP binary API message 'unbind_uri_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 314:
//
//            "unbind_uri_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            {
//                "crc": "0xe8d4e804"
//            }
//
type UnbindURIReply struct {
	Retval int32
}

func (*UnbindURIReply) GetMessageName() string {
	return "unbind_uri_reply"
}
func (*UnbindURIReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*UnbindURIReply) GetCrcString() string {
	return "e8d4e804"
}
func NewUnbindURIReply() api.Message {
	return &UnbindURIReply{}
}

// ConnectURI represents the VPP binary API message 'connect_uri'.
// Generated from '/usr/share/vpp/api/session.api.json', line 332:
//
//            "connect_uri",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u64",
//                "client_queue_address"
//            ],
//            [
//                "u64",
//                "options",
//                16
//            ],
//            [
//                "u8",
//                "uri",
//                128
//            ],
//            {
//                "crc": "0xa36143d6"
//            }
//
type ConnectURI struct {
	ClientQueueAddress uint64
	Options            []uint64 `struc:"[16]uint64"`
	URI                []byte   `struc:"[128]byte"`
}

func (*ConnectURI) GetMessageName() string {
	return "connect_uri"
}
func (*ConnectURI) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ConnectURI) GetCrcString() string {
	return "a36143d6"
}
func NewConnectURI() api.Message {
	return &ConnectURI{}
}

// ConnectURIReply represents the VPP binary API message 'connect_uri_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 364:
//
//            "connect_uri_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            {
//                "crc": "0xe8d4e804"
//            }
//
type ConnectURIReply struct {
	Retval int32
}

func (*ConnectURIReply) GetMessageName() string {
	return "connect_uri_reply"
}
func (*ConnectURIReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*ConnectURIReply) GetCrcString() string {
	return "e8d4e804"
}
func NewConnectURIReply() api.Message {
	return &ConnectURIReply{}
}

// AcceptSession represents the VPP binary API message 'accept_session'.
// Generated from '/usr/share/vpp/api/session.api.json', line 382:
//
//            "accept_session",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u64",
//                "listener_handle"
//            ],
//            [
//                "u64",
//                "handle"
//            ],
//            [
//                "u64",
//                "server_rx_fifo"
//            ],
//            [
//                "u64",
//                "server_tx_fifo"
//            ],
//            [
//                "u64",
//                "vpp_event_queue_address"
//            ],
//            [
//                "u16",
//                "port"
//            ],
//            [
//                "u8",
//                "is_ip4"
//            ],
//            [
//                "u8",
//                "ip",
//                16
//            ],
//            {
//                "crc": "0x44be3d5f"
//            }
//
type AcceptSession struct {
	ListenerHandle       uint64
	Handle               uint64
	ServerRxFifo         uint64
	ServerTxFifo         uint64
	VppEventQueueAddress uint64
	Port                 uint16
	IsIP4                uint8
	IP                   []byte `struc:"[16]byte"`
}

func (*AcceptSession) GetMessageName() string {
	return "accept_session"
}
func (*AcceptSession) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*AcceptSession) GetCrcString() string {
	return "44be3d5f"
}
func NewAcceptSession() api.Message {
	return &AcceptSession{}
}

// AcceptSessionReply represents the VPP binary API message 'accept_session_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 433:
//
//            "accept_session_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            [
//                "u64",
//                "handle"
//            ],
//            {
//                "crc": "0xd6960a03"
//            }
//
type AcceptSessionReply struct {
	Retval int32
	Handle uint64
}

func (*AcceptSessionReply) GetMessageName() string {
	return "accept_session_reply"
}
func (*AcceptSessionReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*AcceptSessionReply) GetCrcString() string {
	return "d6960a03"
}
func NewAcceptSessionReply() api.Message {
	return &AcceptSessionReply{}
}

// DisconnectSession represents the VPP binary API message 'disconnect_session'.
// Generated from '/usr/share/vpp/api/session.api.json', line 455:
//
//            "disconnect_session",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u64",
//                "handle"
//            ],
//            {
//                "crc": "0x7279205b"
//            }
//
type DisconnectSession struct {
	Handle uint64
}

func (*DisconnectSession) GetMessageName() string {
	return "disconnect_session"
}
func (*DisconnectSession) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*DisconnectSession) GetCrcString() string {
	return "7279205b"
}
func NewDisconnectSession() api.Message {
	return &DisconnectSession{}
}

// DisconnectSessionReply represents the VPP binary API message 'disconnect_session_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 477:
//
//            "disconnect_session_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            [
//                "u64",
//                "handle"
//            ],
//            {
//                "crc": "0xfaf37b87"
//            }
//
type DisconnectSessionReply struct {
	Retval int32
	Handle uint64
}

func (*DisconnectSessionReply) GetMessageName() string {
	return "disconnect_session_reply"
}
func (*DisconnectSessionReply) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*DisconnectSessionReply) GetCrcString() string {
	return "faf37b87"
}
func NewDisconnectSessionReply() api.Message {
	return &DisconnectSessionReply{}
}

// ResetSession represents the VPP binary API message 'reset_session'.
// Generated from '/usr/share/vpp/api/session.api.json', line 503:
//
//            "reset_session",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u64",
//                "handle"
//            ],
//            {
//                "crc": "0x7279205b"
//            }
//
type ResetSession struct {
	Handle uint64
}

func (*ResetSession) GetMessageName() string {
	return "reset_session"
}
func (*ResetSession) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ResetSession) GetCrcString() string {
	return "7279205b"
}
func NewResetSession() api.Message {
	return &ResetSession{}
}

// ResetSessionReply represents the VPP binary API message 'reset_session_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 525:
//
//            "reset_session_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            [
//                "u64",
//                "handle"
//            ],
//            {
//                "crc": "0xfaf37b87"
//            }
//
type ResetSessionReply struct {
	Retval int32
	Handle uint64
}

func (*ResetSessionReply) GetMessageName() string {
	return "reset_session_reply"
}
func (*ResetSessionReply) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ResetSessionReply) GetCrcString() string {
	return "faf37b87"
}
func NewResetSessionReply() api.Message {
	return &ResetSessionReply{}
}

// BindSock represents the VPP binary API message 'bind_sock'.
// Generated from '/usr/share/vpp/api/session.api.json', line 551:
//
//            "bind_sock",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u32",
//                "vrf"
//            ],
//            [
//                "u8",
//                "is_ip4"
//            ],
//            [
//                "u8",
//                "ip",
//                16
//            ],
//            [
//                "u16",
//                "port"
//            ],
//            [
//                "u8",
//                "proto"
//            ],
//            [
//                "u64",
//                "options",
//                16
//            ],
//            {
//                "crc": "0x6a6a40d0"
//            }
//
type BindSock struct {
	Vrf     uint32
	IsIP4   uint8
	IP      []byte `struc:"[16]byte"`
	Port    uint16
	Proto   uint8
	Options []uint64 `struc:"[16]uint64"`
}

func (*BindSock) GetMessageName() string {
	return "bind_sock"
}
func (*BindSock) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*BindSock) GetCrcString() string {
	return "6a6a40d0"
}
func NewBindSock() api.Message {
	return &BindSock{}
}

// UnbindSock represents the VPP binary API message 'unbind_sock'.
// Generated from '/usr/share/vpp/api/session.api.json', line 595:
//
//            "unbind_sock",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u64",
//                "handle"
//            ],
//            {
//                "crc": "0x7279205b"
//            }
//
type UnbindSock struct {
	Handle uint64
}

func (*UnbindSock) GetMessageName() string {
	return "unbind_sock"
}
func (*UnbindSock) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*UnbindSock) GetCrcString() string {
	return "7279205b"
}
func NewUnbindSock() api.Message {
	return &UnbindSock{}
}

// UnbindSockReply represents the VPP binary API message 'unbind_sock_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 617:
//
//            "unbind_sock_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            {
//                "crc": "0xe8d4e804"
//            }
//
type UnbindSockReply struct {
	Retval int32
}

func (*UnbindSockReply) GetMessageName() string {
	return "unbind_sock_reply"
}
func (*UnbindSockReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*UnbindSockReply) GetCrcString() string {
	return "e8d4e804"
}
func NewUnbindSockReply() api.Message {
	return &UnbindSockReply{}
}

// ConnectSock represents the VPP binary API message 'connect_sock'.
// Generated from '/usr/share/vpp/api/session.api.json', line 635:
//
//            "connect_sock",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u64",
//                "client_queue_address"
//            ],
//            [
//                "u64",
//                "options",
//                16
//            ],
//            [
//                "u32",
//                "vrf"
//            ],
//            [
//                "u8",
//                "is_ip4"
//            ],
//            [
//                "u8",
//                "ip",
//                16
//            ],
//            [
//                "u16",
//                "port"
//            ],
//            [
//                "u8",
//                "proto"
//            ],
//            {
//                "crc": "0x9be21cac"
//            }
//
type ConnectSock struct {
	ClientQueueAddress uint64
	Options            []uint64 `struc:"[16]uint64"`
	Vrf                uint32
	IsIP4              uint8
	IP                 []byte `struc:"[16]byte"`
	Port               uint16
	Proto              uint8
}

func (*ConnectSock) GetMessageName() string {
	return "connect_sock"
}
func (*ConnectSock) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ConnectSock) GetCrcString() string {
	return "9be21cac"
}
func NewConnectSock() api.Message {
	return &ConnectSock{}
}

// ConnectSockReply represents the VPP binary API message 'connect_sock_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 683:
//
//            "connect_sock_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            {
//                "crc": "0xe8d4e804"
//            }
//
type ConnectSockReply struct {
	Retval int32
}

func (*ConnectSockReply) GetMessageName() string {
	return "connect_sock_reply"
}
func (*ConnectSockReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*ConnectSockReply) GetCrcString() string {
	return "e8d4e804"
}
func NewConnectSockReply() api.Message {
	return &ConnectSockReply{}
}

// BindSockReply represents the VPP binary API message 'bind_sock_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 701:
//
//            "bind_sock_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u64",
//                "handle"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            [
//                "u64",
//                "server_event_queue_address"
//            ],
//            [
//                "u8",
//                "lcl_is_ip4"
//            ],
//            [
//                "u8",
//                "lcl_ip",
//                16
//            ],
//            [
//                "u16",
//                "lcl_port"
//            ],
//            [
//                "u32",
//                "segment_size"
//            ],
//            [
//                "u8",
//                "segment_name_length"
//            ],
//            [
//                "u8",
//                "segment_name",
//                128
//            ],
//            {
//                "crc": "0x5dccb3c7"
//            }
//
type BindSockReply struct {
	Handle                  uint64
	Retval                  int32
	ServerEventQueueAddress uint64
	LclIsIP4                uint8
	LclIP                   []byte `struc:"[16]byte"`
	LclPort                 uint16
	SegmentSize             uint32
	SegmentNameLength       uint8
	SegmentName             []byte `struc:"[128]byte"`
}

func (*BindSockReply) GetMessageName() string {
	return "bind_sock_reply"
}
func (*BindSockReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*BindSockReply) GetCrcString() string {
	return "5dccb3c7"
}
func NewBindSockReply() api.Message {
	return &BindSockReply{}
}

// ConnectSession represents the VPP binary API message 'connect_session'.
// Generated from '/usr/share/vpp/api/session.api.json', line 753:
//
//            "connect_session",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            {
//                "crc": "0x51077d14"
//            }
//
type ConnectSession struct {
}

func (*ConnectSession) GetMessageName() string {
	return "connect_session"
}
func (*ConnectSession) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*ConnectSession) GetCrcString() string {
	return "51077d14"
}
func NewConnectSession() api.Message {
	return &ConnectSession{}
}

// ConnectSessionReply represents the VPP binary API message 'connect_session_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 771:
//
//            "connect_session_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            [
//                "u64",
//                "handle"
//            ],
//            [
//                "u64",
//                "server_rx_fifo"
//            ],
//            [
//                "u64",
//                "server_tx_fifo"
//            ],
//            [
//                "u64",
//                "vpp_event_queue_address"
//            ],
//            [
//                "u32",
//                "segment_size"
//            ],
//            [
//                "u8",
//                "segment_name_length"
//            ],
//            [
//                "u8",
//                "segment_name",
//                128
//            ],
//            [
//                "u8",
//                "lcl_ip",
//                16
//            ],
//            [
//                "u8",
//                "is_ip4"
//            ],
//            [
//                "u16",
//                "lcl_port"
//            ],
//            {
//                "crc": "0xda89af27"
//            }
//
type ConnectSessionReply struct {
	Retval               int32
	Handle               uint64
	ServerRxFifo         uint64
	ServerTxFifo         uint64
	VppEventQueueAddress uint64
	SegmentSize          uint32
	SegmentNameLength    uint8
	SegmentName          []byte `struc:"[128]byte"`
	LclIP                []byte `struc:"[16]byte"`
	IsIP4                uint8
	LclPort              uint16
}

func (*ConnectSessionReply) GetMessageName() string {
	return "connect_session_reply"
}
func (*ConnectSessionReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*ConnectSessionReply) GetCrcString() string {
	return "da89af27"
}
func NewConnectSessionReply() api.Message {
	return &ConnectSessionReply{}
}

// SessionEnableDisable represents the VPP binary API message 'session_enable_disable'.
// Generated from '/usr/share/vpp/api/session.api.json', line 831:
//
//            "session_enable_disable",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u8",
//                "is_enable"
//            ],
//            {
//                "crc": "0x30ac9be7"
//            }
//
type SessionEnableDisable struct {
	IsEnable uint8
}

func (*SessionEnableDisable) GetMessageName() string {
	return "session_enable_disable"
}
func (*SessionEnableDisable) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*SessionEnableDisable) GetCrcString() string {
	return "30ac9be7"
}
func NewSessionEnableDisable() api.Message {
	return &SessionEnableDisable{}
}

// SessionEnableDisableReply represents the VPP binary API message 'session_enable_disable_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 853:
//
//            "session_enable_disable_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            {
//                "crc": "0xe8d4e804"
//            }
//
type SessionEnableDisableReply struct {
	Retval int32
}

func (*SessionEnableDisableReply) GetMessageName() string {
	return "session_enable_disable_reply"
}
func (*SessionEnableDisableReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*SessionEnableDisableReply) GetCrcString() string {
	return "e8d4e804"
}
func NewSessionEnableDisableReply() api.Message {
	return &SessionEnableDisableReply{}
}

// AppNamespaceAddDel represents the VPP binary API message 'app_namespace_add_del'.
// Generated from '/usr/share/vpp/api/session.api.json', line 871:
//
//            "app_namespace_add_del",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u64",
//                "secret"
//            ],
//            [
//                "u32",
//                "sw_if_index"
//            ],
//            [
//                "u32",
//                "ip4_fib_id"
//            ],
//            [
//                "u32",
//                "ip6_fib_id"
//            ],
//            [
//                "u8",
//                "namespace_id_len"
//            ],
//            [
//                "u8",
//                "namespace_id",
//                64
//            ],
//            {
//                "crc": "0xdd074c65"
//            }
//
type AppNamespaceAddDel struct {
	Secret         uint64
	SwIfIndex      uint32
	IP4FibID       uint32
	IP6FibID       uint32
	NamespaceIDLen uint8
	NamespaceID    []byte `struc:"[64]byte"`
}

func (*AppNamespaceAddDel) GetMessageName() string {
	return "app_namespace_add_del"
}
func (*AppNamespaceAddDel) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*AppNamespaceAddDel) GetCrcString() string {
	return "dd074c65"
}
func NewAppNamespaceAddDel() api.Message {
	return &AppNamespaceAddDel{}
}

// AppNamespaceAddDelReply represents the VPP binary API message 'app_namespace_add_del_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 914:
//
//            "app_namespace_add_del_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            [
//                "u32",
//                "appns_index"
//            ],
//            {
//                "crc": "0x85137120"
//            }
//
type AppNamespaceAddDelReply struct {
	Retval     int32
	AppnsIndex uint32
}

func (*AppNamespaceAddDelReply) GetMessageName() string {
	return "app_namespace_add_del_reply"
}
func (*AppNamespaceAddDelReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*AppNamespaceAddDelReply) GetCrcString() string {
	return "85137120"
}
func NewAppNamespaceAddDelReply() api.Message {
	return &AppNamespaceAddDelReply{}
}

// SessionRuleAddDel represents the VPP binary API message 'session_rule_add_del'.
// Generated from '/usr/share/vpp/api/session.api.json', line 936:
//
//            "session_rule_add_del",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u8",
//                "transport_proto"
//            ],
//            [
//                "u8",
//                "is_ip4"
//            ],
//            [
//                "u8",
//                "lcl_ip",
//                16
//            ],
//            [
//                "u8",
//                "lcl_plen"
//            ],
//            [
//                "u8",
//                "rmt_ip",
//                16
//            ],
//            [
//                "u8",
//                "rmt_plen"
//            ],
//            [
//                "u16",
//                "lcl_port"
//            ],
//            [
//                "u16",
//                "rmt_port"
//            ],
//            [
//                "u32",
//                "action_index"
//            ],
//            [
//                "u8",
//                "is_add"
//            ],
//            [
//                "u32",
//                "appns_index"
//            ],
//            [
//                "u8",
//                "scope"
//            ],
//            [
//                "u8",
//                "tag",
//                64
//            ],
//            {
//                "crc": "0x4ab2eb06"
//            }
//
type SessionRuleAddDel struct {
	TransportProto uint8
	IsIP4          uint8
	LclIP          []byte `struc:"[16]byte"`
	LclPlen        uint8
	RmtIP          []byte `struc:"[16]byte"`
	RmtPlen        uint8
	LclPort        uint16
	RmtPort        uint16
	ActionIndex    uint32
	IsAdd          uint8
	AppnsIndex     uint32
	Scope          uint8
	Tag            []byte `struc:"[64]byte"`
}

func (*SessionRuleAddDel) GetMessageName() string {
	return "session_rule_add_del"
}
func (*SessionRuleAddDel) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*SessionRuleAddDel) GetCrcString() string {
	return "4ab2eb06"
}
func NewSessionRuleAddDel() api.Message {
	return &SessionRuleAddDel{}
}

// SessionRuleAddDelReply represents the VPP binary API message 'session_rule_add_del_reply'.
// Generated from '/usr/share/vpp/api/session.api.json', line 1009:
//
//            "session_rule_add_del_reply",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "i32",
//                "retval"
//            ],
//            {
//                "crc": "0xe8d4e804"
//            }
//
type SessionRuleAddDelReply struct {
	Retval int32
}

func (*SessionRuleAddDelReply) GetMessageName() string {
	return "session_rule_add_del_reply"
}
func (*SessionRuleAddDelReply) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*SessionRuleAddDelReply) GetCrcString() string {
	return "e8d4e804"
}
func NewSessionRuleAddDelReply() api.Message {
	return &SessionRuleAddDelReply{}
}

// SessionRulesDump represents the VPP binary API message 'session_rules_dump'.
// Generated from '/usr/share/vpp/api/session.api.json', line 1027:
//
//            "session_rules_dump",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "client_index"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            {
//                "crc": "0x51077d14"
//            }
//
type SessionRulesDump struct {
}

func (*SessionRulesDump) GetMessageName() string {
	return "session_rules_dump"
}
func (*SessionRulesDump) GetMessageType() api.MessageType {
	return api.RequestMessage
}
func (*SessionRulesDump) GetCrcString() string {
	return "51077d14"
}
func NewSessionRulesDump() api.Message {
	return &SessionRulesDump{}
}

// SessionRulesDetails represents the VPP binary API message 'session_rules_details'.
// Generated from '/usr/share/vpp/api/session.api.json', line 1045:
//
//            "session_rules_details",
//            [
//                "u16",
//                "_vl_msg_id"
//            ],
//            [
//                "u32",
//                "context"
//            ],
//            [
//                "u8",
//                "transport_proto"
//            ],
//            [
//                "u8",
//                "is_ip4"
//            ],
//            [
//                "u8",
//                "lcl_ip",
//                16
//            ],
//            [
//                "u8",
//                "lcl_plen"
//            ],
//            [
//                "u8",
//                "rmt_ip",
//                16
//            ],
//            [
//                "u8",
//                "rmt_plen"
//            ],
//            [
//                "u16",
//                "lcl_port"
//            ],
//            [
//                "u16",
//                "rmt_port"
//            ],
//            [
//                "u32",
//                "action_index"
//            ],
//            [
//                "u32",
//                "appns_index"
//            ],
//            [
//                "u8",
//                "scope"
//            ],
//            [
//                "u8",
//                "tag",
//                64
//            ],
//            {
//                "crc": "0xa52b0e96"
//            }
//
type SessionRulesDetails struct {
	TransportProto uint8
	IsIP4          uint8
	LclIP          []byte `struc:"[16]byte"`
	LclPlen        uint8
	RmtIP          []byte `struc:"[16]byte"`
	RmtPlen        uint8
	LclPort        uint16
	RmtPort        uint16
	ActionIndex    uint32
	AppnsIndex     uint32
	Scope          uint8
	Tag            []byte `struc:"[64]byte"`
}

func (*SessionRulesDetails) GetMessageName() string {
	return "session_rules_details"
}
func (*SessionRulesDetails) GetMessageType() api.MessageType {
	return api.ReplyMessage
}
func (*SessionRulesDetails) GetCrcString() string {
	return "a52b0e96"
}
func NewSessionRulesDetails() api.Message {
	return &SessionRulesDetails{}
}
