go.ligato.io/vpp-agent/v3@v3.5.0/plugins/vpp/binapi/vpp2106/ipsec/ipsec.ba.go (about)

     1  // Code generated by GoVPP's binapi-generator. DO NOT EDIT.
     2  
     3  // Package ipsec contains generated bindings for API file ipsec.api.
     4  //
     5  // Contents:
     6  // -  1 enum
     7  // -  3 structs
     8  // - 42 messages
     9  package ipsec
    10  
    11  import (
    12  	"strconv"
    13  
    14  	api "go.fd.io/govpp/api"
    15  	codec "go.fd.io/govpp/codec"
    16  	interface_types "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2106/interface_types"
    17  	ip_types "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2106/ip_types"
    18  	ipsec_types "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2106/ipsec_types"
    19  	tunnel_types "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2106/tunnel_types"
    20  )
    21  
    22  // This is a compile-time assertion to ensure that this generated file
    23  // is compatible with the GoVPP api package it is being compiled against.
    24  // A compilation error at this line likely means your copy of the
    25  // GoVPP api package needs to be updated.
    26  const _ = api.GoVppAPIPackageIsVersion2
    27  
    28  const (
    29  	APIFile    = "ipsec"
    30  	APIVersion = "5.0.1"
    31  	VersionCrc = 0x196d64b0
    32  )
    33  
    34  // IpsecSpdAction defines enum 'ipsec_spd_action'.
    35  type IpsecSpdAction uint32
    36  
    37  const (
    38  	IPSEC_API_SPD_ACTION_BYPASS  IpsecSpdAction = 0
    39  	IPSEC_API_SPD_ACTION_DISCARD IpsecSpdAction = 1
    40  	IPSEC_API_SPD_ACTION_RESOLVE IpsecSpdAction = 2
    41  	IPSEC_API_SPD_ACTION_PROTECT IpsecSpdAction = 3
    42  )
    43  
    44  var (
    45  	IpsecSpdAction_name = map[uint32]string{
    46  		0: "IPSEC_API_SPD_ACTION_BYPASS",
    47  		1: "IPSEC_API_SPD_ACTION_DISCARD",
    48  		2: "IPSEC_API_SPD_ACTION_RESOLVE",
    49  		3: "IPSEC_API_SPD_ACTION_PROTECT",
    50  	}
    51  	IpsecSpdAction_value = map[string]uint32{
    52  		"IPSEC_API_SPD_ACTION_BYPASS":  0,
    53  		"IPSEC_API_SPD_ACTION_DISCARD": 1,
    54  		"IPSEC_API_SPD_ACTION_RESOLVE": 2,
    55  		"IPSEC_API_SPD_ACTION_PROTECT": 3,
    56  	}
    57  )
    58  
    59  func (x IpsecSpdAction) String() string {
    60  	s, ok := IpsecSpdAction_name[uint32(x)]
    61  	if ok {
    62  		return s
    63  	}
    64  	return "IpsecSpdAction(" + strconv.Itoa(int(x)) + ")"
    65  }
    66  
    67  // IpsecItf defines type 'ipsec_itf'.
    68  type IpsecItf struct {
    69  	UserInstance uint32                         `binapi:"u32,name=user_instance,default=4294967295" json:"user_instance,omitempty"`
    70  	Mode         tunnel_types.TunnelMode        `binapi:"tunnel_mode,name=mode" json:"mode,omitempty"`
    71  	SwIfIndex    interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
    72  }
    73  
    74  // IpsecSpdEntry defines type 'ipsec_spd_entry'.
    75  type IpsecSpdEntry struct {
    76  	SpdID              uint32           `binapi:"u32,name=spd_id" json:"spd_id,omitempty"`
    77  	Priority           int32            `binapi:"i32,name=priority" json:"priority,omitempty"`
    78  	IsOutbound         bool             `binapi:"bool,name=is_outbound" json:"is_outbound,omitempty"`
    79  	SaID               uint32           `binapi:"u32,name=sa_id" json:"sa_id,omitempty"`
    80  	Policy             IpsecSpdAction   `binapi:"ipsec_spd_action,name=policy" json:"policy,omitempty"`
    81  	Protocol           uint8            `binapi:"u8,name=protocol" json:"protocol,omitempty"`
    82  	RemoteAddressStart ip_types.Address `binapi:"address,name=remote_address_start" json:"remote_address_start,omitempty"`
    83  	RemoteAddressStop  ip_types.Address `binapi:"address,name=remote_address_stop" json:"remote_address_stop,omitempty"`
    84  	LocalAddressStart  ip_types.Address `binapi:"address,name=local_address_start" json:"local_address_start,omitempty"`
    85  	LocalAddressStop   ip_types.Address `binapi:"address,name=local_address_stop" json:"local_address_stop,omitempty"`
    86  	RemotePortStart    uint16           `binapi:"u16,name=remote_port_start" json:"remote_port_start,omitempty"`
    87  	RemotePortStop     uint16           `binapi:"u16,name=remote_port_stop" json:"remote_port_stop,omitempty"`
    88  	LocalPortStart     uint16           `binapi:"u16,name=local_port_start" json:"local_port_start,omitempty"`
    89  	LocalPortStop      uint16           `binapi:"u16,name=local_port_stop" json:"local_port_stop,omitempty"`
    90  }
    91  
    92  // IpsecTunnelProtect defines type 'ipsec_tunnel_protect'.
    93  type IpsecTunnelProtect struct {
    94  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
    95  	Nh        ip_types.Address               `binapi:"address,name=nh" json:"nh,omitempty"`
    96  	SaOut     uint32                         `binapi:"u32,name=sa_out" json:"sa_out,omitempty"`
    97  	NSaIn     uint8                          `binapi:"u8,name=n_sa_in" json:"-"`
    98  	SaIn      []uint32                       `binapi:"u32[n_sa_in],name=sa_in" json:"sa_in,omitempty"`
    99  }
   100  
   101  // IpsecBackendDetails defines message 'ipsec_backend_details'.
   102  type IpsecBackendDetails struct {
   103  	Name     string                 `binapi:"string[128],name=name" json:"name,omitempty"`
   104  	Protocol ipsec_types.IpsecProto `binapi:"ipsec_proto,name=protocol" json:"protocol,omitempty"`
   105  	Index    uint8                  `binapi:"u8,name=index" json:"index,omitempty"`
   106  	Active   bool                   `binapi:"bool,name=active" json:"active,omitempty"`
   107  }
   108  
   109  func (m *IpsecBackendDetails) Reset()               { *m = IpsecBackendDetails{} }
   110  func (*IpsecBackendDetails) GetMessageName() string { return "ipsec_backend_details" }
   111  func (*IpsecBackendDetails) GetCrcString() string   { return "ee601c29" }
   112  func (*IpsecBackendDetails) GetMessageType() api.MessageType {
   113  	return api.ReplyMessage
   114  }
   115  
   116  func (m *IpsecBackendDetails) Size() (size int) {
   117  	if m == nil {
   118  		return 0
   119  	}
   120  	size += 128 // m.Name
   121  	size += 4   // m.Protocol
   122  	size += 1   // m.Index
   123  	size += 1   // m.Active
   124  	return size
   125  }
   126  func (m *IpsecBackendDetails) Marshal(b []byte) ([]byte, error) {
   127  	if b == nil {
   128  		b = make([]byte, m.Size())
   129  	}
   130  	buf := codec.NewBuffer(b)
   131  	buf.EncodeString(m.Name, 128)
   132  	buf.EncodeUint32(uint32(m.Protocol))
   133  	buf.EncodeUint8(m.Index)
   134  	buf.EncodeBool(m.Active)
   135  	return buf.Bytes(), nil
   136  }
   137  func (m *IpsecBackendDetails) Unmarshal(b []byte) error {
   138  	buf := codec.NewBuffer(b)
   139  	m.Name = buf.DecodeString(128)
   140  	m.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
   141  	m.Index = buf.DecodeUint8()
   142  	m.Active = buf.DecodeBool()
   143  	return nil
   144  }
   145  
   146  // IpsecBackendDump defines message 'ipsec_backend_dump'.
   147  type IpsecBackendDump struct{}
   148  
   149  func (m *IpsecBackendDump) Reset()               { *m = IpsecBackendDump{} }
   150  func (*IpsecBackendDump) GetMessageName() string { return "ipsec_backend_dump" }
   151  func (*IpsecBackendDump) GetCrcString() string   { return "51077d14" }
   152  func (*IpsecBackendDump) GetMessageType() api.MessageType {
   153  	return api.RequestMessage
   154  }
   155  
   156  func (m *IpsecBackendDump) Size() (size int) {
   157  	if m == nil {
   158  		return 0
   159  	}
   160  	return size
   161  }
   162  func (m *IpsecBackendDump) Marshal(b []byte) ([]byte, error) {
   163  	if b == nil {
   164  		b = make([]byte, m.Size())
   165  	}
   166  	buf := codec.NewBuffer(b)
   167  	return buf.Bytes(), nil
   168  }
   169  func (m *IpsecBackendDump) Unmarshal(b []byte) error {
   170  	return nil
   171  }
   172  
   173  // IpsecInterfaceAddDelSpd defines message 'ipsec_interface_add_del_spd'.
   174  type IpsecInterfaceAddDelSpd struct {
   175  	IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
   176  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   177  	SpdID     uint32                         `binapi:"u32,name=spd_id" json:"spd_id,omitempty"`
   178  }
   179  
   180  func (m *IpsecInterfaceAddDelSpd) Reset()               { *m = IpsecInterfaceAddDelSpd{} }
   181  func (*IpsecInterfaceAddDelSpd) GetMessageName() string { return "ipsec_interface_add_del_spd" }
   182  func (*IpsecInterfaceAddDelSpd) GetCrcString() string   { return "80f80cbb" }
   183  func (*IpsecInterfaceAddDelSpd) GetMessageType() api.MessageType {
   184  	return api.RequestMessage
   185  }
   186  
   187  func (m *IpsecInterfaceAddDelSpd) Size() (size int) {
   188  	if m == nil {
   189  		return 0
   190  	}
   191  	size += 1 // m.IsAdd
   192  	size += 4 // m.SwIfIndex
   193  	size += 4 // m.SpdID
   194  	return size
   195  }
   196  func (m *IpsecInterfaceAddDelSpd) Marshal(b []byte) ([]byte, error) {
   197  	if b == nil {
   198  		b = make([]byte, m.Size())
   199  	}
   200  	buf := codec.NewBuffer(b)
   201  	buf.EncodeBool(m.IsAdd)
   202  	buf.EncodeUint32(uint32(m.SwIfIndex))
   203  	buf.EncodeUint32(m.SpdID)
   204  	return buf.Bytes(), nil
   205  }
   206  func (m *IpsecInterfaceAddDelSpd) Unmarshal(b []byte) error {
   207  	buf := codec.NewBuffer(b)
   208  	m.IsAdd = buf.DecodeBool()
   209  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   210  	m.SpdID = buf.DecodeUint32()
   211  	return nil
   212  }
   213  
   214  // IpsecInterfaceAddDelSpdReply defines message 'ipsec_interface_add_del_spd_reply'.
   215  type IpsecInterfaceAddDelSpdReply struct {
   216  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   217  }
   218  
   219  func (m *IpsecInterfaceAddDelSpdReply) Reset() { *m = IpsecInterfaceAddDelSpdReply{} }
   220  func (*IpsecInterfaceAddDelSpdReply) GetMessageName() string {
   221  	return "ipsec_interface_add_del_spd_reply"
   222  }
   223  func (*IpsecInterfaceAddDelSpdReply) GetCrcString() string { return "e8d4e804" }
   224  func (*IpsecInterfaceAddDelSpdReply) GetMessageType() api.MessageType {
   225  	return api.ReplyMessage
   226  }
   227  
   228  func (m *IpsecInterfaceAddDelSpdReply) Size() (size int) {
   229  	if m == nil {
   230  		return 0
   231  	}
   232  	size += 4 // m.Retval
   233  	return size
   234  }
   235  func (m *IpsecInterfaceAddDelSpdReply) Marshal(b []byte) ([]byte, error) {
   236  	if b == nil {
   237  		b = make([]byte, m.Size())
   238  	}
   239  	buf := codec.NewBuffer(b)
   240  	buf.EncodeInt32(m.Retval)
   241  	return buf.Bytes(), nil
   242  }
   243  func (m *IpsecInterfaceAddDelSpdReply) Unmarshal(b []byte) error {
   244  	buf := codec.NewBuffer(b)
   245  	m.Retval = buf.DecodeInt32()
   246  	return nil
   247  }
   248  
   249  // IpsecItfCreate defines message 'ipsec_itf_create'.
   250  type IpsecItfCreate struct {
   251  	Itf IpsecItf `binapi:"ipsec_itf,name=itf" json:"itf,omitempty"`
   252  }
   253  
   254  func (m *IpsecItfCreate) Reset()               { *m = IpsecItfCreate{} }
   255  func (*IpsecItfCreate) GetMessageName() string { return "ipsec_itf_create" }
   256  func (*IpsecItfCreate) GetCrcString() string   { return "6f50b3bc" }
   257  func (*IpsecItfCreate) GetMessageType() api.MessageType {
   258  	return api.RequestMessage
   259  }
   260  
   261  func (m *IpsecItfCreate) Size() (size int) {
   262  	if m == nil {
   263  		return 0
   264  	}
   265  	size += 4 // m.Itf.UserInstance
   266  	size += 1 // m.Itf.Mode
   267  	size += 4 // m.Itf.SwIfIndex
   268  	return size
   269  }
   270  func (m *IpsecItfCreate) Marshal(b []byte) ([]byte, error) {
   271  	if b == nil {
   272  		b = make([]byte, m.Size())
   273  	}
   274  	buf := codec.NewBuffer(b)
   275  	buf.EncodeUint32(m.Itf.UserInstance)
   276  	buf.EncodeUint8(uint8(m.Itf.Mode))
   277  	buf.EncodeUint32(uint32(m.Itf.SwIfIndex))
   278  	return buf.Bytes(), nil
   279  }
   280  func (m *IpsecItfCreate) Unmarshal(b []byte) error {
   281  	buf := codec.NewBuffer(b)
   282  	m.Itf.UserInstance = buf.DecodeUint32()
   283  	m.Itf.Mode = tunnel_types.TunnelMode(buf.DecodeUint8())
   284  	m.Itf.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   285  	return nil
   286  }
   287  
   288  // IpsecItfCreateReply defines message 'ipsec_itf_create_reply'.
   289  type IpsecItfCreateReply struct {
   290  	Retval    int32                          `binapi:"i32,name=retval" json:"retval,omitempty"`
   291  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   292  }
   293  
   294  func (m *IpsecItfCreateReply) Reset()               { *m = IpsecItfCreateReply{} }
   295  func (*IpsecItfCreateReply) GetMessageName() string { return "ipsec_itf_create_reply" }
   296  func (*IpsecItfCreateReply) GetCrcString() string   { return "5383d31f" }
   297  func (*IpsecItfCreateReply) GetMessageType() api.MessageType {
   298  	return api.ReplyMessage
   299  }
   300  
   301  func (m *IpsecItfCreateReply) Size() (size int) {
   302  	if m == nil {
   303  		return 0
   304  	}
   305  	size += 4 // m.Retval
   306  	size += 4 // m.SwIfIndex
   307  	return size
   308  }
   309  func (m *IpsecItfCreateReply) Marshal(b []byte) ([]byte, error) {
   310  	if b == nil {
   311  		b = make([]byte, m.Size())
   312  	}
   313  	buf := codec.NewBuffer(b)
   314  	buf.EncodeInt32(m.Retval)
   315  	buf.EncodeUint32(uint32(m.SwIfIndex))
   316  	return buf.Bytes(), nil
   317  }
   318  func (m *IpsecItfCreateReply) Unmarshal(b []byte) error {
   319  	buf := codec.NewBuffer(b)
   320  	m.Retval = buf.DecodeInt32()
   321  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   322  	return nil
   323  }
   324  
   325  // IpsecItfDelete defines message 'ipsec_itf_delete'.
   326  type IpsecItfDelete struct {
   327  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   328  }
   329  
   330  func (m *IpsecItfDelete) Reset()               { *m = IpsecItfDelete{} }
   331  func (*IpsecItfDelete) GetMessageName() string { return "ipsec_itf_delete" }
   332  func (*IpsecItfDelete) GetCrcString() string   { return "f9e6675e" }
   333  func (*IpsecItfDelete) GetMessageType() api.MessageType {
   334  	return api.RequestMessage
   335  }
   336  
   337  func (m *IpsecItfDelete) Size() (size int) {
   338  	if m == nil {
   339  		return 0
   340  	}
   341  	size += 4 // m.SwIfIndex
   342  	return size
   343  }
   344  func (m *IpsecItfDelete) Marshal(b []byte) ([]byte, error) {
   345  	if b == nil {
   346  		b = make([]byte, m.Size())
   347  	}
   348  	buf := codec.NewBuffer(b)
   349  	buf.EncodeUint32(uint32(m.SwIfIndex))
   350  	return buf.Bytes(), nil
   351  }
   352  func (m *IpsecItfDelete) Unmarshal(b []byte) error {
   353  	buf := codec.NewBuffer(b)
   354  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   355  	return nil
   356  }
   357  
   358  // IpsecItfDeleteReply defines message 'ipsec_itf_delete_reply'.
   359  type IpsecItfDeleteReply struct {
   360  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   361  }
   362  
   363  func (m *IpsecItfDeleteReply) Reset()               { *m = IpsecItfDeleteReply{} }
   364  func (*IpsecItfDeleteReply) GetMessageName() string { return "ipsec_itf_delete_reply" }
   365  func (*IpsecItfDeleteReply) GetCrcString() string   { return "e8d4e804" }
   366  func (*IpsecItfDeleteReply) GetMessageType() api.MessageType {
   367  	return api.ReplyMessage
   368  }
   369  
   370  func (m *IpsecItfDeleteReply) Size() (size int) {
   371  	if m == nil {
   372  		return 0
   373  	}
   374  	size += 4 // m.Retval
   375  	return size
   376  }
   377  func (m *IpsecItfDeleteReply) Marshal(b []byte) ([]byte, error) {
   378  	if b == nil {
   379  		b = make([]byte, m.Size())
   380  	}
   381  	buf := codec.NewBuffer(b)
   382  	buf.EncodeInt32(m.Retval)
   383  	return buf.Bytes(), nil
   384  }
   385  func (m *IpsecItfDeleteReply) Unmarshal(b []byte) error {
   386  	buf := codec.NewBuffer(b)
   387  	m.Retval = buf.DecodeInt32()
   388  	return nil
   389  }
   390  
   391  // IpsecItfDetails defines message 'ipsec_itf_details'.
   392  type IpsecItfDetails struct {
   393  	Itf IpsecItf `binapi:"ipsec_itf,name=itf" json:"itf,omitempty"`
   394  }
   395  
   396  func (m *IpsecItfDetails) Reset()               { *m = IpsecItfDetails{} }
   397  func (*IpsecItfDetails) GetMessageName() string { return "ipsec_itf_details" }
   398  func (*IpsecItfDetails) GetCrcString() string   { return "548a73b8" }
   399  func (*IpsecItfDetails) GetMessageType() api.MessageType {
   400  	return api.ReplyMessage
   401  }
   402  
   403  func (m *IpsecItfDetails) Size() (size int) {
   404  	if m == nil {
   405  		return 0
   406  	}
   407  	size += 4 // m.Itf.UserInstance
   408  	size += 1 // m.Itf.Mode
   409  	size += 4 // m.Itf.SwIfIndex
   410  	return size
   411  }
   412  func (m *IpsecItfDetails) Marshal(b []byte) ([]byte, error) {
   413  	if b == nil {
   414  		b = make([]byte, m.Size())
   415  	}
   416  	buf := codec.NewBuffer(b)
   417  	buf.EncodeUint32(m.Itf.UserInstance)
   418  	buf.EncodeUint8(uint8(m.Itf.Mode))
   419  	buf.EncodeUint32(uint32(m.Itf.SwIfIndex))
   420  	return buf.Bytes(), nil
   421  }
   422  func (m *IpsecItfDetails) Unmarshal(b []byte) error {
   423  	buf := codec.NewBuffer(b)
   424  	m.Itf.UserInstance = buf.DecodeUint32()
   425  	m.Itf.Mode = tunnel_types.TunnelMode(buf.DecodeUint8())
   426  	m.Itf.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   427  	return nil
   428  }
   429  
   430  // IpsecItfDump defines message 'ipsec_itf_dump'.
   431  type IpsecItfDump struct {
   432  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   433  }
   434  
   435  func (m *IpsecItfDump) Reset()               { *m = IpsecItfDump{} }
   436  func (*IpsecItfDump) GetMessageName() string { return "ipsec_itf_dump" }
   437  func (*IpsecItfDump) GetCrcString() string   { return "f9e6675e" }
   438  func (*IpsecItfDump) GetMessageType() api.MessageType {
   439  	return api.RequestMessage
   440  }
   441  
   442  func (m *IpsecItfDump) Size() (size int) {
   443  	if m == nil {
   444  		return 0
   445  	}
   446  	size += 4 // m.SwIfIndex
   447  	return size
   448  }
   449  func (m *IpsecItfDump) Marshal(b []byte) ([]byte, error) {
   450  	if b == nil {
   451  		b = make([]byte, m.Size())
   452  	}
   453  	buf := codec.NewBuffer(b)
   454  	buf.EncodeUint32(uint32(m.SwIfIndex))
   455  	return buf.Bytes(), nil
   456  }
   457  func (m *IpsecItfDump) Unmarshal(b []byte) error {
   458  	buf := codec.NewBuffer(b)
   459  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   460  	return nil
   461  }
   462  
   463  // IpsecSaDetails defines message 'ipsec_sa_details'.
   464  // Deprecated: the message will be removed in the future versions
   465  type IpsecSaDetails struct {
   466  	Entry          ipsec_types.IpsecSadEntry      `binapi:"ipsec_sad_entry,name=entry" json:"entry,omitempty"`
   467  	SwIfIndex      interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   468  	Salt           uint32                         `binapi:"u32,name=salt" json:"salt,omitempty"`
   469  	SeqOutbound    uint64                         `binapi:"u64,name=seq_outbound" json:"seq_outbound,omitempty"`
   470  	LastSeqInbound uint64                         `binapi:"u64,name=last_seq_inbound" json:"last_seq_inbound,omitempty"`
   471  	ReplayWindow   uint64                         `binapi:"u64,name=replay_window" json:"replay_window,omitempty"`
   472  	StatIndex      uint32                         `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
   473  }
   474  
   475  func (m *IpsecSaDetails) Reset()               { *m = IpsecSaDetails{} }
   476  func (*IpsecSaDetails) GetMessageName() string { return "ipsec_sa_details" }
   477  func (*IpsecSaDetails) GetCrcString() string   { return "345d14a7" }
   478  func (*IpsecSaDetails) GetMessageType() api.MessageType {
   479  	return api.ReplyMessage
   480  }
   481  
   482  func (m *IpsecSaDetails) Size() (size int) {
   483  	if m == nil {
   484  		return 0
   485  	}
   486  	size += 4       // m.Entry.SadID
   487  	size += 4       // m.Entry.Spi
   488  	size += 4       // m.Entry.Protocol
   489  	size += 4       // m.Entry.CryptoAlgorithm
   490  	size += 1       // m.Entry.CryptoKey.Length
   491  	size += 1 * 128 // m.Entry.CryptoKey.Data
   492  	size += 4       // m.Entry.IntegrityAlgorithm
   493  	size += 1       // m.Entry.IntegrityKey.Length
   494  	size += 1 * 128 // m.Entry.IntegrityKey.Data
   495  	size += 4       // m.Entry.Flags
   496  	size += 1       // m.Entry.TunnelSrc.Af
   497  	size += 1 * 16  // m.Entry.TunnelSrc.Un
   498  	size += 1       // m.Entry.TunnelDst.Af
   499  	size += 1 * 16  // m.Entry.TunnelDst.Un
   500  	size += 4       // m.Entry.TxTableID
   501  	size += 4       // m.Entry.Salt
   502  	size += 2       // m.Entry.UDPSrcPort
   503  	size += 2       // m.Entry.UDPDstPort
   504  	size += 4       // m.SwIfIndex
   505  	size += 4       // m.Salt
   506  	size += 8       // m.SeqOutbound
   507  	size += 8       // m.LastSeqInbound
   508  	size += 8       // m.ReplayWindow
   509  	size += 4       // m.StatIndex
   510  	return size
   511  }
   512  func (m *IpsecSaDetails) Marshal(b []byte) ([]byte, error) {
   513  	if b == nil {
   514  		b = make([]byte, m.Size())
   515  	}
   516  	buf := codec.NewBuffer(b)
   517  	buf.EncodeUint32(m.Entry.SadID)
   518  	buf.EncodeUint32(m.Entry.Spi)
   519  	buf.EncodeUint32(uint32(m.Entry.Protocol))
   520  	buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm))
   521  	buf.EncodeUint8(m.Entry.CryptoKey.Length)
   522  	buf.EncodeBytes(m.Entry.CryptoKey.Data, 128)
   523  	buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm))
   524  	buf.EncodeUint8(m.Entry.IntegrityKey.Length)
   525  	buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128)
   526  	buf.EncodeUint32(uint32(m.Entry.Flags))
   527  	buf.EncodeUint8(uint8(m.Entry.TunnelSrc.Af))
   528  	buf.EncodeBytes(m.Entry.TunnelSrc.Un.XXX_UnionData[:], 16)
   529  	buf.EncodeUint8(uint8(m.Entry.TunnelDst.Af))
   530  	buf.EncodeBytes(m.Entry.TunnelDst.Un.XXX_UnionData[:], 16)
   531  	buf.EncodeUint32(m.Entry.TxTableID)
   532  	buf.EncodeUint32(m.Entry.Salt)
   533  	buf.EncodeUint16(m.Entry.UDPSrcPort)
   534  	buf.EncodeUint16(m.Entry.UDPDstPort)
   535  	buf.EncodeUint32(uint32(m.SwIfIndex))
   536  	buf.EncodeUint32(m.Salt)
   537  	buf.EncodeUint64(m.SeqOutbound)
   538  	buf.EncodeUint64(m.LastSeqInbound)
   539  	buf.EncodeUint64(m.ReplayWindow)
   540  	buf.EncodeUint32(m.StatIndex)
   541  	return buf.Bytes(), nil
   542  }
   543  func (m *IpsecSaDetails) Unmarshal(b []byte) error {
   544  	buf := codec.NewBuffer(b)
   545  	m.Entry.SadID = buf.DecodeUint32()
   546  	m.Entry.Spi = buf.DecodeUint32()
   547  	m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
   548  	m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32())
   549  	m.Entry.CryptoKey.Length = buf.DecodeUint8()
   550  	m.Entry.CryptoKey.Data = make([]byte, 128)
   551  	copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data)))
   552  	m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32())
   553  	m.Entry.IntegrityKey.Length = buf.DecodeUint8()
   554  	m.Entry.IntegrityKey.Data = make([]byte, 128)
   555  	copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data)))
   556  	m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32())
   557  	m.Entry.TunnelSrc.Af = ip_types.AddressFamily(buf.DecodeUint8())
   558  	copy(m.Entry.TunnelSrc.Un.XXX_UnionData[:], buf.DecodeBytes(16))
   559  	m.Entry.TunnelDst.Af = ip_types.AddressFamily(buf.DecodeUint8())
   560  	copy(m.Entry.TunnelDst.Un.XXX_UnionData[:], buf.DecodeBytes(16))
   561  	m.Entry.TxTableID = buf.DecodeUint32()
   562  	m.Entry.Salt = buf.DecodeUint32()
   563  	m.Entry.UDPSrcPort = buf.DecodeUint16()
   564  	m.Entry.UDPDstPort = buf.DecodeUint16()
   565  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   566  	m.Salt = buf.DecodeUint32()
   567  	m.SeqOutbound = buf.DecodeUint64()
   568  	m.LastSeqInbound = buf.DecodeUint64()
   569  	m.ReplayWindow = buf.DecodeUint64()
   570  	m.StatIndex = buf.DecodeUint32()
   571  	return nil
   572  }
   573  
   574  // IpsecSaDump defines message 'ipsec_sa_dump'.
   575  // Deprecated: the message will be removed in the future versions
   576  type IpsecSaDump struct {
   577  	SaID uint32 `binapi:"u32,name=sa_id" json:"sa_id,omitempty"`
   578  }
   579  
   580  func (m *IpsecSaDump) Reset()               { *m = IpsecSaDump{} }
   581  func (*IpsecSaDump) GetMessageName() string { return "ipsec_sa_dump" }
   582  func (*IpsecSaDump) GetCrcString() string   { return "2076c2f4" }
   583  func (*IpsecSaDump) GetMessageType() api.MessageType {
   584  	return api.RequestMessage
   585  }
   586  
   587  func (m *IpsecSaDump) Size() (size int) {
   588  	if m == nil {
   589  		return 0
   590  	}
   591  	size += 4 // m.SaID
   592  	return size
   593  }
   594  func (m *IpsecSaDump) Marshal(b []byte) ([]byte, error) {
   595  	if b == nil {
   596  		b = make([]byte, m.Size())
   597  	}
   598  	buf := codec.NewBuffer(b)
   599  	buf.EncodeUint32(m.SaID)
   600  	return buf.Bytes(), nil
   601  }
   602  func (m *IpsecSaDump) Unmarshal(b []byte) error {
   603  	buf := codec.NewBuffer(b)
   604  	m.SaID = buf.DecodeUint32()
   605  	return nil
   606  }
   607  
   608  // IpsecSaV2Details defines message 'ipsec_sa_v2_details'.
   609  type IpsecSaV2Details struct {
   610  	Entry          ipsec_types.IpsecSadEntryV2    `binapi:"ipsec_sad_entry_v2,name=entry" json:"entry,omitempty"`
   611  	SwIfIndex      interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   612  	Salt           uint32                         `binapi:"u32,name=salt" json:"salt,omitempty"`
   613  	SeqOutbound    uint64                         `binapi:"u64,name=seq_outbound" json:"seq_outbound,omitempty"`
   614  	LastSeqInbound uint64                         `binapi:"u64,name=last_seq_inbound" json:"last_seq_inbound,omitempty"`
   615  	ReplayWindow   uint64                         `binapi:"u64,name=replay_window" json:"replay_window,omitempty"`
   616  	StatIndex      uint32                         `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
   617  }
   618  
   619  func (m *IpsecSaV2Details) Reset()               { *m = IpsecSaV2Details{} }
   620  func (*IpsecSaV2Details) GetMessageName() string { return "ipsec_sa_v2_details" }
   621  func (*IpsecSaV2Details) GetCrcString() string   { return "e2130051" }
   622  func (*IpsecSaV2Details) GetMessageType() api.MessageType {
   623  	return api.ReplyMessage
   624  }
   625  
   626  func (m *IpsecSaV2Details) Size() (size int) {
   627  	if m == nil {
   628  		return 0
   629  	}
   630  	size += 4       // m.Entry.SadID
   631  	size += 4       // m.Entry.Spi
   632  	size += 4       // m.Entry.Protocol
   633  	size += 4       // m.Entry.CryptoAlgorithm
   634  	size += 1       // m.Entry.CryptoKey.Length
   635  	size += 1 * 128 // m.Entry.CryptoKey.Data
   636  	size += 4       // m.Entry.IntegrityAlgorithm
   637  	size += 1       // m.Entry.IntegrityKey.Length
   638  	size += 1 * 128 // m.Entry.IntegrityKey.Data
   639  	size += 4       // m.Entry.Flags
   640  	size += 1       // m.Entry.TunnelSrc.Af
   641  	size += 1 * 16  // m.Entry.TunnelSrc.Un
   642  	size += 1       // m.Entry.TunnelDst.Af
   643  	size += 1 * 16  // m.Entry.TunnelDst.Un
   644  	size += 1       // m.Entry.TunnelFlags
   645  	size += 1       // m.Entry.Dscp
   646  	size += 4       // m.Entry.TxTableID
   647  	size += 4       // m.Entry.Salt
   648  	size += 2       // m.Entry.UDPSrcPort
   649  	size += 2       // m.Entry.UDPDstPort
   650  	size += 4       // m.SwIfIndex
   651  	size += 4       // m.Salt
   652  	size += 8       // m.SeqOutbound
   653  	size += 8       // m.LastSeqInbound
   654  	size += 8       // m.ReplayWindow
   655  	size += 4       // m.StatIndex
   656  	return size
   657  }
   658  func (m *IpsecSaV2Details) Marshal(b []byte) ([]byte, error) {
   659  	if b == nil {
   660  		b = make([]byte, m.Size())
   661  	}
   662  	buf := codec.NewBuffer(b)
   663  	buf.EncodeUint32(m.Entry.SadID)
   664  	buf.EncodeUint32(m.Entry.Spi)
   665  	buf.EncodeUint32(uint32(m.Entry.Protocol))
   666  	buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm))
   667  	buf.EncodeUint8(m.Entry.CryptoKey.Length)
   668  	buf.EncodeBytes(m.Entry.CryptoKey.Data, 128)
   669  	buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm))
   670  	buf.EncodeUint8(m.Entry.IntegrityKey.Length)
   671  	buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128)
   672  	buf.EncodeUint32(uint32(m.Entry.Flags))
   673  	buf.EncodeUint8(uint8(m.Entry.TunnelSrc.Af))
   674  	buf.EncodeBytes(m.Entry.TunnelSrc.Un.XXX_UnionData[:], 16)
   675  	buf.EncodeUint8(uint8(m.Entry.TunnelDst.Af))
   676  	buf.EncodeBytes(m.Entry.TunnelDst.Un.XXX_UnionData[:], 16)
   677  	buf.EncodeUint8(uint8(m.Entry.TunnelFlags))
   678  	buf.EncodeUint8(uint8(m.Entry.Dscp))
   679  	buf.EncodeUint32(m.Entry.TxTableID)
   680  	buf.EncodeUint32(m.Entry.Salt)
   681  	buf.EncodeUint16(m.Entry.UDPSrcPort)
   682  	buf.EncodeUint16(m.Entry.UDPDstPort)
   683  	buf.EncodeUint32(uint32(m.SwIfIndex))
   684  	buf.EncodeUint32(m.Salt)
   685  	buf.EncodeUint64(m.SeqOutbound)
   686  	buf.EncodeUint64(m.LastSeqInbound)
   687  	buf.EncodeUint64(m.ReplayWindow)
   688  	buf.EncodeUint32(m.StatIndex)
   689  	return buf.Bytes(), nil
   690  }
   691  func (m *IpsecSaV2Details) Unmarshal(b []byte) error {
   692  	buf := codec.NewBuffer(b)
   693  	m.Entry.SadID = buf.DecodeUint32()
   694  	m.Entry.Spi = buf.DecodeUint32()
   695  	m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
   696  	m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32())
   697  	m.Entry.CryptoKey.Length = buf.DecodeUint8()
   698  	m.Entry.CryptoKey.Data = make([]byte, 128)
   699  	copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data)))
   700  	m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32())
   701  	m.Entry.IntegrityKey.Length = buf.DecodeUint8()
   702  	m.Entry.IntegrityKey.Data = make([]byte, 128)
   703  	copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data)))
   704  	m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32())
   705  	m.Entry.TunnelSrc.Af = ip_types.AddressFamily(buf.DecodeUint8())
   706  	copy(m.Entry.TunnelSrc.Un.XXX_UnionData[:], buf.DecodeBytes(16))
   707  	m.Entry.TunnelDst.Af = ip_types.AddressFamily(buf.DecodeUint8())
   708  	copy(m.Entry.TunnelDst.Un.XXX_UnionData[:], buf.DecodeBytes(16))
   709  	m.Entry.TunnelFlags = tunnel_types.TunnelEncapDecapFlags(buf.DecodeUint8())
   710  	m.Entry.Dscp = ip_types.IPDscp(buf.DecodeUint8())
   711  	m.Entry.TxTableID = buf.DecodeUint32()
   712  	m.Entry.Salt = buf.DecodeUint32()
   713  	m.Entry.UDPSrcPort = buf.DecodeUint16()
   714  	m.Entry.UDPDstPort = buf.DecodeUint16()
   715  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   716  	m.Salt = buf.DecodeUint32()
   717  	m.SeqOutbound = buf.DecodeUint64()
   718  	m.LastSeqInbound = buf.DecodeUint64()
   719  	m.ReplayWindow = buf.DecodeUint64()
   720  	m.StatIndex = buf.DecodeUint32()
   721  	return nil
   722  }
   723  
   724  // IpsecSaV2Dump defines message 'ipsec_sa_v2_dump'.
   725  type IpsecSaV2Dump struct {
   726  	SaID uint32 `binapi:"u32,name=sa_id" json:"sa_id,omitempty"`
   727  }
   728  
   729  func (m *IpsecSaV2Dump) Reset()               { *m = IpsecSaV2Dump{} }
   730  func (*IpsecSaV2Dump) GetMessageName() string { return "ipsec_sa_v2_dump" }
   731  func (*IpsecSaV2Dump) GetCrcString() string   { return "2076c2f4" }
   732  func (*IpsecSaV2Dump) GetMessageType() api.MessageType {
   733  	return api.RequestMessage
   734  }
   735  
   736  func (m *IpsecSaV2Dump) Size() (size int) {
   737  	if m == nil {
   738  		return 0
   739  	}
   740  	size += 4 // m.SaID
   741  	return size
   742  }
   743  func (m *IpsecSaV2Dump) Marshal(b []byte) ([]byte, error) {
   744  	if b == nil {
   745  		b = make([]byte, m.Size())
   746  	}
   747  	buf := codec.NewBuffer(b)
   748  	buf.EncodeUint32(m.SaID)
   749  	return buf.Bytes(), nil
   750  }
   751  func (m *IpsecSaV2Dump) Unmarshal(b []byte) error {
   752  	buf := codec.NewBuffer(b)
   753  	m.SaID = buf.DecodeUint32()
   754  	return nil
   755  }
   756  
   757  // IpsecSaV3Details defines message 'ipsec_sa_v3_details'.
   758  type IpsecSaV3Details struct {
   759  	Entry          ipsec_types.IpsecSadEntryV3    `binapi:"ipsec_sad_entry_v3,name=entry" json:"entry,omitempty"`
   760  	SwIfIndex      interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   761  	SeqOutbound    uint64                         `binapi:"u64,name=seq_outbound" json:"seq_outbound,omitempty"`
   762  	LastSeqInbound uint64                         `binapi:"u64,name=last_seq_inbound" json:"last_seq_inbound,omitempty"`
   763  	ReplayWindow   uint64                         `binapi:"u64,name=replay_window" json:"replay_window,omitempty"`
   764  	StatIndex      uint32                         `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
   765  }
   766  
   767  func (m *IpsecSaV3Details) Reset()               { *m = IpsecSaV3Details{} }
   768  func (*IpsecSaV3Details) GetMessageName() string { return "ipsec_sa_v3_details" }
   769  func (*IpsecSaV3Details) GetCrcString() string   { return "2fc991ee" }
   770  func (*IpsecSaV3Details) GetMessageType() api.MessageType {
   771  	return api.ReplyMessage
   772  }
   773  
   774  func (m *IpsecSaV3Details) Size() (size int) {
   775  	if m == nil {
   776  		return 0
   777  	}
   778  	size += 4       // m.Entry.SadID
   779  	size += 4       // m.Entry.Spi
   780  	size += 4       // m.Entry.Protocol
   781  	size += 4       // m.Entry.CryptoAlgorithm
   782  	size += 1       // m.Entry.CryptoKey.Length
   783  	size += 1 * 128 // m.Entry.CryptoKey.Data
   784  	size += 4       // m.Entry.IntegrityAlgorithm
   785  	size += 1       // m.Entry.IntegrityKey.Length
   786  	size += 1 * 128 // m.Entry.IntegrityKey.Data
   787  	size += 4       // m.Entry.Flags
   788  	size += 4       // m.Entry.Tunnel.Instance
   789  	size += 1       // m.Entry.Tunnel.Src.Af
   790  	size += 1 * 16  // m.Entry.Tunnel.Src.Un
   791  	size += 1       // m.Entry.Tunnel.Dst.Af
   792  	size += 1 * 16  // m.Entry.Tunnel.Dst.Un
   793  	size += 4       // m.Entry.Tunnel.SwIfIndex
   794  	size += 4       // m.Entry.Tunnel.TableID
   795  	size += 1       // m.Entry.Tunnel.EncapDecapFlags
   796  	size += 1       // m.Entry.Tunnel.Mode
   797  	size += 1       // m.Entry.Tunnel.Flags
   798  	size += 1       // m.Entry.Tunnel.Dscp
   799  	size += 1       // m.Entry.Tunnel.HopLimit
   800  	size += 4       // m.Entry.Salt
   801  	size += 2       // m.Entry.UDPSrcPort
   802  	size += 2       // m.Entry.UDPDstPort
   803  	size += 4       // m.SwIfIndex
   804  	size += 8       // m.SeqOutbound
   805  	size += 8       // m.LastSeqInbound
   806  	size += 8       // m.ReplayWindow
   807  	size += 4       // m.StatIndex
   808  	return size
   809  }
   810  func (m *IpsecSaV3Details) Marshal(b []byte) ([]byte, error) {
   811  	if b == nil {
   812  		b = make([]byte, m.Size())
   813  	}
   814  	buf := codec.NewBuffer(b)
   815  	buf.EncodeUint32(m.Entry.SadID)
   816  	buf.EncodeUint32(m.Entry.Spi)
   817  	buf.EncodeUint32(uint32(m.Entry.Protocol))
   818  	buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm))
   819  	buf.EncodeUint8(m.Entry.CryptoKey.Length)
   820  	buf.EncodeBytes(m.Entry.CryptoKey.Data, 128)
   821  	buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm))
   822  	buf.EncodeUint8(m.Entry.IntegrityKey.Length)
   823  	buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128)
   824  	buf.EncodeUint32(uint32(m.Entry.Flags))
   825  	buf.EncodeUint32(m.Entry.Tunnel.Instance)
   826  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Src.Af))
   827  	buf.EncodeBytes(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], 16)
   828  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Dst.Af))
   829  	buf.EncodeBytes(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], 16)
   830  	buf.EncodeUint32(uint32(m.Entry.Tunnel.SwIfIndex))
   831  	buf.EncodeUint32(m.Entry.Tunnel.TableID)
   832  	buf.EncodeUint8(uint8(m.Entry.Tunnel.EncapDecapFlags))
   833  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Mode))
   834  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Flags))
   835  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Dscp))
   836  	buf.EncodeUint8(m.Entry.Tunnel.HopLimit)
   837  	buf.EncodeUint32(m.Entry.Salt)
   838  	buf.EncodeUint16(m.Entry.UDPSrcPort)
   839  	buf.EncodeUint16(m.Entry.UDPDstPort)
   840  	buf.EncodeUint32(uint32(m.SwIfIndex))
   841  	buf.EncodeUint64(m.SeqOutbound)
   842  	buf.EncodeUint64(m.LastSeqInbound)
   843  	buf.EncodeUint64(m.ReplayWindow)
   844  	buf.EncodeUint32(m.StatIndex)
   845  	return buf.Bytes(), nil
   846  }
   847  func (m *IpsecSaV3Details) Unmarshal(b []byte) error {
   848  	buf := codec.NewBuffer(b)
   849  	m.Entry.SadID = buf.DecodeUint32()
   850  	m.Entry.Spi = buf.DecodeUint32()
   851  	m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
   852  	m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32())
   853  	m.Entry.CryptoKey.Length = buf.DecodeUint8()
   854  	m.Entry.CryptoKey.Data = make([]byte, 128)
   855  	copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data)))
   856  	m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32())
   857  	m.Entry.IntegrityKey.Length = buf.DecodeUint8()
   858  	m.Entry.IntegrityKey.Data = make([]byte, 128)
   859  	copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data)))
   860  	m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32())
   861  	m.Entry.Tunnel.Instance = buf.DecodeUint32()
   862  	m.Entry.Tunnel.Src.Af = ip_types.AddressFamily(buf.DecodeUint8())
   863  	copy(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], buf.DecodeBytes(16))
   864  	m.Entry.Tunnel.Dst.Af = ip_types.AddressFamily(buf.DecodeUint8())
   865  	copy(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], buf.DecodeBytes(16))
   866  	m.Entry.Tunnel.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   867  	m.Entry.Tunnel.TableID = buf.DecodeUint32()
   868  	m.Entry.Tunnel.EncapDecapFlags = tunnel_types.TunnelEncapDecapFlags(buf.DecodeUint8())
   869  	m.Entry.Tunnel.Mode = tunnel_types.TunnelMode(buf.DecodeUint8())
   870  	m.Entry.Tunnel.Flags = tunnel_types.TunnelFlags(buf.DecodeUint8())
   871  	m.Entry.Tunnel.Dscp = ip_types.IPDscp(buf.DecodeUint8())
   872  	m.Entry.Tunnel.HopLimit = buf.DecodeUint8()
   873  	m.Entry.Salt = buf.DecodeUint32()
   874  	m.Entry.UDPSrcPort = buf.DecodeUint16()
   875  	m.Entry.UDPDstPort = buf.DecodeUint16()
   876  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   877  	m.SeqOutbound = buf.DecodeUint64()
   878  	m.LastSeqInbound = buf.DecodeUint64()
   879  	m.ReplayWindow = buf.DecodeUint64()
   880  	m.StatIndex = buf.DecodeUint32()
   881  	return nil
   882  }
   883  
   884  // IpsecSaV3Dump defines message 'ipsec_sa_v3_dump'.
   885  type IpsecSaV3Dump struct {
   886  	SaID uint32 `binapi:"u32,name=sa_id" json:"sa_id,omitempty"`
   887  }
   888  
   889  func (m *IpsecSaV3Dump) Reset()               { *m = IpsecSaV3Dump{} }
   890  func (*IpsecSaV3Dump) GetMessageName() string { return "ipsec_sa_v3_dump" }
   891  func (*IpsecSaV3Dump) GetCrcString() string   { return "2076c2f4" }
   892  func (*IpsecSaV3Dump) GetMessageType() api.MessageType {
   893  	return api.RequestMessage
   894  }
   895  
   896  func (m *IpsecSaV3Dump) Size() (size int) {
   897  	if m == nil {
   898  		return 0
   899  	}
   900  	size += 4 // m.SaID
   901  	return size
   902  }
   903  func (m *IpsecSaV3Dump) Marshal(b []byte) ([]byte, error) {
   904  	if b == nil {
   905  		b = make([]byte, m.Size())
   906  	}
   907  	buf := codec.NewBuffer(b)
   908  	buf.EncodeUint32(m.SaID)
   909  	return buf.Bytes(), nil
   910  }
   911  func (m *IpsecSaV3Dump) Unmarshal(b []byte) error {
   912  	buf := codec.NewBuffer(b)
   913  	m.SaID = buf.DecodeUint32()
   914  	return nil
   915  }
   916  
   917  // IpsecSadEntryAddDel defines message 'ipsec_sad_entry_add_del'.
   918  // Deprecated: the message will be removed in the future versions
   919  type IpsecSadEntryAddDel struct {
   920  	IsAdd bool                      `binapi:"bool,name=is_add" json:"is_add,omitempty"`
   921  	Entry ipsec_types.IpsecSadEntry `binapi:"ipsec_sad_entry,name=entry" json:"entry,omitempty"`
   922  }
   923  
   924  func (m *IpsecSadEntryAddDel) Reset()               { *m = IpsecSadEntryAddDel{} }
   925  func (*IpsecSadEntryAddDel) GetMessageName() string { return "ipsec_sad_entry_add_del" }
   926  func (*IpsecSadEntryAddDel) GetCrcString() string   { return "ab64b5c6" }
   927  func (*IpsecSadEntryAddDel) GetMessageType() api.MessageType {
   928  	return api.RequestMessage
   929  }
   930  
   931  func (m *IpsecSadEntryAddDel) Size() (size int) {
   932  	if m == nil {
   933  		return 0
   934  	}
   935  	size += 1       // m.IsAdd
   936  	size += 4       // m.Entry.SadID
   937  	size += 4       // m.Entry.Spi
   938  	size += 4       // m.Entry.Protocol
   939  	size += 4       // m.Entry.CryptoAlgorithm
   940  	size += 1       // m.Entry.CryptoKey.Length
   941  	size += 1 * 128 // m.Entry.CryptoKey.Data
   942  	size += 4       // m.Entry.IntegrityAlgorithm
   943  	size += 1       // m.Entry.IntegrityKey.Length
   944  	size += 1 * 128 // m.Entry.IntegrityKey.Data
   945  	size += 4       // m.Entry.Flags
   946  	size += 1       // m.Entry.TunnelSrc.Af
   947  	size += 1 * 16  // m.Entry.TunnelSrc.Un
   948  	size += 1       // m.Entry.TunnelDst.Af
   949  	size += 1 * 16  // m.Entry.TunnelDst.Un
   950  	size += 4       // m.Entry.TxTableID
   951  	size += 4       // m.Entry.Salt
   952  	size += 2       // m.Entry.UDPSrcPort
   953  	size += 2       // m.Entry.UDPDstPort
   954  	return size
   955  }
   956  func (m *IpsecSadEntryAddDel) Marshal(b []byte) ([]byte, error) {
   957  	if b == nil {
   958  		b = make([]byte, m.Size())
   959  	}
   960  	buf := codec.NewBuffer(b)
   961  	buf.EncodeBool(m.IsAdd)
   962  	buf.EncodeUint32(m.Entry.SadID)
   963  	buf.EncodeUint32(m.Entry.Spi)
   964  	buf.EncodeUint32(uint32(m.Entry.Protocol))
   965  	buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm))
   966  	buf.EncodeUint8(m.Entry.CryptoKey.Length)
   967  	buf.EncodeBytes(m.Entry.CryptoKey.Data, 128)
   968  	buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm))
   969  	buf.EncodeUint8(m.Entry.IntegrityKey.Length)
   970  	buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128)
   971  	buf.EncodeUint32(uint32(m.Entry.Flags))
   972  	buf.EncodeUint8(uint8(m.Entry.TunnelSrc.Af))
   973  	buf.EncodeBytes(m.Entry.TunnelSrc.Un.XXX_UnionData[:], 16)
   974  	buf.EncodeUint8(uint8(m.Entry.TunnelDst.Af))
   975  	buf.EncodeBytes(m.Entry.TunnelDst.Un.XXX_UnionData[:], 16)
   976  	buf.EncodeUint32(m.Entry.TxTableID)
   977  	buf.EncodeUint32(m.Entry.Salt)
   978  	buf.EncodeUint16(m.Entry.UDPSrcPort)
   979  	buf.EncodeUint16(m.Entry.UDPDstPort)
   980  	return buf.Bytes(), nil
   981  }
   982  func (m *IpsecSadEntryAddDel) Unmarshal(b []byte) error {
   983  	buf := codec.NewBuffer(b)
   984  	m.IsAdd = buf.DecodeBool()
   985  	m.Entry.SadID = buf.DecodeUint32()
   986  	m.Entry.Spi = buf.DecodeUint32()
   987  	m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
   988  	m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32())
   989  	m.Entry.CryptoKey.Length = buf.DecodeUint8()
   990  	m.Entry.CryptoKey.Data = make([]byte, 128)
   991  	copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data)))
   992  	m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32())
   993  	m.Entry.IntegrityKey.Length = buf.DecodeUint8()
   994  	m.Entry.IntegrityKey.Data = make([]byte, 128)
   995  	copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data)))
   996  	m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32())
   997  	m.Entry.TunnelSrc.Af = ip_types.AddressFamily(buf.DecodeUint8())
   998  	copy(m.Entry.TunnelSrc.Un.XXX_UnionData[:], buf.DecodeBytes(16))
   999  	m.Entry.TunnelDst.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1000  	copy(m.Entry.TunnelDst.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1001  	m.Entry.TxTableID = buf.DecodeUint32()
  1002  	m.Entry.Salt = buf.DecodeUint32()
  1003  	m.Entry.UDPSrcPort = buf.DecodeUint16()
  1004  	m.Entry.UDPDstPort = buf.DecodeUint16()
  1005  	return nil
  1006  }
  1007  
  1008  // IpsecSadEntryAddDelReply defines message 'ipsec_sad_entry_add_del_reply'.
  1009  // Deprecated: the message will be removed in the future versions
  1010  type IpsecSadEntryAddDelReply struct {
  1011  	Retval    int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1012  	StatIndex uint32 `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
  1013  }
  1014  
  1015  func (m *IpsecSadEntryAddDelReply) Reset()               { *m = IpsecSadEntryAddDelReply{} }
  1016  func (*IpsecSadEntryAddDelReply) GetMessageName() string { return "ipsec_sad_entry_add_del_reply" }
  1017  func (*IpsecSadEntryAddDelReply) GetCrcString() string   { return "9ffac24b" }
  1018  func (*IpsecSadEntryAddDelReply) GetMessageType() api.MessageType {
  1019  	return api.ReplyMessage
  1020  }
  1021  
  1022  func (m *IpsecSadEntryAddDelReply) Size() (size int) {
  1023  	if m == nil {
  1024  		return 0
  1025  	}
  1026  	size += 4 // m.Retval
  1027  	size += 4 // m.StatIndex
  1028  	return size
  1029  }
  1030  func (m *IpsecSadEntryAddDelReply) Marshal(b []byte) ([]byte, error) {
  1031  	if b == nil {
  1032  		b = make([]byte, m.Size())
  1033  	}
  1034  	buf := codec.NewBuffer(b)
  1035  	buf.EncodeInt32(m.Retval)
  1036  	buf.EncodeUint32(m.StatIndex)
  1037  	return buf.Bytes(), nil
  1038  }
  1039  func (m *IpsecSadEntryAddDelReply) Unmarshal(b []byte) error {
  1040  	buf := codec.NewBuffer(b)
  1041  	m.Retval = buf.DecodeInt32()
  1042  	m.StatIndex = buf.DecodeUint32()
  1043  	return nil
  1044  }
  1045  
  1046  // IpsecSadEntryAddDelV2 defines message 'ipsec_sad_entry_add_del_v2'.
  1047  type IpsecSadEntryAddDelV2 struct {
  1048  	IsAdd bool                        `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1049  	Entry ipsec_types.IpsecSadEntryV2 `binapi:"ipsec_sad_entry_v2,name=entry" json:"entry,omitempty"`
  1050  }
  1051  
  1052  func (m *IpsecSadEntryAddDelV2) Reset()               { *m = IpsecSadEntryAddDelV2{} }
  1053  func (*IpsecSadEntryAddDelV2) GetMessageName() string { return "ipsec_sad_entry_add_del_v2" }
  1054  func (*IpsecSadEntryAddDelV2) GetCrcString() string   { return "aca78b27" }
  1055  func (*IpsecSadEntryAddDelV2) GetMessageType() api.MessageType {
  1056  	return api.RequestMessage
  1057  }
  1058  
  1059  func (m *IpsecSadEntryAddDelV2) Size() (size int) {
  1060  	if m == nil {
  1061  		return 0
  1062  	}
  1063  	size += 1       // m.IsAdd
  1064  	size += 4       // m.Entry.SadID
  1065  	size += 4       // m.Entry.Spi
  1066  	size += 4       // m.Entry.Protocol
  1067  	size += 4       // m.Entry.CryptoAlgorithm
  1068  	size += 1       // m.Entry.CryptoKey.Length
  1069  	size += 1 * 128 // m.Entry.CryptoKey.Data
  1070  	size += 4       // m.Entry.IntegrityAlgorithm
  1071  	size += 1       // m.Entry.IntegrityKey.Length
  1072  	size += 1 * 128 // m.Entry.IntegrityKey.Data
  1073  	size += 4       // m.Entry.Flags
  1074  	size += 1       // m.Entry.TunnelSrc.Af
  1075  	size += 1 * 16  // m.Entry.TunnelSrc.Un
  1076  	size += 1       // m.Entry.TunnelDst.Af
  1077  	size += 1 * 16  // m.Entry.TunnelDst.Un
  1078  	size += 1       // m.Entry.TunnelFlags
  1079  	size += 1       // m.Entry.Dscp
  1080  	size += 4       // m.Entry.TxTableID
  1081  	size += 4       // m.Entry.Salt
  1082  	size += 2       // m.Entry.UDPSrcPort
  1083  	size += 2       // m.Entry.UDPDstPort
  1084  	return size
  1085  }
  1086  func (m *IpsecSadEntryAddDelV2) Marshal(b []byte) ([]byte, error) {
  1087  	if b == nil {
  1088  		b = make([]byte, m.Size())
  1089  	}
  1090  	buf := codec.NewBuffer(b)
  1091  	buf.EncodeBool(m.IsAdd)
  1092  	buf.EncodeUint32(m.Entry.SadID)
  1093  	buf.EncodeUint32(m.Entry.Spi)
  1094  	buf.EncodeUint32(uint32(m.Entry.Protocol))
  1095  	buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm))
  1096  	buf.EncodeUint8(m.Entry.CryptoKey.Length)
  1097  	buf.EncodeBytes(m.Entry.CryptoKey.Data, 128)
  1098  	buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm))
  1099  	buf.EncodeUint8(m.Entry.IntegrityKey.Length)
  1100  	buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128)
  1101  	buf.EncodeUint32(uint32(m.Entry.Flags))
  1102  	buf.EncodeUint8(uint8(m.Entry.TunnelSrc.Af))
  1103  	buf.EncodeBytes(m.Entry.TunnelSrc.Un.XXX_UnionData[:], 16)
  1104  	buf.EncodeUint8(uint8(m.Entry.TunnelDst.Af))
  1105  	buf.EncodeBytes(m.Entry.TunnelDst.Un.XXX_UnionData[:], 16)
  1106  	buf.EncodeUint8(uint8(m.Entry.TunnelFlags))
  1107  	buf.EncodeUint8(uint8(m.Entry.Dscp))
  1108  	buf.EncodeUint32(m.Entry.TxTableID)
  1109  	buf.EncodeUint32(m.Entry.Salt)
  1110  	buf.EncodeUint16(m.Entry.UDPSrcPort)
  1111  	buf.EncodeUint16(m.Entry.UDPDstPort)
  1112  	return buf.Bytes(), nil
  1113  }
  1114  func (m *IpsecSadEntryAddDelV2) Unmarshal(b []byte) error {
  1115  	buf := codec.NewBuffer(b)
  1116  	m.IsAdd = buf.DecodeBool()
  1117  	m.Entry.SadID = buf.DecodeUint32()
  1118  	m.Entry.Spi = buf.DecodeUint32()
  1119  	m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
  1120  	m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32())
  1121  	m.Entry.CryptoKey.Length = buf.DecodeUint8()
  1122  	m.Entry.CryptoKey.Data = make([]byte, 128)
  1123  	copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data)))
  1124  	m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32())
  1125  	m.Entry.IntegrityKey.Length = buf.DecodeUint8()
  1126  	m.Entry.IntegrityKey.Data = make([]byte, 128)
  1127  	copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data)))
  1128  	m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32())
  1129  	m.Entry.TunnelSrc.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1130  	copy(m.Entry.TunnelSrc.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1131  	m.Entry.TunnelDst.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1132  	copy(m.Entry.TunnelDst.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1133  	m.Entry.TunnelFlags = tunnel_types.TunnelEncapDecapFlags(buf.DecodeUint8())
  1134  	m.Entry.Dscp = ip_types.IPDscp(buf.DecodeUint8())
  1135  	m.Entry.TxTableID = buf.DecodeUint32()
  1136  	m.Entry.Salt = buf.DecodeUint32()
  1137  	m.Entry.UDPSrcPort = buf.DecodeUint16()
  1138  	m.Entry.UDPDstPort = buf.DecodeUint16()
  1139  	return nil
  1140  }
  1141  
  1142  // IpsecSadEntryAddDelV2Reply defines message 'ipsec_sad_entry_add_del_v2_reply'.
  1143  type IpsecSadEntryAddDelV2Reply struct {
  1144  	Retval    int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1145  	StatIndex uint32 `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
  1146  }
  1147  
  1148  func (m *IpsecSadEntryAddDelV2Reply) Reset()               { *m = IpsecSadEntryAddDelV2Reply{} }
  1149  func (*IpsecSadEntryAddDelV2Reply) GetMessageName() string { return "ipsec_sad_entry_add_del_v2_reply" }
  1150  func (*IpsecSadEntryAddDelV2Reply) GetCrcString() string   { return "9ffac24b" }
  1151  func (*IpsecSadEntryAddDelV2Reply) GetMessageType() api.MessageType {
  1152  	return api.ReplyMessage
  1153  }
  1154  
  1155  func (m *IpsecSadEntryAddDelV2Reply) Size() (size int) {
  1156  	if m == nil {
  1157  		return 0
  1158  	}
  1159  	size += 4 // m.Retval
  1160  	size += 4 // m.StatIndex
  1161  	return size
  1162  }
  1163  func (m *IpsecSadEntryAddDelV2Reply) Marshal(b []byte) ([]byte, error) {
  1164  	if b == nil {
  1165  		b = make([]byte, m.Size())
  1166  	}
  1167  	buf := codec.NewBuffer(b)
  1168  	buf.EncodeInt32(m.Retval)
  1169  	buf.EncodeUint32(m.StatIndex)
  1170  	return buf.Bytes(), nil
  1171  }
  1172  func (m *IpsecSadEntryAddDelV2Reply) Unmarshal(b []byte) error {
  1173  	buf := codec.NewBuffer(b)
  1174  	m.Retval = buf.DecodeInt32()
  1175  	m.StatIndex = buf.DecodeUint32()
  1176  	return nil
  1177  }
  1178  
  1179  // IpsecSadEntryAddDelV3 defines message 'ipsec_sad_entry_add_del_v3'.
  1180  type IpsecSadEntryAddDelV3 struct {
  1181  	IsAdd bool                        `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1182  	Entry ipsec_types.IpsecSadEntryV3 `binapi:"ipsec_sad_entry_v3,name=entry" json:"entry,omitempty"`
  1183  }
  1184  
  1185  func (m *IpsecSadEntryAddDelV3) Reset()               { *m = IpsecSadEntryAddDelV3{} }
  1186  func (*IpsecSadEntryAddDelV3) GetMessageName() string { return "ipsec_sad_entry_add_del_v3" }
  1187  func (*IpsecSadEntryAddDelV3) GetCrcString() string   { return "c77ebd92" }
  1188  func (*IpsecSadEntryAddDelV3) GetMessageType() api.MessageType {
  1189  	return api.RequestMessage
  1190  }
  1191  
  1192  func (m *IpsecSadEntryAddDelV3) Size() (size int) {
  1193  	if m == nil {
  1194  		return 0
  1195  	}
  1196  	size += 1       // m.IsAdd
  1197  	size += 4       // m.Entry.SadID
  1198  	size += 4       // m.Entry.Spi
  1199  	size += 4       // m.Entry.Protocol
  1200  	size += 4       // m.Entry.CryptoAlgorithm
  1201  	size += 1       // m.Entry.CryptoKey.Length
  1202  	size += 1 * 128 // m.Entry.CryptoKey.Data
  1203  	size += 4       // m.Entry.IntegrityAlgorithm
  1204  	size += 1       // m.Entry.IntegrityKey.Length
  1205  	size += 1 * 128 // m.Entry.IntegrityKey.Data
  1206  	size += 4       // m.Entry.Flags
  1207  	size += 4       // m.Entry.Tunnel.Instance
  1208  	size += 1       // m.Entry.Tunnel.Src.Af
  1209  	size += 1 * 16  // m.Entry.Tunnel.Src.Un
  1210  	size += 1       // m.Entry.Tunnel.Dst.Af
  1211  	size += 1 * 16  // m.Entry.Tunnel.Dst.Un
  1212  	size += 4       // m.Entry.Tunnel.SwIfIndex
  1213  	size += 4       // m.Entry.Tunnel.TableID
  1214  	size += 1       // m.Entry.Tunnel.EncapDecapFlags
  1215  	size += 1       // m.Entry.Tunnel.Mode
  1216  	size += 1       // m.Entry.Tunnel.Flags
  1217  	size += 1       // m.Entry.Tunnel.Dscp
  1218  	size += 1       // m.Entry.Tunnel.HopLimit
  1219  	size += 4       // m.Entry.Salt
  1220  	size += 2       // m.Entry.UDPSrcPort
  1221  	size += 2       // m.Entry.UDPDstPort
  1222  	return size
  1223  }
  1224  func (m *IpsecSadEntryAddDelV3) Marshal(b []byte) ([]byte, error) {
  1225  	if b == nil {
  1226  		b = make([]byte, m.Size())
  1227  	}
  1228  	buf := codec.NewBuffer(b)
  1229  	buf.EncodeBool(m.IsAdd)
  1230  	buf.EncodeUint32(m.Entry.SadID)
  1231  	buf.EncodeUint32(m.Entry.Spi)
  1232  	buf.EncodeUint32(uint32(m.Entry.Protocol))
  1233  	buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm))
  1234  	buf.EncodeUint8(m.Entry.CryptoKey.Length)
  1235  	buf.EncodeBytes(m.Entry.CryptoKey.Data, 128)
  1236  	buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm))
  1237  	buf.EncodeUint8(m.Entry.IntegrityKey.Length)
  1238  	buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128)
  1239  	buf.EncodeUint32(uint32(m.Entry.Flags))
  1240  	buf.EncodeUint32(m.Entry.Tunnel.Instance)
  1241  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Src.Af))
  1242  	buf.EncodeBytes(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], 16)
  1243  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Dst.Af))
  1244  	buf.EncodeBytes(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], 16)
  1245  	buf.EncodeUint32(uint32(m.Entry.Tunnel.SwIfIndex))
  1246  	buf.EncodeUint32(m.Entry.Tunnel.TableID)
  1247  	buf.EncodeUint8(uint8(m.Entry.Tunnel.EncapDecapFlags))
  1248  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Mode))
  1249  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Flags))
  1250  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Dscp))
  1251  	buf.EncodeUint8(m.Entry.Tunnel.HopLimit)
  1252  	buf.EncodeUint32(m.Entry.Salt)
  1253  	buf.EncodeUint16(m.Entry.UDPSrcPort)
  1254  	buf.EncodeUint16(m.Entry.UDPDstPort)
  1255  	return buf.Bytes(), nil
  1256  }
  1257  func (m *IpsecSadEntryAddDelV3) Unmarshal(b []byte) error {
  1258  	buf := codec.NewBuffer(b)
  1259  	m.IsAdd = buf.DecodeBool()
  1260  	m.Entry.SadID = buf.DecodeUint32()
  1261  	m.Entry.Spi = buf.DecodeUint32()
  1262  	m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
  1263  	m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32())
  1264  	m.Entry.CryptoKey.Length = buf.DecodeUint8()
  1265  	m.Entry.CryptoKey.Data = make([]byte, 128)
  1266  	copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data)))
  1267  	m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32())
  1268  	m.Entry.IntegrityKey.Length = buf.DecodeUint8()
  1269  	m.Entry.IntegrityKey.Data = make([]byte, 128)
  1270  	copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data)))
  1271  	m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32())
  1272  	m.Entry.Tunnel.Instance = buf.DecodeUint32()
  1273  	m.Entry.Tunnel.Src.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1274  	copy(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1275  	m.Entry.Tunnel.Dst.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1276  	copy(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1277  	m.Entry.Tunnel.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1278  	m.Entry.Tunnel.TableID = buf.DecodeUint32()
  1279  	m.Entry.Tunnel.EncapDecapFlags = tunnel_types.TunnelEncapDecapFlags(buf.DecodeUint8())
  1280  	m.Entry.Tunnel.Mode = tunnel_types.TunnelMode(buf.DecodeUint8())
  1281  	m.Entry.Tunnel.Flags = tunnel_types.TunnelFlags(buf.DecodeUint8())
  1282  	m.Entry.Tunnel.Dscp = ip_types.IPDscp(buf.DecodeUint8())
  1283  	m.Entry.Tunnel.HopLimit = buf.DecodeUint8()
  1284  	m.Entry.Salt = buf.DecodeUint32()
  1285  	m.Entry.UDPSrcPort = buf.DecodeUint16()
  1286  	m.Entry.UDPDstPort = buf.DecodeUint16()
  1287  	return nil
  1288  }
  1289  
  1290  // IpsecSadEntryAddDelV3Reply defines message 'ipsec_sad_entry_add_del_v3_reply'.
  1291  type IpsecSadEntryAddDelV3Reply struct {
  1292  	Retval    int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1293  	StatIndex uint32 `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
  1294  }
  1295  
  1296  func (m *IpsecSadEntryAddDelV3Reply) Reset()               { *m = IpsecSadEntryAddDelV3Reply{} }
  1297  func (*IpsecSadEntryAddDelV3Reply) GetMessageName() string { return "ipsec_sad_entry_add_del_v3_reply" }
  1298  func (*IpsecSadEntryAddDelV3Reply) GetCrcString() string   { return "9ffac24b" }
  1299  func (*IpsecSadEntryAddDelV3Reply) GetMessageType() api.MessageType {
  1300  	return api.ReplyMessage
  1301  }
  1302  
  1303  func (m *IpsecSadEntryAddDelV3Reply) Size() (size int) {
  1304  	if m == nil {
  1305  		return 0
  1306  	}
  1307  	size += 4 // m.Retval
  1308  	size += 4 // m.StatIndex
  1309  	return size
  1310  }
  1311  func (m *IpsecSadEntryAddDelV3Reply) Marshal(b []byte) ([]byte, error) {
  1312  	if b == nil {
  1313  		b = make([]byte, m.Size())
  1314  	}
  1315  	buf := codec.NewBuffer(b)
  1316  	buf.EncodeInt32(m.Retval)
  1317  	buf.EncodeUint32(m.StatIndex)
  1318  	return buf.Bytes(), nil
  1319  }
  1320  func (m *IpsecSadEntryAddDelV3Reply) Unmarshal(b []byte) error {
  1321  	buf := codec.NewBuffer(b)
  1322  	m.Retval = buf.DecodeInt32()
  1323  	m.StatIndex = buf.DecodeUint32()
  1324  	return nil
  1325  }
  1326  
  1327  // IpsecSelectBackend defines message 'ipsec_select_backend'.
  1328  type IpsecSelectBackend struct {
  1329  	Protocol ipsec_types.IpsecProto `binapi:"ipsec_proto,name=protocol" json:"protocol,omitempty"`
  1330  	Index    uint8                  `binapi:"u8,name=index" json:"index,omitempty"`
  1331  }
  1332  
  1333  func (m *IpsecSelectBackend) Reset()               { *m = IpsecSelectBackend{} }
  1334  func (*IpsecSelectBackend) GetMessageName() string { return "ipsec_select_backend" }
  1335  func (*IpsecSelectBackend) GetCrcString() string   { return "5bcfd3b7" }
  1336  func (*IpsecSelectBackend) GetMessageType() api.MessageType {
  1337  	return api.RequestMessage
  1338  }
  1339  
  1340  func (m *IpsecSelectBackend) Size() (size int) {
  1341  	if m == nil {
  1342  		return 0
  1343  	}
  1344  	size += 4 // m.Protocol
  1345  	size += 1 // m.Index
  1346  	return size
  1347  }
  1348  func (m *IpsecSelectBackend) Marshal(b []byte) ([]byte, error) {
  1349  	if b == nil {
  1350  		b = make([]byte, m.Size())
  1351  	}
  1352  	buf := codec.NewBuffer(b)
  1353  	buf.EncodeUint32(uint32(m.Protocol))
  1354  	buf.EncodeUint8(m.Index)
  1355  	return buf.Bytes(), nil
  1356  }
  1357  func (m *IpsecSelectBackend) Unmarshal(b []byte) error {
  1358  	buf := codec.NewBuffer(b)
  1359  	m.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
  1360  	m.Index = buf.DecodeUint8()
  1361  	return nil
  1362  }
  1363  
  1364  // IpsecSelectBackendReply defines message 'ipsec_select_backend_reply'.
  1365  type IpsecSelectBackendReply struct {
  1366  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1367  }
  1368  
  1369  func (m *IpsecSelectBackendReply) Reset()               { *m = IpsecSelectBackendReply{} }
  1370  func (*IpsecSelectBackendReply) GetMessageName() string { return "ipsec_select_backend_reply" }
  1371  func (*IpsecSelectBackendReply) GetCrcString() string   { return "e8d4e804" }
  1372  func (*IpsecSelectBackendReply) GetMessageType() api.MessageType {
  1373  	return api.ReplyMessage
  1374  }
  1375  
  1376  func (m *IpsecSelectBackendReply) Size() (size int) {
  1377  	if m == nil {
  1378  		return 0
  1379  	}
  1380  	size += 4 // m.Retval
  1381  	return size
  1382  }
  1383  func (m *IpsecSelectBackendReply) Marshal(b []byte) ([]byte, error) {
  1384  	if b == nil {
  1385  		b = make([]byte, m.Size())
  1386  	}
  1387  	buf := codec.NewBuffer(b)
  1388  	buf.EncodeInt32(m.Retval)
  1389  	return buf.Bytes(), nil
  1390  }
  1391  func (m *IpsecSelectBackendReply) Unmarshal(b []byte) error {
  1392  	buf := codec.NewBuffer(b)
  1393  	m.Retval = buf.DecodeInt32()
  1394  	return nil
  1395  }
  1396  
  1397  // IpsecSetAsyncMode defines message 'ipsec_set_async_mode'.
  1398  type IpsecSetAsyncMode struct {
  1399  	AsyncEnable bool `binapi:"bool,name=async_enable" json:"async_enable,omitempty"`
  1400  }
  1401  
  1402  func (m *IpsecSetAsyncMode) Reset()               { *m = IpsecSetAsyncMode{} }
  1403  func (*IpsecSetAsyncMode) GetMessageName() string { return "ipsec_set_async_mode" }
  1404  func (*IpsecSetAsyncMode) GetCrcString() string   { return "a6465f7c" }
  1405  func (*IpsecSetAsyncMode) GetMessageType() api.MessageType {
  1406  	return api.RequestMessage
  1407  }
  1408  
  1409  func (m *IpsecSetAsyncMode) Size() (size int) {
  1410  	if m == nil {
  1411  		return 0
  1412  	}
  1413  	size += 1 // m.AsyncEnable
  1414  	return size
  1415  }
  1416  func (m *IpsecSetAsyncMode) Marshal(b []byte) ([]byte, error) {
  1417  	if b == nil {
  1418  		b = make([]byte, m.Size())
  1419  	}
  1420  	buf := codec.NewBuffer(b)
  1421  	buf.EncodeBool(m.AsyncEnable)
  1422  	return buf.Bytes(), nil
  1423  }
  1424  func (m *IpsecSetAsyncMode) Unmarshal(b []byte) error {
  1425  	buf := codec.NewBuffer(b)
  1426  	m.AsyncEnable = buf.DecodeBool()
  1427  	return nil
  1428  }
  1429  
  1430  // IpsecSetAsyncModeReply defines message 'ipsec_set_async_mode_reply'.
  1431  type IpsecSetAsyncModeReply struct {
  1432  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1433  }
  1434  
  1435  func (m *IpsecSetAsyncModeReply) Reset()               { *m = IpsecSetAsyncModeReply{} }
  1436  func (*IpsecSetAsyncModeReply) GetMessageName() string { return "ipsec_set_async_mode_reply" }
  1437  func (*IpsecSetAsyncModeReply) GetCrcString() string   { return "e8d4e804" }
  1438  func (*IpsecSetAsyncModeReply) GetMessageType() api.MessageType {
  1439  	return api.ReplyMessage
  1440  }
  1441  
  1442  func (m *IpsecSetAsyncModeReply) Size() (size int) {
  1443  	if m == nil {
  1444  		return 0
  1445  	}
  1446  	size += 4 // m.Retval
  1447  	return size
  1448  }
  1449  func (m *IpsecSetAsyncModeReply) Marshal(b []byte) ([]byte, error) {
  1450  	if b == nil {
  1451  		b = make([]byte, m.Size())
  1452  	}
  1453  	buf := codec.NewBuffer(b)
  1454  	buf.EncodeInt32(m.Retval)
  1455  	return buf.Bytes(), nil
  1456  }
  1457  func (m *IpsecSetAsyncModeReply) Unmarshal(b []byte) error {
  1458  	buf := codec.NewBuffer(b)
  1459  	m.Retval = buf.DecodeInt32()
  1460  	return nil
  1461  }
  1462  
  1463  // IpsecSpdAddDel defines message 'ipsec_spd_add_del'.
  1464  type IpsecSpdAddDel struct {
  1465  	IsAdd bool   `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1466  	SpdID uint32 `binapi:"u32,name=spd_id" json:"spd_id,omitempty"`
  1467  }
  1468  
  1469  func (m *IpsecSpdAddDel) Reset()               { *m = IpsecSpdAddDel{} }
  1470  func (*IpsecSpdAddDel) GetMessageName() string { return "ipsec_spd_add_del" }
  1471  func (*IpsecSpdAddDel) GetCrcString() string   { return "20e89a95" }
  1472  func (*IpsecSpdAddDel) GetMessageType() api.MessageType {
  1473  	return api.RequestMessage
  1474  }
  1475  
  1476  func (m *IpsecSpdAddDel) Size() (size int) {
  1477  	if m == nil {
  1478  		return 0
  1479  	}
  1480  	size += 1 // m.IsAdd
  1481  	size += 4 // m.SpdID
  1482  	return size
  1483  }
  1484  func (m *IpsecSpdAddDel) Marshal(b []byte) ([]byte, error) {
  1485  	if b == nil {
  1486  		b = make([]byte, m.Size())
  1487  	}
  1488  	buf := codec.NewBuffer(b)
  1489  	buf.EncodeBool(m.IsAdd)
  1490  	buf.EncodeUint32(m.SpdID)
  1491  	return buf.Bytes(), nil
  1492  }
  1493  func (m *IpsecSpdAddDel) Unmarshal(b []byte) error {
  1494  	buf := codec.NewBuffer(b)
  1495  	m.IsAdd = buf.DecodeBool()
  1496  	m.SpdID = buf.DecodeUint32()
  1497  	return nil
  1498  }
  1499  
  1500  // IpsecSpdAddDelReply defines message 'ipsec_spd_add_del_reply'.
  1501  type IpsecSpdAddDelReply struct {
  1502  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1503  }
  1504  
  1505  func (m *IpsecSpdAddDelReply) Reset()               { *m = IpsecSpdAddDelReply{} }
  1506  func (*IpsecSpdAddDelReply) GetMessageName() string { return "ipsec_spd_add_del_reply" }
  1507  func (*IpsecSpdAddDelReply) GetCrcString() string   { return "e8d4e804" }
  1508  func (*IpsecSpdAddDelReply) GetMessageType() api.MessageType {
  1509  	return api.ReplyMessage
  1510  }
  1511  
  1512  func (m *IpsecSpdAddDelReply) Size() (size int) {
  1513  	if m == nil {
  1514  		return 0
  1515  	}
  1516  	size += 4 // m.Retval
  1517  	return size
  1518  }
  1519  func (m *IpsecSpdAddDelReply) Marshal(b []byte) ([]byte, error) {
  1520  	if b == nil {
  1521  		b = make([]byte, m.Size())
  1522  	}
  1523  	buf := codec.NewBuffer(b)
  1524  	buf.EncodeInt32(m.Retval)
  1525  	return buf.Bytes(), nil
  1526  }
  1527  func (m *IpsecSpdAddDelReply) Unmarshal(b []byte) error {
  1528  	buf := codec.NewBuffer(b)
  1529  	m.Retval = buf.DecodeInt32()
  1530  	return nil
  1531  }
  1532  
  1533  // IpsecSpdDetails defines message 'ipsec_spd_details'.
  1534  type IpsecSpdDetails struct {
  1535  	Entry IpsecSpdEntry `binapi:"ipsec_spd_entry,name=entry" json:"entry,omitempty"`
  1536  }
  1537  
  1538  func (m *IpsecSpdDetails) Reset()               { *m = IpsecSpdDetails{} }
  1539  func (*IpsecSpdDetails) GetMessageName() string { return "ipsec_spd_details" }
  1540  func (*IpsecSpdDetails) GetCrcString() string   { return "5813d7a2" }
  1541  func (*IpsecSpdDetails) GetMessageType() api.MessageType {
  1542  	return api.ReplyMessage
  1543  }
  1544  
  1545  func (m *IpsecSpdDetails) Size() (size int) {
  1546  	if m == nil {
  1547  		return 0
  1548  	}
  1549  	size += 4      // m.Entry.SpdID
  1550  	size += 4      // m.Entry.Priority
  1551  	size += 1      // m.Entry.IsOutbound
  1552  	size += 4      // m.Entry.SaID
  1553  	size += 4      // m.Entry.Policy
  1554  	size += 1      // m.Entry.Protocol
  1555  	size += 1      // m.Entry.RemoteAddressStart.Af
  1556  	size += 1 * 16 // m.Entry.RemoteAddressStart.Un
  1557  	size += 1      // m.Entry.RemoteAddressStop.Af
  1558  	size += 1 * 16 // m.Entry.RemoteAddressStop.Un
  1559  	size += 1      // m.Entry.LocalAddressStart.Af
  1560  	size += 1 * 16 // m.Entry.LocalAddressStart.Un
  1561  	size += 1      // m.Entry.LocalAddressStop.Af
  1562  	size += 1 * 16 // m.Entry.LocalAddressStop.Un
  1563  	size += 2      // m.Entry.RemotePortStart
  1564  	size += 2      // m.Entry.RemotePortStop
  1565  	size += 2      // m.Entry.LocalPortStart
  1566  	size += 2      // m.Entry.LocalPortStop
  1567  	return size
  1568  }
  1569  func (m *IpsecSpdDetails) Marshal(b []byte) ([]byte, error) {
  1570  	if b == nil {
  1571  		b = make([]byte, m.Size())
  1572  	}
  1573  	buf := codec.NewBuffer(b)
  1574  	buf.EncodeUint32(m.Entry.SpdID)
  1575  	buf.EncodeInt32(m.Entry.Priority)
  1576  	buf.EncodeBool(m.Entry.IsOutbound)
  1577  	buf.EncodeUint32(m.Entry.SaID)
  1578  	buf.EncodeUint32(uint32(m.Entry.Policy))
  1579  	buf.EncodeUint8(m.Entry.Protocol)
  1580  	buf.EncodeUint8(uint8(m.Entry.RemoteAddressStart.Af))
  1581  	buf.EncodeBytes(m.Entry.RemoteAddressStart.Un.XXX_UnionData[:], 16)
  1582  	buf.EncodeUint8(uint8(m.Entry.RemoteAddressStop.Af))
  1583  	buf.EncodeBytes(m.Entry.RemoteAddressStop.Un.XXX_UnionData[:], 16)
  1584  	buf.EncodeUint8(uint8(m.Entry.LocalAddressStart.Af))
  1585  	buf.EncodeBytes(m.Entry.LocalAddressStart.Un.XXX_UnionData[:], 16)
  1586  	buf.EncodeUint8(uint8(m.Entry.LocalAddressStop.Af))
  1587  	buf.EncodeBytes(m.Entry.LocalAddressStop.Un.XXX_UnionData[:], 16)
  1588  	buf.EncodeUint16(m.Entry.RemotePortStart)
  1589  	buf.EncodeUint16(m.Entry.RemotePortStop)
  1590  	buf.EncodeUint16(m.Entry.LocalPortStart)
  1591  	buf.EncodeUint16(m.Entry.LocalPortStop)
  1592  	return buf.Bytes(), nil
  1593  }
  1594  func (m *IpsecSpdDetails) Unmarshal(b []byte) error {
  1595  	buf := codec.NewBuffer(b)
  1596  	m.Entry.SpdID = buf.DecodeUint32()
  1597  	m.Entry.Priority = buf.DecodeInt32()
  1598  	m.Entry.IsOutbound = buf.DecodeBool()
  1599  	m.Entry.SaID = buf.DecodeUint32()
  1600  	m.Entry.Policy = IpsecSpdAction(buf.DecodeUint32())
  1601  	m.Entry.Protocol = buf.DecodeUint8()
  1602  	m.Entry.RemoteAddressStart.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1603  	copy(m.Entry.RemoteAddressStart.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1604  	m.Entry.RemoteAddressStop.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1605  	copy(m.Entry.RemoteAddressStop.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1606  	m.Entry.LocalAddressStart.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1607  	copy(m.Entry.LocalAddressStart.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1608  	m.Entry.LocalAddressStop.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1609  	copy(m.Entry.LocalAddressStop.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1610  	m.Entry.RemotePortStart = buf.DecodeUint16()
  1611  	m.Entry.RemotePortStop = buf.DecodeUint16()
  1612  	m.Entry.LocalPortStart = buf.DecodeUint16()
  1613  	m.Entry.LocalPortStop = buf.DecodeUint16()
  1614  	return nil
  1615  }
  1616  
  1617  // IpsecSpdDump defines message 'ipsec_spd_dump'.
  1618  type IpsecSpdDump struct {
  1619  	SpdID uint32 `binapi:"u32,name=spd_id" json:"spd_id,omitempty"`
  1620  	SaID  uint32 `binapi:"u32,name=sa_id" json:"sa_id,omitempty"`
  1621  }
  1622  
  1623  func (m *IpsecSpdDump) Reset()               { *m = IpsecSpdDump{} }
  1624  func (*IpsecSpdDump) GetMessageName() string { return "ipsec_spd_dump" }
  1625  func (*IpsecSpdDump) GetCrcString() string   { return "afefbf7d" }
  1626  func (*IpsecSpdDump) GetMessageType() api.MessageType {
  1627  	return api.RequestMessage
  1628  }
  1629  
  1630  func (m *IpsecSpdDump) Size() (size int) {
  1631  	if m == nil {
  1632  		return 0
  1633  	}
  1634  	size += 4 // m.SpdID
  1635  	size += 4 // m.SaID
  1636  	return size
  1637  }
  1638  func (m *IpsecSpdDump) Marshal(b []byte) ([]byte, error) {
  1639  	if b == nil {
  1640  		b = make([]byte, m.Size())
  1641  	}
  1642  	buf := codec.NewBuffer(b)
  1643  	buf.EncodeUint32(m.SpdID)
  1644  	buf.EncodeUint32(m.SaID)
  1645  	return buf.Bytes(), nil
  1646  }
  1647  func (m *IpsecSpdDump) Unmarshal(b []byte) error {
  1648  	buf := codec.NewBuffer(b)
  1649  	m.SpdID = buf.DecodeUint32()
  1650  	m.SaID = buf.DecodeUint32()
  1651  	return nil
  1652  }
  1653  
  1654  // IpsecSpdEntryAddDel defines message 'ipsec_spd_entry_add_del'.
  1655  type IpsecSpdEntryAddDel struct {
  1656  	IsAdd bool          `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1657  	Entry IpsecSpdEntry `binapi:"ipsec_spd_entry,name=entry" json:"entry,omitempty"`
  1658  }
  1659  
  1660  func (m *IpsecSpdEntryAddDel) Reset()               { *m = IpsecSpdEntryAddDel{} }
  1661  func (*IpsecSpdEntryAddDel) GetMessageName() string { return "ipsec_spd_entry_add_del" }
  1662  func (*IpsecSpdEntryAddDel) GetCrcString() string   { return "338b7411" }
  1663  func (*IpsecSpdEntryAddDel) GetMessageType() api.MessageType {
  1664  	return api.RequestMessage
  1665  }
  1666  
  1667  func (m *IpsecSpdEntryAddDel) Size() (size int) {
  1668  	if m == nil {
  1669  		return 0
  1670  	}
  1671  	size += 1      // m.IsAdd
  1672  	size += 4      // m.Entry.SpdID
  1673  	size += 4      // m.Entry.Priority
  1674  	size += 1      // m.Entry.IsOutbound
  1675  	size += 4      // m.Entry.SaID
  1676  	size += 4      // m.Entry.Policy
  1677  	size += 1      // m.Entry.Protocol
  1678  	size += 1      // m.Entry.RemoteAddressStart.Af
  1679  	size += 1 * 16 // m.Entry.RemoteAddressStart.Un
  1680  	size += 1      // m.Entry.RemoteAddressStop.Af
  1681  	size += 1 * 16 // m.Entry.RemoteAddressStop.Un
  1682  	size += 1      // m.Entry.LocalAddressStart.Af
  1683  	size += 1 * 16 // m.Entry.LocalAddressStart.Un
  1684  	size += 1      // m.Entry.LocalAddressStop.Af
  1685  	size += 1 * 16 // m.Entry.LocalAddressStop.Un
  1686  	size += 2      // m.Entry.RemotePortStart
  1687  	size += 2      // m.Entry.RemotePortStop
  1688  	size += 2      // m.Entry.LocalPortStart
  1689  	size += 2      // m.Entry.LocalPortStop
  1690  	return size
  1691  }
  1692  func (m *IpsecSpdEntryAddDel) Marshal(b []byte) ([]byte, error) {
  1693  	if b == nil {
  1694  		b = make([]byte, m.Size())
  1695  	}
  1696  	buf := codec.NewBuffer(b)
  1697  	buf.EncodeBool(m.IsAdd)
  1698  	buf.EncodeUint32(m.Entry.SpdID)
  1699  	buf.EncodeInt32(m.Entry.Priority)
  1700  	buf.EncodeBool(m.Entry.IsOutbound)
  1701  	buf.EncodeUint32(m.Entry.SaID)
  1702  	buf.EncodeUint32(uint32(m.Entry.Policy))
  1703  	buf.EncodeUint8(m.Entry.Protocol)
  1704  	buf.EncodeUint8(uint8(m.Entry.RemoteAddressStart.Af))
  1705  	buf.EncodeBytes(m.Entry.RemoteAddressStart.Un.XXX_UnionData[:], 16)
  1706  	buf.EncodeUint8(uint8(m.Entry.RemoteAddressStop.Af))
  1707  	buf.EncodeBytes(m.Entry.RemoteAddressStop.Un.XXX_UnionData[:], 16)
  1708  	buf.EncodeUint8(uint8(m.Entry.LocalAddressStart.Af))
  1709  	buf.EncodeBytes(m.Entry.LocalAddressStart.Un.XXX_UnionData[:], 16)
  1710  	buf.EncodeUint8(uint8(m.Entry.LocalAddressStop.Af))
  1711  	buf.EncodeBytes(m.Entry.LocalAddressStop.Un.XXX_UnionData[:], 16)
  1712  	buf.EncodeUint16(m.Entry.RemotePortStart)
  1713  	buf.EncodeUint16(m.Entry.RemotePortStop)
  1714  	buf.EncodeUint16(m.Entry.LocalPortStart)
  1715  	buf.EncodeUint16(m.Entry.LocalPortStop)
  1716  	return buf.Bytes(), nil
  1717  }
  1718  func (m *IpsecSpdEntryAddDel) Unmarshal(b []byte) error {
  1719  	buf := codec.NewBuffer(b)
  1720  	m.IsAdd = buf.DecodeBool()
  1721  	m.Entry.SpdID = buf.DecodeUint32()
  1722  	m.Entry.Priority = buf.DecodeInt32()
  1723  	m.Entry.IsOutbound = buf.DecodeBool()
  1724  	m.Entry.SaID = buf.DecodeUint32()
  1725  	m.Entry.Policy = IpsecSpdAction(buf.DecodeUint32())
  1726  	m.Entry.Protocol = buf.DecodeUint8()
  1727  	m.Entry.RemoteAddressStart.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1728  	copy(m.Entry.RemoteAddressStart.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1729  	m.Entry.RemoteAddressStop.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1730  	copy(m.Entry.RemoteAddressStop.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1731  	m.Entry.LocalAddressStart.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1732  	copy(m.Entry.LocalAddressStart.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1733  	m.Entry.LocalAddressStop.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1734  	copy(m.Entry.LocalAddressStop.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1735  	m.Entry.RemotePortStart = buf.DecodeUint16()
  1736  	m.Entry.RemotePortStop = buf.DecodeUint16()
  1737  	m.Entry.LocalPortStart = buf.DecodeUint16()
  1738  	m.Entry.LocalPortStop = buf.DecodeUint16()
  1739  	return nil
  1740  }
  1741  
  1742  // IpsecSpdEntryAddDelReply defines message 'ipsec_spd_entry_add_del_reply'.
  1743  type IpsecSpdEntryAddDelReply struct {
  1744  	Retval    int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1745  	StatIndex uint32 `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
  1746  }
  1747  
  1748  func (m *IpsecSpdEntryAddDelReply) Reset()               { *m = IpsecSpdEntryAddDelReply{} }
  1749  func (*IpsecSpdEntryAddDelReply) GetMessageName() string { return "ipsec_spd_entry_add_del_reply" }
  1750  func (*IpsecSpdEntryAddDelReply) GetCrcString() string   { return "9ffac24b" }
  1751  func (*IpsecSpdEntryAddDelReply) GetMessageType() api.MessageType {
  1752  	return api.ReplyMessage
  1753  }
  1754  
  1755  func (m *IpsecSpdEntryAddDelReply) Size() (size int) {
  1756  	if m == nil {
  1757  		return 0
  1758  	}
  1759  	size += 4 // m.Retval
  1760  	size += 4 // m.StatIndex
  1761  	return size
  1762  }
  1763  func (m *IpsecSpdEntryAddDelReply) Marshal(b []byte) ([]byte, error) {
  1764  	if b == nil {
  1765  		b = make([]byte, m.Size())
  1766  	}
  1767  	buf := codec.NewBuffer(b)
  1768  	buf.EncodeInt32(m.Retval)
  1769  	buf.EncodeUint32(m.StatIndex)
  1770  	return buf.Bytes(), nil
  1771  }
  1772  func (m *IpsecSpdEntryAddDelReply) Unmarshal(b []byte) error {
  1773  	buf := codec.NewBuffer(b)
  1774  	m.Retval = buf.DecodeInt32()
  1775  	m.StatIndex = buf.DecodeUint32()
  1776  	return nil
  1777  }
  1778  
  1779  // IpsecSpdInterfaceDetails defines message 'ipsec_spd_interface_details'.
  1780  type IpsecSpdInterfaceDetails struct {
  1781  	SpdIndex  uint32                         `binapi:"u32,name=spd_index" json:"spd_index,omitempty"`
  1782  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  1783  }
  1784  
  1785  func (m *IpsecSpdInterfaceDetails) Reset()               { *m = IpsecSpdInterfaceDetails{} }
  1786  func (*IpsecSpdInterfaceDetails) GetMessageName() string { return "ipsec_spd_interface_details" }
  1787  func (*IpsecSpdInterfaceDetails) GetCrcString() string   { return "7a0bcf3e" }
  1788  func (*IpsecSpdInterfaceDetails) GetMessageType() api.MessageType {
  1789  	return api.ReplyMessage
  1790  }
  1791  
  1792  func (m *IpsecSpdInterfaceDetails) Size() (size int) {
  1793  	if m == nil {
  1794  		return 0
  1795  	}
  1796  	size += 4 // m.SpdIndex
  1797  	size += 4 // m.SwIfIndex
  1798  	return size
  1799  }
  1800  func (m *IpsecSpdInterfaceDetails) Marshal(b []byte) ([]byte, error) {
  1801  	if b == nil {
  1802  		b = make([]byte, m.Size())
  1803  	}
  1804  	buf := codec.NewBuffer(b)
  1805  	buf.EncodeUint32(m.SpdIndex)
  1806  	buf.EncodeUint32(uint32(m.SwIfIndex))
  1807  	return buf.Bytes(), nil
  1808  }
  1809  func (m *IpsecSpdInterfaceDetails) Unmarshal(b []byte) error {
  1810  	buf := codec.NewBuffer(b)
  1811  	m.SpdIndex = buf.DecodeUint32()
  1812  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1813  	return nil
  1814  }
  1815  
  1816  // IpsecSpdInterfaceDump defines message 'ipsec_spd_interface_dump'.
  1817  type IpsecSpdInterfaceDump struct {
  1818  	SpdIndex      uint32 `binapi:"u32,name=spd_index" json:"spd_index,omitempty"`
  1819  	SpdIndexValid uint8  `binapi:"u8,name=spd_index_valid" json:"spd_index_valid,omitempty"`
  1820  }
  1821  
  1822  func (m *IpsecSpdInterfaceDump) Reset()               { *m = IpsecSpdInterfaceDump{} }
  1823  func (*IpsecSpdInterfaceDump) GetMessageName() string { return "ipsec_spd_interface_dump" }
  1824  func (*IpsecSpdInterfaceDump) GetCrcString() string   { return "8971de19" }
  1825  func (*IpsecSpdInterfaceDump) GetMessageType() api.MessageType {
  1826  	return api.RequestMessage
  1827  }
  1828  
  1829  func (m *IpsecSpdInterfaceDump) Size() (size int) {
  1830  	if m == nil {
  1831  		return 0
  1832  	}
  1833  	size += 4 // m.SpdIndex
  1834  	size += 1 // m.SpdIndexValid
  1835  	return size
  1836  }
  1837  func (m *IpsecSpdInterfaceDump) Marshal(b []byte) ([]byte, error) {
  1838  	if b == nil {
  1839  		b = make([]byte, m.Size())
  1840  	}
  1841  	buf := codec.NewBuffer(b)
  1842  	buf.EncodeUint32(m.SpdIndex)
  1843  	buf.EncodeUint8(m.SpdIndexValid)
  1844  	return buf.Bytes(), nil
  1845  }
  1846  func (m *IpsecSpdInterfaceDump) Unmarshal(b []byte) error {
  1847  	buf := codec.NewBuffer(b)
  1848  	m.SpdIndex = buf.DecodeUint32()
  1849  	m.SpdIndexValid = buf.DecodeUint8()
  1850  	return nil
  1851  }
  1852  
  1853  // IpsecSpdsDetails defines message 'ipsec_spds_details'.
  1854  type IpsecSpdsDetails struct {
  1855  	SpdID     uint32 `binapi:"u32,name=spd_id" json:"spd_id,omitempty"`
  1856  	Npolicies uint32 `binapi:"u32,name=npolicies" json:"npolicies,omitempty"`
  1857  }
  1858  
  1859  func (m *IpsecSpdsDetails) Reset()               { *m = IpsecSpdsDetails{} }
  1860  func (*IpsecSpdsDetails) GetMessageName() string { return "ipsec_spds_details" }
  1861  func (*IpsecSpdsDetails) GetCrcString() string   { return "a04bb254" }
  1862  func (*IpsecSpdsDetails) GetMessageType() api.MessageType {
  1863  	return api.ReplyMessage
  1864  }
  1865  
  1866  func (m *IpsecSpdsDetails) Size() (size int) {
  1867  	if m == nil {
  1868  		return 0
  1869  	}
  1870  	size += 4 // m.SpdID
  1871  	size += 4 // m.Npolicies
  1872  	return size
  1873  }
  1874  func (m *IpsecSpdsDetails) Marshal(b []byte) ([]byte, error) {
  1875  	if b == nil {
  1876  		b = make([]byte, m.Size())
  1877  	}
  1878  	buf := codec.NewBuffer(b)
  1879  	buf.EncodeUint32(m.SpdID)
  1880  	buf.EncodeUint32(m.Npolicies)
  1881  	return buf.Bytes(), nil
  1882  }
  1883  func (m *IpsecSpdsDetails) Unmarshal(b []byte) error {
  1884  	buf := codec.NewBuffer(b)
  1885  	m.SpdID = buf.DecodeUint32()
  1886  	m.Npolicies = buf.DecodeUint32()
  1887  	return nil
  1888  }
  1889  
  1890  // IpsecSpdsDump defines message 'ipsec_spds_dump'.
  1891  type IpsecSpdsDump struct{}
  1892  
  1893  func (m *IpsecSpdsDump) Reset()               { *m = IpsecSpdsDump{} }
  1894  func (*IpsecSpdsDump) GetMessageName() string { return "ipsec_spds_dump" }
  1895  func (*IpsecSpdsDump) GetCrcString() string   { return "51077d14" }
  1896  func (*IpsecSpdsDump) GetMessageType() api.MessageType {
  1897  	return api.RequestMessage
  1898  }
  1899  
  1900  func (m *IpsecSpdsDump) Size() (size int) {
  1901  	if m == nil {
  1902  		return 0
  1903  	}
  1904  	return size
  1905  }
  1906  func (m *IpsecSpdsDump) Marshal(b []byte) ([]byte, error) {
  1907  	if b == nil {
  1908  		b = make([]byte, m.Size())
  1909  	}
  1910  	buf := codec.NewBuffer(b)
  1911  	return buf.Bytes(), nil
  1912  }
  1913  func (m *IpsecSpdsDump) Unmarshal(b []byte) error {
  1914  	return nil
  1915  }
  1916  
  1917  // IpsecTunnelProtectDel defines message 'ipsec_tunnel_protect_del'.
  1918  type IpsecTunnelProtectDel struct {
  1919  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  1920  	Nh        ip_types.Address               `binapi:"address,name=nh" json:"nh,omitempty"`
  1921  }
  1922  
  1923  func (m *IpsecTunnelProtectDel) Reset()               { *m = IpsecTunnelProtectDel{} }
  1924  func (*IpsecTunnelProtectDel) GetMessageName() string { return "ipsec_tunnel_protect_del" }
  1925  func (*IpsecTunnelProtectDel) GetCrcString() string   { return "cd239930" }
  1926  func (*IpsecTunnelProtectDel) GetMessageType() api.MessageType {
  1927  	return api.RequestMessage
  1928  }
  1929  
  1930  func (m *IpsecTunnelProtectDel) Size() (size int) {
  1931  	if m == nil {
  1932  		return 0
  1933  	}
  1934  	size += 4      // m.SwIfIndex
  1935  	size += 1      // m.Nh.Af
  1936  	size += 1 * 16 // m.Nh.Un
  1937  	return size
  1938  }
  1939  func (m *IpsecTunnelProtectDel) Marshal(b []byte) ([]byte, error) {
  1940  	if b == nil {
  1941  		b = make([]byte, m.Size())
  1942  	}
  1943  	buf := codec.NewBuffer(b)
  1944  	buf.EncodeUint32(uint32(m.SwIfIndex))
  1945  	buf.EncodeUint8(uint8(m.Nh.Af))
  1946  	buf.EncodeBytes(m.Nh.Un.XXX_UnionData[:], 16)
  1947  	return buf.Bytes(), nil
  1948  }
  1949  func (m *IpsecTunnelProtectDel) Unmarshal(b []byte) error {
  1950  	buf := codec.NewBuffer(b)
  1951  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1952  	m.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1953  	copy(m.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1954  	return nil
  1955  }
  1956  
  1957  // IpsecTunnelProtectDelReply defines message 'ipsec_tunnel_protect_del_reply'.
  1958  type IpsecTunnelProtectDelReply struct {
  1959  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1960  }
  1961  
  1962  func (m *IpsecTunnelProtectDelReply) Reset()               { *m = IpsecTunnelProtectDelReply{} }
  1963  func (*IpsecTunnelProtectDelReply) GetMessageName() string { return "ipsec_tunnel_protect_del_reply" }
  1964  func (*IpsecTunnelProtectDelReply) GetCrcString() string   { return "e8d4e804" }
  1965  func (*IpsecTunnelProtectDelReply) GetMessageType() api.MessageType {
  1966  	return api.ReplyMessage
  1967  }
  1968  
  1969  func (m *IpsecTunnelProtectDelReply) Size() (size int) {
  1970  	if m == nil {
  1971  		return 0
  1972  	}
  1973  	size += 4 // m.Retval
  1974  	return size
  1975  }
  1976  func (m *IpsecTunnelProtectDelReply) Marshal(b []byte) ([]byte, error) {
  1977  	if b == nil {
  1978  		b = make([]byte, m.Size())
  1979  	}
  1980  	buf := codec.NewBuffer(b)
  1981  	buf.EncodeInt32(m.Retval)
  1982  	return buf.Bytes(), nil
  1983  }
  1984  func (m *IpsecTunnelProtectDelReply) Unmarshal(b []byte) error {
  1985  	buf := codec.NewBuffer(b)
  1986  	m.Retval = buf.DecodeInt32()
  1987  	return nil
  1988  }
  1989  
  1990  // IpsecTunnelProtectDetails defines message 'ipsec_tunnel_protect_details'.
  1991  type IpsecTunnelProtectDetails struct {
  1992  	Tun IpsecTunnelProtect `binapi:"ipsec_tunnel_protect,name=tun" json:"tun,omitempty"`
  1993  }
  1994  
  1995  func (m *IpsecTunnelProtectDetails) Reset()               { *m = IpsecTunnelProtectDetails{} }
  1996  func (*IpsecTunnelProtectDetails) GetMessageName() string { return "ipsec_tunnel_protect_details" }
  1997  func (*IpsecTunnelProtectDetails) GetCrcString() string   { return "21663a50" }
  1998  func (*IpsecTunnelProtectDetails) GetMessageType() api.MessageType {
  1999  	return api.ReplyMessage
  2000  }
  2001  
  2002  func (m *IpsecTunnelProtectDetails) Size() (size int) {
  2003  	if m == nil {
  2004  		return 0
  2005  	}
  2006  	size += 4                   // m.Tun.SwIfIndex
  2007  	size += 1                   // m.Tun.Nh.Af
  2008  	size += 1 * 16              // m.Tun.Nh.Un
  2009  	size += 4                   // m.Tun.SaOut
  2010  	size += 1                   // m.Tun.NSaIn
  2011  	size += 4 * len(m.Tun.SaIn) // m.Tun.SaIn
  2012  	return size
  2013  }
  2014  func (m *IpsecTunnelProtectDetails) Marshal(b []byte) ([]byte, error) {
  2015  	if b == nil {
  2016  		b = make([]byte, m.Size())
  2017  	}
  2018  	buf := codec.NewBuffer(b)
  2019  	buf.EncodeUint32(uint32(m.Tun.SwIfIndex))
  2020  	buf.EncodeUint8(uint8(m.Tun.Nh.Af))
  2021  	buf.EncodeBytes(m.Tun.Nh.Un.XXX_UnionData[:], 16)
  2022  	buf.EncodeUint32(m.Tun.SaOut)
  2023  	buf.EncodeUint8(uint8(len(m.Tun.SaIn)))
  2024  	for i := 0; i < len(m.Tun.SaIn); i++ {
  2025  		var x uint32
  2026  		if i < len(m.Tun.SaIn) {
  2027  			x = uint32(m.Tun.SaIn[i])
  2028  		}
  2029  		buf.EncodeUint32(x)
  2030  	}
  2031  	return buf.Bytes(), nil
  2032  }
  2033  func (m *IpsecTunnelProtectDetails) Unmarshal(b []byte) error {
  2034  	buf := codec.NewBuffer(b)
  2035  	m.Tun.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  2036  	m.Tun.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2037  	copy(m.Tun.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2038  	m.Tun.SaOut = buf.DecodeUint32()
  2039  	m.Tun.NSaIn = buf.DecodeUint8()
  2040  	m.Tun.SaIn = make([]uint32, m.Tun.NSaIn)
  2041  	for i := 0; i < len(m.Tun.SaIn); i++ {
  2042  		m.Tun.SaIn[i] = buf.DecodeUint32()
  2043  	}
  2044  	return nil
  2045  }
  2046  
  2047  // IpsecTunnelProtectDump defines message 'ipsec_tunnel_protect_dump'.
  2048  type IpsecTunnelProtectDump struct {
  2049  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  2050  }
  2051  
  2052  func (m *IpsecTunnelProtectDump) Reset()               { *m = IpsecTunnelProtectDump{} }
  2053  func (*IpsecTunnelProtectDump) GetMessageName() string { return "ipsec_tunnel_protect_dump" }
  2054  func (*IpsecTunnelProtectDump) GetCrcString() string   { return "f9e6675e" }
  2055  func (*IpsecTunnelProtectDump) GetMessageType() api.MessageType {
  2056  	return api.RequestMessage
  2057  }
  2058  
  2059  func (m *IpsecTunnelProtectDump) Size() (size int) {
  2060  	if m == nil {
  2061  		return 0
  2062  	}
  2063  	size += 4 // m.SwIfIndex
  2064  	return size
  2065  }
  2066  func (m *IpsecTunnelProtectDump) Marshal(b []byte) ([]byte, error) {
  2067  	if b == nil {
  2068  		b = make([]byte, m.Size())
  2069  	}
  2070  	buf := codec.NewBuffer(b)
  2071  	buf.EncodeUint32(uint32(m.SwIfIndex))
  2072  	return buf.Bytes(), nil
  2073  }
  2074  func (m *IpsecTunnelProtectDump) Unmarshal(b []byte) error {
  2075  	buf := codec.NewBuffer(b)
  2076  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  2077  	return nil
  2078  }
  2079  
  2080  // IpsecTunnelProtectUpdate defines message 'ipsec_tunnel_protect_update'.
  2081  type IpsecTunnelProtectUpdate struct {
  2082  	Tunnel IpsecTunnelProtect `binapi:"ipsec_tunnel_protect,name=tunnel" json:"tunnel,omitempty"`
  2083  }
  2084  
  2085  func (m *IpsecTunnelProtectUpdate) Reset()               { *m = IpsecTunnelProtectUpdate{} }
  2086  func (*IpsecTunnelProtectUpdate) GetMessageName() string { return "ipsec_tunnel_protect_update" }
  2087  func (*IpsecTunnelProtectUpdate) GetCrcString() string   { return "30d5f133" }
  2088  func (*IpsecTunnelProtectUpdate) GetMessageType() api.MessageType {
  2089  	return api.RequestMessage
  2090  }
  2091  
  2092  func (m *IpsecTunnelProtectUpdate) Size() (size int) {
  2093  	if m == nil {
  2094  		return 0
  2095  	}
  2096  	size += 4                      // m.Tunnel.SwIfIndex
  2097  	size += 1                      // m.Tunnel.Nh.Af
  2098  	size += 1 * 16                 // m.Tunnel.Nh.Un
  2099  	size += 4                      // m.Tunnel.SaOut
  2100  	size += 1                      // m.Tunnel.NSaIn
  2101  	size += 4 * len(m.Tunnel.SaIn) // m.Tunnel.SaIn
  2102  	return size
  2103  }
  2104  func (m *IpsecTunnelProtectUpdate) Marshal(b []byte) ([]byte, error) {
  2105  	if b == nil {
  2106  		b = make([]byte, m.Size())
  2107  	}
  2108  	buf := codec.NewBuffer(b)
  2109  	buf.EncodeUint32(uint32(m.Tunnel.SwIfIndex))
  2110  	buf.EncodeUint8(uint8(m.Tunnel.Nh.Af))
  2111  	buf.EncodeBytes(m.Tunnel.Nh.Un.XXX_UnionData[:], 16)
  2112  	buf.EncodeUint32(m.Tunnel.SaOut)
  2113  	buf.EncodeUint8(uint8(len(m.Tunnel.SaIn)))
  2114  	for i := 0; i < len(m.Tunnel.SaIn); i++ {
  2115  		var x uint32
  2116  		if i < len(m.Tunnel.SaIn) {
  2117  			x = uint32(m.Tunnel.SaIn[i])
  2118  		}
  2119  		buf.EncodeUint32(x)
  2120  	}
  2121  	return buf.Bytes(), nil
  2122  }
  2123  func (m *IpsecTunnelProtectUpdate) Unmarshal(b []byte) error {
  2124  	buf := codec.NewBuffer(b)
  2125  	m.Tunnel.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  2126  	m.Tunnel.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2127  	copy(m.Tunnel.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2128  	m.Tunnel.SaOut = buf.DecodeUint32()
  2129  	m.Tunnel.NSaIn = buf.DecodeUint8()
  2130  	m.Tunnel.SaIn = make([]uint32, m.Tunnel.NSaIn)
  2131  	for i := 0; i < len(m.Tunnel.SaIn); i++ {
  2132  		m.Tunnel.SaIn[i] = buf.DecodeUint32()
  2133  	}
  2134  	return nil
  2135  }
  2136  
  2137  // IpsecTunnelProtectUpdateReply defines message 'ipsec_tunnel_protect_update_reply'.
  2138  type IpsecTunnelProtectUpdateReply struct {
  2139  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  2140  }
  2141  
  2142  func (m *IpsecTunnelProtectUpdateReply) Reset() { *m = IpsecTunnelProtectUpdateReply{} }
  2143  func (*IpsecTunnelProtectUpdateReply) GetMessageName() string {
  2144  	return "ipsec_tunnel_protect_update_reply"
  2145  }
  2146  func (*IpsecTunnelProtectUpdateReply) GetCrcString() string { return "e8d4e804" }
  2147  func (*IpsecTunnelProtectUpdateReply) GetMessageType() api.MessageType {
  2148  	return api.ReplyMessage
  2149  }
  2150  
  2151  func (m *IpsecTunnelProtectUpdateReply) Size() (size int) {
  2152  	if m == nil {
  2153  		return 0
  2154  	}
  2155  	size += 4 // m.Retval
  2156  	return size
  2157  }
  2158  func (m *IpsecTunnelProtectUpdateReply) Marshal(b []byte) ([]byte, error) {
  2159  	if b == nil {
  2160  		b = make([]byte, m.Size())
  2161  	}
  2162  	buf := codec.NewBuffer(b)
  2163  	buf.EncodeInt32(m.Retval)
  2164  	return buf.Bytes(), nil
  2165  }
  2166  func (m *IpsecTunnelProtectUpdateReply) Unmarshal(b []byte) error {
  2167  	buf := codec.NewBuffer(b)
  2168  	m.Retval = buf.DecodeInt32()
  2169  	return nil
  2170  }
  2171  
  2172  func init() { file_ipsec_binapi_init() }
  2173  func file_ipsec_binapi_init() {
  2174  	api.RegisterMessage((*IpsecBackendDetails)(nil), "ipsec_backend_details_ee601c29")
  2175  	api.RegisterMessage((*IpsecBackendDump)(nil), "ipsec_backend_dump_51077d14")
  2176  	api.RegisterMessage((*IpsecInterfaceAddDelSpd)(nil), "ipsec_interface_add_del_spd_80f80cbb")
  2177  	api.RegisterMessage((*IpsecInterfaceAddDelSpdReply)(nil), "ipsec_interface_add_del_spd_reply_e8d4e804")
  2178  	api.RegisterMessage((*IpsecItfCreate)(nil), "ipsec_itf_create_6f50b3bc")
  2179  	api.RegisterMessage((*IpsecItfCreateReply)(nil), "ipsec_itf_create_reply_5383d31f")
  2180  	api.RegisterMessage((*IpsecItfDelete)(nil), "ipsec_itf_delete_f9e6675e")
  2181  	api.RegisterMessage((*IpsecItfDeleteReply)(nil), "ipsec_itf_delete_reply_e8d4e804")
  2182  	api.RegisterMessage((*IpsecItfDetails)(nil), "ipsec_itf_details_548a73b8")
  2183  	api.RegisterMessage((*IpsecItfDump)(nil), "ipsec_itf_dump_f9e6675e")
  2184  	api.RegisterMessage((*IpsecSaDetails)(nil), "ipsec_sa_details_345d14a7")
  2185  	api.RegisterMessage((*IpsecSaDump)(nil), "ipsec_sa_dump_2076c2f4")
  2186  	api.RegisterMessage((*IpsecSaV2Details)(nil), "ipsec_sa_v2_details_e2130051")
  2187  	api.RegisterMessage((*IpsecSaV2Dump)(nil), "ipsec_sa_v2_dump_2076c2f4")
  2188  	api.RegisterMessage((*IpsecSaV3Details)(nil), "ipsec_sa_v3_details_2fc991ee")
  2189  	api.RegisterMessage((*IpsecSaV3Dump)(nil), "ipsec_sa_v3_dump_2076c2f4")
  2190  	api.RegisterMessage((*IpsecSadEntryAddDel)(nil), "ipsec_sad_entry_add_del_ab64b5c6")
  2191  	api.RegisterMessage((*IpsecSadEntryAddDelReply)(nil), "ipsec_sad_entry_add_del_reply_9ffac24b")
  2192  	api.RegisterMessage((*IpsecSadEntryAddDelV2)(nil), "ipsec_sad_entry_add_del_v2_aca78b27")
  2193  	api.RegisterMessage((*IpsecSadEntryAddDelV2Reply)(nil), "ipsec_sad_entry_add_del_v2_reply_9ffac24b")
  2194  	api.RegisterMessage((*IpsecSadEntryAddDelV3)(nil), "ipsec_sad_entry_add_del_v3_c77ebd92")
  2195  	api.RegisterMessage((*IpsecSadEntryAddDelV3Reply)(nil), "ipsec_sad_entry_add_del_v3_reply_9ffac24b")
  2196  	api.RegisterMessage((*IpsecSelectBackend)(nil), "ipsec_select_backend_5bcfd3b7")
  2197  	api.RegisterMessage((*IpsecSelectBackendReply)(nil), "ipsec_select_backend_reply_e8d4e804")
  2198  	api.RegisterMessage((*IpsecSetAsyncMode)(nil), "ipsec_set_async_mode_a6465f7c")
  2199  	api.RegisterMessage((*IpsecSetAsyncModeReply)(nil), "ipsec_set_async_mode_reply_e8d4e804")
  2200  	api.RegisterMessage((*IpsecSpdAddDel)(nil), "ipsec_spd_add_del_20e89a95")
  2201  	api.RegisterMessage((*IpsecSpdAddDelReply)(nil), "ipsec_spd_add_del_reply_e8d4e804")
  2202  	api.RegisterMessage((*IpsecSpdDetails)(nil), "ipsec_spd_details_5813d7a2")
  2203  	api.RegisterMessage((*IpsecSpdDump)(nil), "ipsec_spd_dump_afefbf7d")
  2204  	api.RegisterMessage((*IpsecSpdEntryAddDel)(nil), "ipsec_spd_entry_add_del_338b7411")
  2205  	api.RegisterMessage((*IpsecSpdEntryAddDelReply)(nil), "ipsec_spd_entry_add_del_reply_9ffac24b")
  2206  	api.RegisterMessage((*IpsecSpdInterfaceDetails)(nil), "ipsec_spd_interface_details_7a0bcf3e")
  2207  	api.RegisterMessage((*IpsecSpdInterfaceDump)(nil), "ipsec_spd_interface_dump_8971de19")
  2208  	api.RegisterMessage((*IpsecSpdsDetails)(nil), "ipsec_spds_details_a04bb254")
  2209  	api.RegisterMessage((*IpsecSpdsDump)(nil), "ipsec_spds_dump_51077d14")
  2210  	api.RegisterMessage((*IpsecTunnelProtectDel)(nil), "ipsec_tunnel_protect_del_cd239930")
  2211  	api.RegisterMessage((*IpsecTunnelProtectDelReply)(nil), "ipsec_tunnel_protect_del_reply_e8d4e804")
  2212  	api.RegisterMessage((*IpsecTunnelProtectDetails)(nil), "ipsec_tunnel_protect_details_21663a50")
  2213  	api.RegisterMessage((*IpsecTunnelProtectDump)(nil), "ipsec_tunnel_protect_dump_f9e6675e")
  2214  	api.RegisterMessage((*IpsecTunnelProtectUpdate)(nil), "ipsec_tunnel_protect_update_30d5f133")
  2215  	api.RegisterMessage((*IpsecTunnelProtectUpdateReply)(nil), "ipsec_tunnel_protect_update_reply_e8d4e804")
  2216  }
  2217  
  2218  // Messages returns list of all messages in this module.
  2219  func AllMessages() []api.Message {
  2220  	return []api.Message{
  2221  		(*IpsecBackendDetails)(nil),
  2222  		(*IpsecBackendDump)(nil),
  2223  		(*IpsecInterfaceAddDelSpd)(nil),
  2224  		(*IpsecInterfaceAddDelSpdReply)(nil),
  2225  		(*IpsecItfCreate)(nil),
  2226  		(*IpsecItfCreateReply)(nil),
  2227  		(*IpsecItfDelete)(nil),
  2228  		(*IpsecItfDeleteReply)(nil),
  2229  		(*IpsecItfDetails)(nil),
  2230  		(*IpsecItfDump)(nil),
  2231  		(*IpsecSaDetails)(nil),
  2232  		(*IpsecSaDump)(nil),
  2233  		(*IpsecSaV2Details)(nil),
  2234  		(*IpsecSaV2Dump)(nil),
  2235  		(*IpsecSaV3Details)(nil),
  2236  		(*IpsecSaV3Dump)(nil),
  2237  		(*IpsecSadEntryAddDel)(nil),
  2238  		(*IpsecSadEntryAddDelReply)(nil),
  2239  		(*IpsecSadEntryAddDelV2)(nil),
  2240  		(*IpsecSadEntryAddDelV2Reply)(nil),
  2241  		(*IpsecSadEntryAddDelV3)(nil),
  2242  		(*IpsecSadEntryAddDelV3Reply)(nil),
  2243  		(*IpsecSelectBackend)(nil),
  2244  		(*IpsecSelectBackendReply)(nil),
  2245  		(*IpsecSetAsyncMode)(nil),
  2246  		(*IpsecSetAsyncModeReply)(nil),
  2247  		(*IpsecSpdAddDel)(nil),
  2248  		(*IpsecSpdAddDelReply)(nil),
  2249  		(*IpsecSpdDetails)(nil),
  2250  		(*IpsecSpdDump)(nil),
  2251  		(*IpsecSpdEntryAddDel)(nil),
  2252  		(*IpsecSpdEntryAddDelReply)(nil),
  2253  		(*IpsecSpdInterfaceDetails)(nil),
  2254  		(*IpsecSpdInterfaceDump)(nil),
  2255  		(*IpsecSpdsDetails)(nil),
  2256  		(*IpsecSpdsDump)(nil),
  2257  		(*IpsecTunnelProtectDel)(nil),
  2258  		(*IpsecTunnelProtectDelReply)(nil),
  2259  		(*IpsecTunnelProtectDetails)(nil),
  2260  		(*IpsecTunnelProtectDump)(nil),
  2261  		(*IpsecTunnelProtectUpdate)(nil),
  2262  		(*IpsecTunnelProtectUpdateReply)(nil),
  2263  	}
  2264  }