go.ligato.io/vpp-agent/v3@v3.5.0/plugins/vpp/binapi/vpp2202/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  // - 46 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/vpp2202/interface_types"
    17  	ip_types "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2202/ip_types"
    18  	ipsec_types "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2202/ipsec_types"
    19  	tunnel_types "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2202/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.2"
    31  	VersionCrc = 0x6b08e91e
    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  // IpsecSadEntryAdd defines message 'ipsec_sad_entry_add'.
   918  type IpsecSadEntryAdd struct {
   919  	Entry ipsec_types.IpsecSadEntryV3 `binapi:"ipsec_sad_entry_v3,name=entry" json:"entry,omitempty"`
   920  }
   921  
   922  func (m *IpsecSadEntryAdd) Reset()               { *m = IpsecSadEntryAdd{} }
   923  func (*IpsecSadEntryAdd) GetMessageName() string { return "ipsec_sad_entry_add" }
   924  func (*IpsecSadEntryAdd) GetCrcString() string   { return "50229353" }
   925  func (*IpsecSadEntryAdd) GetMessageType() api.MessageType {
   926  	return api.RequestMessage
   927  }
   928  
   929  func (m *IpsecSadEntryAdd) Size() (size int) {
   930  	if m == nil {
   931  		return 0
   932  	}
   933  	size += 4       // m.Entry.SadID
   934  	size += 4       // m.Entry.Spi
   935  	size += 4       // m.Entry.Protocol
   936  	size += 4       // m.Entry.CryptoAlgorithm
   937  	size += 1       // m.Entry.CryptoKey.Length
   938  	size += 1 * 128 // m.Entry.CryptoKey.Data
   939  	size += 4       // m.Entry.IntegrityAlgorithm
   940  	size += 1       // m.Entry.IntegrityKey.Length
   941  	size += 1 * 128 // m.Entry.IntegrityKey.Data
   942  	size += 4       // m.Entry.Flags
   943  	size += 4       // m.Entry.Tunnel.Instance
   944  	size += 1       // m.Entry.Tunnel.Src.Af
   945  	size += 1 * 16  // m.Entry.Tunnel.Src.Un
   946  	size += 1       // m.Entry.Tunnel.Dst.Af
   947  	size += 1 * 16  // m.Entry.Tunnel.Dst.Un
   948  	size += 4       // m.Entry.Tunnel.SwIfIndex
   949  	size += 4       // m.Entry.Tunnel.TableID
   950  	size += 1       // m.Entry.Tunnel.EncapDecapFlags
   951  	size += 1       // m.Entry.Tunnel.Mode
   952  	size += 1       // m.Entry.Tunnel.Flags
   953  	size += 1       // m.Entry.Tunnel.Dscp
   954  	size += 1       // m.Entry.Tunnel.HopLimit
   955  	size += 4       // m.Entry.Salt
   956  	size += 2       // m.Entry.UDPSrcPort
   957  	size += 2       // m.Entry.UDPDstPort
   958  	return size
   959  }
   960  func (m *IpsecSadEntryAdd) Marshal(b []byte) ([]byte, error) {
   961  	if b == nil {
   962  		b = make([]byte, m.Size())
   963  	}
   964  	buf := codec.NewBuffer(b)
   965  	buf.EncodeUint32(m.Entry.SadID)
   966  	buf.EncodeUint32(m.Entry.Spi)
   967  	buf.EncodeUint32(uint32(m.Entry.Protocol))
   968  	buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm))
   969  	buf.EncodeUint8(m.Entry.CryptoKey.Length)
   970  	buf.EncodeBytes(m.Entry.CryptoKey.Data, 128)
   971  	buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm))
   972  	buf.EncodeUint8(m.Entry.IntegrityKey.Length)
   973  	buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128)
   974  	buf.EncodeUint32(uint32(m.Entry.Flags))
   975  	buf.EncodeUint32(m.Entry.Tunnel.Instance)
   976  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Src.Af))
   977  	buf.EncodeBytes(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], 16)
   978  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Dst.Af))
   979  	buf.EncodeBytes(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], 16)
   980  	buf.EncodeUint32(uint32(m.Entry.Tunnel.SwIfIndex))
   981  	buf.EncodeUint32(m.Entry.Tunnel.TableID)
   982  	buf.EncodeUint8(uint8(m.Entry.Tunnel.EncapDecapFlags))
   983  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Mode))
   984  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Flags))
   985  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Dscp))
   986  	buf.EncodeUint8(m.Entry.Tunnel.HopLimit)
   987  	buf.EncodeUint32(m.Entry.Salt)
   988  	buf.EncodeUint16(m.Entry.UDPSrcPort)
   989  	buf.EncodeUint16(m.Entry.UDPDstPort)
   990  	return buf.Bytes(), nil
   991  }
   992  func (m *IpsecSadEntryAdd) Unmarshal(b []byte) error {
   993  	buf := codec.NewBuffer(b)
   994  	m.Entry.SadID = buf.DecodeUint32()
   995  	m.Entry.Spi = buf.DecodeUint32()
   996  	m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
   997  	m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32())
   998  	m.Entry.CryptoKey.Length = buf.DecodeUint8()
   999  	m.Entry.CryptoKey.Data = make([]byte, 128)
  1000  	copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data)))
  1001  	m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32())
  1002  	m.Entry.IntegrityKey.Length = buf.DecodeUint8()
  1003  	m.Entry.IntegrityKey.Data = make([]byte, 128)
  1004  	copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data)))
  1005  	m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32())
  1006  	m.Entry.Tunnel.Instance = buf.DecodeUint32()
  1007  	m.Entry.Tunnel.Src.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1008  	copy(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1009  	m.Entry.Tunnel.Dst.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1010  	copy(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1011  	m.Entry.Tunnel.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1012  	m.Entry.Tunnel.TableID = buf.DecodeUint32()
  1013  	m.Entry.Tunnel.EncapDecapFlags = tunnel_types.TunnelEncapDecapFlags(buf.DecodeUint8())
  1014  	m.Entry.Tunnel.Mode = tunnel_types.TunnelMode(buf.DecodeUint8())
  1015  	m.Entry.Tunnel.Flags = tunnel_types.TunnelFlags(buf.DecodeUint8())
  1016  	m.Entry.Tunnel.Dscp = ip_types.IPDscp(buf.DecodeUint8())
  1017  	m.Entry.Tunnel.HopLimit = buf.DecodeUint8()
  1018  	m.Entry.Salt = buf.DecodeUint32()
  1019  	m.Entry.UDPSrcPort = buf.DecodeUint16()
  1020  	m.Entry.UDPDstPort = buf.DecodeUint16()
  1021  	return nil
  1022  }
  1023  
  1024  // IpsecSadEntryAddDel defines message 'ipsec_sad_entry_add_del'.
  1025  // Deprecated: the message will be removed in the future versions
  1026  type IpsecSadEntryAddDel struct {
  1027  	IsAdd bool                      `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1028  	Entry ipsec_types.IpsecSadEntry `binapi:"ipsec_sad_entry,name=entry" json:"entry,omitempty"`
  1029  }
  1030  
  1031  func (m *IpsecSadEntryAddDel) Reset()               { *m = IpsecSadEntryAddDel{} }
  1032  func (*IpsecSadEntryAddDel) GetMessageName() string { return "ipsec_sad_entry_add_del" }
  1033  func (*IpsecSadEntryAddDel) GetCrcString() string   { return "ab64b5c6" }
  1034  func (*IpsecSadEntryAddDel) GetMessageType() api.MessageType {
  1035  	return api.RequestMessage
  1036  }
  1037  
  1038  func (m *IpsecSadEntryAddDel) Size() (size int) {
  1039  	if m == nil {
  1040  		return 0
  1041  	}
  1042  	size += 1       // m.IsAdd
  1043  	size += 4       // m.Entry.SadID
  1044  	size += 4       // m.Entry.Spi
  1045  	size += 4       // m.Entry.Protocol
  1046  	size += 4       // m.Entry.CryptoAlgorithm
  1047  	size += 1       // m.Entry.CryptoKey.Length
  1048  	size += 1 * 128 // m.Entry.CryptoKey.Data
  1049  	size += 4       // m.Entry.IntegrityAlgorithm
  1050  	size += 1       // m.Entry.IntegrityKey.Length
  1051  	size += 1 * 128 // m.Entry.IntegrityKey.Data
  1052  	size += 4       // m.Entry.Flags
  1053  	size += 1       // m.Entry.TunnelSrc.Af
  1054  	size += 1 * 16  // m.Entry.TunnelSrc.Un
  1055  	size += 1       // m.Entry.TunnelDst.Af
  1056  	size += 1 * 16  // m.Entry.TunnelDst.Un
  1057  	size += 4       // m.Entry.TxTableID
  1058  	size += 4       // m.Entry.Salt
  1059  	size += 2       // m.Entry.UDPSrcPort
  1060  	size += 2       // m.Entry.UDPDstPort
  1061  	return size
  1062  }
  1063  func (m *IpsecSadEntryAddDel) Marshal(b []byte) ([]byte, error) {
  1064  	if b == nil {
  1065  		b = make([]byte, m.Size())
  1066  	}
  1067  	buf := codec.NewBuffer(b)
  1068  	buf.EncodeBool(m.IsAdd)
  1069  	buf.EncodeUint32(m.Entry.SadID)
  1070  	buf.EncodeUint32(m.Entry.Spi)
  1071  	buf.EncodeUint32(uint32(m.Entry.Protocol))
  1072  	buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm))
  1073  	buf.EncodeUint8(m.Entry.CryptoKey.Length)
  1074  	buf.EncodeBytes(m.Entry.CryptoKey.Data, 128)
  1075  	buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm))
  1076  	buf.EncodeUint8(m.Entry.IntegrityKey.Length)
  1077  	buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128)
  1078  	buf.EncodeUint32(uint32(m.Entry.Flags))
  1079  	buf.EncodeUint8(uint8(m.Entry.TunnelSrc.Af))
  1080  	buf.EncodeBytes(m.Entry.TunnelSrc.Un.XXX_UnionData[:], 16)
  1081  	buf.EncodeUint8(uint8(m.Entry.TunnelDst.Af))
  1082  	buf.EncodeBytes(m.Entry.TunnelDst.Un.XXX_UnionData[:], 16)
  1083  	buf.EncodeUint32(m.Entry.TxTableID)
  1084  	buf.EncodeUint32(m.Entry.Salt)
  1085  	buf.EncodeUint16(m.Entry.UDPSrcPort)
  1086  	buf.EncodeUint16(m.Entry.UDPDstPort)
  1087  	return buf.Bytes(), nil
  1088  }
  1089  func (m *IpsecSadEntryAddDel) Unmarshal(b []byte) error {
  1090  	buf := codec.NewBuffer(b)
  1091  	m.IsAdd = buf.DecodeBool()
  1092  	m.Entry.SadID = buf.DecodeUint32()
  1093  	m.Entry.Spi = buf.DecodeUint32()
  1094  	m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
  1095  	m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32())
  1096  	m.Entry.CryptoKey.Length = buf.DecodeUint8()
  1097  	m.Entry.CryptoKey.Data = make([]byte, 128)
  1098  	copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data)))
  1099  	m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32())
  1100  	m.Entry.IntegrityKey.Length = buf.DecodeUint8()
  1101  	m.Entry.IntegrityKey.Data = make([]byte, 128)
  1102  	copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data)))
  1103  	m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32())
  1104  	m.Entry.TunnelSrc.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1105  	copy(m.Entry.TunnelSrc.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1106  	m.Entry.TunnelDst.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1107  	copy(m.Entry.TunnelDst.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1108  	m.Entry.TxTableID = buf.DecodeUint32()
  1109  	m.Entry.Salt = buf.DecodeUint32()
  1110  	m.Entry.UDPSrcPort = buf.DecodeUint16()
  1111  	m.Entry.UDPDstPort = buf.DecodeUint16()
  1112  	return nil
  1113  }
  1114  
  1115  // IpsecSadEntryAddDelReply defines message 'ipsec_sad_entry_add_del_reply'.
  1116  // Deprecated: the message will be removed in the future versions
  1117  type IpsecSadEntryAddDelReply struct {
  1118  	Retval    int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1119  	StatIndex uint32 `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
  1120  }
  1121  
  1122  func (m *IpsecSadEntryAddDelReply) Reset()               { *m = IpsecSadEntryAddDelReply{} }
  1123  func (*IpsecSadEntryAddDelReply) GetMessageName() string { return "ipsec_sad_entry_add_del_reply" }
  1124  func (*IpsecSadEntryAddDelReply) GetCrcString() string   { return "9ffac24b" }
  1125  func (*IpsecSadEntryAddDelReply) GetMessageType() api.MessageType {
  1126  	return api.ReplyMessage
  1127  }
  1128  
  1129  func (m *IpsecSadEntryAddDelReply) Size() (size int) {
  1130  	if m == nil {
  1131  		return 0
  1132  	}
  1133  	size += 4 // m.Retval
  1134  	size += 4 // m.StatIndex
  1135  	return size
  1136  }
  1137  func (m *IpsecSadEntryAddDelReply) Marshal(b []byte) ([]byte, error) {
  1138  	if b == nil {
  1139  		b = make([]byte, m.Size())
  1140  	}
  1141  	buf := codec.NewBuffer(b)
  1142  	buf.EncodeInt32(m.Retval)
  1143  	buf.EncodeUint32(m.StatIndex)
  1144  	return buf.Bytes(), nil
  1145  }
  1146  func (m *IpsecSadEntryAddDelReply) Unmarshal(b []byte) error {
  1147  	buf := codec.NewBuffer(b)
  1148  	m.Retval = buf.DecodeInt32()
  1149  	m.StatIndex = buf.DecodeUint32()
  1150  	return nil
  1151  }
  1152  
  1153  // IpsecSadEntryAddDelV2 defines message 'ipsec_sad_entry_add_del_v2'.
  1154  type IpsecSadEntryAddDelV2 struct {
  1155  	IsAdd bool                        `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1156  	Entry ipsec_types.IpsecSadEntryV2 `binapi:"ipsec_sad_entry_v2,name=entry" json:"entry,omitempty"`
  1157  }
  1158  
  1159  func (m *IpsecSadEntryAddDelV2) Reset()               { *m = IpsecSadEntryAddDelV2{} }
  1160  func (*IpsecSadEntryAddDelV2) GetMessageName() string { return "ipsec_sad_entry_add_del_v2" }
  1161  func (*IpsecSadEntryAddDelV2) GetCrcString() string   { return "aca78b27" }
  1162  func (*IpsecSadEntryAddDelV2) GetMessageType() api.MessageType {
  1163  	return api.RequestMessage
  1164  }
  1165  
  1166  func (m *IpsecSadEntryAddDelV2) Size() (size int) {
  1167  	if m == nil {
  1168  		return 0
  1169  	}
  1170  	size += 1       // m.IsAdd
  1171  	size += 4       // m.Entry.SadID
  1172  	size += 4       // m.Entry.Spi
  1173  	size += 4       // m.Entry.Protocol
  1174  	size += 4       // m.Entry.CryptoAlgorithm
  1175  	size += 1       // m.Entry.CryptoKey.Length
  1176  	size += 1 * 128 // m.Entry.CryptoKey.Data
  1177  	size += 4       // m.Entry.IntegrityAlgorithm
  1178  	size += 1       // m.Entry.IntegrityKey.Length
  1179  	size += 1 * 128 // m.Entry.IntegrityKey.Data
  1180  	size += 4       // m.Entry.Flags
  1181  	size += 1       // m.Entry.TunnelSrc.Af
  1182  	size += 1 * 16  // m.Entry.TunnelSrc.Un
  1183  	size += 1       // m.Entry.TunnelDst.Af
  1184  	size += 1 * 16  // m.Entry.TunnelDst.Un
  1185  	size += 1       // m.Entry.TunnelFlags
  1186  	size += 1       // m.Entry.Dscp
  1187  	size += 4       // m.Entry.TxTableID
  1188  	size += 4       // m.Entry.Salt
  1189  	size += 2       // m.Entry.UDPSrcPort
  1190  	size += 2       // m.Entry.UDPDstPort
  1191  	return size
  1192  }
  1193  func (m *IpsecSadEntryAddDelV2) Marshal(b []byte) ([]byte, error) {
  1194  	if b == nil {
  1195  		b = make([]byte, m.Size())
  1196  	}
  1197  	buf := codec.NewBuffer(b)
  1198  	buf.EncodeBool(m.IsAdd)
  1199  	buf.EncodeUint32(m.Entry.SadID)
  1200  	buf.EncodeUint32(m.Entry.Spi)
  1201  	buf.EncodeUint32(uint32(m.Entry.Protocol))
  1202  	buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm))
  1203  	buf.EncodeUint8(m.Entry.CryptoKey.Length)
  1204  	buf.EncodeBytes(m.Entry.CryptoKey.Data, 128)
  1205  	buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm))
  1206  	buf.EncodeUint8(m.Entry.IntegrityKey.Length)
  1207  	buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128)
  1208  	buf.EncodeUint32(uint32(m.Entry.Flags))
  1209  	buf.EncodeUint8(uint8(m.Entry.TunnelSrc.Af))
  1210  	buf.EncodeBytes(m.Entry.TunnelSrc.Un.XXX_UnionData[:], 16)
  1211  	buf.EncodeUint8(uint8(m.Entry.TunnelDst.Af))
  1212  	buf.EncodeBytes(m.Entry.TunnelDst.Un.XXX_UnionData[:], 16)
  1213  	buf.EncodeUint8(uint8(m.Entry.TunnelFlags))
  1214  	buf.EncodeUint8(uint8(m.Entry.Dscp))
  1215  	buf.EncodeUint32(m.Entry.TxTableID)
  1216  	buf.EncodeUint32(m.Entry.Salt)
  1217  	buf.EncodeUint16(m.Entry.UDPSrcPort)
  1218  	buf.EncodeUint16(m.Entry.UDPDstPort)
  1219  	return buf.Bytes(), nil
  1220  }
  1221  func (m *IpsecSadEntryAddDelV2) Unmarshal(b []byte) error {
  1222  	buf := codec.NewBuffer(b)
  1223  	m.IsAdd = buf.DecodeBool()
  1224  	m.Entry.SadID = buf.DecodeUint32()
  1225  	m.Entry.Spi = buf.DecodeUint32()
  1226  	m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
  1227  	m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32())
  1228  	m.Entry.CryptoKey.Length = buf.DecodeUint8()
  1229  	m.Entry.CryptoKey.Data = make([]byte, 128)
  1230  	copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data)))
  1231  	m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32())
  1232  	m.Entry.IntegrityKey.Length = buf.DecodeUint8()
  1233  	m.Entry.IntegrityKey.Data = make([]byte, 128)
  1234  	copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data)))
  1235  	m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32())
  1236  	m.Entry.TunnelSrc.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1237  	copy(m.Entry.TunnelSrc.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1238  	m.Entry.TunnelDst.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1239  	copy(m.Entry.TunnelDst.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1240  	m.Entry.TunnelFlags = tunnel_types.TunnelEncapDecapFlags(buf.DecodeUint8())
  1241  	m.Entry.Dscp = ip_types.IPDscp(buf.DecodeUint8())
  1242  	m.Entry.TxTableID = buf.DecodeUint32()
  1243  	m.Entry.Salt = buf.DecodeUint32()
  1244  	m.Entry.UDPSrcPort = buf.DecodeUint16()
  1245  	m.Entry.UDPDstPort = buf.DecodeUint16()
  1246  	return nil
  1247  }
  1248  
  1249  // IpsecSadEntryAddDelV2Reply defines message 'ipsec_sad_entry_add_del_v2_reply'.
  1250  type IpsecSadEntryAddDelV2Reply struct {
  1251  	Retval    int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1252  	StatIndex uint32 `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
  1253  }
  1254  
  1255  func (m *IpsecSadEntryAddDelV2Reply) Reset()               { *m = IpsecSadEntryAddDelV2Reply{} }
  1256  func (*IpsecSadEntryAddDelV2Reply) GetMessageName() string { return "ipsec_sad_entry_add_del_v2_reply" }
  1257  func (*IpsecSadEntryAddDelV2Reply) GetCrcString() string   { return "9ffac24b" }
  1258  func (*IpsecSadEntryAddDelV2Reply) GetMessageType() api.MessageType {
  1259  	return api.ReplyMessage
  1260  }
  1261  
  1262  func (m *IpsecSadEntryAddDelV2Reply) Size() (size int) {
  1263  	if m == nil {
  1264  		return 0
  1265  	}
  1266  	size += 4 // m.Retval
  1267  	size += 4 // m.StatIndex
  1268  	return size
  1269  }
  1270  func (m *IpsecSadEntryAddDelV2Reply) Marshal(b []byte) ([]byte, error) {
  1271  	if b == nil {
  1272  		b = make([]byte, m.Size())
  1273  	}
  1274  	buf := codec.NewBuffer(b)
  1275  	buf.EncodeInt32(m.Retval)
  1276  	buf.EncodeUint32(m.StatIndex)
  1277  	return buf.Bytes(), nil
  1278  }
  1279  func (m *IpsecSadEntryAddDelV2Reply) Unmarshal(b []byte) error {
  1280  	buf := codec.NewBuffer(b)
  1281  	m.Retval = buf.DecodeInt32()
  1282  	m.StatIndex = buf.DecodeUint32()
  1283  	return nil
  1284  }
  1285  
  1286  // IpsecSadEntryAddDelV3 defines message 'ipsec_sad_entry_add_del_v3'.
  1287  type IpsecSadEntryAddDelV3 struct {
  1288  	IsAdd bool                        `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1289  	Entry ipsec_types.IpsecSadEntryV3 `binapi:"ipsec_sad_entry_v3,name=entry" json:"entry,omitempty"`
  1290  }
  1291  
  1292  func (m *IpsecSadEntryAddDelV3) Reset()               { *m = IpsecSadEntryAddDelV3{} }
  1293  func (*IpsecSadEntryAddDelV3) GetMessageName() string { return "ipsec_sad_entry_add_del_v3" }
  1294  func (*IpsecSadEntryAddDelV3) GetCrcString() string   { return "c77ebd92" }
  1295  func (*IpsecSadEntryAddDelV3) GetMessageType() api.MessageType {
  1296  	return api.RequestMessage
  1297  }
  1298  
  1299  func (m *IpsecSadEntryAddDelV3) Size() (size int) {
  1300  	if m == nil {
  1301  		return 0
  1302  	}
  1303  	size += 1       // m.IsAdd
  1304  	size += 4       // m.Entry.SadID
  1305  	size += 4       // m.Entry.Spi
  1306  	size += 4       // m.Entry.Protocol
  1307  	size += 4       // m.Entry.CryptoAlgorithm
  1308  	size += 1       // m.Entry.CryptoKey.Length
  1309  	size += 1 * 128 // m.Entry.CryptoKey.Data
  1310  	size += 4       // m.Entry.IntegrityAlgorithm
  1311  	size += 1       // m.Entry.IntegrityKey.Length
  1312  	size += 1 * 128 // m.Entry.IntegrityKey.Data
  1313  	size += 4       // m.Entry.Flags
  1314  	size += 4       // m.Entry.Tunnel.Instance
  1315  	size += 1       // m.Entry.Tunnel.Src.Af
  1316  	size += 1 * 16  // m.Entry.Tunnel.Src.Un
  1317  	size += 1       // m.Entry.Tunnel.Dst.Af
  1318  	size += 1 * 16  // m.Entry.Tunnel.Dst.Un
  1319  	size += 4       // m.Entry.Tunnel.SwIfIndex
  1320  	size += 4       // m.Entry.Tunnel.TableID
  1321  	size += 1       // m.Entry.Tunnel.EncapDecapFlags
  1322  	size += 1       // m.Entry.Tunnel.Mode
  1323  	size += 1       // m.Entry.Tunnel.Flags
  1324  	size += 1       // m.Entry.Tunnel.Dscp
  1325  	size += 1       // m.Entry.Tunnel.HopLimit
  1326  	size += 4       // m.Entry.Salt
  1327  	size += 2       // m.Entry.UDPSrcPort
  1328  	size += 2       // m.Entry.UDPDstPort
  1329  	return size
  1330  }
  1331  func (m *IpsecSadEntryAddDelV3) Marshal(b []byte) ([]byte, error) {
  1332  	if b == nil {
  1333  		b = make([]byte, m.Size())
  1334  	}
  1335  	buf := codec.NewBuffer(b)
  1336  	buf.EncodeBool(m.IsAdd)
  1337  	buf.EncodeUint32(m.Entry.SadID)
  1338  	buf.EncodeUint32(m.Entry.Spi)
  1339  	buf.EncodeUint32(uint32(m.Entry.Protocol))
  1340  	buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm))
  1341  	buf.EncodeUint8(m.Entry.CryptoKey.Length)
  1342  	buf.EncodeBytes(m.Entry.CryptoKey.Data, 128)
  1343  	buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm))
  1344  	buf.EncodeUint8(m.Entry.IntegrityKey.Length)
  1345  	buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128)
  1346  	buf.EncodeUint32(uint32(m.Entry.Flags))
  1347  	buf.EncodeUint32(m.Entry.Tunnel.Instance)
  1348  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Src.Af))
  1349  	buf.EncodeBytes(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], 16)
  1350  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Dst.Af))
  1351  	buf.EncodeBytes(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], 16)
  1352  	buf.EncodeUint32(uint32(m.Entry.Tunnel.SwIfIndex))
  1353  	buf.EncodeUint32(m.Entry.Tunnel.TableID)
  1354  	buf.EncodeUint8(uint8(m.Entry.Tunnel.EncapDecapFlags))
  1355  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Mode))
  1356  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Flags))
  1357  	buf.EncodeUint8(uint8(m.Entry.Tunnel.Dscp))
  1358  	buf.EncodeUint8(m.Entry.Tunnel.HopLimit)
  1359  	buf.EncodeUint32(m.Entry.Salt)
  1360  	buf.EncodeUint16(m.Entry.UDPSrcPort)
  1361  	buf.EncodeUint16(m.Entry.UDPDstPort)
  1362  	return buf.Bytes(), nil
  1363  }
  1364  func (m *IpsecSadEntryAddDelV3) Unmarshal(b []byte) error {
  1365  	buf := codec.NewBuffer(b)
  1366  	m.IsAdd = buf.DecodeBool()
  1367  	m.Entry.SadID = buf.DecodeUint32()
  1368  	m.Entry.Spi = buf.DecodeUint32()
  1369  	m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
  1370  	m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32())
  1371  	m.Entry.CryptoKey.Length = buf.DecodeUint8()
  1372  	m.Entry.CryptoKey.Data = make([]byte, 128)
  1373  	copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data)))
  1374  	m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32())
  1375  	m.Entry.IntegrityKey.Length = buf.DecodeUint8()
  1376  	m.Entry.IntegrityKey.Data = make([]byte, 128)
  1377  	copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data)))
  1378  	m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32())
  1379  	m.Entry.Tunnel.Instance = buf.DecodeUint32()
  1380  	m.Entry.Tunnel.Src.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1381  	copy(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1382  	m.Entry.Tunnel.Dst.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1383  	copy(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1384  	m.Entry.Tunnel.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1385  	m.Entry.Tunnel.TableID = buf.DecodeUint32()
  1386  	m.Entry.Tunnel.EncapDecapFlags = tunnel_types.TunnelEncapDecapFlags(buf.DecodeUint8())
  1387  	m.Entry.Tunnel.Mode = tunnel_types.TunnelMode(buf.DecodeUint8())
  1388  	m.Entry.Tunnel.Flags = tunnel_types.TunnelFlags(buf.DecodeUint8())
  1389  	m.Entry.Tunnel.Dscp = ip_types.IPDscp(buf.DecodeUint8())
  1390  	m.Entry.Tunnel.HopLimit = buf.DecodeUint8()
  1391  	m.Entry.Salt = buf.DecodeUint32()
  1392  	m.Entry.UDPSrcPort = buf.DecodeUint16()
  1393  	m.Entry.UDPDstPort = buf.DecodeUint16()
  1394  	return nil
  1395  }
  1396  
  1397  // IpsecSadEntryAddDelV3Reply defines message 'ipsec_sad_entry_add_del_v3_reply'.
  1398  type IpsecSadEntryAddDelV3Reply struct {
  1399  	Retval    int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1400  	StatIndex uint32 `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
  1401  }
  1402  
  1403  func (m *IpsecSadEntryAddDelV3Reply) Reset()               { *m = IpsecSadEntryAddDelV3Reply{} }
  1404  func (*IpsecSadEntryAddDelV3Reply) GetMessageName() string { return "ipsec_sad_entry_add_del_v3_reply" }
  1405  func (*IpsecSadEntryAddDelV3Reply) GetCrcString() string   { return "9ffac24b" }
  1406  func (*IpsecSadEntryAddDelV3Reply) GetMessageType() api.MessageType {
  1407  	return api.ReplyMessage
  1408  }
  1409  
  1410  func (m *IpsecSadEntryAddDelV3Reply) Size() (size int) {
  1411  	if m == nil {
  1412  		return 0
  1413  	}
  1414  	size += 4 // m.Retval
  1415  	size += 4 // m.StatIndex
  1416  	return size
  1417  }
  1418  func (m *IpsecSadEntryAddDelV3Reply) Marshal(b []byte) ([]byte, error) {
  1419  	if b == nil {
  1420  		b = make([]byte, m.Size())
  1421  	}
  1422  	buf := codec.NewBuffer(b)
  1423  	buf.EncodeInt32(m.Retval)
  1424  	buf.EncodeUint32(m.StatIndex)
  1425  	return buf.Bytes(), nil
  1426  }
  1427  func (m *IpsecSadEntryAddDelV3Reply) Unmarshal(b []byte) error {
  1428  	buf := codec.NewBuffer(b)
  1429  	m.Retval = buf.DecodeInt32()
  1430  	m.StatIndex = buf.DecodeUint32()
  1431  	return nil
  1432  }
  1433  
  1434  // IpsecSadEntryAddReply defines message 'ipsec_sad_entry_add_reply'.
  1435  type IpsecSadEntryAddReply struct {
  1436  	Retval    int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1437  	StatIndex uint32 `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
  1438  }
  1439  
  1440  func (m *IpsecSadEntryAddReply) Reset()               { *m = IpsecSadEntryAddReply{} }
  1441  func (*IpsecSadEntryAddReply) GetMessageName() string { return "ipsec_sad_entry_add_reply" }
  1442  func (*IpsecSadEntryAddReply) GetCrcString() string   { return "9ffac24b" }
  1443  func (*IpsecSadEntryAddReply) GetMessageType() api.MessageType {
  1444  	return api.ReplyMessage
  1445  }
  1446  
  1447  func (m *IpsecSadEntryAddReply) Size() (size int) {
  1448  	if m == nil {
  1449  		return 0
  1450  	}
  1451  	size += 4 // m.Retval
  1452  	size += 4 // m.StatIndex
  1453  	return size
  1454  }
  1455  func (m *IpsecSadEntryAddReply) Marshal(b []byte) ([]byte, error) {
  1456  	if b == nil {
  1457  		b = make([]byte, m.Size())
  1458  	}
  1459  	buf := codec.NewBuffer(b)
  1460  	buf.EncodeInt32(m.Retval)
  1461  	buf.EncodeUint32(m.StatIndex)
  1462  	return buf.Bytes(), nil
  1463  }
  1464  func (m *IpsecSadEntryAddReply) Unmarshal(b []byte) error {
  1465  	buf := codec.NewBuffer(b)
  1466  	m.Retval = buf.DecodeInt32()
  1467  	m.StatIndex = buf.DecodeUint32()
  1468  	return nil
  1469  }
  1470  
  1471  // IpsecSadEntryDel defines message 'ipsec_sad_entry_del'.
  1472  type IpsecSadEntryDel struct {
  1473  	ID uint32 `binapi:"u32,name=id" json:"id,omitempty"`
  1474  }
  1475  
  1476  func (m *IpsecSadEntryDel) Reset()               { *m = IpsecSadEntryDel{} }
  1477  func (*IpsecSadEntryDel) GetMessageName() string { return "ipsec_sad_entry_del" }
  1478  func (*IpsecSadEntryDel) GetCrcString() string   { return "3a91bde5" }
  1479  func (*IpsecSadEntryDel) GetMessageType() api.MessageType {
  1480  	return api.RequestMessage
  1481  }
  1482  
  1483  func (m *IpsecSadEntryDel) Size() (size int) {
  1484  	if m == nil {
  1485  		return 0
  1486  	}
  1487  	size += 4 // m.ID
  1488  	return size
  1489  }
  1490  func (m *IpsecSadEntryDel) Marshal(b []byte) ([]byte, error) {
  1491  	if b == nil {
  1492  		b = make([]byte, m.Size())
  1493  	}
  1494  	buf := codec.NewBuffer(b)
  1495  	buf.EncodeUint32(m.ID)
  1496  	return buf.Bytes(), nil
  1497  }
  1498  func (m *IpsecSadEntryDel) Unmarshal(b []byte) error {
  1499  	buf := codec.NewBuffer(b)
  1500  	m.ID = buf.DecodeUint32()
  1501  	return nil
  1502  }
  1503  
  1504  // IpsecSadEntryDelReply defines message 'ipsec_sad_entry_del_reply'.
  1505  type IpsecSadEntryDelReply struct {
  1506  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1507  }
  1508  
  1509  func (m *IpsecSadEntryDelReply) Reset()               { *m = IpsecSadEntryDelReply{} }
  1510  func (*IpsecSadEntryDelReply) GetMessageName() string { return "ipsec_sad_entry_del_reply" }
  1511  func (*IpsecSadEntryDelReply) GetCrcString() string   { return "e8d4e804" }
  1512  func (*IpsecSadEntryDelReply) GetMessageType() api.MessageType {
  1513  	return api.ReplyMessage
  1514  }
  1515  
  1516  func (m *IpsecSadEntryDelReply) Size() (size int) {
  1517  	if m == nil {
  1518  		return 0
  1519  	}
  1520  	size += 4 // m.Retval
  1521  	return size
  1522  }
  1523  func (m *IpsecSadEntryDelReply) Marshal(b []byte) ([]byte, error) {
  1524  	if b == nil {
  1525  		b = make([]byte, m.Size())
  1526  	}
  1527  	buf := codec.NewBuffer(b)
  1528  	buf.EncodeInt32(m.Retval)
  1529  	return buf.Bytes(), nil
  1530  }
  1531  func (m *IpsecSadEntryDelReply) Unmarshal(b []byte) error {
  1532  	buf := codec.NewBuffer(b)
  1533  	m.Retval = buf.DecodeInt32()
  1534  	return nil
  1535  }
  1536  
  1537  // IpsecSelectBackend defines message 'ipsec_select_backend'.
  1538  type IpsecSelectBackend struct {
  1539  	Protocol ipsec_types.IpsecProto `binapi:"ipsec_proto,name=protocol" json:"protocol,omitempty"`
  1540  	Index    uint8                  `binapi:"u8,name=index" json:"index,omitempty"`
  1541  }
  1542  
  1543  func (m *IpsecSelectBackend) Reset()               { *m = IpsecSelectBackend{} }
  1544  func (*IpsecSelectBackend) GetMessageName() string { return "ipsec_select_backend" }
  1545  func (*IpsecSelectBackend) GetCrcString() string   { return "5bcfd3b7" }
  1546  func (*IpsecSelectBackend) GetMessageType() api.MessageType {
  1547  	return api.RequestMessage
  1548  }
  1549  
  1550  func (m *IpsecSelectBackend) Size() (size int) {
  1551  	if m == nil {
  1552  		return 0
  1553  	}
  1554  	size += 4 // m.Protocol
  1555  	size += 1 // m.Index
  1556  	return size
  1557  }
  1558  func (m *IpsecSelectBackend) Marshal(b []byte) ([]byte, error) {
  1559  	if b == nil {
  1560  		b = make([]byte, m.Size())
  1561  	}
  1562  	buf := codec.NewBuffer(b)
  1563  	buf.EncodeUint32(uint32(m.Protocol))
  1564  	buf.EncodeUint8(m.Index)
  1565  	return buf.Bytes(), nil
  1566  }
  1567  func (m *IpsecSelectBackend) Unmarshal(b []byte) error {
  1568  	buf := codec.NewBuffer(b)
  1569  	m.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32())
  1570  	m.Index = buf.DecodeUint8()
  1571  	return nil
  1572  }
  1573  
  1574  // IpsecSelectBackendReply defines message 'ipsec_select_backend_reply'.
  1575  type IpsecSelectBackendReply struct {
  1576  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1577  }
  1578  
  1579  func (m *IpsecSelectBackendReply) Reset()               { *m = IpsecSelectBackendReply{} }
  1580  func (*IpsecSelectBackendReply) GetMessageName() string { return "ipsec_select_backend_reply" }
  1581  func (*IpsecSelectBackendReply) GetCrcString() string   { return "e8d4e804" }
  1582  func (*IpsecSelectBackendReply) GetMessageType() api.MessageType {
  1583  	return api.ReplyMessage
  1584  }
  1585  
  1586  func (m *IpsecSelectBackendReply) Size() (size int) {
  1587  	if m == nil {
  1588  		return 0
  1589  	}
  1590  	size += 4 // m.Retval
  1591  	return size
  1592  }
  1593  func (m *IpsecSelectBackendReply) Marshal(b []byte) ([]byte, error) {
  1594  	if b == nil {
  1595  		b = make([]byte, m.Size())
  1596  	}
  1597  	buf := codec.NewBuffer(b)
  1598  	buf.EncodeInt32(m.Retval)
  1599  	return buf.Bytes(), nil
  1600  }
  1601  func (m *IpsecSelectBackendReply) Unmarshal(b []byte) error {
  1602  	buf := codec.NewBuffer(b)
  1603  	m.Retval = buf.DecodeInt32()
  1604  	return nil
  1605  }
  1606  
  1607  // IpsecSetAsyncMode defines message 'ipsec_set_async_mode'.
  1608  type IpsecSetAsyncMode struct {
  1609  	AsyncEnable bool `binapi:"bool,name=async_enable" json:"async_enable,omitempty"`
  1610  }
  1611  
  1612  func (m *IpsecSetAsyncMode) Reset()               { *m = IpsecSetAsyncMode{} }
  1613  func (*IpsecSetAsyncMode) GetMessageName() string { return "ipsec_set_async_mode" }
  1614  func (*IpsecSetAsyncMode) GetCrcString() string   { return "a6465f7c" }
  1615  func (*IpsecSetAsyncMode) GetMessageType() api.MessageType {
  1616  	return api.RequestMessage
  1617  }
  1618  
  1619  func (m *IpsecSetAsyncMode) Size() (size int) {
  1620  	if m == nil {
  1621  		return 0
  1622  	}
  1623  	size += 1 // m.AsyncEnable
  1624  	return size
  1625  }
  1626  func (m *IpsecSetAsyncMode) Marshal(b []byte) ([]byte, error) {
  1627  	if b == nil {
  1628  		b = make([]byte, m.Size())
  1629  	}
  1630  	buf := codec.NewBuffer(b)
  1631  	buf.EncodeBool(m.AsyncEnable)
  1632  	return buf.Bytes(), nil
  1633  }
  1634  func (m *IpsecSetAsyncMode) Unmarshal(b []byte) error {
  1635  	buf := codec.NewBuffer(b)
  1636  	m.AsyncEnable = buf.DecodeBool()
  1637  	return nil
  1638  }
  1639  
  1640  // IpsecSetAsyncModeReply defines message 'ipsec_set_async_mode_reply'.
  1641  type IpsecSetAsyncModeReply struct {
  1642  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1643  }
  1644  
  1645  func (m *IpsecSetAsyncModeReply) Reset()               { *m = IpsecSetAsyncModeReply{} }
  1646  func (*IpsecSetAsyncModeReply) GetMessageName() string { return "ipsec_set_async_mode_reply" }
  1647  func (*IpsecSetAsyncModeReply) GetCrcString() string   { return "e8d4e804" }
  1648  func (*IpsecSetAsyncModeReply) GetMessageType() api.MessageType {
  1649  	return api.ReplyMessage
  1650  }
  1651  
  1652  func (m *IpsecSetAsyncModeReply) Size() (size int) {
  1653  	if m == nil {
  1654  		return 0
  1655  	}
  1656  	size += 4 // m.Retval
  1657  	return size
  1658  }
  1659  func (m *IpsecSetAsyncModeReply) Marshal(b []byte) ([]byte, error) {
  1660  	if b == nil {
  1661  		b = make([]byte, m.Size())
  1662  	}
  1663  	buf := codec.NewBuffer(b)
  1664  	buf.EncodeInt32(m.Retval)
  1665  	return buf.Bytes(), nil
  1666  }
  1667  func (m *IpsecSetAsyncModeReply) Unmarshal(b []byte) error {
  1668  	buf := codec.NewBuffer(b)
  1669  	m.Retval = buf.DecodeInt32()
  1670  	return nil
  1671  }
  1672  
  1673  // IpsecSpdAddDel defines message 'ipsec_spd_add_del'.
  1674  type IpsecSpdAddDel struct {
  1675  	IsAdd bool   `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1676  	SpdID uint32 `binapi:"u32,name=spd_id" json:"spd_id,omitempty"`
  1677  }
  1678  
  1679  func (m *IpsecSpdAddDel) Reset()               { *m = IpsecSpdAddDel{} }
  1680  func (*IpsecSpdAddDel) GetMessageName() string { return "ipsec_spd_add_del" }
  1681  func (*IpsecSpdAddDel) GetCrcString() string   { return "20e89a95" }
  1682  func (*IpsecSpdAddDel) GetMessageType() api.MessageType {
  1683  	return api.RequestMessage
  1684  }
  1685  
  1686  func (m *IpsecSpdAddDel) Size() (size int) {
  1687  	if m == nil {
  1688  		return 0
  1689  	}
  1690  	size += 1 // m.IsAdd
  1691  	size += 4 // m.SpdID
  1692  	return size
  1693  }
  1694  func (m *IpsecSpdAddDel) Marshal(b []byte) ([]byte, error) {
  1695  	if b == nil {
  1696  		b = make([]byte, m.Size())
  1697  	}
  1698  	buf := codec.NewBuffer(b)
  1699  	buf.EncodeBool(m.IsAdd)
  1700  	buf.EncodeUint32(m.SpdID)
  1701  	return buf.Bytes(), nil
  1702  }
  1703  func (m *IpsecSpdAddDel) Unmarshal(b []byte) error {
  1704  	buf := codec.NewBuffer(b)
  1705  	m.IsAdd = buf.DecodeBool()
  1706  	m.SpdID = buf.DecodeUint32()
  1707  	return nil
  1708  }
  1709  
  1710  // IpsecSpdAddDelReply defines message 'ipsec_spd_add_del_reply'.
  1711  type IpsecSpdAddDelReply struct {
  1712  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1713  }
  1714  
  1715  func (m *IpsecSpdAddDelReply) Reset()               { *m = IpsecSpdAddDelReply{} }
  1716  func (*IpsecSpdAddDelReply) GetMessageName() string { return "ipsec_spd_add_del_reply" }
  1717  func (*IpsecSpdAddDelReply) GetCrcString() string   { return "e8d4e804" }
  1718  func (*IpsecSpdAddDelReply) GetMessageType() api.MessageType {
  1719  	return api.ReplyMessage
  1720  }
  1721  
  1722  func (m *IpsecSpdAddDelReply) Size() (size int) {
  1723  	if m == nil {
  1724  		return 0
  1725  	}
  1726  	size += 4 // m.Retval
  1727  	return size
  1728  }
  1729  func (m *IpsecSpdAddDelReply) Marshal(b []byte) ([]byte, error) {
  1730  	if b == nil {
  1731  		b = make([]byte, m.Size())
  1732  	}
  1733  	buf := codec.NewBuffer(b)
  1734  	buf.EncodeInt32(m.Retval)
  1735  	return buf.Bytes(), nil
  1736  }
  1737  func (m *IpsecSpdAddDelReply) Unmarshal(b []byte) error {
  1738  	buf := codec.NewBuffer(b)
  1739  	m.Retval = buf.DecodeInt32()
  1740  	return nil
  1741  }
  1742  
  1743  // IpsecSpdDetails defines message 'ipsec_spd_details'.
  1744  type IpsecSpdDetails struct {
  1745  	Entry IpsecSpdEntry `binapi:"ipsec_spd_entry,name=entry" json:"entry,omitempty"`
  1746  }
  1747  
  1748  func (m *IpsecSpdDetails) Reset()               { *m = IpsecSpdDetails{} }
  1749  func (*IpsecSpdDetails) GetMessageName() string { return "ipsec_spd_details" }
  1750  func (*IpsecSpdDetails) GetCrcString() string   { return "5813d7a2" }
  1751  func (*IpsecSpdDetails) GetMessageType() api.MessageType {
  1752  	return api.ReplyMessage
  1753  }
  1754  
  1755  func (m *IpsecSpdDetails) Size() (size int) {
  1756  	if m == nil {
  1757  		return 0
  1758  	}
  1759  	size += 4      // m.Entry.SpdID
  1760  	size += 4      // m.Entry.Priority
  1761  	size += 1      // m.Entry.IsOutbound
  1762  	size += 4      // m.Entry.SaID
  1763  	size += 4      // m.Entry.Policy
  1764  	size += 1      // m.Entry.Protocol
  1765  	size += 1      // m.Entry.RemoteAddressStart.Af
  1766  	size += 1 * 16 // m.Entry.RemoteAddressStart.Un
  1767  	size += 1      // m.Entry.RemoteAddressStop.Af
  1768  	size += 1 * 16 // m.Entry.RemoteAddressStop.Un
  1769  	size += 1      // m.Entry.LocalAddressStart.Af
  1770  	size += 1 * 16 // m.Entry.LocalAddressStart.Un
  1771  	size += 1      // m.Entry.LocalAddressStop.Af
  1772  	size += 1 * 16 // m.Entry.LocalAddressStop.Un
  1773  	size += 2      // m.Entry.RemotePortStart
  1774  	size += 2      // m.Entry.RemotePortStop
  1775  	size += 2      // m.Entry.LocalPortStart
  1776  	size += 2      // m.Entry.LocalPortStop
  1777  	return size
  1778  }
  1779  func (m *IpsecSpdDetails) Marshal(b []byte) ([]byte, error) {
  1780  	if b == nil {
  1781  		b = make([]byte, m.Size())
  1782  	}
  1783  	buf := codec.NewBuffer(b)
  1784  	buf.EncodeUint32(m.Entry.SpdID)
  1785  	buf.EncodeInt32(m.Entry.Priority)
  1786  	buf.EncodeBool(m.Entry.IsOutbound)
  1787  	buf.EncodeUint32(m.Entry.SaID)
  1788  	buf.EncodeUint32(uint32(m.Entry.Policy))
  1789  	buf.EncodeUint8(m.Entry.Protocol)
  1790  	buf.EncodeUint8(uint8(m.Entry.RemoteAddressStart.Af))
  1791  	buf.EncodeBytes(m.Entry.RemoteAddressStart.Un.XXX_UnionData[:], 16)
  1792  	buf.EncodeUint8(uint8(m.Entry.RemoteAddressStop.Af))
  1793  	buf.EncodeBytes(m.Entry.RemoteAddressStop.Un.XXX_UnionData[:], 16)
  1794  	buf.EncodeUint8(uint8(m.Entry.LocalAddressStart.Af))
  1795  	buf.EncodeBytes(m.Entry.LocalAddressStart.Un.XXX_UnionData[:], 16)
  1796  	buf.EncodeUint8(uint8(m.Entry.LocalAddressStop.Af))
  1797  	buf.EncodeBytes(m.Entry.LocalAddressStop.Un.XXX_UnionData[:], 16)
  1798  	buf.EncodeUint16(m.Entry.RemotePortStart)
  1799  	buf.EncodeUint16(m.Entry.RemotePortStop)
  1800  	buf.EncodeUint16(m.Entry.LocalPortStart)
  1801  	buf.EncodeUint16(m.Entry.LocalPortStop)
  1802  	return buf.Bytes(), nil
  1803  }
  1804  func (m *IpsecSpdDetails) Unmarshal(b []byte) error {
  1805  	buf := codec.NewBuffer(b)
  1806  	m.Entry.SpdID = buf.DecodeUint32()
  1807  	m.Entry.Priority = buf.DecodeInt32()
  1808  	m.Entry.IsOutbound = buf.DecodeBool()
  1809  	m.Entry.SaID = buf.DecodeUint32()
  1810  	m.Entry.Policy = IpsecSpdAction(buf.DecodeUint32())
  1811  	m.Entry.Protocol = buf.DecodeUint8()
  1812  	m.Entry.RemoteAddressStart.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1813  	copy(m.Entry.RemoteAddressStart.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1814  	m.Entry.RemoteAddressStop.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1815  	copy(m.Entry.RemoteAddressStop.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1816  	m.Entry.LocalAddressStart.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1817  	copy(m.Entry.LocalAddressStart.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1818  	m.Entry.LocalAddressStop.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1819  	copy(m.Entry.LocalAddressStop.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1820  	m.Entry.RemotePortStart = buf.DecodeUint16()
  1821  	m.Entry.RemotePortStop = buf.DecodeUint16()
  1822  	m.Entry.LocalPortStart = buf.DecodeUint16()
  1823  	m.Entry.LocalPortStop = buf.DecodeUint16()
  1824  	return nil
  1825  }
  1826  
  1827  // IpsecSpdDump defines message 'ipsec_spd_dump'.
  1828  type IpsecSpdDump struct {
  1829  	SpdID uint32 `binapi:"u32,name=spd_id" json:"spd_id,omitempty"`
  1830  	SaID  uint32 `binapi:"u32,name=sa_id" json:"sa_id,omitempty"`
  1831  }
  1832  
  1833  func (m *IpsecSpdDump) Reset()               { *m = IpsecSpdDump{} }
  1834  func (*IpsecSpdDump) GetMessageName() string { return "ipsec_spd_dump" }
  1835  func (*IpsecSpdDump) GetCrcString() string   { return "afefbf7d" }
  1836  func (*IpsecSpdDump) GetMessageType() api.MessageType {
  1837  	return api.RequestMessage
  1838  }
  1839  
  1840  func (m *IpsecSpdDump) Size() (size int) {
  1841  	if m == nil {
  1842  		return 0
  1843  	}
  1844  	size += 4 // m.SpdID
  1845  	size += 4 // m.SaID
  1846  	return size
  1847  }
  1848  func (m *IpsecSpdDump) Marshal(b []byte) ([]byte, error) {
  1849  	if b == nil {
  1850  		b = make([]byte, m.Size())
  1851  	}
  1852  	buf := codec.NewBuffer(b)
  1853  	buf.EncodeUint32(m.SpdID)
  1854  	buf.EncodeUint32(m.SaID)
  1855  	return buf.Bytes(), nil
  1856  }
  1857  func (m *IpsecSpdDump) Unmarshal(b []byte) error {
  1858  	buf := codec.NewBuffer(b)
  1859  	m.SpdID = buf.DecodeUint32()
  1860  	m.SaID = buf.DecodeUint32()
  1861  	return nil
  1862  }
  1863  
  1864  // IpsecSpdEntryAddDel defines message 'ipsec_spd_entry_add_del'.
  1865  type IpsecSpdEntryAddDel struct {
  1866  	IsAdd bool          `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1867  	Entry IpsecSpdEntry `binapi:"ipsec_spd_entry,name=entry" json:"entry,omitempty"`
  1868  }
  1869  
  1870  func (m *IpsecSpdEntryAddDel) Reset()               { *m = IpsecSpdEntryAddDel{} }
  1871  func (*IpsecSpdEntryAddDel) GetMessageName() string { return "ipsec_spd_entry_add_del" }
  1872  func (*IpsecSpdEntryAddDel) GetCrcString() string   { return "338b7411" }
  1873  func (*IpsecSpdEntryAddDel) GetMessageType() api.MessageType {
  1874  	return api.RequestMessage
  1875  }
  1876  
  1877  func (m *IpsecSpdEntryAddDel) Size() (size int) {
  1878  	if m == nil {
  1879  		return 0
  1880  	}
  1881  	size += 1      // m.IsAdd
  1882  	size += 4      // m.Entry.SpdID
  1883  	size += 4      // m.Entry.Priority
  1884  	size += 1      // m.Entry.IsOutbound
  1885  	size += 4      // m.Entry.SaID
  1886  	size += 4      // m.Entry.Policy
  1887  	size += 1      // m.Entry.Protocol
  1888  	size += 1      // m.Entry.RemoteAddressStart.Af
  1889  	size += 1 * 16 // m.Entry.RemoteAddressStart.Un
  1890  	size += 1      // m.Entry.RemoteAddressStop.Af
  1891  	size += 1 * 16 // m.Entry.RemoteAddressStop.Un
  1892  	size += 1      // m.Entry.LocalAddressStart.Af
  1893  	size += 1 * 16 // m.Entry.LocalAddressStart.Un
  1894  	size += 1      // m.Entry.LocalAddressStop.Af
  1895  	size += 1 * 16 // m.Entry.LocalAddressStop.Un
  1896  	size += 2      // m.Entry.RemotePortStart
  1897  	size += 2      // m.Entry.RemotePortStop
  1898  	size += 2      // m.Entry.LocalPortStart
  1899  	size += 2      // m.Entry.LocalPortStop
  1900  	return size
  1901  }
  1902  func (m *IpsecSpdEntryAddDel) Marshal(b []byte) ([]byte, error) {
  1903  	if b == nil {
  1904  		b = make([]byte, m.Size())
  1905  	}
  1906  	buf := codec.NewBuffer(b)
  1907  	buf.EncodeBool(m.IsAdd)
  1908  	buf.EncodeUint32(m.Entry.SpdID)
  1909  	buf.EncodeInt32(m.Entry.Priority)
  1910  	buf.EncodeBool(m.Entry.IsOutbound)
  1911  	buf.EncodeUint32(m.Entry.SaID)
  1912  	buf.EncodeUint32(uint32(m.Entry.Policy))
  1913  	buf.EncodeUint8(m.Entry.Protocol)
  1914  	buf.EncodeUint8(uint8(m.Entry.RemoteAddressStart.Af))
  1915  	buf.EncodeBytes(m.Entry.RemoteAddressStart.Un.XXX_UnionData[:], 16)
  1916  	buf.EncodeUint8(uint8(m.Entry.RemoteAddressStop.Af))
  1917  	buf.EncodeBytes(m.Entry.RemoteAddressStop.Un.XXX_UnionData[:], 16)
  1918  	buf.EncodeUint8(uint8(m.Entry.LocalAddressStart.Af))
  1919  	buf.EncodeBytes(m.Entry.LocalAddressStart.Un.XXX_UnionData[:], 16)
  1920  	buf.EncodeUint8(uint8(m.Entry.LocalAddressStop.Af))
  1921  	buf.EncodeBytes(m.Entry.LocalAddressStop.Un.XXX_UnionData[:], 16)
  1922  	buf.EncodeUint16(m.Entry.RemotePortStart)
  1923  	buf.EncodeUint16(m.Entry.RemotePortStop)
  1924  	buf.EncodeUint16(m.Entry.LocalPortStart)
  1925  	buf.EncodeUint16(m.Entry.LocalPortStop)
  1926  	return buf.Bytes(), nil
  1927  }
  1928  func (m *IpsecSpdEntryAddDel) Unmarshal(b []byte) error {
  1929  	buf := codec.NewBuffer(b)
  1930  	m.IsAdd = buf.DecodeBool()
  1931  	m.Entry.SpdID = buf.DecodeUint32()
  1932  	m.Entry.Priority = buf.DecodeInt32()
  1933  	m.Entry.IsOutbound = buf.DecodeBool()
  1934  	m.Entry.SaID = buf.DecodeUint32()
  1935  	m.Entry.Policy = IpsecSpdAction(buf.DecodeUint32())
  1936  	m.Entry.Protocol = buf.DecodeUint8()
  1937  	m.Entry.RemoteAddressStart.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1938  	copy(m.Entry.RemoteAddressStart.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1939  	m.Entry.RemoteAddressStop.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1940  	copy(m.Entry.RemoteAddressStop.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1941  	m.Entry.LocalAddressStart.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1942  	copy(m.Entry.LocalAddressStart.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1943  	m.Entry.LocalAddressStop.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1944  	copy(m.Entry.LocalAddressStop.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1945  	m.Entry.RemotePortStart = buf.DecodeUint16()
  1946  	m.Entry.RemotePortStop = buf.DecodeUint16()
  1947  	m.Entry.LocalPortStart = buf.DecodeUint16()
  1948  	m.Entry.LocalPortStop = buf.DecodeUint16()
  1949  	return nil
  1950  }
  1951  
  1952  // IpsecSpdEntryAddDelReply defines message 'ipsec_spd_entry_add_del_reply'.
  1953  type IpsecSpdEntryAddDelReply struct {
  1954  	Retval    int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1955  	StatIndex uint32 `binapi:"u32,name=stat_index" json:"stat_index,omitempty"`
  1956  }
  1957  
  1958  func (m *IpsecSpdEntryAddDelReply) Reset()               { *m = IpsecSpdEntryAddDelReply{} }
  1959  func (*IpsecSpdEntryAddDelReply) GetMessageName() string { return "ipsec_spd_entry_add_del_reply" }
  1960  func (*IpsecSpdEntryAddDelReply) GetCrcString() string   { return "9ffac24b" }
  1961  func (*IpsecSpdEntryAddDelReply) GetMessageType() api.MessageType {
  1962  	return api.ReplyMessage
  1963  }
  1964  
  1965  func (m *IpsecSpdEntryAddDelReply) Size() (size int) {
  1966  	if m == nil {
  1967  		return 0
  1968  	}
  1969  	size += 4 // m.Retval
  1970  	size += 4 // m.StatIndex
  1971  	return size
  1972  }
  1973  func (m *IpsecSpdEntryAddDelReply) Marshal(b []byte) ([]byte, error) {
  1974  	if b == nil {
  1975  		b = make([]byte, m.Size())
  1976  	}
  1977  	buf := codec.NewBuffer(b)
  1978  	buf.EncodeInt32(m.Retval)
  1979  	buf.EncodeUint32(m.StatIndex)
  1980  	return buf.Bytes(), nil
  1981  }
  1982  func (m *IpsecSpdEntryAddDelReply) Unmarshal(b []byte) error {
  1983  	buf := codec.NewBuffer(b)
  1984  	m.Retval = buf.DecodeInt32()
  1985  	m.StatIndex = buf.DecodeUint32()
  1986  	return nil
  1987  }
  1988  
  1989  // IpsecSpdInterfaceDetails defines message 'ipsec_spd_interface_details'.
  1990  type IpsecSpdInterfaceDetails struct {
  1991  	SpdIndex  uint32                         `binapi:"u32,name=spd_index" json:"spd_index,omitempty"`
  1992  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  1993  }
  1994  
  1995  func (m *IpsecSpdInterfaceDetails) Reset()               { *m = IpsecSpdInterfaceDetails{} }
  1996  func (*IpsecSpdInterfaceDetails) GetMessageName() string { return "ipsec_spd_interface_details" }
  1997  func (*IpsecSpdInterfaceDetails) GetCrcString() string   { return "7a0bcf3e" }
  1998  func (*IpsecSpdInterfaceDetails) GetMessageType() api.MessageType {
  1999  	return api.ReplyMessage
  2000  }
  2001  
  2002  func (m *IpsecSpdInterfaceDetails) Size() (size int) {
  2003  	if m == nil {
  2004  		return 0
  2005  	}
  2006  	size += 4 // m.SpdIndex
  2007  	size += 4 // m.SwIfIndex
  2008  	return size
  2009  }
  2010  func (m *IpsecSpdInterfaceDetails) Marshal(b []byte) ([]byte, error) {
  2011  	if b == nil {
  2012  		b = make([]byte, m.Size())
  2013  	}
  2014  	buf := codec.NewBuffer(b)
  2015  	buf.EncodeUint32(m.SpdIndex)
  2016  	buf.EncodeUint32(uint32(m.SwIfIndex))
  2017  	return buf.Bytes(), nil
  2018  }
  2019  func (m *IpsecSpdInterfaceDetails) Unmarshal(b []byte) error {
  2020  	buf := codec.NewBuffer(b)
  2021  	m.SpdIndex = buf.DecodeUint32()
  2022  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  2023  	return nil
  2024  }
  2025  
  2026  // IpsecSpdInterfaceDump defines message 'ipsec_spd_interface_dump'.
  2027  type IpsecSpdInterfaceDump struct {
  2028  	SpdIndex      uint32 `binapi:"u32,name=spd_index" json:"spd_index,omitempty"`
  2029  	SpdIndexValid uint8  `binapi:"u8,name=spd_index_valid" json:"spd_index_valid,omitempty"`
  2030  }
  2031  
  2032  func (m *IpsecSpdInterfaceDump) Reset()               { *m = IpsecSpdInterfaceDump{} }
  2033  func (*IpsecSpdInterfaceDump) GetMessageName() string { return "ipsec_spd_interface_dump" }
  2034  func (*IpsecSpdInterfaceDump) GetCrcString() string   { return "8971de19" }
  2035  func (*IpsecSpdInterfaceDump) GetMessageType() api.MessageType {
  2036  	return api.RequestMessage
  2037  }
  2038  
  2039  func (m *IpsecSpdInterfaceDump) Size() (size int) {
  2040  	if m == nil {
  2041  		return 0
  2042  	}
  2043  	size += 4 // m.SpdIndex
  2044  	size += 1 // m.SpdIndexValid
  2045  	return size
  2046  }
  2047  func (m *IpsecSpdInterfaceDump) Marshal(b []byte) ([]byte, error) {
  2048  	if b == nil {
  2049  		b = make([]byte, m.Size())
  2050  	}
  2051  	buf := codec.NewBuffer(b)
  2052  	buf.EncodeUint32(m.SpdIndex)
  2053  	buf.EncodeUint8(m.SpdIndexValid)
  2054  	return buf.Bytes(), nil
  2055  }
  2056  func (m *IpsecSpdInterfaceDump) Unmarshal(b []byte) error {
  2057  	buf := codec.NewBuffer(b)
  2058  	m.SpdIndex = buf.DecodeUint32()
  2059  	m.SpdIndexValid = buf.DecodeUint8()
  2060  	return nil
  2061  }
  2062  
  2063  // IpsecSpdsDetails defines message 'ipsec_spds_details'.
  2064  type IpsecSpdsDetails struct {
  2065  	SpdID     uint32 `binapi:"u32,name=spd_id" json:"spd_id,omitempty"`
  2066  	Npolicies uint32 `binapi:"u32,name=npolicies" json:"npolicies,omitempty"`
  2067  }
  2068  
  2069  func (m *IpsecSpdsDetails) Reset()               { *m = IpsecSpdsDetails{} }
  2070  func (*IpsecSpdsDetails) GetMessageName() string { return "ipsec_spds_details" }
  2071  func (*IpsecSpdsDetails) GetCrcString() string   { return "a04bb254" }
  2072  func (*IpsecSpdsDetails) GetMessageType() api.MessageType {
  2073  	return api.ReplyMessage
  2074  }
  2075  
  2076  func (m *IpsecSpdsDetails) Size() (size int) {
  2077  	if m == nil {
  2078  		return 0
  2079  	}
  2080  	size += 4 // m.SpdID
  2081  	size += 4 // m.Npolicies
  2082  	return size
  2083  }
  2084  func (m *IpsecSpdsDetails) Marshal(b []byte) ([]byte, error) {
  2085  	if b == nil {
  2086  		b = make([]byte, m.Size())
  2087  	}
  2088  	buf := codec.NewBuffer(b)
  2089  	buf.EncodeUint32(m.SpdID)
  2090  	buf.EncodeUint32(m.Npolicies)
  2091  	return buf.Bytes(), nil
  2092  }
  2093  func (m *IpsecSpdsDetails) Unmarshal(b []byte) error {
  2094  	buf := codec.NewBuffer(b)
  2095  	m.SpdID = buf.DecodeUint32()
  2096  	m.Npolicies = buf.DecodeUint32()
  2097  	return nil
  2098  }
  2099  
  2100  // IpsecSpdsDump defines message 'ipsec_spds_dump'.
  2101  type IpsecSpdsDump struct{}
  2102  
  2103  func (m *IpsecSpdsDump) Reset()               { *m = IpsecSpdsDump{} }
  2104  func (*IpsecSpdsDump) GetMessageName() string { return "ipsec_spds_dump" }
  2105  func (*IpsecSpdsDump) GetCrcString() string   { return "51077d14" }
  2106  func (*IpsecSpdsDump) GetMessageType() api.MessageType {
  2107  	return api.RequestMessage
  2108  }
  2109  
  2110  func (m *IpsecSpdsDump) Size() (size int) {
  2111  	if m == nil {
  2112  		return 0
  2113  	}
  2114  	return size
  2115  }
  2116  func (m *IpsecSpdsDump) Marshal(b []byte) ([]byte, error) {
  2117  	if b == nil {
  2118  		b = make([]byte, m.Size())
  2119  	}
  2120  	buf := codec.NewBuffer(b)
  2121  	return buf.Bytes(), nil
  2122  }
  2123  func (m *IpsecSpdsDump) Unmarshal(b []byte) error {
  2124  	return nil
  2125  }
  2126  
  2127  // IpsecTunnelProtectDel defines message 'ipsec_tunnel_protect_del'.
  2128  type IpsecTunnelProtectDel struct {
  2129  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  2130  	Nh        ip_types.Address               `binapi:"address,name=nh" json:"nh,omitempty"`
  2131  }
  2132  
  2133  func (m *IpsecTunnelProtectDel) Reset()               { *m = IpsecTunnelProtectDel{} }
  2134  func (*IpsecTunnelProtectDel) GetMessageName() string { return "ipsec_tunnel_protect_del" }
  2135  func (*IpsecTunnelProtectDel) GetCrcString() string   { return "cd239930" }
  2136  func (*IpsecTunnelProtectDel) GetMessageType() api.MessageType {
  2137  	return api.RequestMessage
  2138  }
  2139  
  2140  func (m *IpsecTunnelProtectDel) Size() (size int) {
  2141  	if m == nil {
  2142  		return 0
  2143  	}
  2144  	size += 4      // m.SwIfIndex
  2145  	size += 1      // m.Nh.Af
  2146  	size += 1 * 16 // m.Nh.Un
  2147  	return size
  2148  }
  2149  func (m *IpsecTunnelProtectDel) Marshal(b []byte) ([]byte, error) {
  2150  	if b == nil {
  2151  		b = make([]byte, m.Size())
  2152  	}
  2153  	buf := codec.NewBuffer(b)
  2154  	buf.EncodeUint32(uint32(m.SwIfIndex))
  2155  	buf.EncodeUint8(uint8(m.Nh.Af))
  2156  	buf.EncodeBytes(m.Nh.Un.XXX_UnionData[:], 16)
  2157  	return buf.Bytes(), nil
  2158  }
  2159  func (m *IpsecTunnelProtectDel) Unmarshal(b []byte) error {
  2160  	buf := codec.NewBuffer(b)
  2161  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  2162  	m.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2163  	copy(m.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2164  	return nil
  2165  }
  2166  
  2167  // IpsecTunnelProtectDelReply defines message 'ipsec_tunnel_protect_del_reply'.
  2168  type IpsecTunnelProtectDelReply struct {
  2169  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  2170  }
  2171  
  2172  func (m *IpsecTunnelProtectDelReply) Reset()               { *m = IpsecTunnelProtectDelReply{} }
  2173  func (*IpsecTunnelProtectDelReply) GetMessageName() string { return "ipsec_tunnel_protect_del_reply" }
  2174  func (*IpsecTunnelProtectDelReply) GetCrcString() string   { return "e8d4e804" }
  2175  func (*IpsecTunnelProtectDelReply) GetMessageType() api.MessageType {
  2176  	return api.ReplyMessage
  2177  }
  2178  
  2179  func (m *IpsecTunnelProtectDelReply) Size() (size int) {
  2180  	if m == nil {
  2181  		return 0
  2182  	}
  2183  	size += 4 // m.Retval
  2184  	return size
  2185  }
  2186  func (m *IpsecTunnelProtectDelReply) Marshal(b []byte) ([]byte, error) {
  2187  	if b == nil {
  2188  		b = make([]byte, m.Size())
  2189  	}
  2190  	buf := codec.NewBuffer(b)
  2191  	buf.EncodeInt32(m.Retval)
  2192  	return buf.Bytes(), nil
  2193  }
  2194  func (m *IpsecTunnelProtectDelReply) Unmarshal(b []byte) error {
  2195  	buf := codec.NewBuffer(b)
  2196  	m.Retval = buf.DecodeInt32()
  2197  	return nil
  2198  }
  2199  
  2200  // IpsecTunnelProtectDetails defines message 'ipsec_tunnel_protect_details'.
  2201  type IpsecTunnelProtectDetails struct {
  2202  	Tun IpsecTunnelProtect `binapi:"ipsec_tunnel_protect,name=tun" json:"tun,omitempty"`
  2203  }
  2204  
  2205  func (m *IpsecTunnelProtectDetails) Reset()               { *m = IpsecTunnelProtectDetails{} }
  2206  func (*IpsecTunnelProtectDetails) GetMessageName() string { return "ipsec_tunnel_protect_details" }
  2207  func (*IpsecTunnelProtectDetails) GetCrcString() string   { return "21663a50" }
  2208  func (*IpsecTunnelProtectDetails) GetMessageType() api.MessageType {
  2209  	return api.ReplyMessage
  2210  }
  2211  
  2212  func (m *IpsecTunnelProtectDetails) Size() (size int) {
  2213  	if m == nil {
  2214  		return 0
  2215  	}
  2216  	size += 4                   // m.Tun.SwIfIndex
  2217  	size += 1                   // m.Tun.Nh.Af
  2218  	size += 1 * 16              // m.Tun.Nh.Un
  2219  	size += 4                   // m.Tun.SaOut
  2220  	size += 1                   // m.Tun.NSaIn
  2221  	size += 4 * len(m.Tun.SaIn) // m.Tun.SaIn
  2222  	return size
  2223  }
  2224  func (m *IpsecTunnelProtectDetails) Marshal(b []byte) ([]byte, error) {
  2225  	if b == nil {
  2226  		b = make([]byte, m.Size())
  2227  	}
  2228  	buf := codec.NewBuffer(b)
  2229  	buf.EncodeUint32(uint32(m.Tun.SwIfIndex))
  2230  	buf.EncodeUint8(uint8(m.Tun.Nh.Af))
  2231  	buf.EncodeBytes(m.Tun.Nh.Un.XXX_UnionData[:], 16)
  2232  	buf.EncodeUint32(m.Tun.SaOut)
  2233  	buf.EncodeUint8(uint8(len(m.Tun.SaIn)))
  2234  	for i := 0; i < len(m.Tun.SaIn); i++ {
  2235  		var x uint32
  2236  		if i < len(m.Tun.SaIn) {
  2237  			x = uint32(m.Tun.SaIn[i])
  2238  		}
  2239  		buf.EncodeUint32(x)
  2240  	}
  2241  	return buf.Bytes(), nil
  2242  }
  2243  func (m *IpsecTunnelProtectDetails) Unmarshal(b []byte) error {
  2244  	buf := codec.NewBuffer(b)
  2245  	m.Tun.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  2246  	m.Tun.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2247  	copy(m.Tun.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2248  	m.Tun.SaOut = buf.DecodeUint32()
  2249  	m.Tun.NSaIn = buf.DecodeUint8()
  2250  	m.Tun.SaIn = make([]uint32, m.Tun.NSaIn)
  2251  	for i := 0; i < len(m.Tun.SaIn); i++ {
  2252  		m.Tun.SaIn[i] = buf.DecodeUint32()
  2253  	}
  2254  	return nil
  2255  }
  2256  
  2257  // IpsecTunnelProtectDump defines message 'ipsec_tunnel_protect_dump'.
  2258  type IpsecTunnelProtectDump struct {
  2259  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  2260  }
  2261  
  2262  func (m *IpsecTunnelProtectDump) Reset()               { *m = IpsecTunnelProtectDump{} }
  2263  func (*IpsecTunnelProtectDump) GetMessageName() string { return "ipsec_tunnel_protect_dump" }
  2264  func (*IpsecTunnelProtectDump) GetCrcString() string   { return "f9e6675e" }
  2265  func (*IpsecTunnelProtectDump) GetMessageType() api.MessageType {
  2266  	return api.RequestMessage
  2267  }
  2268  
  2269  func (m *IpsecTunnelProtectDump) Size() (size int) {
  2270  	if m == nil {
  2271  		return 0
  2272  	}
  2273  	size += 4 // m.SwIfIndex
  2274  	return size
  2275  }
  2276  func (m *IpsecTunnelProtectDump) Marshal(b []byte) ([]byte, error) {
  2277  	if b == nil {
  2278  		b = make([]byte, m.Size())
  2279  	}
  2280  	buf := codec.NewBuffer(b)
  2281  	buf.EncodeUint32(uint32(m.SwIfIndex))
  2282  	return buf.Bytes(), nil
  2283  }
  2284  func (m *IpsecTunnelProtectDump) Unmarshal(b []byte) error {
  2285  	buf := codec.NewBuffer(b)
  2286  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  2287  	return nil
  2288  }
  2289  
  2290  // IpsecTunnelProtectUpdate defines message 'ipsec_tunnel_protect_update'.
  2291  type IpsecTunnelProtectUpdate struct {
  2292  	Tunnel IpsecTunnelProtect `binapi:"ipsec_tunnel_protect,name=tunnel" json:"tunnel,omitempty"`
  2293  }
  2294  
  2295  func (m *IpsecTunnelProtectUpdate) Reset()               { *m = IpsecTunnelProtectUpdate{} }
  2296  func (*IpsecTunnelProtectUpdate) GetMessageName() string { return "ipsec_tunnel_protect_update" }
  2297  func (*IpsecTunnelProtectUpdate) GetCrcString() string   { return "30d5f133" }
  2298  func (*IpsecTunnelProtectUpdate) GetMessageType() api.MessageType {
  2299  	return api.RequestMessage
  2300  }
  2301  
  2302  func (m *IpsecTunnelProtectUpdate) Size() (size int) {
  2303  	if m == nil {
  2304  		return 0
  2305  	}
  2306  	size += 4                      // m.Tunnel.SwIfIndex
  2307  	size += 1                      // m.Tunnel.Nh.Af
  2308  	size += 1 * 16                 // m.Tunnel.Nh.Un
  2309  	size += 4                      // m.Tunnel.SaOut
  2310  	size += 1                      // m.Tunnel.NSaIn
  2311  	size += 4 * len(m.Tunnel.SaIn) // m.Tunnel.SaIn
  2312  	return size
  2313  }
  2314  func (m *IpsecTunnelProtectUpdate) Marshal(b []byte) ([]byte, error) {
  2315  	if b == nil {
  2316  		b = make([]byte, m.Size())
  2317  	}
  2318  	buf := codec.NewBuffer(b)
  2319  	buf.EncodeUint32(uint32(m.Tunnel.SwIfIndex))
  2320  	buf.EncodeUint8(uint8(m.Tunnel.Nh.Af))
  2321  	buf.EncodeBytes(m.Tunnel.Nh.Un.XXX_UnionData[:], 16)
  2322  	buf.EncodeUint32(m.Tunnel.SaOut)
  2323  	buf.EncodeUint8(uint8(len(m.Tunnel.SaIn)))
  2324  	for i := 0; i < len(m.Tunnel.SaIn); i++ {
  2325  		var x uint32
  2326  		if i < len(m.Tunnel.SaIn) {
  2327  			x = uint32(m.Tunnel.SaIn[i])
  2328  		}
  2329  		buf.EncodeUint32(x)
  2330  	}
  2331  	return buf.Bytes(), nil
  2332  }
  2333  func (m *IpsecTunnelProtectUpdate) Unmarshal(b []byte) error {
  2334  	buf := codec.NewBuffer(b)
  2335  	m.Tunnel.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  2336  	m.Tunnel.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2337  	copy(m.Tunnel.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2338  	m.Tunnel.SaOut = buf.DecodeUint32()
  2339  	m.Tunnel.NSaIn = buf.DecodeUint8()
  2340  	m.Tunnel.SaIn = make([]uint32, m.Tunnel.NSaIn)
  2341  	for i := 0; i < len(m.Tunnel.SaIn); i++ {
  2342  		m.Tunnel.SaIn[i] = buf.DecodeUint32()
  2343  	}
  2344  	return nil
  2345  }
  2346  
  2347  // IpsecTunnelProtectUpdateReply defines message 'ipsec_tunnel_protect_update_reply'.
  2348  type IpsecTunnelProtectUpdateReply struct {
  2349  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  2350  }
  2351  
  2352  func (m *IpsecTunnelProtectUpdateReply) Reset() { *m = IpsecTunnelProtectUpdateReply{} }
  2353  func (*IpsecTunnelProtectUpdateReply) GetMessageName() string {
  2354  	return "ipsec_tunnel_protect_update_reply"
  2355  }
  2356  func (*IpsecTunnelProtectUpdateReply) GetCrcString() string { return "e8d4e804" }
  2357  func (*IpsecTunnelProtectUpdateReply) GetMessageType() api.MessageType {
  2358  	return api.ReplyMessage
  2359  }
  2360  
  2361  func (m *IpsecTunnelProtectUpdateReply) Size() (size int) {
  2362  	if m == nil {
  2363  		return 0
  2364  	}
  2365  	size += 4 // m.Retval
  2366  	return size
  2367  }
  2368  func (m *IpsecTunnelProtectUpdateReply) Marshal(b []byte) ([]byte, error) {
  2369  	if b == nil {
  2370  		b = make([]byte, m.Size())
  2371  	}
  2372  	buf := codec.NewBuffer(b)
  2373  	buf.EncodeInt32(m.Retval)
  2374  	return buf.Bytes(), nil
  2375  }
  2376  func (m *IpsecTunnelProtectUpdateReply) Unmarshal(b []byte) error {
  2377  	buf := codec.NewBuffer(b)
  2378  	m.Retval = buf.DecodeInt32()
  2379  	return nil
  2380  }
  2381  
  2382  func init() { file_ipsec_binapi_init() }
  2383  func file_ipsec_binapi_init() {
  2384  	api.RegisterMessage((*IpsecBackendDetails)(nil), "ipsec_backend_details_ee601c29")
  2385  	api.RegisterMessage((*IpsecBackendDump)(nil), "ipsec_backend_dump_51077d14")
  2386  	api.RegisterMessage((*IpsecInterfaceAddDelSpd)(nil), "ipsec_interface_add_del_spd_80f80cbb")
  2387  	api.RegisterMessage((*IpsecInterfaceAddDelSpdReply)(nil), "ipsec_interface_add_del_spd_reply_e8d4e804")
  2388  	api.RegisterMessage((*IpsecItfCreate)(nil), "ipsec_itf_create_6f50b3bc")
  2389  	api.RegisterMessage((*IpsecItfCreateReply)(nil), "ipsec_itf_create_reply_5383d31f")
  2390  	api.RegisterMessage((*IpsecItfDelete)(nil), "ipsec_itf_delete_f9e6675e")
  2391  	api.RegisterMessage((*IpsecItfDeleteReply)(nil), "ipsec_itf_delete_reply_e8d4e804")
  2392  	api.RegisterMessage((*IpsecItfDetails)(nil), "ipsec_itf_details_548a73b8")
  2393  	api.RegisterMessage((*IpsecItfDump)(nil), "ipsec_itf_dump_f9e6675e")
  2394  	api.RegisterMessage((*IpsecSaDetails)(nil), "ipsec_sa_details_345d14a7")
  2395  	api.RegisterMessage((*IpsecSaDump)(nil), "ipsec_sa_dump_2076c2f4")
  2396  	api.RegisterMessage((*IpsecSaV2Details)(nil), "ipsec_sa_v2_details_e2130051")
  2397  	api.RegisterMessage((*IpsecSaV2Dump)(nil), "ipsec_sa_v2_dump_2076c2f4")
  2398  	api.RegisterMessage((*IpsecSaV3Details)(nil), "ipsec_sa_v3_details_2fc991ee")
  2399  	api.RegisterMessage((*IpsecSaV3Dump)(nil), "ipsec_sa_v3_dump_2076c2f4")
  2400  	api.RegisterMessage((*IpsecSadEntryAdd)(nil), "ipsec_sad_entry_add_50229353")
  2401  	api.RegisterMessage((*IpsecSadEntryAddDel)(nil), "ipsec_sad_entry_add_del_ab64b5c6")
  2402  	api.RegisterMessage((*IpsecSadEntryAddDelReply)(nil), "ipsec_sad_entry_add_del_reply_9ffac24b")
  2403  	api.RegisterMessage((*IpsecSadEntryAddDelV2)(nil), "ipsec_sad_entry_add_del_v2_aca78b27")
  2404  	api.RegisterMessage((*IpsecSadEntryAddDelV2Reply)(nil), "ipsec_sad_entry_add_del_v2_reply_9ffac24b")
  2405  	api.RegisterMessage((*IpsecSadEntryAddDelV3)(nil), "ipsec_sad_entry_add_del_v3_c77ebd92")
  2406  	api.RegisterMessage((*IpsecSadEntryAddDelV3Reply)(nil), "ipsec_sad_entry_add_del_v3_reply_9ffac24b")
  2407  	api.RegisterMessage((*IpsecSadEntryAddReply)(nil), "ipsec_sad_entry_add_reply_9ffac24b")
  2408  	api.RegisterMessage((*IpsecSadEntryDel)(nil), "ipsec_sad_entry_del_3a91bde5")
  2409  	api.RegisterMessage((*IpsecSadEntryDelReply)(nil), "ipsec_sad_entry_del_reply_e8d4e804")
  2410  	api.RegisterMessage((*IpsecSelectBackend)(nil), "ipsec_select_backend_5bcfd3b7")
  2411  	api.RegisterMessage((*IpsecSelectBackendReply)(nil), "ipsec_select_backend_reply_e8d4e804")
  2412  	api.RegisterMessage((*IpsecSetAsyncMode)(nil), "ipsec_set_async_mode_a6465f7c")
  2413  	api.RegisterMessage((*IpsecSetAsyncModeReply)(nil), "ipsec_set_async_mode_reply_e8d4e804")
  2414  	api.RegisterMessage((*IpsecSpdAddDel)(nil), "ipsec_spd_add_del_20e89a95")
  2415  	api.RegisterMessage((*IpsecSpdAddDelReply)(nil), "ipsec_spd_add_del_reply_e8d4e804")
  2416  	api.RegisterMessage((*IpsecSpdDetails)(nil), "ipsec_spd_details_5813d7a2")
  2417  	api.RegisterMessage((*IpsecSpdDump)(nil), "ipsec_spd_dump_afefbf7d")
  2418  	api.RegisterMessage((*IpsecSpdEntryAddDel)(nil), "ipsec_spd_entry_add_del_338b7411")
  2419  	api.RegisterMessage((*IpsecSpdEntryAddDelReply)(nil), "ipsec_spd_entry_add_del_reply_9ffac24b")
  2420  	api.RegisterMessage((*IpsecSpdInterfaceDetails)(nil), "ipsec_spd_interface_details_7a0bcf3e")
  2421  	api.RegisterMessage((*IpsecSpdInterfaceDump)(nil), "ipsec_spd_interface_dump_8971de19")
  2422  	api.RegisterMessage((*IpsecSpdsDetails)(nil), "ipsec_spds_details_a04bb254")
  2423  	api.RegisterMessage((*IpsecSpdsDump)(nil), "ipsec_spds_dump_51077d14")
  2424  	api.RegisterMessage((*IpsecTunnelProtectDel)(nil), "ipsec_tunnel_protect_del_cd239930")
  2425  	api.RegisterMessage((*IpsecTunnelProtectDelReply)(nil), "ipsec_tunnel_protect_del_reply_e8d4e804")
  2426  	api.RegisterMessage((*IpsecTunnelProtectDetails)(nil), "ipsec_tunnel_protect_details_21663a50")
  2427  	api.RegisterMessage((*IpsecTunnelProtectDump)(nil), "ipsec_tunnel_protect_dump_f9e6675e")
  2428  	api.RegisterMessage((*IpsecTunnelProtectUpdate)(nil), "ipsec_tunnel_protect_update_30d5f133")
  2429  	api.RegisterMessage((*IpsecTunnelProtectUpdateReply)(nil), "ipsec_tunnel_protect_update_reply_e8d4e804")
  2430  }
  2431  
  2432  // Messages returns list of all messages in this module.
  2433  func AllMessages() []api.Message {
  2434  	return []api.Message{
  2435  		(*IpsecBackendDetails)(nil),
  2436  		(*IpsecBackendDump)(nil),
  2437  		(*IpsecInterfaceAddDelSpd)(nil),
  2438  		(*IpsecInterfaceAddDelSpdReply)(nil),
  2439  		(*IpsecItfCreate)(nil),
  2440  		(*IpsecItfCreateReply)(nil),
  2441  		(*IpsecItfDelete)(nil),
  2442  		(*IpsecItfDeleteReply)(nil),
  2443  		(*IpsecItfDetails)(nil),
  2444  		(*IpsecItfDump)(nil),
  2445  		(*IpsecSaDetails)(nil),
  2446  		(*IpsecSaDump)(nil),
  2447  		(*IpsecSaV2Details)(nil),
  2448  		(*IpsecSaV2Dump)(nil),
  2449  		(*IpsecSaV3Details)(nil),
  2450  		(*IpsecSaV3Dump)(nil),
  2451  		(*IpsecSadEntryAdd)(nil),
  2452  		(*IpsecSadEntryAddDel)(nil),
  2453  		(*IpsecSadEntryAddDelReply)(nil),
  2454  		(*IpsecSadEntryAddDelV2)(nil),
  2455  		(*IpsecSadEntryAddDelV2Reply)(nil),
  2456  		(*IpsecSadEntryAddDelV3)(nil),
  2457  		(*IpsecSadEntryAddDelV3Reply)(nil),
  2458  		(*IpsecSadEntryAddReply)(nil),
  2459  		(*IpsecSadEntryDel)(nil),
  2460  		(*IpsecSadEntryDelReply)(nil),
  2461  		(*IpsecSelectBackend)(nil),
  2462  		(*IpsecSelectBackendReply)(nil),
  2463  		(*IpsecSetAsyncMode)(nil),
  2464  		(*IpsecSetAsyncModeReply)(nil),
  2465  		(*IpsecSpdAddDel)(nil),
  2466  		(*IpsecSpdAddDelReply)(nil),
  2467  		(*IpsecSpdDetails)(nil),
  2468  		(*IpsecSpdDump)(nil),
  2469  		(*IpsecSpdEntryAddDel)(nil),
  2470  		(*IpsecSpdEntryAddDelReply)(nil),
  2471  		(*IpsecSpdInterfaceDetails)(nil),
  2472  		(*IpsecSpdInterfaceDump)(nil),
  2473  		(*IpsecSpdsDetails)(nil),
  2474  		(*IpsecSpdsDump)(nil),
  2475  		(*IpsecTunnelProtectDel)(nil),
  2476  		(*IpsecTunnelProtectDelReply)(nil),
  2477  		(*IpsecTunnelProtectDetails)(nil),
  2478  		(*IpsecTunnelProtectDump)(nil),
  2479  		(*IpsecTunnelProtectUpdate)(nil),
  2480  		(*IpsecTunnelProtectUpdateReply)(nil),
  2481  	}
  2482  }