github.com/networkservicemesh/govpp@v0.0.0-20240328101142-8a444680fbba/binapi/nat44_ed/nat44_ed.ba.go (about)

     1  // Code generated by GoVPP's binapi-generator. DO NOT EDIT.
     2  // versions:
     3  //  binapi-generator: v0.10.0-dev
     4  //  VPP:              23.10-rc0~170-g6f1548434
     5  // source: plugins/nat44_ed.api.json
     6  
     7  // Package nat44_ed contains generated bindings for API file nat44_ed.api.
     8  //
     9  // Contents:
    10  // -  1 enum
    11  // -  1 struct
    12  // - 75 messages
    13  package nat44_ed
    14  
    15  import (
    16  	"strconv"
    17  
    18  	interface_types "github.com/networkservicemesh/govpp/binapi/interface_types"
    19  	ip_types "github.com/networkservicemesh/govpp/binapi/ip_types"
    20  	nat_types "github.com/networkservicemesh/govpp/binapi/nat_types"
    21  	api "go.fd.io/govpp/api"
    22  	codec "go.fd.io/govpp/codec"
    23  )
    24  
    25  // This is a compile-time assertion to ensure that this generated file
    26  // is compatible with the GoVPP api package it is being compiled against.
    27  // A compilation error at this line likely means your copy of the
    28  // GoVPP api package needs to be updated.
    29  const _ = api.GoVppAPIPackageIsVersion2
    30  
    31  const (
    32  	APIFile    = "nat44_ed"
    33  	APIVersion = "5.5.0"
    34  	VersionCrc = 0x6f9bc302
    35  )
    36  
    37  // Nat44ConfigFlags defines enum 'nat44_config_flags'.
    38  type Nat44ConfigFlags uint8
    39  
    40  const (
    41  	NAT44_IS_ENDPOINT_INDEPENDENT Nat44ConfigFlags = 0
    42  	NAT44_IS_ENDPOINT_DEPENDENT   Nat44ConfigFlags = 1
    43  	NAT44_IS_STATIC_MAPPING_ONLY  Nat44ConfigFlags = 2
    44  	NAT44_IS_CONNECTION_TRACKING  Nat44ConfigFlags = 4
    45  	NAT44_IS_OUT2IN_DPO           Nat44ConfigFlags = 8
    46  )
    47  
    48  var (
    49  	Nat44ConfigFlags_name = map[uint8]string{
    50  		0: "NAT44_IS_ENDPOINT_INDEPENDENT",
    51  		1: "NAT44_IS_ENDPOINT_DEPENDENT",
    52  		2: "NAT44_IS_STATIC_MAPPING_ONLY",
    53  		4: "NAT44_IS_CONNECTION_TRACKING",
    54  		8: "NAT44_IS_OUT2IN_DPO",
    55  	}
    56  	Nat44ConfigFlags_value = map[string]uint8{
    57  		"NAT44_IS_ENDPOINT_INDEPENDENT": 0,
    58  		"NAT44_IS_ENDPOINT_DEPENDENT":   1,
    59  		"NAT44_IS_STATIC_MAPPING_ONLY":  2,
    60  		"NAT44_IS_CONNECTION_TRACKING":  4,
    61  		"NAT44_IS_OUT2IN_DPO":           8,
    62  	}
    63  )
    64  
    65  func (x Nat44ConfigFlags) String() string {
    66  	s, ok := Nat44ConfigFlags_name[uint8(x)]
    67  	if ok {
    68  		return s
    69  	}
    70  	str := func(n uint8) string {
    71  		s, ok := Nat44ConfigFlags_name[uint8(n)]
    72  		if ok {
    73  			return s
    74  		}
    75  		return "Nat44ConfigFlags(" + strconv.Itoa(int(n)) + ")"
    76  	}
    77  	for i := uint8(0); i <= 8; i++ {
    78  		val := uint8(x)
    79  		if val&(1<<i) != 0 {
    80  			if s != "" {
    81  				s += "|"
    82  			}
    83  			s += str(1 << i)
    84  		}
    85  	}
    86  	if s == "" {
    87  		return str(uint8(x))
    88  	}
    89  	return s
    90  }
    91  
    92  // Nat44LbAddrPort defines type 'nat44_lb_addr_port'.
    93  type Nat44LbAddrPort struct {
    94  	Addr        ip_types.IP4Address `binapi:"ip4_address,name=addr" json:"addr,omitempty"`
    95  	Port        uint16              `binapi:"u16,name=port" json:"port,omitempty"`
    96  	Probability uint8               `binapi:"u8,name=probability" json:"probability,omitempty"`
    97  	VrfID       uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
    98  }
    99  
   100  // Add/del NAT44 address range
   101  //   - first_ip_address - first IPv4 address
   102  //   - last_ip_address - last IPv4 address
   103  //   - vrf_id - VRF id of tenant, ~0 means independent of VRF
   104  //   - is_add - true if add, false if delete
   105  //   - flags - flag NAT_IS_TWICE_NAT if NAT address range for external hosts
   106  //
   107  // Nat44AddDelAddressRange defines message 'nat44_add_del_address_range'.
   108  type Nat44AddDelAddressRange struct {
   109  	FirstIPAddress ip_types.IP4Address      `binapi:"ip4_address,name=first_ip_address" json:"first_ip_address,omitempty"`
   110  	LastIPAddress  ip_types.IP4Address      `binapi:"ip4_address,name=last_ip_address" json:"last_ip_address,omitempty"`
   111  	VrfID          uint32                   `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
   112  	IsAdd          bool                     `binapi:"bool,name=is_add" json:"is_add,omitempty"`
   113  	Flags          nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
   114  }
   115  
   116  func (m *Nat44AddDelAddressRange) Reset()               { *m = Nat44AddDelAddressRange{} }
   117  func (*Nat44AddDelAddressRange) GetMessageName() string { return "nat44_add_del_address_range" }
   118  func (*Nat44AddDelAddressRange) GetCrcString() string   { return "6f2b8055" }
   119  func (*Nat44AddDelAddressRange) GetMessageType() api.MessageType {
   120  	return api.RequestMessage
   121  }
   122  
   123  func (m *Nat44AddDelAddressRange) Size() (size int) {
   124  	if m == nil {
   125  		return 0
   126  	}
   127  	size += 1 * 4 // m.FirstIPAddress
   128  	size += 1 * 4 // m.LastIPAddress
   129  	size += 4     // m.VrfID
   130  	size += 1     // m.IsAdd
   131  	size += 1     // m.Flags
   132  	return size
   133  }
   134  func (m *Nat44AddDelAddressRange) Marshal(b []byte) ([]byte, error) {
   135  	if b == nil {
   136  		b = make([]byte, m.Size())
   137  	}
   138  	buf := codec.NewBuffer(b)
   139  	buf.EncodeBytes(m.FirstIPAddress[:], 4)
   140  	buf.EncodeBytes(m.LastIPAddress[:], 4)
   141  	buf.EncodeUint32(m.VrfID)
   142  	buf.EncodeBool(m.IsAdd)
   143  	buf.EncodeUint8(uint8(m.Flags))
   144  	return buf.Bytes(), nil
   145  }
   146  func (m *Nat44AddDelAddressRange) Unmarshal(b []byte) error {
   147  	buf := codec.NewBuffer(b)
   148  	copy(m.FirstIPAddress[:], buf.DecodeBytes(4))
   149  	copy(m.LastIPAddress[:], buf.DecodeBytes(4))
   150  	m.VrfID = buf.DecodeUint32()
   151  	m.IsAdd = buf.DecodeBool()
   152  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
   153  	return nil
   154  }
   155  
   156  // Nat44AddDelAddressRangeReply defines message 'nat44_add_del_address_range_reply'.
   157  type Nat44AddDelAddressRangeReply struct {
   158  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   159  }
   160  
   161  func (m *Nat44AddDelAddressRangeReply) Reset() { *m = Nat44AddDelAddressRangeReply{} }
   162  func (*Nat44AddDelAddressRangeReply) GetMessageName() string {
   163  	return "nat44_add_del_address_range_reply"
   164  }
   165  func (*Nat44AddDelAddressRangeReply) GetCrcString() string { return "e8d4e804" }
   166  func (*Nat44AddDelAddressRangeReply) GetMessageType() api.MessageType {
   167  	return api.ReplyMessage
   168  }
   169  
   170  func (m *Nat44AddDelAddressRangeReply) Size() (size int) {
   171  	if m == nil {
   172  		return 0
   173  	}
   174  	size += 4 // m.Retval
   175  	return size
   176  }
   177  func (m *Nat44AddDelAddressRangeReply) Marshal(b []byte) ([]byte, error) {
   178  	if b == nil {
   179  		b = make([]byte, m.Size())
   180  	}
   181  	buf := codec.NewBuffer(b)
   182  	buf.EncodeInt32(m.Retval)
   183  	return buf.Bytes(), nil
   184  }
   185  func (m *Nat44AddDelAddressRangeReply) Unmarshal(b []byte) error {
   186  	buf := codec.NewBuffer(b)
   187  	m.Retval = buf.DecodeInt32()
   188  	return nil
   189  }
   190  
   191  // Add/delete NAT44 identity mapping
   192  //   - is_add - true if add, false if delete
   193  //   - flags - flag NAT_ADDR_ONLY if address only mapping
   194  //   - ip_address - IPv4 address
   195  //   - protocol - IP protocol
   196  //   - port - port number
   197  //   - sw_if_index - interface (if set ip_address is ignored, ~0 means not
   198  //     used)
   199  //   - vfr_id - VRF ID (if ~0 use default VRF)
   200  //   - tag - opaque string tag
   201  //
   202  // Nat44AddDelIdentityMapping defines message 'nat44_add_del_identity_mapping'.
   203  type Nat44AddDelIdentityMapping struct {
   204  	IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
   205  	Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
   206  	IPAddress ip_types.IP4Address            `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
   207  	Protocol  uint8                          `binapi:"u8,name=protocol" json:"protocol,omitempty"`
   208  	Port      uint16                         `binapi:"u16,name=port" json:"port,omitempty"`
   209  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   210  	VrfID     uint32                         `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
   211  	Tag       string                         `binapi:"string[64],name=tag" json:"tag,omitempty"`
   212  }
   213  
   214  func (m *Nat44AddDelIdentityMapping) Reset()               { *m = Nat44AddDelIdentityMapping{} }
   215  func (*Nat44AddDelIdentityMapping) GetMessageName() string { return "nat44_add_del_identity_mapping" }
   216  func (*Nat44AddDelIdentityMapping) GetCrcString() string   { return "02faaa22" }
   217  func (*Nat44AddDelIdentityMapping) GetMessageType() api.MessageType {
   218  	return api.RequestMessage
   219  }
   220  
   221  func (m *Nat44AddDelIdentityMapping) Size() (size int) {
   222  	if m == nil {
   223  		return 0
   224  	}
   225  	size += 1     // m.IsAdd
   226  	size += 1     // m.Flags
   227  	size += 1 * 4 // m.IPAddress
   228  	size += 1     // m.Protocol
   229  	size += 2     // m.Port
   230  	size += 4     // m.SwIfIndex
   231  	size += 4     // m.VrfID
   232  	size += 64    // m.Tag
   233  	return size
   234  }
   235  func (m *Nat44AddDelIdentityMapping) Marshal(b []byte) ([]byte, error) {
   236  	if b == nil {
   237  		b = make([]byte, m.Size())
   238  	}
   239  	buf := codec.NewBuffer(b)
   240  	buf.EncodeBool(m.IsAdd)
   241  	buf.EncodeUint8(uint8(m.Flags))
   242  	buf.EncodeBytes(m.IPAddress[:], 4)
   243  	buf.EncodeUint8(m.Protocol)
   244  	buf.EncodeUint16(m.Port)
   245  	buf.EncodeUint32(uint32(m.SwIfIndex))
   246  	buf.EncodeUint32(m.VrfID)
   247  	buf.EncodeString(m.Tag, 64)
   248  	return buf.Bytes(), nil
   249  }
   250  func (m *Nat44AddDelIdentityMapping) Unmarshal(b []byte) error {
   251  	buf := codec.NewBuffer(b)
   252  	m.IsAdd = buf.DecodeBool()
   253  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
   254  	copy(m.IPAddress[:], buf.DecodeBytes(4))
   255  	m.Protocol = buf.DecodeUint8()
   256  	m.Port = buf.DecodeUint16()
   257  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   258  	m.VrfID = buf.DecodeUint32()
   259  	m.Tag = buf.DecodeString(64)
   260  	return nil
   261  }
   262  
   263  // Nat44AddDelIdentityMappingReply defines message 'nat44_add_del_identity_mapping_reply'.
   264  type Nat44AddDelIdentityMappingReply struct {
   265  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   266  }
   267  
   268  func (m *Nat44AddDelIdentityMappingReply) Reset() { *m = Nat44AddDelIdentityMappingReply{} }
   269  func (*Nat44AddDelIdentityMappingReply) GetMessageName() string {
   270  	return "nat44_add_del_identity_mapping_reply"
   271  }
   272  func (*Nat44AddDelIdentityMappingReply) GetCrcString() string { return "e8d4e804" }
   273  func (*Nat44AddDelIdentityMappingReply) GetMessageType() api.MessageType {
   274  	return api.ReplyMessage
   275  }
   276  
   277  func (m *Nat44AddDelIdentityMappingReply) Size() (size int) {
   278  	if m == nil {
   279  		return 0
   280  	}
   281  	size += 4 // m.Retval
   282  	return size
   283  }
   284  func (m *Nat44AddDelIdentityMappingReply) Marshal(b []byte) ([]byte, error) {
   285  	if b == nil {
   286  		b = make([]byte, m.Size())
   287  	}
   288  	buf := codec.NewBuffer(b)
   289  	buf.EncodeInt32(m.Retval)
   290  	return buf.Bytes(), nil
   291  }
   292  func (m *Nat44AddDelIdentityMappingReply) Unmarshal(b []byte) error {
   293  	buf := codec.NewBuffer(b)
   294  	m.Retval = buf.DecodeInt32()
   295  	return nil
   296  }
   297  
   298  // Add/delete NAT44 pool address from specific interfce
   299  //   - is_add - true if add, false if delete
   300  //   - sw_if_index - software index of the interface
   301  //   - flags - flag NAT_TWICE_NAT if NAT address range for external hosts
   302  //
   303  // Nat44AddDelInterfaceAddr defines message 'nat44_add_del_interface_addr'.
   304  type Nat44AddDelInterfaceAddr struct {
   305  	IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
   306  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   307  	Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
   308  }
   309  
   310  func (m *Nat44AddDelInterfaceAddr) Reset()               { *m = Nat44AddDelInterfaceAddr{} }
   311  func (*Nat44AddDelInterfaceAddr) GetMessageName() string { return "nat44_add_del_interface_addr" }
   312  func (*Nat44AddDelInterfaceAddr) GetCrcString() string   { return "4aed50c0" }
   313  func (*Nat44AddDelInterfaceAddr) GetMessageType() api.MessageType {
   314  	return api.RequestMessage
   315  }
   316  
   317  func (m *Nat44AddDelInterfaceAddr) Size() (size int) {
   318  	if m == nil {
   319  		return 0
   320  	}
   321  	size += 1 // m.IsAdd
   322  	size += 4 // m.SwIfIndex
   323  	size += 1 // m.Flags
   324  	return size
   325  }
   326  func (m *Nat44AddDelInterfaceAddr) Marshal(b []byte) ([]byte, error) {
   327  	if b == nil {
   328  		b = make([]byte, m.Size())
   329  	}
   330  	buf := codec.NewBuffer(b)
   331  	buf.EncodeBool(m.IsAdd)
   332  	buf.EncodeUint32(uint32(m.SwIfIndex))
   333  	buf.EncodeUint8(uint8(m.Flags))
   334  	return buf.Bytes(), nil
   335  }
   336  func (m *Nat44AddDelInterfaceAddr) Unmarshal(b []byte) error {
   337  	buf := codec.NewBuffer(b)
   338  	m.IsAdd = buf.DecodeBool()
   339  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   340  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
   341  	return nil
   342  }
   343  
   344  // Nat44AddDelInterfaceAddrReply defines message 'nat44_add_del_interface_addr_reply'.
   345  type Nat44AddDelInterfaceAddrReply struct {
   346  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   347  }
   348  
   349  func (m *Nat44AddDelInterfaceAddrReply) Reset() { *m = Nat44AddDelInterfaceAddrReply{} }
   350  func (*Nat44AddDelInterfaceAddrReply) GetMessageName() string {
   351  	return "nat44_add_del_interface_addr_reply"
   352  }
   353  func (*Nat44AddDelInterfaceAddrReply) GetCrcString() string { return "e8d4e804" }
   354  func (*Nat44AddDelInterfaceAddrReply) GetMessageType() api.MessageType {
   355  	return api.ReplyMessage
   356  }
   357  
   358  func (m *Nat44AddDelInterfaceAddrReply) Size() (size int) {
   359  	if m == nil {
   360  		return 0
   361  	}
   362  	size += 4 // m.Retval
   363  	return size
   364  }
   365  func (m *Nat44AddDelInterfaceAddrReply) Marshal(b []byte) ([]byte, error) {
   366  	if b == nil {
   367  		b = make([]byte, m.Size())
   368  	}
   369  	buf := codec.NewBuffer(b)
   370  	buf.EncodeInt32(m.Retval)
   371  	return buf.Bytes(), nil
   372  }
   373  func (m *Nat44AddDelInterfaceAddrReply) Unmarshal(b []byte) error {
   374  	buf := codec.NewBuffer(b)
   375  	m.Retval = buf.DecodeInt32()
   376  	return nil
   377  }
   378  
   379  // Add/delete NAT44 load-balancing static mapping rule
   380  //   - is_add - true if add, false if delete
   381  //   - flags - flag NAT_TWICE_NAT if NAT address range for external hosts,
   382  //     flag NAT_SELF_TWICE_NAT if translate external host address
   383  //     and port whenever external host address equals local
   384  //     address of internal host,
   385  //     flag NAT_OUT2IN_ONLY if rule match only out2in direction
   386  //   - external_addr - external IPv4 address of the service
   387  //   - external_port - external L4 port number of the service
   388  //   - protocol - IP protocol number of the service
   389  //   - affinity - if 0 disabled, otherwise client IP affinity sticky time
   390  //     in seconds
   391  //   - local_num - number of local network nodes
   392  //   - locals - local network nodes
   393  //   - tag - opaque string tag
   394  //
   395  // Nat44AddDelLbStaticMapping defines message 'nat44_add_del_lb_static_mapping'.
   396  type Nat44AddDelLbStaticMapping struct {
   397  	IsAdd        bool                     `binapi:"bool,name=is_add" json:"is_add,omitempty"`
   398  	Flags        nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
   399  	ExternalAddr ip_types.IP4Address      `binapi:"ip4_address,name=external_addr" json:"external_addr,omitempty"`
   400  	ExternalPort uint16                   `binapi:"u16,name=external_port" json:"external_port,omitempty"`
   401  	Protocol     uint8                    `binapi:"u8,name=protocol" json:"protocol,omitempty"`
   402  	Affinity     uint32                   `binapi:"u32,name=affinity" json:"affinity,omitempty"`
   403  	Tag          string                   `binapi:"string[64],name=tag" json:"tag,omitempty"`
   404  	LocalNum     uint32                   `binapi:"u32,name=local_num" json:"-"`
   405  	Locals       []Nat44LbAddrPort        `binapi:"nat44_lb_addr_port[local_num],name=locals" json:"locals,omitempty"`
   406  }
   407  
   408  func (m *Nat44AddDelLbStaticMapping) Reset()               { *m = Nat44AddDelLbStaticMapping{} }
   409  func (*Nat44AddDelLbStaticMapping) GetMessageName() string { return "nat44_add_del_lb_static_mapping" }
   410  func (*Nat44AddDelLbStaticMapping) GetCrcString() string   { return "4f68ee9d" }
   411  func (*Nat44AddDelLbStaticMapping) GetMessageType() api.MessageType {
   412  	return api.RequestMessage
   413  }
   414  
   415  func (m *Nat44AddDelLbStaticMapping) Size() (size int) {
   416  	if m == nil {
   417  		return 0
   418  	}
   419  	size += 1     // m.IsAdd
   420  	size += 1     // m.Flags
   421  	size += 1 * 4 // m.ExternalAddr
   422  	size += 2     // m.ExternalPort
   423  	size += 1     // m.Protocol
   424  	size += 4     // m.Affinity
   425  	size += 64    // m.Tag
   426  	size += 4     // m.LocalNum
   427  	for j1 := 0; j1 < len(m.Locals); j1++ {
   428  		var s1 Nat44LbAddrPort
   429  		_ = s1
   430  		if j1 < len(m.Locals) {
   431  			s1 = m.Locals[j1]
   432  		}
   433  		size += 1 * 4 // s1.Addr
   434  		size += 2     // s1.Port
   435  		size += 1     // s1.Probability
   436  		size += 4     // s1.VrfID
   437  	}
   438  	return size
   439  }
   440  func (m *Nat44AddDelLbStaticMapping) Marshal(b []byte) ([]byte, error) {
   441  	if b == nil {
   442  		b = make([]byte, m.Size())
   443  	}
   444  	buf := codec.NewBuffer(b)
   445  	buf.EncodeBool(m.IsAdd)
   446  	buf.EncodeUint8(uint8(m.Flags))
   447  	buf.EncodeBytes(m.ExternalAddr[:], 4)
   448  	buf.EncodeUint16(m.ExternalPort)
   449  	buf.EncodeUint8(m.Protocol)
   450  	buf.EncodeUint32(m.Affinity)
   451  	buf.EncodeString(m.Tag, 64)
   452  	buf.EncodeUint32(uint32(len(m.Locals)))
   453  	for j0 := 0; j0 < len(m.Locals); j0++ {
   454  		var v0 Nat44LbAddrPort // Locals
   455  		if j0 < len(m.Locals) {
   456  			v0 = m.Locals[j0]
   457  		}
   458  		buf.EncodeBytes(v0.Addr[:], 4)
   459  		buf.EncodeUint16(v0.Port)
   460  		buf.EncodeUint8(v0.Probability)
   461  		buf.EncodeUint32(v0.VrfID)
   462  	}
   463  	return buf.Bytes(), nil
   464  }
   465  func (m *Nat44AddDelLbStaticMapping) Unmarshal(b []byte) error {
   466  	buf := codec.NewBuffer(b)
   467  	m.IsAdd = buf.DecodeBool()
   468  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
   469  	copy(m.ExternalAddr[:], buf.DecodeBytes(4))
   470  	m.ExternalPort = buf.DecodeUint16()
   471  	m.Protocol = buf.DecodeUint8()
   472  	m.Affinity = buf.DecodeUint32()
   473  	m.Tag = buf.DecodeString(64)
   474  	m.LocalNum = buf.DecodeUint32()
   475  	m.Locals = make([]Nat44LbAddrPort, m.LocalNum)
   476  	for j0 := 0; j0 < len(m.Locals); j0++ {
   477  		copy(m.Locals[j0].Addr[:], buf.DecodeBytes(4))
   478  		m.Locals[j0].Port = buf.DecodeUint16()
   479  		m.Locals[j0].Probability = buf.DecodeUint8()
   480  		m.Locals[j0].VrfID = buf.DecodeUint32()
   481  	}
   482  	return nil
   483  }
   484  
   485  // Nat44AddDelLbStaticMappingReply defines message 'nat44_add_del_lb_static_mapping_reply'.
   486  type Nat44AddDelLbStaticMappingReply struct {
   487  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   488  }
   489  
   490  func (m *Nat44AddDelLbStaticMappingReply) Reset() { *m = Nat44AddDelLbStaticMappingReply{} }
   491  func (*Nat44AddDelLbStaticMappingReply) GetMessageName() string {
   492  	return "nat44_add_del_lb_static_mapping_reply"
   493  }
   494  func (*Nat44AddDelLbStaticMappingReply) GetCrcString() string { return "e8d4e804" }
   495  func (*Nat44AddDelLbStaticMappingReply) GetMessageType() api.MessageType {
   496  	return api.ReplyMessage
   497  }
   498  
   499  func (m *Nat44AddDelLbStaticMappingReply) Size() (size int) {
   500  	if m == nil {
   501  		return 0
   502  	}
   503  	size += 4 // m.Retval
   504  	return size
   505  }
   506  func (m *Nat44AddDelLbStaticMappingReply) Marshal(b []byte) ([]byte, error) {
   507  	if b == nil {
   508  		b = make([]byte, m.Size())
   509  	}
   510  	buf := codec.NewBuffer(b)
   511  	buf.EncodeInt32(m.Retval)
   512  	return buf.Bytes(), nil
   513  }
   514  func (m *Nat44AddDelLbStaticMappingReply) Unmarshal(b []byte) error {
   515  	buf := codec.NewBuffer(b)
   516  	m.Retval = buf.DecodeInt32()
   517  	return nil
   518  }
   519  
   520  // Add/delete NAT44 static mapping
   521  //   - is_add - true if add, false if delete
   522  //   - flags - flag NAT_IS_ADDR_ONLY if address only mapping,
   523  //     flag nat_is_twice_nat if nat address range for external hosts,
   524  //     flag NAT_IS_SELF_TWICE_NAT if translate external host address
   525  //     and port whenever external host address equals local
   526  //     address of internal host,
   527  //     flag NAT_IS_OUT2IN_ONLY if rule match only out2in direction
   528  //   - local_ip_address - local IPv4 address
   529  //   - external_ip_address - external IPv4 address
   530  //   - protocol - IP protocol, used only if addr_only=0
   531  //   - local_port - local port number, used only if addr_only=0
   532  //   - external_port - external port number, used only if addr_only=0
   533  //   - external_sw_if_index - external interface (if set
   534  //     external_ip_address is ignored, ~0 means not
   535  //     used)
   536  //   - vfr_id - VRF ID
   537  //   - tag - opaque string tag
   538  //
   539  // Nat44AddDelStaticMapping defines message 'nat44_add_del_static_mapping'.
   540  // Deprecated: the message will be removed in the future versions
   541  type Nat44AddDelStaticMapping struct {
   542  	IsAdd             bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
   543  	Flags             nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
   544  	LocalIPAddress    ip_types.IP4Address            `binapi:"ip4_address,name=local_ip_address" json:"local_ip_address,omitempty"`
   545  	ExternalIPAddress ip_types.IP4Address            `binapi:"ip4_address,name=external_ip_address" json:"external_ip_address,omitempty"`
   546  	Protocol          uint8                          `binapi:"u8,name=protocol" json:"protocol,omitempty"`
   547  	LocalPort         uint16                         `binapi:"u16,name=local_port" json:"local_port,omitempty"`
   548  	ExternalPort      uint16                         `binapi:"u16,name=external_port" json:"external_port,omitempty"`
   549  	ExternalSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=external_sw_if_index" json:"external_sw_if_index,omitempty"`
   550  	VrfID             uint32                         `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
   551  	Tag               string                         `binapi:"string[64],name=tag" json:"tag,omitempty"`
   552  }
   553  
   554  func (m *Nat44AddDelStaticMapping) Reset()               { *m = Nat44AddDelStaticMapping{} }
   555  func (*Nat44AddDelStaticMapping) GetMessageName() string { return "nat44_add_del_static_mapping" }
   556  func (*Nat44AddDelStaticMapping) GetCrcString() string   { return "5ae5f03e" }
   557  func (*Nat44AddDelStaticMapping) GetMessageType() api.MessageType {
   558  	return api.RequestMessage
   559  }
   560  
   561  func (m *Nat44AddDelStaticMapping) Size() (size int) {
   562  	if m == nil {
   563  		return 0
   564  	}
   565  	size += 1     // m.IsAdd
   566  	size += 1     // m.Flags
   567  	size += 1 * 4 // m.LocalIPAddress
   568  	size += 1 * 4 // m.ExternalIPAddress
   569  	size += 1     // m.Protocol
   570  	size += 2     // m.LocalPort
   571  	size += 2     // m.ExternalPort
   572  	size += 4     // m.ExternalSwIfIndex
   573  	size += 4     // m.VrfID
   574  	size += 64    // m.Tag
   575  	return size
   576  }
   577  func (m *Nat44AddDelStaticMapping) Marshal(b []byte) ([]byte, error) {
   578  	if b == nil {
   579  		b = make([]byte, m.Size())
   580  	}
   581  	buf := codec.NewBuffer(b)
   582  	buf.EncodeBool(m.IsAdd)
   583  	buf.EncodeUint8(uint8(m.Flags))
   584  	buf.EncodeBytes(m.LocalIPAddress[:], 4)
   585  	buf.EncodeBytes(m.ExternalIPAddress[:], 4)
   586  	buf.EncodeUint8(m.Protocol)
   587  	buf.EncodeUint16(m.LocalPort)
   588  	buf.EncodeUint16(m.ExternalPort)
   589  	buf.EncodeUint32(uint32(m.ExternalSwIfIndex))
   590  	buf.EncodeUint32(m.VrfID)
   591  	buf.EncodeString(m.Tag, 64)
   592  	return buf.Bytes(), nil
   593  }
   594  func (m *Nat44AddDelStaticMapping) Unmarshal(b []byte) error {
   595  	buf := codec.NewBuffer(b)
   596  	m.IsAdd = buf.DecodeBool()
   597  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
   598  	copy(m.LocalIPAddress[:], buf.DecodeBytes(4))
   599  	copy(m.ExternalIPAddress[:], buf.DecodeBytes(4))
   600  	m.Protocol = buf.DecodeUint8()
   601  	m.LocalPort = buf.DecodeUint16()
   602  	m.ExternalPort = buf.DecodeUint16()
   603  	m.ExternalSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   604  	m.VrfID = buf.DecodeUint32()
   605  	m.Tag = buf.DecodeString(64)
   606  	return nil
   607  }
   608  
   609  // Nat44AddDelStaticMappingReply defines message 'nat44_add_del_static_mapping_reply'.
   610  // Deprecated: the message will be removed in the future versions
   611  type Nat44AddDelStaticMappingReply struct {
   612  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   613  }
   614  
   615  func (m *Nat44AddDelStaticMappingReply) Reset() { *m = Nat44AddDelStaticMappingReply{} }
   616  func (*Nat44AddDelStaticMappingReply) GetMessageName() string {
   617  	return "nat44_add_del_static_mapping_reply"
   618  }
   619  func (*Nat44AddDelStaticMappingReply) GetCrcString() string { return "e8d4e804" }
   620  func (*Nat44AddDelStaticMappingReply) GetMessageType() api.MessageType {
   621  	return api.ReplyMessage
   622  }
   623  
   624  func (m *Nat44AddDelStaticMappingReply) Size() (size int) {
   625  	if m == nil {
   626  		return 0
   627  	}
   628  	size += 4 // m.Retval
   629  	return size
   630  }
   631  func (m *Nat44AddDelStaticMappingReply) Marshal(b []byte) ([]byte, error) {
   632  	if b == nil {
   633  		b = make([]byte, m.Size())
   634  	}
   635  	buf := codec.NewBuffer(b)
   636  	buf.EncodeInt32(m.Retval)
   637  	return buf.Bytes(), nil
   638  }
   639  func (m *Nat44AddDelStaticMappingReply) Unmarshal(b []byte) error {
   640  	buf := codec.NewBuffer(b)
   641  	m.Retval = buf.DecodeInt32()
   642  	return nil
   643  }
   644  
   645  // Add/delete NAT44 static mapping
   646  //   - is_add - true if add, false if delete
   647  //   - match_pool - true if use specific pool_ip_address
   648  //   - flags - flag NAT_IS_ADDR_ONLY if address only mapping,
   649  //     flag nat_is_twice_nat if nat address range for external hosts,
   650  //     flag NAT_IS_SELF_TWICE_NAT if translate external host address
   651  //     and port whenever external host address equals local
   652  //     address of internal host,
   653  //     flag NAT_IS_OUT2IN_ONLY if rule match only out2in direction
   654  //   - pool_ip_address - pool IPv4 address to match with pool
   655  //   - local_ip_address - local IPv4 address
   656  //   - external_ip_address - external IPv4 address
   657  //   - protocol - IP protocol, used only if addr_only=0
   658  //   - local_port - local port number, used only if addr_only=0
   659  //   - external_port - external port number, used only if addr_only=0
   660  //   - external_sw_if_index - external interface (if set
   661  //     external_ip_address is ignored, ~0 means not
   662  //     used)
   663  //   - vfr_id - VRF ID
   664  //   - tag - opaque string tag
   665  //
   666  // Nat44AddDelStaticMappingV2 defines message 'nat44_add_del_static_mapping_v2'.
   667  type Nat44AddDelStaticMappingV2 struct {
   668  	IsAdd             bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
   669  	MatchPool         bool                           `binapi:"bool,name=match_pool" json:"match_pool,omitempty"`
   670  	Flags             nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
   671  	PoolIPAddress     ip_types.IP4Address            `binapi:"ip4_address,name=pool_ip_address" json:"pool_ip_address,omitempty"`
   672  	LocalIPAddress    ip_types.IP4Address            `binapi:"ip4_address,name=local_ip_address" json:"local_ip_address,omitempty"`
   673  	ExternalIPAddress ip_types.IP4Address            `binapi:"ip4_address,name=external_ip_address" json:"external_ip_address,omitempty"`
   674  	Protocol          uint8                          `binapi:"u8,name=protocol" json:"protocol,omitempty"`
   675  	LocalPort         uint16                         `binapi:"u16,name=local_port" json:"local_port,omitempty"`
   676  	ExternalPort      uint16                         `binapi:"u16,name=external_port" json:"external_port,omitempty"`
   677  	ExternalSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=external_sw_if_index" json:"external_sw_if_index,omitempty"`
   678  	VrfID             uint32                         `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
   679  	Tag               string                         `binapi:"string[64],name=tag" json:"tag,omitempty"`
   680  }
   681  
   682  func (m *Nat44AddDelStaticMappingV2) Reset()               { *m = Nat44AddDelStaticMappingV2{} }
   683  func (*Nat44AddDelStaticMappingV2) GetMessageName() string { return "nat44_add_del_static_mapping_v2" }
   684  func (*Nat44AddDelStaticMappingV2) GetCrcString() string   { return "5e205f1a" }
   685  func (*Nat44AddDelStaticMappingV2) GetMessageType() api.MessageType {
   686  	return api.RequestMessage
   687  }
   688  
   689  func (m *Nat44AddDelStaticMappingV2) Size() (size int) {
   690  	if m == nil {
   691  		return 0
   692  	}
   693  	size += 1     // m.IsAdd
   694  	size += 1     // m.MatchPool
   695  	size += 1     // m.Flags
   696  	size += 1 * 4 // m.PoolIPAddress
   697  	size += 1 * 4 // m.LocalIPAddress
   698  	size += 1 * 4 // m.ExternalIPAddress
   699  	size += 1     // m.Protocol
   700  	size += 2     // m.LocalPort
   701  	size += 2     // m.ExternalPort
   702  	size += 4     // m.ExternalSwIfIndex
   703  	size += 4     // m.VrfID
   704  	size += 64    // m.Tag
   705  	return size
   706  }
   707  func (m *Nat44AddDelStaticMappingV2) Marshal(b []byte) ([]byte, error) {
   708  	if b == nil {
   709  		b = make([]byte, m.Size())
   710  	}
   711  	buf := codec.NewBuffer(b)
   712  	buf.EncodeBool(m.IsAdd)
   713  	buf.EncodeBool(m.MatchPool)
   714  	buf.EncodeUint8(uint8(m.Flags))
   715  	buf.EncodeBytes(m.PoolIPAddress[:], 4)
   716  	buf.EncodeBytes(m.LocalIPAddress[:], 4)
   717  	buf.EncodeBytes(m.ExternalIPAddress[:], 4)
   718  	buf.EncodeUint8(m.Protocol)
   719  	buf.EncodeUint16(m.LocalPort)
   720  	buf.EncodeUint16(m.ExternalPort)
   721  	buf.EncodeUint32(uint32(m.ExternalSwIfIndex))
   722  	buf.EncodeUint32(m.VrfID)
   723  	buf.EncodeString(m.Tag, 64)
   724  	return buf.Bytes(), nil
   725  }
   726  func (m *Nat44AddDelStaticMappingV2) Unmarshal(b []byte) error {
   727  	buf := codec.NewBuffer(b)
   728  	m.IsAdd = buf.DecodeBool()
   729  	m.MatchPool = buf.DecodeBool()
   730  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
   731  	copy(m.PoolIPAddress[:], buf.DecodeBytes(4))
   732  	copy(m.LocalIPAddress[:], buf.DecodeBytes(4))
   733  	copy(m.ExternalIPAddress[:], buf.DecodeBytes(4))
   734  	m.Protocol = buf.DecodeUint8()
   735  	m.LocalPort = buf.DecodeUint16()
   736  	m.ExternalPort = buf.DecodeUint16()
   737  	m.ExternalSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   738  	m.VrfID = buf.DecodeUint32()
   739  	m.Tag = buf.DecodeString(64)
   740  	return nil
   741  }
   742  
   743  // Nat44AddDelStaticMappingV2Reply defines message 'nat44_add_del_static_mapping_v2_reply'.
   744  type Nat44AddDelStaticMappingV2Reply struct {
   745  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   746  }
   747  
   748  func (m *Nat44AddDelStaticMappingV2Reply) Reset() { *m = Nat44AddDelStaticMappingV2Reply{} }
   749  func (*Nat44AddDelStaticMappingV2Reply) GetMessageName() string {
   750  	return "nat44_add_del_static_mapping_v2_reply"
   751  }
   752  func (*Nat44AddDelStaticMappingV2Reply) GetCrcString() string { return "e8d4e804" }
   753  func (*Nat44AddDelStaticMappingV2Reply) GetMessageType() api.MessageType {
   754  	return api.ReplyMessage
   755  }
   756  
   757  func (m *Nat44AddDelStaticMappingV2Reply) Size() (size int) {
   758  	if m == nil {
   759  		return 0
   760  	}
   761  	size += 4 // m.Retval
   762  	return size
   763  }
   764  func (m *Nat44AddDelStaticMappingV2Reply) Marshal(b []byte) ([]byte, error) {
   765  	if b == nil {
   766  		b = make([]byte, m.Size())
   767  	}
   768  	buf := codec.NewBuffer(b)
   769  	buf.EncodeInt32(m.Retval)
   770  	return buf.Bytes(), nil
   771  }
   772  func (m *Nat44AddDelStaticMappingV2Reply) Unmarshal(b []byte) error {
   773  	buf := codec.NewBuffer(b)
   774  	m.Retval = buf.DecodeInt32()
   775  	return nil
   776  }
   777  
   778  // NAT44 address details response
   779  //   - ip_address - IPv4 address
   780  //   - flags - flag NAT_IS_TWICE_NAT if NAT address range for external hosts
   781  //   - vrf_id - VRF id of tenant, ~0 means independent of VRF
   782  //
   783  // Nat44AddressDetails defines message 'nat44_address_details'.
   784  type Nat44AddressDetails struct {
   785  	IPAddress ip_types.IP4Address      `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
   786  	Flags     nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
   787  	VrfID     uint32                   `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
   788  }
   789  
   790  func (m *Nat44AddressDetails) Reset()               { *m = Nat44AddressDetails{} }
   791  func (*Nat44AddressDetails) GetMessageName() string { return "nat44_address_details" }
   792  func (*Nat44AddressDetails) GetCrcString() string   { return "0d1beac1" }
   793  func (*Nat44AddressDetails) GetMessageType() api.MessageType {
   794  	return api.ReplyMessage
   795  }
   796  
   797  func (m *Nat44AddressDetails) Size() (size int) {
   798  	if m == nil {
   799  		return 0
   800  	}
   801  	size += 1 * 4 // m.IPAddress
   802  	size += 1     // m.Flags
   803  	size += 4     // m.VrfID
   804  	return size
   805  }
   806  func (m *Nat44AddressDetails) Marshal(b []byte) ([]byte, error) {
   807  	if b == nil {
   808  		b = make([]byte, m.Size())
   809  	}
   810  	buf := codec.NewBuffer(b)
   811  	buf.EncodeBytes(m.IPAddress[:], 4)
   812  	buf.EncodeUint8(uint8(m.Flags))
   813  	buf.EncodeUint32(m.VrfID)
   814  	return buf.Bytes(), nil
   815  }
   816  func (m *Nat44AddressDetails) Unmarshal(b []byte) error {
   817  	buf := codec.NewBuffer(b)
   818  	copy(m.IPAddress[:], buf.DecodeBytes(4))
   819  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
   820  	m.VrfID = buf.DecodeUint32()
   821  	return nil
   822  }
   823  
   824  // Dump NAT44 addresses
   825  // Nat44AddressDump defines message 'nat44_address_dump'.
   826  type Nat44AddressDump struct{}
   827  
   828  func (m *Nat44AddressDump) Reset()               { *m = Nat44AddressDump{} }
   829  func (*Nat44AddressDump) GetMessageName() string { return "nat44_address_dump" }
   830  func (*Nat44AddressDump) GetCrcString() string   { return "51077d14" }
   831  func (*Nat44AddressDump) GetMessageType() api.MessageType {
   832  	return api.RequestMessage
   833  }
   834  
   835  func (m *Nat44AddressDump) Size() (size int) {
   836  	if m == nil {
   837  		return 0
   838  	}
   839  	return size
   840  }
   841  func (m *Nat44AddressDump) Marshal(b []byte) ([]byte, error) {
   842  	if b == nil {
   843  		b = make([]byte, m.Size())
   844  	}
   845  	buf := codec.NewBuffer(b)
   846  	return buf.Bytes(), nil
   847  }
   848  func (m *Nat44AddressDump) Unmarshal(b []byte) error {
   849  	return nil
   850  }
   851  
   852  // Delete NAT44 session
   853  //   - ip_address - IPv4 address
   854  //   - protocol - IP protocol
   855  //   - port - port number
   856  //   - vfr_id - VRF ID
   857  //   - flags - flag NAT_IS_INSIDE if interface is inside or
   858  //     interface is outside,
   859  //     flag NAT_IS_EXT_HOST_VALID if external host address and
   860  //     port are valid
   861  //   - ext_host_address - external host IPv4 address
   862  //   - ext_host_port - external host port
   863  //
   864  // Nat44DelSession defines message 'nat44_del_session'.
   865  type Nat44DelSession struct {
   866  	Address        ip_types.IP4Address      `binapi:"ip4_address,name=address" json:"address,omitempty"`
   867  	Protocol       uint8                    `binapi:"u8,name=protocol" json:"protocol,omitempty"`
   868  	Port           uint16                   `binapi:"u16,name=port" json:"port,omitempty"`
   869  	VrfID          uint32                   `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
   870  	Flags          nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
   871  	ExtHostAddress ip_types.IP4Address      `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"`
   872  	ExtHostPort    uint16                   `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"`
   873  }
   874  
   875  func (m *Nat44DelSession) Reset()               { *m = Nat44DelSession{} }
   876  func (*Nat44DelSession) GetMessageName() string { return "nat44_del_session" }
   877  func (*Nat44DelSession) GetCrcString() string   { return "15a5bf8c" }
   878  func (*Nat44DelSession) GetMessageType() api.MessageType {
   879  	return api.RequestMessage
   880  }
   881  
   882  func (m *Nat44DelSession) Size() (size int) {
   883  	if m == nil {
   884  		return 0
   885  	}
   886  	size += 1 * 4 // m.Address
   887  	size += 1     // m.Protocol
   888  	size += 2     // m.Port
   889  	size += 4     // m.VrfID
   890  	size += 1     // m.Flags
   891  	size += 1 * 4 // m.ExtHostAddress
   892  	size += 2     // m.ExtHostPort
   893  	return size
   894  }
   895  func (m *Nat44DelSession) Marshal(b []byte) ([]byte, error) {
   896  	if b == nil {
   897  		b = make([]byte, m.Size())
   898  	}
   899  	buf := codec.NewBuffer(b)
   900  	buf.EncodeBytes(m.Address[:], 4)
   901  	buf.EncodeUint8(m.Protocol)
   902  	buf.EncodeUint16(m.Port)
   903  	buf.EncodeUint32(m.VrfID)
   904  	buf.EncodeUint8(uint8(m.Flags))
   905  	buf.EncodeBytes(m.ExtHostAddress[:], 4)
   906  	buf.EncodeUint16(m.ExtHostPort)
   907  	return buf.Bytes(), nil
   908  }
   909  func (m *Nat44DelSession) Unmarshal(b []byte) error {
   910  	buf := codec.NewBuffer(b)
   911  	copy(m.Address[:], buf.DecodeBytes(4))
   912  	m.Protocol = buf.DecodeUint8()
   913  	m.Port = buf.DecodeUint16()
   914  	m.VrfID = buf.DecodeUint32()
   915  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
   916  	copy(m.ExtHostAddress[:], buf.DecodeBytes(4))
   917  	m.ExtHostPort = buf.DecodeUint16()
   918  	return nil
   919  }
   920  
   921  // Nat44DelSessionReply defines message 'nat44_del_session_reply'.
   922  type Nat44DelSessionReply struct {
   923  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   924  }
   925  
   926  func (m *Nat44DelSessionReply) Reset()               { *m = Nat44DelSessionReply{} }
   927  func (*Nat44DelSessionReply) GetMessageName() string { return "nat44_del_session_reply" }
   928  func (*Nat44DelSessionReply) GetCrcString() string   { return "e8d4e804" }
   929  func (*Nat44DelSessionReply) GetMessageType() api.MessageType {
   930  	return api.ReplyMessage
   931  }
   932  
   933  func (m *Nat44DelSessionReply) Size() (size int) {
   934  	if m == nil {
   935  		return 0
   936  	}
   937  	size += 4 // m.Retval
   938  	return size
   939  }
   940  func (m *Nat44DelSessionReply) Marshal(b []byte) ([]byte, error) {
   941  	if b == nil {
   942  		b = make([]byte, m.Size())
   943  	}
   944  	buf := codec.NewBuffer(b)
   945  	buf.EncodeInt32(m.Retval)
   946  	return buf.Bytes(), nil
   947  }
   948  func (m *Nat44DelSessionReply) Unmarshal(b []byte) error {
   949  	buf := codec.NewBuffer(b)
   950  	m.Retval = buf.DecodeInt32()
   951  	return nil
   952  }
   953  
   954  // add/del NAT output interface (postrouting
   955  //
   956  //	       in2out translation)
   957  //	- is_add - true if add, false if delete
   958  //	- sw_if_index - software index of the interface
   959  //
   960  // Nat44EdAddDelOutputInterface defines message 'nat44_ed_add_del_output_interface'.
   961  type Nat44EdAddDelOutputInterface struct {
   962  	IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
   963  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   964  }
   965  
   966  func (m *Nat44EdAddDelOutputInterface) Reset() { *m = Nat44EdAddDelOutputInterface{} }
   967  func (*Nat44EdAddDelOutputInterface) GetMessageName() string {
   968  	return "nat44_ed_add_del_output_interface"
   969  }
   970  func (*Nat44EdAddDelOutputInterface) GetCrcString() string { return "47d6e753" }
   971  func (*Nat44EdAddDelOutputInterface) GetMessageType() api.MessageType {
   972  	return api.RequestMessage
   973  }
   974  
   975  func (m *Nat44EdAddDelOutputInterface) Size() (size int) {
   976  	if m == nil {
   977  		return 0
   978  	}
   979  	size += 1 // m.IsAdd
   980  	size += 4 // m.SwIfIndex
   981  	return size
   982  }
   983  func (m *Nat44EdAddDelOutputInterface) Marshal(b []byte) ([]byte, error) {
   984  	if b == nil {
   985  		b = make([]byte, m.Size())
   986  	}
   987  	buf := codec.NewBuffer(b)
   988  	buf.EncodeBool(m.IsAdd)
   989  	buf.EncodeUint32(uint32(m.SwIfIndex))
   990  	return buf.Bytes(), nil
   991  }
   992  func (m *Nat44EdAddDelOutputInterface) Unmarshal(b []byte) error {
   993  	buf := codec.NewBuffer(b)
   994  	m.IsAdd = buf.DecodeBool()
   995  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   996  	return nil
   997  }
   998  
   999  // Nat44EdAddDelOutputInterfaceReply defines message 'nat44_ed_add_del_output_interface_reply'.
  1000  type Nat44EdAddDelOutputInterfaceReply struct {
  1001  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1002  }
  1003  
  1004  func (m *Nat44EdAddDelOutputInterfaceReply) Reset() { *m = Nat44EdAddDelOutputInterfaceReply{} }
  1005  func (*Nat44EdAddDelOutputInterfaceReply) GetMessageName() string {
  1006  	return "nat44_ed_add_del_output_interface_reply"
  1007  }
  1008  func (*Nat44EdAddDelOutputInterfaceReply) GetCrcString() string { return "e8d4e804" }
  1009  func (*Nat44EdAddDelOutputInterfaceReply) GetMessageType() api.MessageType {
  1010  	return api.ReplyMessage
  1011  }
  1012  
  1013  func (m *Nat44EdAddDelOutputInterfaceReply) Size() (size int) {
  1014  	if m == nil {
  1015  		return 0
  1016  	}
  1017  	size += 4 // m.Retval
  1018  	return size
  1019  }
  1020  func (m *Nat44EdAddDelOutputInterfaceReply) Marshal(b []byte) ([]byte, error) {
  1021  	if b == nil {
  1022  		b = make([]byte, m.Size())
  1023  	}
  1024  	buf := codec.NewBuffer(b)
  1025  	buf.EncodeInt32(m.Retval)
  1026  	return buf.Bytes(), nil
  1027  }
  1028  func (m *Nat44EdAddDelOutputInterfaceReply) Unmarshal(b []byte) error {
  1029  	buf := codec.NewBuffer(b)
  1030  	m.Retval = buf.DecodeInt32()
  1031  	return nil
  1032  }
  1033  
  1034  // Add/del inter VRF NAT44-ED route record
  1035  //   - table_vrf_id - id of the VRF NAT routing table
  1036  //   - vrf_id - id of resolving destination (tx) VRF table
  1037  //   - is_add - if true add else del
  1038  //
  1039  // Nat44EdAddDelVrfRoute defines message 'nat44_ed_add_del_vrf_route'.
  1040  type Nat44EdAddDelVrfRoute struct {
  1041  	TableVrfID uint32 `binapi:"u32,name=table_vrf_id" json:"table_vrf_id,omitempty"`
  1042  	VrfID      uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
  1043  	IsAdd      bool   `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1044  }
  1045  
  1046  func (m *Nat44EdAddDelVrfRoute) Reset()               { *m = Nat44EdAddDelVrfRoute{} }
  1047  func (*Nat44EdAddDelVrfRoute) GetMessageName() string { return "nat44_ed_add_del_vrf_route" }
  1048  func (*Nat44EdAddDelVrfRoute) GetCrcString() string   { return "59187407" }
  1049  func (*Nat44EdAddDelVrfRoute) GetMessageType() api.MessageType {
  1050  	return api.RequestMessage
  1051  }
  1052  
  1053  func (m *Nat44EdAddDelVrfRoute) Size() (size int) {
  1054  	if m == nil {
  1055  		return 0
  1056  	}
  1057  	size += 4 // m.TableVrfID
  1058  	size += 4 // m.VrfID
  1059  	size += 1 // m.IsAdd
  1060  	return size
  1061  }
  1062  func (m *Nat44EdAddDelVrfRoute) Marshal(b []byte) ([]byte, error) {
  1063  	if b == nil {
  1064  		b = make([]byte, m.Size())
  1065  	}
  1066  	buf := codec.NewBuffer(b)
  1067  	buf.EncodeUint32(m.TableVrfID)
  1068  	buf.EncodeUint32(m.VrfID)
  1069  	buf.EncodeBool(m.IsAdd)
  1070  	return buf.Bytes(), nil
  1071  }
  1072  func (m *Nat44EdAddDelVrfRoute) Unmarshal(b []byte) error {
  1073  	buf := codec.NewBuffer(b)
  1074  	m.TableVrfID = buf.DecodeUint32()
  1075  	m.VrfID = buf.DecodeUint32()
  1076  	m.IsAdd = buf.DecodeBool()
  1077  	return nil
  1078  }
  1079  
  1080  // Nat44EdAddDelVrfRouteReply defines message 'nat44_ed_add_del_vrf_route_reply'.
  1081  type Nat44EdAddDelVrfRouteReply struct {
  1082  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1083  }
  1084  
  1085  func (m *Nat44EdAddDelVrfRouteReply) Reset()               { *m = Nat44EdAddDelVrfRouteReply{} }
  1086  func (*Nat44EdAddDelVrfRouteReply) GetMessageName() string { return "nat44_ed_add_del_vrf_route_reply" }
  1087  func (*Nat44EdAddDelVrfRouteReply) GetCrcString() string   { return "e8d4e804" }
  1088  func (*Nat44EdAddDelVrfRouteReply) GetMessageType() api.MessageType {
  1089  	return api.ReplyMessage
  1090  }
  1091  
  1092  func (m *Nat44EdAddDelVrfRouteReply) Size() (size int) {
  1093  	if m == nil {
  1094  		return 0
  1095  	}
  1096  	size += 4 // m.Retval
  1097  	return size
  1098  }
  1099  func (m *Nat44EdAddDelVrfRouteReply) Marshal(b []byte) ([]byte, error) {
  1100  	if b == nil {
  1101  		b = make([]byte, m.Size())
  1102  	}
  1103  	buf := codec.NewBuffer(b)
  1104  	buf.EncodeInt32(m.Retval)
  1105  	return buf.Bytes(), nil
  1106  }
  1107  func (m *Nat44EdAddDelVrfRouteReply) Unmarshal(b []byte) error {
  1108  	buf := codec.NewBuffer(b)
  1109  	m.Retval = buf.DecodeInt32()
  1110  	return nil
  1111  }
  1112  
  1113  // Add/delete inter VRF NAT44-ED routing table
  1114  //   - table_vrf_id - id of (rx) VRF used for resolving
  1115  //     destination (tx) VRF during dynamic
  1116  //     session creation
  1117  //   - is_add - if true add else del
  1118  //
  1119  // Nat44EdAddDelVrfTable defines message 'nat44_ed_add_del_vrf_table'.
  1120  type Nat44EdAddDelVrfTable struct {
  1121  	TableVrfID uint32 `binapi:"u32,name=table_vrf_id" json:"table_vrf_id,omitempty"`
  1122  	IsAdd      bool   `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1123  }
  1124  
  1125  func (m *Nat44EdAddDelVrfTable) Reset()               { *m = Nat44EdAddDelVrfTable{} }
  1126  func (*Nat44EdAddDelVrfTable) GetMessageName() string { return "nat44_ed_add_del_vrf_table" }
  1127  func (*Nat44EdAddDelVrfTable) GetCrcString() string   { return "08330904" }
  1128  func (*Nat44EdAddDelVrfTable) GetMessageType() api.MessageType {
  1129  	return api.RequestMessage
  1130  }
  1131  
  1132  func (m *Nat44EdAddDelVrfTable) Size() (size int) {
  1133  	if m == nil {
  1134  		return 0
  1135  	}
  1136  	size += 4 // m.TableVrfID
  1137  	size += 1 // m.IsAdd
  1138  	return size
  1139  }
  1140  func (m *Nat44EdAddDelVrfTable) Marshal(b []byte) ([]byte, error) {
  1141  	if b == nil {
  1142  		b = make([]byte, m.Size())
  1143  	}
  1144  	buf := codec.NewBuffer(b)
  1145  	buf.EncodeUint32(m.TableVrfID)
  1146  	buf.EncodeBool(m.IsAdd)
  1147  	return buf.Bytes(), nil
  1148  }
  1149  func (m *Nat44EdAddDelVrfTable) Unmarshal(b []byte) error {
  1150  	buf := codec.NewBuffer(b)
  1151  	m.TableVrfID = buf.DecodeUint32()
  1152  	m.IsAdd = buf.DecodeBool()
  1153  	return nil
  1154  }
  1155  
  1156  // Nat44EdAddDelVrfTableReply defines message 'nat44_ed_add_del_vrf_table_reply'.
  1157  type Nat44EdAddDelVrfTableReply struct {
  1158  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1159  }
  1160  
  1161  func (m *Nat44EdAddDelVrfTableReply) Reset()               { *m = Nat44EdAddDelVrfTableReply{} }
  1162  func (*Nat44EdAddDelVrfTableReply) GetMessageName() string { return "nat44_ed_add_del_vrf_table_reply" }
  1163  func (*Nat44EdAddDelVrfTableReply) GetCrcString() string   { return "e8d4e804" }
  1164  func (*Nat44EdAddDelVrfTableReply) GetMessageType() api.MessageType {
  1165  	return api.ReplyMessage
  1166  }
  1167  
  1168  func (m *Nat44EdAddDelVrfTableReply) Size() (size int) {
  1169  	if m == nil {
  1170  		return 0
  1171  	}
  1172  	size += 4 // m.Retval
  1173  	return size
  1174  }
  1175  func (m *Nat44EdAddDelVrfTableReply) Marshal(b []byte) ([]byte, error) {
  1176  	if b == nil {
  1177  		b = make([]byte, m.Size())
  1178  	}
  1179  	buf := codec.NewBuffer(b)
  1180  	buf.EncodeInt32(m.Retval)
  1181  	return buf.Bytes(), nil
  1182  }
  1183  func (m *Nat44EdAddDelVrfTableReply) Unmarshal(b []byte) error {
  1184  	buf := codec.NewBuffer(b)
  1185  	m.Retval = buf.DecodeInt32()
  1186  	return nil
  1187  }
  1188  
  1189  // Nat44EdOutputInterfaceDetails defines message 'nat44_ed_output_interface_details'.
  1190  type Nat44EdOutputInterfaceDetails struct {
  1191  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  1192  }
  1193  
  1194  func (m *Nat44EdOutputInterfaceDetails) Reset() { *m = Nat44EdOutputInterfaceDetails{} }
  1195  func (*Nat44EdOutputInterfaceDetails) GetMessageName() string {
  1196  	return "nat44_ed_output_interface_details"
  1197  }
  1198  func (*Nat44EdOutputInterfaceDetails) GetCrcString() string { return "0b45011c" }
  1199  func (*Nat44EdOutputInterfaceDetails) GetMessageType() api.MessageType {
  1200  	return api.ReplyMessage
  1201  }
  1202  
  1203  func (m *Nat44EdOutputInterfaceDetails) Size() (size int) {
  1204  	if m == nil {
  1205  		return 0
  1206  	}
  1207  	size += 4 // m.SwIfIndex
  1208  	return size
  1209  }
  1210  func (m *Nat44EdOutputInterfaceDetails) Marshal(b []byte) ([]byte, error) {
  1211  	if b == nil {
  1212  		b = make([]byte, m.Size())
  1213  	}
  1214  	buf := codec.NewBuffer(b)
  1215  	buf.EncodeUint32(uint32(m.SwIfIndex))
  1216  	return buf.Bytes(), nil
  1217  }
  1218  func (m *Nat44EdOutputInterfaceDetails) Unmarshal(b []byte) error {
  1219  	buf := codec.NewBuffer(b)
  1220  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1221  	return nil
  1222  }
  1223  
  1224  // Nat44EdOutputInterfaceGet defines message 'nat44_ed_output_interface_get'.
  1225  type Nat44EdOutputInterfaceGet struct {
  1226  	Cursor uint32 `binapi:"u32,name=cursor" json:"cursor,omitempty"`
  1227  }
  1228  
  1229  func (m *Nat44EdOutputInterfaceGet) Reset()               { *m = Nat44EdOutputInterfaceGet{} }
  1230  func (*Nat44EdOutputInterfaceGet) GetMessageName() string { return "nat44_ed_output_interface_get" }
  1231  func (*Nat44EdOutputInterfaceGet) GetCrcString() string   { return "f75ba505" }
  1232  func (*Nat44EdOutputInterfaceGet) GetMessageType() api.MessageType {
  1233  	return api.RequestMessage
  1234  }
  1235  
  1236  func (m *Nat44EdOutputInterfaceGet) Size() (size int) {
  1237  	if m == nil {
  1238  		return 0
  1239  	}
  1240  	size += 4 // m.Cursor
  1241  	return size
  1242  }
  1243  func (m *Nat44EdOutputInterfaceGet) Marshal(b []byte) ([]byte, error) {
  1244  	if b == nil {
  1245  		b = make([]byte, m.Size())
  1246  	}
  1247  	buf := codec.NewBuffer(b)
  1248  	buf.EncodeUint32(m.Cursor)
  1249  	return buf.Bytes(), nil
  1250  }
  1251  func (m *Nat44EdOutputInterfaceGet) Unmarshal(b []byte) error {
  1252  	buf := codec.NewBuffer(b)
  1253  	m.Cursor = buf.DecodeUint32()
  1254  	return nil
  1255  }
  1256  
  1257  // Nat44EdOutputInterfaceGetReply defines message 'nat44_ed_output_interface_get_reply'.
  1258  type Nat44EdOutputInterfaceGetReply struct {
  1259  	Retval int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1260  	Cursor uint32 `binapi:"u32,name=cursor" json:"cursor,omitempty"`
  1261  }
  1262  
  1263  func (m *Nat44EdOutputInterfaceGetReply) Reset() { *m = Nat44EdOutputInterfaceGetReply{} }
  1264  func (*Nat44EdOutputInterfaceGetReply) GetMessageName() string {
  1265  	return "nat44_ed_output_interface_get_reply"
  1266  }
  1267  func (*Nat44EdOutputInterfaceGetReply) GetCrcString() string { return "53b48f5d" }
  1268  func (*Nat44EdOutputInterfaceGetReply) GetMessageType() api.MessageType {
  1269  	return api.ReplyMessage
  1270  }
  1271  
  1272  func (m *Nat44EdOutputInterfaceGetReply) Size() (size int) {
  1273  	if m == nil {
  1274  		return 0
  1275  	}
  1276  	size += 4 // m.Retval
  1277  	size += 4 // m.Cursor
  1278  	return size
  1279  }
  1280  func (m *Nat44EdOutputInterfaceGetReply) Marshal(b []byte) ([]byte, error) {
  1281  	if b == nil {
  1282  		b = make([]byte, m.Size())
  1283  	}
  1284  	buf := codec.NewBuffer(b)
  1285  	buf.EncodeInt32(m.Retval)
  1286  	buf.EncodeUint32(m.Cursor)
  1287  	return buf.Bytes(), nil
  1288  }
  1289  func (m *Nat44EdOutputInterfaceGetReply) Unmarshal(b []byte) error {
  1290  	buf := codec.NewBuffer(b)
  1291  	m.Retval = buf.DecodeInt32()
  1292  	m.Cursor = buf.DecodeUint32()
  1293  	return nil
  1294  }
  1295  
  1296  // Enable/disable NAT44ED plugin
  1297  //   - inside_vrf - inside vrf id
  1298  //   - outside_vrf - outside vrf id
  1299  //   - sessions - maximum number of sessions per thread
  1300  //   - session_memory - overwrite hash allocation parameter
  1301  //   - enable - true if enable, false if disable
  1302  //   - flags - flag NAT44_IS_STATIC_MAPPING_ONLY,
  1303  //     NAT44_IS_CONNECTION_TRACKING
  1304  //
  1305  // Nat44EdPluginEnableDisable defines message 'nat44_ed_plugin_enable_disable'.
  1306  type Nat44EdPluginEnableDisable struct {
  1307  	InsideVrf     uint32           `binapi:"u32,name=inside_vrf" json:"inside_vrf,omitempty"`
  1308  	OutsideVrf    uint32           `binapi:"u32,name=outside_vrf" json:"outside_vrf,omitempty"`
  1309  	Sessions      uint32           `binapi:"u32,name=sessions" json:"sessions,omitempty"`
  1310  	SessionMemory uint32           `binapi:"u32,name=session_memory" json:"session_memory,omitempty"`
  1311  	Enable        bool             `binapi:"bool,name=enable" json:"enable,omitempty"`
  1312  	Flags         Nat44ConfigFlags `binapi:"nat44_config_flags,name=flags" json:"flags,omitempty"`
  1313  }
  1314  
  1315  func (m *Nat44EdPluginEnableDisable) Reset()               { *m = Nat44EdPluginEnableDisable{} }
  1316  func (*Nat44EdPluginEnableDisable) GetMessageName() string { return "nat44_ed_plugin_enable_disable" }
  1317  func (*Nat44EdPluginEnableDisable) GetCrcString() string   { return "be17f8dd" }
  1318  func (*Nat44EdPluginEnableDisable) GetMessageType() api.MessageType {
  1319  	return api.RequestMessage
  1320  }
  1321  
  1322  func (m *Nat44EdPluginEnableDisable) Size() (size int) {
  1323  	if m == nil {
  1324  		return 0
  1325  	}
  1326  	size += 4 // m.InsideVrf
  1327  	size += 4 // m.OutsideVrf
  1328  	size += 4 // m.Sessions
  1329  	size += 4 // m.SessionMemory
  1330  	size += 1 // m.Enable
  1331  	size += 1 // m.Flags
  1332  	return size
  1333  }
  1334  func (m *Nat44EdPluginEnableDisable) Marshal(b []byte) ([]byte, error) {
  1335  	if b == nil {
  1336  		b = make([]byte, m.Size())
  1337  	}
  1338  	buf := codec.NewBuffer(b)
  1339  	buf.EncodeUint32(m.InsideVrf)
  1340  	buf.EncodeUint32(m.OutsideVrf)
  1341  	buf.EncodeUint32(m.Sessions)
  1342  	buf.EncodeUint32(m.SessionMemory)
  1343  	buf.EncodeBool(m.Enable)
  1344  	buf.EncodeUint8(uint8(m.Flags))
  1345  	return buf.Bytes(), nil
  1346  }
  1347  func (m *Nat44EdPluginEnableDisable) Unmarshal(b []byte) error {
  1348  	buf := codec.NewBuffer(b)
  1349  	m.InsideVrf = buf.DecodeUint32()
  1350  	m.OutsideVrf = buf.DecodeUint32()
  1351  	m.Sessions = buf.DecodeUint32()
  1352  	m.SessionMemory = buf.DecodeUint32()
  1353  	m.Enable = buf.DecodeBool()
  1354  	m.Flags = Nat44ConfigFlags(buf.DecodeUint8())
  1355  	return nil
  1356  }
  1357  
  1358  // Nat44EdPluginEnableDisableReply defines message 'nat44_ed_plugin_enable_disable_reply'.
  1359  type Nat44EdPluginEnableDisableReply struct {
  1360  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1361  }
  1362  
  1363  func (m *Nat44EdPluginEnableDisableReply) Reset() { *m = Nat44EdPluginEnableDisableReply{} }
  1364  func (*Nat44EdPluginEnableDisableReply) GetMessageName() string {
  1365  	return "nat44_ed_plugin_enable_disable_reply"
  1366  }
  1367  func (*Nat44EdPluginEnableDisableReply) GetCrcString() string { return "e8d4e804" }
  1368  func (*Nat44EdPluginEnableDisableReply) GetMessageType() api.MessageType {
  1369  	return api.ReplyMessage
  1370  }
  1371  
  1372  func (m *Nat44EdPluginEnableDisableReply) Size() (size int) {
  1373  	if m == nil {
  1374  		return 0
  1375  	}
  1376  	size += 4 // m.Retval
  1377  	return size
  1378  }
  1379  func (m *Nat44EdPluginEnableDisableReply) Marshal(b []byte) ([]byte, error) {
  1380  	if b == nil {
  1381  		b = make([]byte, m.Size())
  1382  	}
  1383  	buf := codec.NewBuffer(b)
  1384  	buf.EncodeInt32(m.Retval)
  1385  	return buf.Bytes(), nil
  1386  }
  1387  func (m *Nat44EdPluginEnableDisableReply) Unmarshal(b []byte) error {
  1388  	buf := codec.NewBuffer(b)
  1389  	m.Retval = buf.DecodeInt32()
  1390  	return nil
  1391  }
  1392  
  1393  // Set NAT handoff frame queue options
  1394  //   - frame_queue_nelts - number of worker handoff frame queue elements
  1395  //
  1396  // Nat44EdSetFqOptions defines message 'nat44_ed_set_fq_options'.
  1397  type Nat44EdSetFqOptions struct {
  1398  	FrameQueueNelts uint32 `binapi:"u32,name=frame_queue_nelts" json:"frame_queue_nelts,omitempty"`
  1399  }
  1400  
  1401  func (m *Nat44EdSetFqOptions) Reset()               { *m = Nat44EdSetFqOptions{} }
  1402  func (*Nat44EdSetFqOptions) GetMessageName() string { return "nat44_ed_set_fq_options" }
  1403  func (*Nat44EdSetFqOptions) GetCrcString() string   { return "2399bd71" }
  1404  func (*Nat44EdSetFqOptions) GetMessageType() api.MessageType {
  1405  	return api.RequestMessage
  1406  }
  1407  
  1408  func (m *Nat44EdSetFqOptions) Size() (size int) {
  1409  	if m == nil {
  1410  		return 0
  1411  	}
  1412  	size += 4 // m.FrameQueueNelts
  1413  	return size
  1414  }
  1415  func (m *Nat44EdSetFqOptions) Marshal(b []byte) ([]byte, error) {
  1416  	if b == nil {
  1417  		b = make([]byte, m.Size())
  1418  	}
  1419  	buf := codec.NewBuffer(b)
  1420  	buf.EncodeUint32(m.FrameQueueNelts)
  1421  	return buf.Bytes(), nil
  1422  }
  1423  func (m *Nat44EdSetFqOptions) Unmarshal(b []byte) error {
  1424  	buf := codec.NewBuffer(b)
  1425  	m.FrameQueueNelts = buf.DecodeUint32()
  1426  	return nil
  1427  }
  1428  
  1429  // Nat44EdSetFqOptionsReply defines message 'nat44_ed_set_fq_options_reply'.
  1430  type Nat44EdSetFqOptionsReply struct {
  1431  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1432  }
  1433  
  1434  func (m *Nat44EdSetFqOptionsReply) Reset()               { *m = Nat44EdSetFqOptionsReply{} }
  1435  func (*Nat44EdSetFqOptionsReply) GetMessageName() string { return "nat44_ed_set_fq_options_reply" }
  1436  func (*Nat44EdSetFqOptionsReply) GetCrcString() string   { return "e8d4e804" }
  1437  func (*Nat44EdSetFqOptionsReply) GetMessageType() api.MessageType {
  1438  	return api.ReplyMessage
  1439  }
  1440  
  1441  func (m *Nat44EdSetFqOptionsReply) Size() (size int) {
  1442  	if m == nil {
  1443  		return 0
  1444  	}
  1445  	size += 4 // m.Retval
  1446  	return size
  1447  }
  1448  func (m *Nat44EdSetFqOptionsReply) Marshal(b []byte) ([]byte, error) {
  1449  	if b == nil {
  1450  		b = make([]byte, m.Size())
  1451  	}
  1452  	buf := codec.NewBuffer(b)
  1453  	buf.EncodeInt32(m.Retval)
  1454  	return buf.Bytes(), nil
  1455  }
  1456  func (m *Nat44EdSetFqOptionsReply) Unmarshal(b []byte) error {
  1457  	buf := codec.NewBuffer(b)
  1458  	m.Retval = buf.DecodeInt32()
  1459  	return nil
  1460  }
  1461  
  1462  // Show NAT handoff frame queue options
  1463  // Nat44EdShowFqOptions defines message 'nat44_ed_show_fq_options'.
  1464  type Nat44EdShowFqOptions struct{}
  1465  
  1466  func (m *Nat44EdShowFqOptions) Reset()               { *m = Nat44EdShowFqOptions{} }
  1467  func (*Nat44EdShowFqOptions) GetMessageName() string { return "nat44_ed_show_fq_options" }
  1468  func (*Nat44EdShowFqOptions) GetCrcString() string   { return "51077d14" }
  1469  func (*Nat44EdShowFqOptions) GetMessageType() api.MessageType {
  1470  	return api.RequestMessage
  1471  }
  1472  
  1473  func (m *Nat44EdShowFqOptions) Size() (size int) {
  1474  	if m == nil {
  1475  		return 0
  1476  	}
  1477  	return size
  1478  }
  1479  func (m *Nat44EdShowFqOptions) Marshal(b []byte) ([]byte, error) {
  1480  	if b == nil {
  1481  		b = make([]byte, m.Size())
  1482  	}
  1483  	buf := codec.NewBuffer(b)
  1484  	return buf.Bytes(), nil
  1485  }
  1486  func (m *Nat44EdShowFqOptions) Unmarshal(b []byte) error {
  1487  	return nil
  1488  }
  1489  
  1490  // Show NAT handoff frame queue options reply
  1491  //   - retval - return code for the request
  1492  //   - frame_queue_nelts - number of worker handoff frame queue elements
  1493  //
  1494  // Nat44EdShowFqOptionsReply defines message 'nat44_ed_show_fq_options_reply'.
  1495  type Nat44EdShowFqOptionsReply struct {
  1496  	Retval          int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1497  	FrameQueueNelts uint32 `binapi:"u32,name=frame_queue_nelts" json:"frame_queue_nelts,omitempty"`
  1498  }
  1499  
  1500  func (m *Nat44EdShowFqOptionsReply) Reset()               { *m = Nat44EdShowFqOptionsReply{} }
  1501  func (*Nat44EdShowFqOptionsReply) GetMessageName() string { return "nat44_ed_show_fq_options_reply" }
  1502  func (*Nat44EdShowFqOptionsReply) GetCrcString() string   { return "7213b545" }
  1503  func (*Nat44EdShowFqOptionsReply) GetMessageType() api.MessageType {
  1504  	return api.ReplyMessage
  1505  }
  1506  
  1507  func (m *Nat44EdShowFqOptionsReply) Size() (size int) {
  1508  	if m == nil {
  1509  		return 0
  1510  	}
  1511  	size += 4 // m.Retval
  1512  	size += 4 // m.FrameQueueNelts
  1513  	return size
  1514  }
  1515  func (m *Nat44EdShowFqOptionsReply) Marshal(b []byte) ([]byte, error) {
  1516  	if b == nil {
  1517  		b = make([]byte, m.Size())
  1518  	}
  1519  	buf := codec.NewBuffer(b)
  1520  	buf.EncodeInt32(m.Retval)
  1521  	buf.EncodeUint32(m.FrameQueueNelts)
  1522  	return buf.Bytes(), nil
  1523  }
  1524  func (m *Nat44EdShowFqOptionsReply) Unmarshal(b []byte) error {
  1525  	buf := codec.NewBuffer(b)
  1526  	m.Retval = buf.DecodeInt32()
  1527  	m.FrameQueueNelts = buf.DecodeUint32()
  1528  	return nil
  1529  }
  1530  
  1531  // NAT44-ED inter VRF NAT routing table details response
  1532  //   - table_vrf_id - id of the VRF NAT routing table
  1533  //   - n_vrf_ids - number of vrf_ids
  1534  //   - vrf_ids - ids of resolving destination (tx) VRFs
  1535  //
  1536  // Nat44EdVrfTablesDetails defines message 'nat44_ed_vrf_tables_details'.
  1537  // Deprecated: the message will be removed in the future versions
  1538  type Nat44EdVrfTablesDetails struct {
  1539  	TableVrfID uint32   `binapi:"u32,name=table_vrf_id" json:"table_vrf_id,omitempty"`
  1540  	NVrfIds    uint32   `binapi:"u32,name=n_vrf_ids" json:"-"`
  1541  	VrfIds     []uint32 `binapi:"u32[n_vrf_ids],name=vrf_ids" json:"vrf_ids,omitempty"`
  1542  }
  1543  
  1544  func (m *Nat44EdVrfTablesDetails) Reset()               { *m = Nat44EdVrfTablesDetails{} }
  1545  func (*Nat44EdVrfTablesDetails) GetMessageName() string { return "nat44_ed_vrf_tables_details" }
  1546  func (*Nat44EdVrfTablesDetails) GetCrcString() string   { return "7b264e4f" }
  1547  func (*Nat44EdVrfTablesDetails) GetMessageType() api.MessageType {
  1548  	return api.ReplyMessage
  1549  }
  1550  
  1551  func (m *Nat44EdVrfTablesDetails) Size() (size int) {
  1552  	if m == nil {
  1553  		return 0
  1554  	}
  1555  	size += 4                 // m.TableVrfID
  1556  	size += 4                 // m.NVrfIds
  1557  	size += 4 * len(m.VrfIds) // m.VrfIds
  1558  	return size
  1559  }
  1560  func (m *Nat44EdVrfTablesDetails) Marshal(b []byte) ([]byte, error) {
  1561  	if b == nil {
  1562  		b = make([]byte, m.Size())
  1563  	}
  1564  	buf := codec.NewBuffer(b)
  1565  	buf.EncodeUint32(m.TableVrfID)
  1566  	buf.EncodeUint32(uint32(len(m.VrfIds)))
  1567  	for i := 0; i < len(m.VrfIds); i++ {
  1568  		var x uint32
  1569  		if i < len(m.VrfIds) {
  1570  			x = uint32(m.VrfIds[i])
  1571  		}
  1572  		buf.EncodeUint32(x)
  1573  	}
  1574  	return buf.Bytes(), nil
  1575  }
  1576  func (m *Nat44EdVrfTablesDetails) Unmarshal(b []byte) error {
  1577  	buf := codec.NewBuffer(b)
  1578  	m.TableVrfID = buf.DecodeUint32()
  1579  	m.NVrfIds = buf.DecodeUint32()
  1580  	m.VrfIds = make([]uint32, m.NVrfIds)
  1581  	for i := 0; i < len(m.VrfIds); i++ {
  1582  		m.VrfIds[i] = buf.DecodeUint32()
  1583  	}
  1584  	return nil
  1585  }
  1586  
  1587  // Dump NAT44-ED inter VRF NAT routing tables
  1588  // Nat44EdVrfTablesDump defines message 'nat44_ed_vrf_tables_dump'.
  1589  // Deprecated: the message will be removed in the future versions
  1590  type Nat44EdVrfTablesDump struct{}
  1591  
  1592  func (m *Nat44EdVrfTablesDump) Reset()               { *m = Nat44EdVrfTablesDump{} }
  1593  func (*Nat44EdVrfTablesDump) GetMessageName() string { return "nat44_ed_vrf_tables_dump" }
  1594  func (*Nat44EdVrfTablesDump) GetCrcString() string   { return "51077d14" }
  1595  func (*Nat44EdVrfTablesDump) GetMessageType() api.MessageType {
  1596  	return api.RequestMessage
  1597  }
  1598  
  1599  func (m *Nat44EdVrfTablesDump) Size() (size int) {
  1600  	if m == nil {
  1601  		return 0
  1602  	}
  1603  	return size
  1604  }
  1605  func (m *Nat44EdVrfTablesDump) Marshal(b []byte) ([]byte, error) {
  1606  	if b == nil {
  1607  		b = make([]byte, m.Size())
  1608  	}
  1609  	buf := codec.NewBuffer(b)
  1610  	return buf.Bytes(), nil
  1611  }
  1612  func (m *Nat44EdVrfTablesDump) Unmarshal(b []byte) error {
  1613  	return nil
  1614  }
  1615  
  1616  // NAT44-ED inter VRF NAT routing table details response
  1617  //   - table_vrf_id - id of the VRF NAT routing table
  1618  //   - n_vrf_ids - number of vrf_ids
  1619  //   - vrf_ids - ids of resolving destination (tx) VRFs
  1620  //
  1621  // Nat44EdVrfTablesV2Details defines message 'nat44_ed_vrf_tables_v2_details'.
  1622  // InProgress: the message form may change in the future versions
  1623  type Nat44EdVrfTablesV2Details struct {
  1624  	TableVrfID uint32   `binapi:"u32,name=table_vrf_id" json:"table_vrf_id,omitempty"`
  1625  	NVrfIds    uint32   `binapi:"u32,name=n_vrf_ids" json:"-"`
  1626  	VrfIds     []uint32 `binapi:"u32[n_vrf_ids],name=vrf_ids" json:"vrf_ids,omitempty"`
  1627  }
  1628  
  1629  func (m *Nat44EdVrfTablesV2Details) Reset()               { *m = Nat44EdVrfTablesV2Details{} }
  1630  func (*Nat44EdVrfTablesV2Details) GetMessageName() string { return "nat44_ed_vrf_tables_v2_details" }
  1631  func (*Nat44EdVrfTablesV2Details) GetCrcString() string   { return "7b264e4f" }
  1632  func (*Nat44EdVrfTablesV2Details) GetMessageType() api.MessageType {
  1633  	return api.ReplyMessage
  1634  }
  1635  
  1636  func (m *Nat44EdVrfTablesV2Details) Size() (size int) {
  1637  	if m == nil {
  1638  		return 0
  1639  	}
  1640  	size += 4                 // m.TableVrfID
  1641  	size += 4                 // m.NVrfIds
  1642  	size += 4 * len(m.VrfIds) // m.VrfIds
  1643  	return size
  1644  }
  1645  func (m *Nat44EdVrfTablesV2Details) Marshal(b []byte) ([]byte, error) {
  1646  	if b == nil {
  1647  		b = make([]byte, m.Size())
  1648  	}
  1649  	buf := codec.NewBuffer(b)
  1650  	buf.EncodeUint32(m.TableVrfID)
  1651  	buf.EncodeUint32(uint32(len(m.VrfIds)))
  1652  	for i := 0; i < len(m.VrfIds); i++ {
  1653  		var x uint32
  1654  		if i < len(m.VrfIds) {
  1655  			x = uint32(m.VrfIds[i])
  1656  		}
  1657  		buf.EncodeUint32(x)
  1658  	}
  1659  	return buf.Bytes(), nil
  1660  }
  1661  func (m *Nat44EdVrfTablesV2Details) Unmarshal(b []byte) error {
  1662  	buf := codec.NewBuffer(b)
  1663  	m.TableVrfID = buf.DecodeUint32()
  1664  	m.NVrfIds = buf.DecodeUint32()
  1665  	m.VrfIds = make([]uint32, m.NVrfIds)
  1666  	for i := 0; i < len(m.VrfIds); i++ {
  1667  		m.VrfIds[i] = buf.DecodeUint32()
  1668  	}
  1669  	return nil
  1670  }
  1671  
  1672  // Dump NAT44-ED inter VRF NAT routing tables
  1673  // Nat44EdVrfTablesV2Dump defines message 'nat44_ed_vrf_tables_v2_dump'.
  1674  // InProgress: the message form may change in the future versions
  1675  type Nat44EdVrfTablesV2Dump struct{}
  1676  
  1677  func (m *Nat44EdVrfTablesV2Dump) Reset()               { *m = Nat44EdVrfTablesV2Dump{} }
  1678  func (*Nat44EdVrfTablesV2Dump) GetMessageName() string { return "nat44_ed_vrf_tables_v2_dump" }
  1679  func (*Nat44EdVrfTablesV2Dump) GetCrcString() string   { return "51077d14" }
  1680  func (*Nat44EdVrfTablesV2Dump) GetMessageType() api.MessageType {
  1681  	return api.RequestMessage
  1682  }
  1683  
  1684  func (m *Nat44EdVrfTablesV2Dump) Size() (size int) {
  1685  	if m == nil {
  1686  		return 0
  1687  	}
  1688  	return size
  1689  }
  1690  func (m *Nat44EdVrfTablesV2Dump) Marshal(b []byte) ([]byte, error) {
  1691  	if b == nil {
  1692  		b = make([]byte, m.Size())
  1693  	}
  1694  	buf := codec.NewBuffer(b)
  1695  	return buf.Bytes(), nil
  1696  }
  1697  func (m *Nat44EdVrfTablesV2Dump) Unmarshal(b []byte) error {
  1698  	return nil
  1699  }
  1700  
  1701  // Enable/disable forwarding for NAT44
  1702  //
  1703  //	Forward packets which don't match existing translation
  1704  //	or static mapping instead of dropping them.
  1705  //	- enable - true for enable, false for disable
  1706  //
  1707  // Nat44ForwardingEnableDisable defines message 'nat44_forwarding_enable_disable'.
  1708  // Deprecated: the message will be removed in the future versions
  1709  type Nat44ForwardingEnableDisable struct {
  1710  	Enable bool `binapi:"bool,name=enable" json:"enable,omitempty"`
  1711  }
  1712  
  1713  func (m *Nat44ForwardingEnableDisable) Reset() { *m = Nat44ForwardingEnableDisable{} }
  1714  func (*Nat44ForwardingEnableDisable) GetMessageName() string {
  1715  	return "nat44_forwarding_enable_disable"
  1716  }
  1717  func (*Nat44ForwardingEnableDisable) GetCrcString() string { return "b3e225d2" }
  1718  func (*Nat44ForwardingEnableDisable) GetMessageType() api.MessageType {
  1719  	return api.RequestMessage
  1720  }
  1721  
  1722  func (m *Nat44ForwardingEnableDisable) Size() (size int) {
  1723  	if m == nil {
  1724  		return 0
  1725  	}
  1726  	size += 1 // m.Enable
  1727  	return size
  1728  }
  1729  func (m *Nat44ForwardingEnableDisable) Marshal(b []byte) ([]byte, error) {
  1730  	if b == nil {
  1731  		b = make([]byte, m.Size())
  1732  	}
  1733  	buf := codec.NewBuffer(b)
  1734  	buf.EncodeBool(m.Enable)
  1735  	return buf.Bytes(), nil
  1736  }
  1737  func (m *Nat44ForwardingEnableDisable) Unmarshal(b []byte) error {
  1738  	buf := codec.NewBuffer(b)
  1739  	m.Enable = buf.DecodeBool()
  1740  	return nil
  1741  }
  1742  
  1743  // Nat44ForwardingEnableDisableReply defines message 'nat44_forwarding_enable_disable_reply'.
  1744  // Deprecated: the message will be removed in the future versions
  1745  type Nat44ForwardingEnableDisableReply struct {
  1746  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1747  }
  1748  
  1749  func (m *Nat44ForwardingEnableDisableReply) Reset() { *m = Nat44ForwardingEnableDisableReply{} }
  1750  func (*Nat44ForwardingEnableDisableReply) GetMessageName() string {
  1751  	return "nat44_forwarding_enable_disable_reply"
  1752  }
  1753  func (*Nat44ForwardingEnableDisableReply) GetCrcString() string { return "e8d4e804" }
  1754  func (*Nat44ForwardingEnableDisableReply) GetMessageType() api.MessageType {
  1755  	return api.ReplyMessage
  1756  }
  1757  
  1758  func (m *Nat44ForwardingEnableDisableReply) Size() (size int) {
  1759  	if m == nil {
  1760  		return 0
  1761  	}
  1762  	size += 4 // m.Retval
  1763  	return size
  1764  }
  1765  func (m *Nat44ForwardingEnableDisableReply) Marshal(b []byte) ([]byte, error) {
  1766  	if b == nil {
  1767  		b = make([]byte, m.Size())
  1768  	}
  1769  	buf := codec.NewBuffer(b)
  1770  	buf.EncodeInt32(m.Retval)
  1771  	return buf.Bytes(), nil
  1772  }
  1773  func (m *Nat44ForwardingEnableDisableReply) Unmarshal(b []byte) error {
  1774  	buf := codec.NewBuffer(b)
  1775  	m.Retval = buf.DecodeInt32()
  1776  	return nil
  1777  }
  1778  
  1779  // NAT44 identity mapping details response
  1780  //   - flags - flag NAT_ADDR_ONLY if address only mapping
  1781  //   - ip_address - IPv4 address
  1782  //   - protocol - IP protocol
  1783  //   - port - port number
  1784  //   - sw_if_index - interface
  1785  //   - vfr_id - VRF ID
  1786  //   - tag - opaque string tag
  1787  //
  1788  // Nat44IdentityMappingDetails defines message 'nat44_identity_mapping_details'.
  1789  type Nat44IdentityMappingDetails struct {
  1790  	Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
  1791  	IPAddress ip_types.IP4Address            `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
  1792  	Protocol  uint8                          `binapi:"u8,name=protocol" json:"protocol,omitempty"`
  1793  	Port      uint16                         `binapi:"u16,name=port" json:"port,omitempty"`
  1794  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  1795  	VrfID     uint32                         `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
  1796  	Tag       string                         `binapi:"string[64],name=tag" json:"tag,omitempty"`
  1797  }
  1798  
  1799  func (m *Nat44IdentityMappingDetails) Reset()               { *m = Nat44IdentityMappingDetails{} }
  1800  func (*Nat44IdentityMappingDetails) GetMessageName() string { return "nat44_identity_mapping_details" }
  1801  func (*Nat44IdentityMappingDetails) GetCrcString() string   { return "2a52a030" }
  1802  func (*Nat44IdentityMappingDetails) GetMessageType() api.MessageType {
  1803  	return api.ReplyMessage
  1804  }
  1805  
  1806  func (m *Nat44IdentityMappingDetails) Size() (size int) {
  1807  	if m == nil {
  1808  		return 0
  1809  	}
  1810  	size += 1     // m.Flags
  1811  	size += 1 * 4 // m.IPAddress
  1812  	size += 1     // m.Protocol
  1813  	size += 2     // m.Port
  1814  	size += 4     // m.SwIfIndex
  1815  	size += 4     // m.VrfID
  1816  	size += 64    // m.Tag
  1817  	return size
  1818  }
  1819  func (m *Nat44IdentityMappingDetails) Marshal(b []byte) ([]byte, error) {
  1820  	if b == nil {
  1821  		b = make([]byte, m.Size())
  1822  	}
  1823  	buf := codec.NewBuffer(b)
  1824  	buf.EncodeUint8(uint8(m.Flags))
  1825  	buf.EncodeBytes(m.IPAddress[:], 4)
  1826  	buf.EncodeUint8(m.Protocol)
  1827  	buf.EncodeUint16(m.Port)
  1828  	buf.EncodeUint32(uint32(m.SwIfIndex))
  1829  	buf.EncodeUint32(m.VrfID)
  1830  	buf.EncodeString(m.Tag, 64)
  1831  	return buf.Bytes(), nil
  1832  }
  1833  func (m *Nat44IdentityMappingDetails) Unmarshal(b []byte) error {
  1834  	buf := codec.NewBuffer(b)
  1835  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
  1836  	copy(m.IPAddress[:], buf.DecodeBytes(4))
  1837  	m.Protocol = buf.DecodeUint8()
  1838  	m.Port = buf.DecodeUint16()
  1839  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1840  	m.VrfID = buf.DecodeUint32()
  1841  	m.Tag = buf.DecodeString(64)
  1842  	return nil
  1843  }
  1844  
  1845  // Dump NAT44 identity mappings
  1846  // Nat44IdentityMappingDump defines message 'nat44_identity_mapping_dump'.
  1847  type Nat44IdentityMappingDump struct{}
  1848  
  1849  func (m *Nat44IdentityMappingDump) Reset()               { *m = Nat44IdentityMappingDump{} }
  1850  func (*Nat44IdentityMappingDump) GetMessageName() string { return "nat44_identity_mapping_dump" }
  1851  func (*Nat44IdentityMappingDump) GetCrcString() string   { return "51077d14" }
  1852  func (*Nat44IdentityMappingDump) GetMessageType() api.MessageType {
  1853  	return api.RequestMessage
  1854  }
  1855  
  1856  func (m *Nat44IdentityMappingDump) Size() (size int) {
  1857  	if m == nil {
  1858  		return 0
  1859  	}
  1860  	return size
  1861  }
  1862  func (m *Nat44IdentityMappingDump) Marshal(b []byte) ([]byte, error) {
  1863  	if b == nil {
  1864  		b = make([]byte, m.Size())
  1865  	}
  1866  	buf := codec.NewBuffer(b)
  1867  	return buf.Bytes(), nil
  1868  }
  1869  func (m *Nat44IdentityMappingDump) Unmarshal(b []byte) error {
  1870  	return nil
  1871  }
  1872  
  1873  // Enable/disable NAT44 feature on the interface
  1874  //   - is_add - true if add, false if delete
  1875  //   - flags - flag NAT_IS_INSIDE if interface is inside else
  1876  //     interface is outside
  1877  //   - sw_if_index - software index of the interface
  1878  //
  1879  // Nat44InterfaceAddDelFeature defines message 'nat44_interface_add_del_feature'.
  1880  type Nat44InterfaceAddDelFeature struct {
  1881  	IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  1882  	Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
  1883  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  1884  }
  1885  
  1886  func (m *Nat44InterfaceAddDelFeature) Reset()               { *m = Nat44InterfaceAddDelFeature{} }
  1887  func (*Nat44InterfaceAddDelFeature) GetMessageName() string { return "nat44_interface_add_del_feature" }
  1888  func (*Nat44InterfaceAddDelFeature) GetCrcString() string   { return "f3699b83" }
  1889  func (*Nat44InterfaceAddDelFeature) GetMessageType() api.MessageType {
  1890  	return api.RequestMessage
  1891  }
  1892  
  1893  func (m *Nat44InterfaceAddDelFeature) Size() (size int) {
  1894  	if m == nil {
  1895  		return 0
  1896  	}
  1897  	size += 1 // m.IsAdd
  1898  	size += 1 // m.Flags
  1899  	size += 4 // m.SwIfIndex
  1900  	return size
  1901  }
  1902  func (m *Nat44InterfaceAddDelFeature) 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.EncodeUint8(uint8(m.Flags))
  1909  	buf.EncodeUint32(uint32(m.SwIfIndex))
  1910  	return buf.Bytes(), nil
  1911  }
  1912  func (m *Nat44InterfaceAddDelFeature) Unmarshal(b []byte) error {
  1913  	buf := codec.NewBuffer(b)
  1914  	m.IsAdd = buf.DecodeBool()
  1915  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
  1916  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1917  	return nil
  1918  }
  1919  
  1920  // Nat44InterfaceAddDelFeatureReply defines message 'nat44_interface_add_del_feature_reply'.
  1921  type Nat44InterfaceAddDelFeatureReply struct {
  1922  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1923  }
  1924  
  1925  func (m *Nat44InterfaceAddDelFeatureReply) Reset() { *m = Nat44InterfaceAddDelFeatureReply{} }
  1926  func (*Nat44InterfaceAddDelFeatureReply) GetMessageName() string {
  1927  	return "nat44_interface_add_del_feature_reply"
  1928  }
  1929  func (*Nat44InterfaceAddDelFeatureReply) GetCrcString() string { return "e8d4e804" }
  1930  func (*Nat44InterfaceAddDelFeatureReply) GetMessageType() api.MessageType {
  1931  	return api.ReplyMessage
  1932  }
  1933  
  1934  func (m *Nat44InterfaceAddDelFeatureReply) Size() (size int) {
  1935  	if m == nil {
  1936  		return 0
  1937  	}
  1938  	size += 4 // m.Retval
  1939  	return size
  1940  }
  1941  func (m *Nat44InterfaceAddDelFeatureReply) Marshal(b []byte) ([]byte, error) {
  1942  	if b == nil {
  1943  		b = make([]byte, m.Size())
  1944  	}
  1945  	buf := codec.NewBuffer(b)
  1946  	buf.EncodeInt32(m.Retval)
  1947  	return buf.Bytes(), nil
  1948  }
  1949  func (m *Nat44InterfaceAddDelFeatureReply) Unmarshal(b []byte) error {
  1950  	buf := codec.NewBuffer(b)
  1951  	m.Retval = buf.DecodeInt32()
  1952  	return nil
  1953  }
  1954  
  1955  // NAT44 pool addresses interfaces details response
  1956  //   - sw_if_index - software index of the interface
  1957  //   - flags - flag NAT_TWICE_NAT if NAT address range for external hosts
  1958  //
  1959  // Nat44InterfaceAddrDetails defines message 'nat44_interface_addr_details'.
  1960  type Nat44InterfaceAddrDetails struct {
  1961  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  1962  	Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
  1963  }
  1964  
  1965  func (m *Nat44InterfaceAddrDetails) Reset()               { *m = Nat44InterfaceAddrDetails{} }
  1966  func (*Nat44InterfaceAddrDetails) GetMessageName() string { return "nat44_interface_addr_details" }
  1967  func (*Nat44InterfaceAddrDetails) GetCrcString() string   { return "e4aca9ca" }
  1968  func (*Nat44InterfaceAddrDetails) GetMessageType() api.MessageType {
  1969  	return api.ReplyMessage
  1970  }
  1971  
  1972  func (m *Nat44InterfaceAddrDetails) Size() (size int) {
  1973  	if m == nil {
  1974  		return 0
  1975  	}
  1976  	size += 4 // m.SwIfIndex
  1977  	size += 1 // m.Flags
  1978  	return size
  1979  }
  1980  func (m *Nat44InterfaceAddrDetails) Marshal(b []byte) ([]byte, error) {
  1981  	if b == nil {
  1982  		b = make([]byte, m.Size())
  1983  	}
  1984  	buf := codec.NewBuffer(b)
  1985  	buf.EncodeUint32(uint32(m.SwIfIndex))
  1986  	buf.EncodeUint8(uint8(m.Flags))
  1987  	return buf.Bytes(), nil
  1988  }
  1989  func (m *Nat44InterfaceAddrDetails) Unmarshal(b []byte) error {
  1990  	buf := codec.NewBuffer(b)
  1991  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1992  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
  1993  	return nil
  1994  }
  1995  
  1996  // Dump NAT44 pool addresses interfaces
  1997  // Nat44InterfaceAddrDump defines message 'nat44_interface_addr_dump'.
  1998  type Nat44InterfaceAddrDump struct{}
  1999  
  2000  func (m *Nat44InterfaceAddrDump) Reset()               { *m = Nat44InterfaceAddrDump{} }
  2001  func (*Nat44InterfaceAddrDump) GetMessageName() string { return "nat44_interface_addr_dump" }
  2002  func (*Nat44InterfaceAddrDump) GetCrcString() string   { return "51077d14" }
  2003  func (*Nat44InterfaceAddrDump) GetMessageType() api.MessageType {
  2004  	return api.RequestMessage
  2005  }
  2006  
  2007  func (m *Nat44InterfaceAddrDump) Size() (size int) {
  2008  	if m == nil {
  2009  		return 0
  2010  	}
  2011  	return size
  2012  }
  2013  func (m *Nat44InterfaceAddrDump) Marshal(b []byte) ([]byte, error) {
  2014  	if b == nil {
  2015  		b = make([]byte, m.Size())
  2016  	}
  2017  	buf := codec.NewBuffer(b)
  2018  	return buf.Bytes(), nil
  2019  }
  2020  func (m *Nat44InterfaceAddrDump) Unmarshal(b []byte) error {
  2021  	return nil
  2022  }
  2023  
  2024  // NAT44 interface details response
  2025  //   - sw_if_index - software index of the interface
  2026  //   - flags - flag NAT_IS_INSIDE if interface is inside,
  2027  //     flag NAT_IS_OUTSIDE if interface is outside
  2028  //     and if both flags are set the interface is
  2029  //     both inside and outside
  2030  //
  2031  // Nat44InterfaceDetails defines message 'nat44_interface_details'.
  2032  type Nat44InterfaceDetails struct {
  2033  	Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
  2034  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  2035  }
  2036  
  2037  func (m *Nat44InterfaceDetails) Reset()               { *m = Nat44InterfaceDetails{} }
  2038  func (*Nat44InterfaceDetails) GetMessageName() string { return "nat44_interface_details" }
  2039  func (*Nat44InterfaceDetails) GetCrcString() string   { return "5d286289" }
  2040  func (*Nat44InterfaceDetails) GetMessageType() api.MessageType {
  2041  	return api.ReplyMessage
  2042  }
  2043  
  2044  func (m *Nat44InterfaceDetails) Size() (size int) {
  2045  	if m == nil {
  2046  		return 0
  2047  	}
  2048  	size += 1 // m.Flags
  2049  	size += 4 // m.SwIfIndex
  2050  	return size
  2051  }
  2052  func (m *Nat44InterfaceDetails) Marshal(b []byte) ([]byte, error) {
  2053  	if b == nil {
  2054  		b = make([]byte, m.Size())
  2055  	}
  2056  	buf := codec.NewBuffer(b)
  2057  	buf.EncodeUint8(uint8(m.Flags))
  2058  	buf.EncodeUint32(uint32(m.SwIfIndex))
  2059  	return buf.Bytes(), nil
  2060  }
  2061  func (m *Nat44InterfaceDetails) Unmarshal(b []byte) error {
  2062  	buf := codec.NewBuffer(b)
  2063  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
  2064  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  2065  	return nil
  2066  }
  2067  
  2068  // Dump interfaces with NAT44 feature
  2069  // Nat44InterfaceDump defines message 'nat44_interface_dump'.
  2070  type Nat44InterfaceDump struct{}
  2071  
  2072  func (m *Nat44InterfaceDump) Reset()               { *m = Nat44InterfaceDump{} }
  2073  func (*Nat44InterfaceDump) GetMessageName() string { return "nat44_interface_dump" }
  2074  func (*Nat44InterfaceDump) GetCrcString() string   { return "51077d14" }
  2075  func (*Nat44InterfaceDump) GetMessageType() api.MessageType {
  2076  	return api.RequestMessage
  2077  }
  2078  
  2079  func (m *Nat44InterfaceDump) Size() (size int) {
  2080  	if m == nil {
  2081  		return 0
  2082  	}
  2083  	return size
  2084  }
  2085  func (m *Nat44InterfaceDump) Marshal(b []byte) ([]byte, error) {
  2086  	if b == nil {
  2087  		b = make([]byte, m.Size())
  2088  	}
  2089  	buf := codec.NewBuffer(b)
  2090  	return buf.Bytes(), nil
  2091  }
  2092  func (m *Nat44InterfaceDump) Unmarshal(b []byte) error {
  2093  	return nil
  2094  }
  2095  
  2096  // Add/delete NAT44 load-balancing static mapping rule backend
  2097  //   - is_add - true if add, false if delete
  2098  //   - external_addr - external IPv4 address of the service
  2099  //   - external_port - external L4 port number of the service
  2100  //   - protocol - IP protocol number of the service
  2101  //   - local - local network node
  2102  //
  2103  // Nat44LbStaticMappingAddDelLocal defines message 'nat44_lb_static_mapping_add_del_local'.
  2104  type Nat44LbStaticMappingAddDelLocal struct {
  2105  	IsAdd        bool                `binapi:"bool,name=is_add" json:"is_add,omitempty"`
  2106  	ExternalAddr ip_types.IP4Address `binapi:"ip4_address,name=external_addr" json:"external_addr,omitempty"`
  2107  	ExternalPort uint16              `binapi:"u16,name=external_port" json:"external_port,omitempty"`
  2108  	Protocol     uint8               `binapi:"u8,name=protocol" json:"protocol,omitempty"`
  2109  	Local        Nat44LbAddrPort     `binapi:"nat44_lb_addr_port,name=local" json:"local,omitempty"`
  2110  }
  2111  
  2112  func (m *Nat44LbStaticMappingAddDelLocal) Reset() { *m = Nat44LbStaticMappingAddDelLocal{} }
  2113  func (*Nat44LbStaticMappingAddDelLocal) GetMessageName() string {
  2114  	return "nat44_lb_static_mapping_add_del_local"
  2115  }
  2116  func (*Nat44LbStaticMappingAddDelLocal) GetCrcString() string { return "7ca47547" }
  2117  func (*Nat44LbStaticMappingAddDelLocal) GetMessageType() api.MessageType {
  2118  	return api.RequestMessage
  2119  }
  2120  
  2121  func (m *Nat44LbStaticMappingAddDelLocal) Size() (size int) {
  2122  	if m == nil {
  2123  		return 0
  2124  	}
  2125  	size += 1     // m.IsAdd
  2126  	size += 1 * 4 // m.ExternalAddr
  2127  	size += 2     // m.ExternalPort
  2128  	size += 1     // m.Protocol
  2129  	size += 1 * 4 // m.Local.Addr
  2130  	size += 2     // m.Local.Port
  2131  	size += 1     // m.Local.Probability
  2132  	size += 4     // m.Local.VrfID
  2133  	return size
  2134  }
  2135  func (m *Nat44LbStaticMappingAddDelLocal) Marshal(b []byte) ([]byte, error) {
  2136  	if b == nil {
  2137  		b = make([]byte, m.Size())
  2138  	}
  2139  	buf := codec.NewBuffer(b)
  2140  	buf.EncodeBool(m.IsAdd)
  2141  	buf.EncodeBytes(m.ExternalAddr[:], 4)
  2142  	buf.EncodeUint16(m.ExternalPort)
  2143  	buf.EncodeUint8(m.Protocol)
  2144  	buf.EncodeBytes(m.Local.Addr[:], 4)
  2145  	buf.EncodeUint16(m.Local.Port)
  2146  	buf.EncodeUint8(m.Local.Probability)
  2147  	buf.EncodeUint32(m.Local.VrfID)
  2148  	return buf.Bytes(), nil
  2149  }
  2150  func (m *Nat44LbStaticMappingAddDelLocal) Unmarshal(b []byte) error {
  2151  	buf := codec.NewBuffer(b)
  2152  	m.IsAdd = buf.DecodeBool()
  2153  	copy(m.ExternalAddr[:], buf.DecodeBytes(4))
  2154  	m.ExternalPort = buf.DecodeUint16()
  2155  	m.Protocol = buf.DecodeUint8()
  2156  	copy(m.Local.Addr[:], buf.DecodeBytes(4))
  2157  	m.Local.Port = buf.DecodeUint16()
  2158  	m.Local.Probability = buf.DecodeUint8()
  2159  	m.Local.VrfID = buf.DecodeUint32()
  2160  	return nil
  2161  }
  2162  
  2163  // Nat44LbStaticMappingAddDelLocalReply defines message 'nat44_lb_static_mapping_add_del_local_reply'.
  2164  type Nat44LbStaticMappingAddDelLocalReply struct {
  2165  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  2166  }
  2167  
  2168  func (m *Nat44LbStaticMappingAddDelLocalReply) Reset() { *m = Nat44LbStaticMappingAddDelLocalReply{} }
  2169  func (*Nat44LbStaticMappingAddDelLocalReply) GetMessageName() string {
  2170  	return "nat44_lb_static_mapping_add_del_local_reply"
  2171  }
  2172  func (*Nat44LbStaticMappingAddDelLocalReply) GetCrcString() string { return "e8d4e804" }
  2173  func (*Nat44LbStaticMappingAddDelLocalReply) GetMessageType() api.MessageType {
  2174  	return api.ReplyMessage
  2175  }
  2176  
  2177  func (m *Nat44LbStaticMappingAddDelLocalReply) Size() (size int) {
  2178  	if m == nil {
  2179  		return 0
  2180  	}
  2181  	size += 4 // m.Retval
  2182  	return size
  2183  }
  2184  func (m *Nat44LbStaticMappingAddDelLocalReply) Marshal(b []byte) ([]byte, error) {
  2185  	if b == nil {
  2186  		b = make([]byte, m.Size())
  2187  	}
  2188  	buf := codec.NewBuffer(b)
  2189  	buf.EncodeInt32(m.Retval)
  2190  	return buf.Bytes(), nil
  2191  }
  2192  func (m *Nat44LbStaticMappingAddDelLocalReply) Unmarshal(b []byte) error {
  2193  	buf := codec.NewBuffer(b)
  2194  	m.Retval = buf.DecodeInt32()
  2195  	return nil
  2196  }
  2197  
  2198  // NAT44 load-balancing static mapping rule details response
  2199  //   - external_addr - external IPv4 address of the service
  2200  //   - external_port - external L4 port number of the service
  2201  //   - protocol - IP protocol number of the service
  2202  //   - flags - flag NAT_TWICE_NAT if NAT address range for external hosts,
  2203  //     flag NAT_SELF_TWICE_NAT if translate external host address
  2204  //     and port whenever external host address equals local
  2205  //     address of internal host,
  2206  //     flag NAT_OUT2IN_ONLY if rule match only out2in direction
  2207  //   - affinity - if 0 disabled, otherwise client IP affinity sticky time
  2208  //     in seconds
  2209  //   - local_num - number of local network nodes
  2210  //   - locals - local network nodes
  2211  //   - tag - opaque string tag
  2212  //
  2213  // Nat44LbStaticMappingDetails defines message 'nat44_lb_static_mapping_details'.
  2214  type Nat44LbStaticMappingDetails struct {
  2215  	ExternalAddr ip_types.IP4Address      `binapi:"ip4_address,name=external_addr" json:"external_addr,omitempty"`
  2216  	ExternalPort uint16                   `binapi:"u16,name=external_port" json:"external_port,omitempty"`
  2217  	Protocol     uint8                    `binapi:"u8,name=protocol" json:"protocol,omitempty"`
  2218  	Flags        nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
  2219  	Affinity     uint32                   `binapi:"u32,name=affinity" json:"affinity,omitempty"`
  2220  	Tag          string                   `binapi:"string[64],name=tag" json:"tag,omitempty"`
  2221  	LocalNum     uint32                   `binapi:"u32,name=local_num" json:"-"`
  2222  	Locals       []Nat44LbAddrPort        `binapi:"nat44_lb_addr_port[local_num],name=locals" json:"locals,omitempty"`
  2223  }
  2224  
  2225  func (m *Nat44LbStaticMappingDetails) Reset()               { *m = Nat44LbStaticMappingDetails{} }
  2226  func (*Nat44LbStaticMappingDetails) GetMessageName() string { return "nat44_lb_static_mapping_details" }
  2227  func (*Nat44LbStaticMappingDetails) GetCrcString() string   { return "ed5ce876" }
  2228  func (*Nat44LbStaticMappingDetails) GetMessageType() api.MessageType {
  2229  	return api.ReplyMessage
  2230  }
  2231  
  2232  func (m *Nat44LbStaticMappingDetails) Size() (size int) {
  2233  	if m == nil {
  2234  		return 0
  2235  	}
  2236  	size += 1 * 4 // m.ExternalAddr
  2237  	size += 2     // m.ExternalPort
  2238  	size += 1     // m.Protocol
  2239  	size += 1     // m.Flags
  2240  	size += 4     // m.Affinity
  2241  	size += 64    // m.Tag
  2242  	size += 4     // m.LocalNum
  2243  	for j1 := 0; j1 < len(m.Locals); j1++ {
  2244  		var s1 Nat44LbAddrPort
  2245  		_ = s1
  2246  		if j1 < len(m.Locals) {
  2247  			s1 = m.Locals[j1]
  2248  		}
  2249  		size += 1 * 4 // s1.Addr
  2250  		size += 2     // s1.Port
  2251  		size += 1     // s1.Probability
  2252  		size += 4     // s1.VrfID
  2253  	}
  2254  	return size
  2255  }
  2256  func (m *Nat44LbStaticMappingDetails) Marshal(b []byte) ([]byte, error) {
  2257  	if b == nil {
  2258  		b = make([]byte, m.Size())
  2259  	}
  2260  	buf := codec.NewBuffer(b)
  2261  	buf.EncodeBytes(m.ExternalAddr[:], 4)
  2262  	buf.EncodeUint16(m.ExternalPort)
  2263  	buf.EncodeUint8(m.Protocol)
  2264  	buf.EncodeUint8(uint8(m.Flags))
  2265  	buf.EncodeUint32(m.Affinity)
  2266  	buf.EncodeString(m.Tag, 64)
  2267  	buf.EncodeUint32(uint32(len(m.Locals)))
  2268  	for j0 := 0; j0 < len(m.Locals); j0++ {
  2269  		var v0 Nat44LbAddrPort // Locals
  2270  		if j0 < len(m.Locals) {
  2271  			v0 = m.Locals[j0]
  2272  		}
  2273  		buf.EncodeBytes(v0.Addr[:], 4)
  2274  		buf.EncodeUint16(v0.Port)
  2275  		buf.EncodeUint8(v0.Probability)
  2276  		buf.EncodeUint32(v0.VrfID)
  2277  	}
  2278  	return buf.Bytes(), nil
  2279  }
  2280  func (m *Nat44LbStaticMappingDetails) Unmarshal(b []byte) error {
  2281  	buf := codec.NewBuffer(b)
  2282  	copy(m.ExternalAddr[:], buf.DecodeBytes(4))
  2283  	m.ExternalPort = buf.DecodeUint16()
  2284  	m.Protocol = buf.DecodeUint8()
  2285  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
  2286  	m.Affinity = buf.DecodeUint32()
  2287  	m.Tag = buf.DecodeString(64)
  2288  	m.LocalNum = buf.DecodeUint32()
  2289  	m.Locals = make([]Nat44LbAddrPort, m.LocalNum)
  2290  	for j0 := 0; j0 < len(m.Locals); j0++ {
  2291  		copy(m.Locals[j0].Addr[:], buf.DecodeBytes(4))
  2292  		m.Locals[j0].Port = buf.DecodeUint16()
  2293  		m.Locals[j0].Probability = buf.DecodeUint8()
  2294  		m.Locals[j0].VrfID = buf.DecodeUint32()
  2295  	}
  2296  	return nil
  2297  }
  2298  
  2299  // Dump NAT44 load-balancing static mapping rules
  2300  // Nat44LbStaticMappingDump defines message 'nat44_lb_static_mapping_dump'.
  2301  type Nat44LbStaticMappingDump struct{}
  2302  
  2303  func (m *Nat44LbStaticMappingDump) Reset()               { *m = Nat44LbStaticMappingDump{} }
  2304  func (*Nat44LbStaticMappingDump) GetMessageName() string { return "nat44_lb_static_mapping_dump" }
  2305  func (*Nat44LbStaticMappingDump) GetCrcString() string   { return "51077d14" }
  2306  func (*Nat44LbStaticMappingDump) GetMessageType() api.MessageType {
  2307  	return api.RequestMessage
  2308  }
  2309  
  2310  func (m *Nat44LbStaticMappingDump) Size() (size int) {
  2311  	if m == nil {
  2312  		return 0
  2313  	}
  2314  	return size
  2315  }
  2316  func (m *Nat44LbStaticMappingDump) Marshal(b []byte) ([]byte, error) {
  2317  	if b == nil {
  2318  		b = make([]byte, m.Size())
  2319  	}
  2320  	buf := codec.NewBuffer(b)
  2321  	return buf.Bytes(), nil
  2322  }
  2323  func (m *Nat44LbStaticMappingDump) Unmarshal(b []byte) error {
  2324  	return nil
  2325  }
  2326  
  2327  // NAT44 set session limit
  2328  //   - session_limit - session limit
  2329  //   - vrf_id - vrf id
  2330  //
  2331  // Nat44SetSessionLimit defines message 'nat44_set_session_limit'.
  2332  type Nat44SetSessionLimit struct {
  2333  	SessionLimit uint32 `binapi:"u32,name=session_limit" json:"session_limit,omitempty"`
  2334  	VrfID        uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
  2335  }
  2336  
  2337  func (m *Nat44SetSessionLimit) Reset()               { *m = Nat44SetSessionLimit{} }
  2338  func (*Nat44SetSessionLimit) GetMessageName() string { return "nat44_set_session_limit" }
  2339  func (*Nat44SetSessionLimit) GetCrcString() string   { return "8899bbb1" }
  2340  func (*Nat44SetSessionLimit) GetMessageType() api.MessageType {
  2341  	return api.RequestMessage
  2342  }
  2343  
  2344  func (m *Nat44SetSessionLimit) Size() (size int) {
  2345  	if m == nil {
  2346  		return 0
  2347  	}
  2348  	size += 4 // m.SessionLimit
  2349  	size += 4 // m.VrfID
  2350  	return size
  2351  }
  2352  func (m *Nat44SetSessionLimit) Marshal(b []byte) ([]byte, error) {
  2353  	if b == nil {
  2354  		b = make([]byte, m.Size())
  2355  	}
  2356  	buf := codec.NewBuffer(b)
  2357  	buf.EncodeUint32(m.SessionLimit)
  2358  	buf.EncodeUint32(m.VrfID)
  2359  	return buf.Bytes(), nil
  2360  }
  2361  func (m *Nat44SetSessionLimit) Unmarshal(b []byte) error {
  2362  	buf := codec.NewBuffer(b)
  2363  	m.SessionLimit = buf.DecodeUint32()
  2364  	m.VrfID = buf.DecodeUint32()
  2365  	return nil
  2366  }
  2367  
  2368  // Nat44SetSessionLimitReply defines message 'nat44_set_session_limit_reply'.
  2369  type Nat44SetSessionLimitReply struct {
  2370  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  2371  }
  2372  
  2373  func (m *Nat44SetSessionLimitReply) Reset()               { *m = Nat44SetSessionLimitReply{} }
  2374  func (*Nat44SetSessionLimitReply) GetMessageName() string { return "nat44_set_session_limit_reply" }
  2375  func (*Nat44SetSessionLimitReply) GetCrcString() string   { return "e8d4e804" }
  2376  func (*Nat44SetSessionLimitReply) GetMessageType() api.MessageType {
  2377  	return api.ReplyMessage
  2378  }
  2379  
  2380  func (m *Nat44SetSessionLimitReply) Size() (size int) {
  2381  	if m == nil {
  2382  		return 0
  2383  	}
  2384  	size += 4 // m.Retval
  2385  	return size
  2386  }
  2387  func (m *Nat44SetSessionLimitReply) Marshal(b []byte) ([]byte, error) {
  2388  	if b == nil {
  2389  		b = make([]byte, m.Size())
  2390  	}
  2391  	buf := codec.NewBuffer(b)
  2392  	buf.EncodeInt32(m.Retval)
  2393  	return buf.Bytes(), nil
  2394  }
  2395  func (m *Nat44SetSessionLimitReply) Unmarshal(b []byte) error {
  2396  	buf := codec.NewBuffer(b)
  2397  	m.Retval = buf.DecodeInt32()
  2398  	return nil
  2399  }
  2400  
  2401  // Show NAT44 plugin running config
  2402  // Nat44ShowRunningConfig defines message 'nat44_show_running_config'.
  2403  type Nat44ShowRunningConfig struct{}
  2404  
  2405  func (m *Nat44ShowRunningConfig) Reset()               { *m = Nat44ShowRunningConfig{} }
  2406  func (*Nat44ShowRunningConfig) GetMessageName() string { return "nat44_show_running_config" }
  2407  func (*Nat44ShowRunningConfig) GetCrcString() string   { return "51077d14" }
  2408  func (*Nat44ShowRunningConfig) GetMessageType() api.MessageType {
  2409  	return api.RequestMessage
  2410  }
  2411  
  2412  func (m *Nat44ShowRunningConfig) Size() (size int) {
  2413  	if m == nil {
  2414  		return 0
  2415  	}
  2416  	return size
  2417  }
  2418  func (m *Nat44ShowRunningConfig) Marshal(b []byte) ([]byte, error) {
  2419  	if b == nil {
  2420  		b = make([]byte, m.Size())
  2421  	}
  2422  	buf := codec.NewBuffer(b)
  2423  	return buf.Bytes(), nil
  2424  }
  2425  func (m *Nat44ShowRunningConfig) Unmarshal(b []byte) error {
  2426  	return nil
  2427  }
  2428  
  2429  // Show NAT44 plugin running config reply
  2430  //   - retval - return code for the request
  2431  //   - inside_vrf - default inside VRF id
  2432  //   - outside_vrf - outside VRF id
  2433  //   - users - maximum number of users per worker thread
  2434  //     (NAT44_IS_ENDPOINT_INDEPENDENT)
  2435  //   - sessions - maximum number of sessions per worker thread
  2436  //   - user_sessions - maximum number of sessions per user
  2437  //     (NAT44_IS_ENDPOINT_INDEPENDENT)
  2438  //   - user_buckets - number of user hash buckets
  2439  //     (NAT44_IS_ENDPOINT_INDEPENDENT)
  2440  //   - translation_buckets - number of translation hash buckets
  2441  //   - flags - flag NAT44_IS_ENDPOINT_INDEPENDENT,
  2442  //     NAT44_IS_ENDPOINT_DEPENDENT,
  2443  //     NAT44_IS_STATIC_MAPPING_ONLY,
  2444  //     NAT44_IS_CONNECTION_TRACKING,
  2445  //     NAT44_IS_OUT2IN_DPO
  2446  //
  2447  // Nat44ShowRunningConfigReply defines message 'nat44_show_running_config_reply'.
  2448  type Nat44ShowRunningConfigReply struct {
  2449  	Retval              int32                 `binapi:"i32,name=retval" json:"retval,omitempty"`
  2450  	InsideVrf           uint32                `binapi:"u32,name=inside_vrf" json:"inside_vrf,omitempty"`
  2451  	OutsideVrf          uint32                `binapi:"u32,name=outside_vrf" json:"outside_vrf,omitempty"`
  2452  	Users               uint32                `binapi:"u32,name=users" json:"users,omitempty"`
  2453  	Sessions            uint32                `binapi:"u32,name=sessions" json:"sessions,omitempty"`
  2454  	UserSessions        uint32                `binapi:"u32,name=user_sessions" json:"user_sessions,omitempty"`
  2455  	UserBuckets         uint32                `binapi:"u32,name=user_buckets" json:"user_buckets,omitempty"`
  2456  	TranslationBuckets  uint32                `binapi:"u32,name=translation_buckets" json:"translation_buckets,omitempty"`
  2457  	ForwardingEnabled   bool                  `binapi:"bool,name=forwarding_enabled" json:"forwarding_enabled,omitempty"`
  2458  	IpfixLoggingEnabled bool                  `binapi:"bool,name=ipfix_logging_enabled" json:"ipfix_logging_enabled,omitempty"`
  2459  	Timeouts            nat_types.NatTimeouts `binapi:"nat_timeouts,name=timeouts" json:"timeouts,omitempty"`
  2460  	LogLevel            nat_types.NatLogLevel `binapi:"nat_log_level,name=log_level" json:"log_level,omitempty"`
  2461  	Flags               Nat44ConfigFlags      `binapi:"nat44_config_flags,name=flags" json:"flags,omitempty"`
  2462  }
  2463  
  2464  func (m *Nat44ShowRunningConfigReply) Reset()               { *m = Nat44ShowRunningConfigReply{} }
  2465  func (*Nat44ShowRunningConfigReply) GetMessageName() string { return "nat44_show_running_config_reply" }
  2466  func (*Nat44ShowRunningConfigReply) GetCrcString() string   { return "93d8e267" }
  2467  func (*Nat44ShowRunningConfigReply) GetMessageType() api.MessageType {
  2468  	return api.ReplyMessage
  2469  }
  2470  
  2471  func (m *Nat44ShowRunningConfigReply) Size() (size int) {
  2472  	if m == nil {
  2473  		return 0
  2474  	}
  2475  	size += 4 // m.Retval
  2476  	size += 4 // m.InsideVrf
  2477  	size += 4 // m.OutsideVrf
  2478  	size += 4 // m.Users
  2479  	size += 4 // m.Sessions
  2480  	size += 4 // m.UserSessions
  2481  	size += 4 // m.UserBuckets
  2482  	size += 4 // m.TranslationBuckets
  2483  	size += 1 // m.ForwardingEnabled
  2484  	size += 1 // m.IpfixLoggingEnabled
  2485  	size += 4 // m.Timeouts.UDP
  2486  	size += 4 // m.Timeouts.TCPEstablished
  2487  	size += 4 // m.Timeouts.TCPTransitory
  2488  	size += 4 // m.Timeouts.ICMP
  2489  	size += 1 // m.LogLevel
  2490  	size += 1 // m.Flags
  2491  	return size
  2492  }
  2493  func (m *Nat44ShowRunningConfigReply) Marshal(b []byte) ([]byte, error) {
  2494  	if b == nil {
  2495  		b = make([]byte, m.Size())
  2496  	}
  2497  	buf := codec.NewBuffer(b)
  2498  	buf.EncodeInt32(m.Retval)
  2499  	buf.EncodeUint32(m.InsideVrf)
  2500  	buf.EncodeUint32(m.OutsideVrf)
  2501  	buf.EncodeUint32(m.Users)
  2502  	buf.EncodeUint32(m.Sessions)
  2503  	buf.EncodeUint32(m.UserSessions)
  2504  	buf.EncodeUint32(m.UserBuckets)
  2505  	buf.EncodeUint32(m.TranslationBuckets)
  2506  	buf.EncodeBool(m.ForwardingEnabled)
  2507  	buf.EncodeBool(m.IpfixLoggingEnabled)
  2508  	buf.EncodeUint32(m.Timeouts.UDP)
  2509  	buf.EncodeUint32(m.Timeouts.TCPEstablished)
  2510  	buf.EncodeUint32(m.Timeouts.TCPTransitory)
  2511  	buf.EncodeUint32(m.Timeouts.ICMP)
  2512  	buf.EncodeUint8(uint8(m.LogLevel))
  2513  	buf.EncodeUint8(uint8(m.Flags))
  2514  	return buf.Bytes(), nil
  2515  }
  2516  func (m *Nat44ShowRunningConfigReply) Unmarshal(b []byte) error {
  2517  	buf := codec.NewBuffer(b)
  2518  	m.Retval = buf.DecodeInt32()
  2519  	m.InsideVrf = buf.DecodeUint32()
  2520  	m.OutsideVrf = buf.DecodeUint32()
  2521  	m.Users = buf.DecodeUint32()
  2522  	m.Sessions = buf.DecodeUint32()
  2523  	m.UserSessions = buf.DecodeUint32()
  2524  	m.UserBuckets = buf.DecodeUint32()
  2525  	m.TranslationBuckets = buf.DecodeUint32()
  2526  	m.ForwardingEnabled = buf.DecodeBool()
  2527  	m.IpfixLoggingEnabled = buf.DecodeBool()
  2528  	m.Timeouts.UDP = buf.DecodeUint32()
  2529  	m.Timeouts.TCPEstablished = buf.DecodeUint32()
  2530  	m.Timeouts.TCPTransitory = buf.DecodeUint32()
  2531  	m.Timeouts.ICMP = buf.DecodeUint32()
  2532  	m.LogLevel = nat_types.NatLogLevel(buf.DecodeUint8())
  2533  	m.Flags = Nat44ConfigFlags(buf.DecodeUint8())
  2534  	return nil
  2535  }
  2536  
  2537  // NAT44 static mapping details response
  2538  //   - flags - flag NAT_ADDR_ONLY if address only mapping,
  2539  //     flag NAT_TWICE_NAT if NAT address range for external hosts,
  2540  //     flag NAT_SELF_TWICE_NAT if translate external host address
  2541  //     and port whenever external host address equals local
  2542  //     address of internal host,
  2543  //     flag NAT_OUT2IN_ONLY if rule match only out2in direction
  2544  //   - local_ip_address - local IPv4 address
  2545  //   - external_ip_address - external IPv4 address
  2546  //   - protocol - IP protocol, valid only if no NAT_ADDR_ONLY flag
  2547  //   - local_port - local port number, valid only if no NAT_ADDR_ONLY flag
  2548  //   - external_port - external port number, valid only if no NAT_ADDR_ONLY flag
  2549  //   - external_sw_if_index - external interface
  2550  //   - vfr_id - VRF ID
  2551  //   - tag - opaque string tag
  2552  //
  2553  // Nat44StaticMappingDetails defines message 'nat44_static_mapping_details'.
  2554  type Nat44StaticMappingDetails struct {
  2555  	Flags             nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
  2556  	LocalIPAddress    ip_types.IP4Address            `binapi:"ip4_address,name=local_ip_address" json:"local_ip_address,omitempty"`
  2557  	ExternalIPAddress ip_types.IP4Address            `binapi:"ip4_address,name=external_ip_address" json:"external_ip_address,omitempty"`
  2558  	Protocol          uint8                          `binapi:"u8,name=protocol" json:"protocol,omitempty"`
  2559  	LocalPort         uint16                         `binapi:"u16,name=local_port" json:"local_port,omitempty"`
  2560  	ExternalPort      uint16                         `binapi:"u16,name=external_port" json:"external_port,omitempty"`
  2561  	ExternalSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=external_sw_if_index" json:"external_sw_if_index,omitempty"`
  2562  	VrfID             uint32                         `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
  2563  	Tag               string                         `binapi:"string[64],name=tag" json:"tag,omitempty"`
  2564  }
  2565  
  2566  func (m *Nat44StaticMappingDetails) Reset()               { *m = Nat44StaticMappingDetails{} }
  2567  func (*Nat44StaticMappingDetails) GetMessageName() string { return "nat44_static_mapping_details" }
  2568  func (*Nat44StaticMappingDetails) GetCrcString() string   { return "06cb40b2" }
  2569  func (*Nat44StaticMappingDetails) GetMessageType() api.MessageType {
  2570  	return api.ReplyMessage
  2571  }
  2572  
  2573  func (m *Nat44StaticMappingDetails) Size() (size int) {
  2574  	if m == nil {
  2575  		return 0
  2576  	}
  2577  	size += 1     // m.Flags
  2578  	size += 1 * 4 // m.LocalIPAddress
  2579  	size += 1 * 4 // m.ExternalIPAddress
  2580  	size += 1     // m.Protocol
  2581  	size += 2     // m.LocalPort
  2582  	size += 2     // m.ExternalPort
  2583  	size += 4     // m.ExternalSwIfIndex
  2584  	size += 4     // m.VrfID
  2585  	size += 64    // m.Tag
  2586  	return size
  2587  }
  2588  func (m *Nat44StaticMappingDetails) Marshal(b []byte) ([]byte, error) {
  2589  	if b == nil {
  2590  		b = make([]byte, m.Size())
  2591  	}
  2592  	buf := codec.NewBuffer(b)
  2593  	buf.EncodeUint8(uint8(m.Flags))
  2594  	buf.EncodeBytes(m.LocalIPAddress[:], 4)
  2595  	buf.EncodeBytes(m.ExternalIPAddress[:], 4)
  2596  	buf.EncodeUint8(m.Protocol)
  2597  	buf.EncodeUint16(m.LocalPort)
  2598  	buf.EncodeUint16(m.ExternalPort)
  2599  	buf.EncodeUint32(uint32(m.ExternalSwIfIndex))
  2600  	buf.EncodeUint32(m.VrfID)
  2601  	buf.EncodeString(m.Tag, 64)
  2602  	return buf.Bytes(), nil
  2603  }
  2604  func (m *Nat44StaticMappingDetails) Unmarshal(b []byte) error {
  2605  	buf := codec.NewBuffer(b)
  2606  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
  2607  	copy(m.LocalIPAddress[:], buf.DecodeBytes(4))
  2608  	copy(m.ExternalIPAddress[:], buf.DecodeBytes(4))
  2609  	m.Protocol = buf.DecodeUint8()
  2610  	m.LocalPort = buf.DecodeUint16()
  2611  	m.ExternalPort = buf.DecodeUint16()
  2612  	m.ExternalSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  2613  	m.VrfID = buf.DecodeUint32()
  2614  	m.Tag = buf.DecodeString(64)
  2615  	return nil
  2616  }
  2617  
  2618  // Dump NAT44 static mappings
  2619  // Nat44StaticMappingDump defines message 'nat44_static_mapping_dump'.
  2620  type Nat44StaticMappingDump struct{}
  2621  
  2622  func (m *Nat44StaticMappingDump) Reset()               { *m = Nat44StaticMappingDump{} }
  2623  func (*Nat44StaticMappingDump) GetMessageName() string { return "nat44_static_mapping_dump" }
  2624  func (*Nat44StaticMappingDump) GetCrcString() string   { return "51077d14" }
  2625  func (*Nat44StaticMappingDump) GetMessageType() api.MessageType {
  2626  	return api.RequestMessage
  2627  }
  2628  
  2629  func (m *Nat44StaticMappingDump) Size() (size int) {
  2630  	if m == nil {
  2631  		return 0
  2632  	}
  2633  	return size
  2634  }
  2635  func (m *Nat44StaticMappingDump) Marshal(b []byte) ([]byte, error) {
  2636  	if b == nil {
  2637  		b = make([]byte, m.Size())
  2638  	}
  2639  	buf := codec.NewBuffer(b)
  2640  	return buf.Bytes(), nil
  2641  }
  2642  func (m *Nat44StaticMappingDump) Unmarshal(b []byte) error {
  2643  	return nil
  2644  }
  2645  
  2646  // NAT44 users response
  2647  //
  2648  //	@vrf_id - VRF ID
  2649  //	- ip_address - IPv4 address
  2650  //	- nsessions - number of dynamic sessions
  2651  //	- nstaticsessions - number of static sessions
  2652  //
  2653  // Nat44UserDetails defines message 'nat44_user_details'.
  2654  type Nat44UserDetails struct {
  2655  	VrfID           uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
  2656  	IPAddress       ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
  2657  	Nsessions       uint32              `binapi:"u32,name=nsessions" json:"nsessions,omitempty"`
  2658  	Nstaticsessions uint32              `binapi:"u32,name=nstaticsessions" json:"nstaticsessions,omitempty"`
  2659  }
  2660  
  2661  func (m *Nat44UserDetails) Reset()               { *m = Nat44UserDetails{} }
  2662  func (*Nat44UserDetails) GetMessageName() string { return "nat44_user_details" }
  2663  func (*Nat44UserDetails) GetCrcString() string   { return "355896c2" }
  2664  func (*Nat44UserDetails) GetMessageType() api.MessageType {
  2665  	return api.ReplyMessage
  2666  }
  2667  
  2668  func (m *Nat44UserDetails) Size() (size int) {
  2669  	if m == nil {
  2670  		return 0
  2671  	}
  2672  	size += 4     // m.VrfID
  2673  	size += 1 * 4 // m.IPAddress
  2674  	size += 4     // m.Nsessions
  2675  	size += 4     // m.Nstaticsessions
  2676  	return size
  2677  }
  2678  func (m *Nat44UserDetails) Marshal(b []byte) ([]byte, error) {
  2679  	if b == nil {
  2680  		b = make([]byte, m.Size())
  2681  	}
  2682  	buf := codec.NewBuffer(b)
  2683  	buf.EncodeUint32(m.VrfID)
  2684  	buf.EncodeBytes(m.IPAddress[:], 4)
  2685  	buf.EncodeUint32(m.Nsessions)
  2686  	buf.EncodeUint32(m.Nstaticsessions)
  2687  	return buf.Bytes(), nil
  2688  }
  2689  func (m *Nat44UserDetails) Unmarshal(b []byte) error {
  2690  	buf := codec.NewBuffer(b)
  2691  	m.VrfID = buf.DecodeUint32()
  2692  	copy(m.IPAddress[:], buf.DecodeBytes(4))
  2693  	m.Nsessions = buf.DecodeUint32()
  2694  	m.Nstaticsessions = buf.DecodeUint32()
  2695  	return nil
  2696  }
  2697  
  2698  // Dump NAT44 users
  2699  // Nat44UserDump defines message 'nat44_user_dump'.
  2700  type Nat44UserDump struct{}
  2701  
  2702  func (m *Nat44UserDump) Reset()               { *m = Nat44UserDump{} }
  2703  func (*Nat44UserDump) GetMessageName() string { return "nat44_user_dump" }
  2704  func (*Nat44UserDump) GetCrcString() string   { return "51077d14" }
  2705  func (*Nat44UserDump) GetMessageType() api.MessageType {
  2706  	return api.RequestMessage
  2707  }
  2708  
  2709  func (m *Nat44UserDump) Size() (size int) {
  2710  	if m == nil {
  2711  		return 0
  2712  	}
  2713  	return size
  2714  }
  2715  func (m *Nat44UserDump) Marshal(b []byte) ([]byte, error) {
  2716  	if b == nil {
  2717  		b = make([]byte, m.Size())
  2718  	}
  2719  	buf := codec.NewBuffer(b)
  2720  	return buf.Bytes(), nil
  2721  }
  2722  func (m *Nat44UserDump) Unmarshal(b []byte) error {
  2723  	return nil
  2724  }
  2725  
  2726  // NAT44 user's sessions response
  2727  //   - outside_ip_address - outside IPv4 address
  2728  //   - outside_port - outside port
  2729  //   - inside_ip_address - inside IPv4 address
  2730  //   - inside_port - inside port
  2731  //   - protocol - protocol
  2732  //   - flags - flag NAT_IS_STATIC if session is static,
  2733  //     flag NAT_IS_TWICE_NAT if session is twice-nat,
  2734  //     flag NAT_IS_EXT_HOST_VALID if external host address
  2735  //     and port are valid
  2736  //   - last_heard - last heard timer
  2737  //   - total_bytes - count of bytes sent through session
  2738  //   - total_pkts - count of pakets sent through session
  2739  //   - ext_host_address - external host IPv4 address
  2740  //   - ext_host_port - external host port
  2741  //   - ext_host_nat_address - post-NAT external host IPv4 address (valid
  2742  //     only if twice-nat session)
  2743  //   - ext_host_nat_port - post-NAT external host port (valid only if
  2744  //     twice-nat session)
  2745  //
  2746  // Nat44UserSessionDetails defines message 'nat44_user_session_details'.
  2747  // Deprecated: the message will be removed in the future versions
  2748  type Nat44UserSessionDetails struct {
  2749  	OutsideIPAddress  ip_types.IP4Address      `binapi:"ip4_address,name=outside_ip_address" json:"outside_ip_address,omitempty"`
  2750  	OutsidePort       uint16                   `binapi:"u16,name=outside_port" json:"outside_port,omitempty"`
  2751  	InsideIPAddress   ip_types.IP4Address      `binapi:"ip4_address,name=inside_ip_address" json:"inside_ip_address,omitempty"`
  2752  	InsidePort        uint16                   `binapi:"u16,name=inside_port" json:"inside_port,omitempty"`
  2753  	Protocol          uint16                   `binapi:"u16,name=protocol" json:"protocol,omitempty"`
  2754  	Flags             nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
  2755  	LastHeard         uint64                   `binapi:"u64,name=last_heard" json:"last_heard,omitempty"`
  2756  	TotalBytes        uint64                   `binapi:"u64,name=total_bytes" json:"total_bytes,omitempty"`
  2757  	TotalPkts         uint32                   `binapi:"u32,name=total_pkts" json:"total_pkts,omitempty"`
  2758  	ExtHostAddress    ip_types.IP4Address      `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"`
  2759  	ExtHostPort       uint16                   `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"`
  2760  	ExtHostNatAddress ip_types.IP4Address      `binapi:"ip4_address,name=ext_host_nat_address" json:"ext_host_nat_address,omitempty"`
  2761  	ExtHostNatPort    uint16                   `binapi:"u16,name=ext_host_nat_port" json:"ext_host_nat_port,omitempty"`
  2762  }
  2763  
  2764  func (m *Nat44UserSessionDetails) Reset()               { *m = Nat44UserSessionDetails{} }
  2765  func (*Nat44UserSessionDetails) GetMessageName() string { return "nat44_user_session_details" }
  2766  func (*Nat44UserSessionDetails) GetCrcString() string   { return "2cf6e16d" }
  2767  func (*Nat44UserSessionDetails) GetMessageType() api.MessageType {
  2768  	return api.ReplyMessage
  2769  }
  2770  
  2771  func (m *Nat44UserSessionDetails) Size() (size int) {
  2772  	if m == nil {
  2773  		return 0
  2774  	}
  2775  	size += 1 * 4 // m.OutsideIPAddress
  2776  	size += 2     // m.OutsidePort
  2777  	size += 1 * 4 // m.InsideIPAddress
  2778  	size += 2     // m.InsidePort
  2779  	size += 2     // m.Protocol
  2780  	size += 1     // m.Flags
  2781  	size += 8     // m.LastHeard
  2782  	size += 8     // m.TotalBytes
  2783  	size += 4     // m.TotalPkts
  2784  	size += 1 * 4 // m.ExtHostAddress
  2785  	size += 2     // m.ExtHostPort
  2786  	size += 1 * 4 // m.ExtHostNatAddress
  2787  	size += 2     // m.ExtHostNatPort
  2788  	return size
  2789  }
  2790  func (m *Nat44UserSessionDetails) Marshal(b []byte) ([]byte, error) {
  2791  	if b == nil {
  2792  		b = make([]byte, m.Size())
  2793  	}
  2794  	buf := codec.NewBuffer(b)
  2795  	buf.EncodeBytes(m.OutsideIPAddress[:], 4)
  2796  	buf.EncodeUint16(m.OutsidePort)
  2797  	buf.EncodeBytes(m.InsideIPAddress[:], 4)
  2798  	buf.EncodeUint16(m.InsidePort)
  2799  	buf.EncodeUint16(m.Protocol)
  2800  	buf.EncodeUint8(uint8(m.Flags))
  2801  	buf.EncodeUint64(m.LastHeard)
  2802  	buf.EncodeUint64(m.TotalBytes)
  2803  	buf.EncodeUint32(m.TotalPkts)
  2804  	buf.EncodeBytes(m.ExtHostAddress[:], 4)
  2805  	buf.EncodeUint16(m.ExtHostPort)
  2806  	buf.EncodeBytes(m.ExtHostNatAddress[:], 4)
  2807  	buf.EncodeUint16(m.ExtHostNatPort)
  2808  	return buf.Bytes(), nil
  2809  }
  2810  func (m *Nat44UserSessionDetails) Unmarshal(b []byte) error {
  2811  	buf := codec.NewBuffer(b)
  2812  	copy(m.OutsideIPAddress[:], buf.DecodeBytes(4))
  2813  	m.OutsidePort = buf.DecodeUint16()
  2814  	copy(m.InsideIPAddress[:], buf.DecodeBytes(4))
  2815  	m.InsidePort = buf.DecodeUint16()
  2816  	m.Protocol = buf.DecodeUint16()
  2817  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
  2818  	m.LastHeard = buf.DecodeUint64()
  2819  	m.TotalBytes = buf.DecodeUint64()
  2820  	m.TotalPkts = buf.DecodeUint32()
  2821  	copy(m.ExtHostAddress[:], buf.DecodeBytes(4))
  2822  	m.ExtHostPort = buf.DecodeUint16()
  2823  	copy(m.ExtHostNatAddress[:], buf.DecodeBytes(4))
  2824  	m.ExtHostNatPort = buf.DecodeUint16()
  2825  	return nil
  2826  }
  2827  
  2828  // NAT44 user's sessions
  2829  //   - ip_address - IPv4 address of the user to dump
  2830  //   - vrf_id - VRF_ID
  2831  //
  2832  // Nat44UserSessionDump defines message 'nat44_user_session_dump'.
  2833  // Deprecated: the message will be removed in the future versions
  2834  type Nat44UserSessionDump struct {
  2835  	IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
  2836  	VrfID     uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
  2837  }
  2838  
  2839  func (m *Nat44UserSessionDump) Reset()               { *m = Nat44UserSessionDump{} }
  2840  func (*Nat44UserSessionDump) GetMessageName() string { return "nat44_user_session_dump" }
  2841  func (*Nat44UserSessionDump) GetCrcString() string   { return "e1899c98" }
  2842  func (*Nat44UserSessionDump) GetMessageType() api.MessageType {
  2843  	return api.RequestMessage
  2844  }
  2845  
  2846  func (m *Nat44UserSessionDump) Size() (size int) {
  2847  	if m == nil {
  2848  		return 0
  2849  	}
  2850  	size += 1 * 4 // m.IPAddress
  2851  	size += 4     // m.VrfID
  2852  	return size
  2853  }
  2854  func (m *Nat44UserSessionDump) Marshal(b []byte) ([]byte, error) {
  2855  	if b == nil {
  2856  		b = make([]byte, m.Size())
  2857  	}
  2858  	buf := codec.NewBuffer(b)
  2859  	buf.EncodeBytes(m.IPAddress[:], 4)
  2860  	buf.EncodeUint32(m.VrfID)
  2861  	return buf.Bytes(), nil
  2862  }
  2863  func (m *Nat44UserSessionDump) Unmarshal(b []byte) error {
  2864  	buf := codec.NewBuffer(b)
  2865  	copy(m.IPAddress[:], buf.DecodeBytes(4))
  2866  	m.VrfID = buf.DecodeUint32()
  2867  	return nil
  2868  }
  2869  
  2870  // NAT44 user's sessions response
  2871  //   - outside_ip_address - outside IPv4 address
  2872  //   - outside_port - outside port
  2873  //   - inside_ip_address - inside IPv4 address
  2874  //   - inside_port - inside port
  2875  //   - protocol - protocol
  2876  //   - flags - flag NAT_IS_STATIC if session is static,
  2877  //     flag NAT_IS_TWICE_NAT if session is twice-nat,
  2878  //     flag NAT_IS_EXT_HOST_VALID if external host address
  2879  //     and port are valid
  2880  //   - last_heard - last heard timer
  2881  //   - total_bytes - count of bytes sent through session
  2882  //   - total_pkts - count of pakets sent through session
  2883  //   - ext_host_address - external host IPv4 address
  2884  //   - ext_host_port - external host port
  2885  //   - ext_host_nat_address - post-NAT external host IPv4 address (valid
  2886  //     only if twice-nat session)
  2887  //   - ext_host_nat_port - post-NAT external host port (valid only if
  2888  //     twice-nat session)
  2889  //   - is_timed_out - true, if session is timed out, and false, if session
  2890  //     is active
  2891  //
  2892  // Nat44UserSessionV2Details defines message 'nat44_user_session_v2_details'.
  2893  // Deprecated: the message will be removed in the future versions
  2894  type Nat44UserSessionV2Details struct {
  2895  	OutsideIPAddress  ip_types.IP4Address      `binapi:"ip4_address,name=outside_ip_address" json:"outside_ip_address,omitempty"`
  2896  	OutsidePort       uint16                   `binapi:"u16,name=outside_port" json:"outside_port,omitempty"`
  2897  	InsideIPAddress   ip_types.IP4Address      `binapi:"ip4_address,name=inside_ip_address" json:"inside_ip_address,omitempty"`
  2898  	InsidePort        uint16                   `binapi:"u16,name=inside_port" json:"inside_port,omitempty"`
  2899  	Protocol          uint16                   `binapi:"u16,name=protocol" json:"protocol,omitempty"`
  2900  	Flags             nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
  2901  	LastHeard         uint64                   `binapi:"u64,name=last_heard" json:"last_heard,omitempty"`
  2902  	TotalBytes        uint64                   `binapi:"u64,name=total_bytes" json:"total_bytes,omitempty"`
  2903  	TotalPkts         uint32                   `binapi:"u32,name=total_pkts" json:"total_pkts,omitempty"`
  2904  	ExtHostAddress    ip_types.IP4Address      `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"`
  2905  	ExtHostPort       uint16                   `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"`
  2906  	ExtHostNatAddress ip_types.IP4Address      `binapi:"ip4_address,name=ext_host_nat_address" json:"ext_host_nat_address,omitempty"`
  2907  	ExtHostNatPort    uint16                   `binapi:"u16,name=ext_host_nat_port" json:"ext_host_nat_port,omitempty"`
  2908  	IsTimedOut        bool                     `binapi:"bool,name=is_timed_out" json:"is_timed_out,omitempty"`
  2909  }
  2910  
  2911  func (m *Nat44UserSessionV2Details) Reset()               { *m = Nat44UserSessionV2Details{} }
  2912  func (*Nat44UserSessionV2Details) GetMessageName() string { return "nat44_user_session_v2_details" }
  2913  func (*Nat44UserSessionV2Details) GetCrcString() string   { return "fd42b729" }
  2914  func (*Nat44UserSessionV2Details) GetMessageType() api.MessageType {
  2915  	return api.ReplyMessage
  2916  }
  2917  
  2918  func (m *Nat44UserSessionV2Details) Size() (size int) {
  2919  	if m == nil {
  2920  		return 0
  2921  	}
  2922  	size += 1 * 4 // m.OutsideIPAddress
  2923  	size += 2     // m.OutsidePort
  2924  	size += 1 * 4 // m.InsideIPAddress
  2925  	size += 2     // m.InsidePort
  2926  	size += 2     // m.Protocol
  2927  	size += 1     // m.Flags
  2928  	size += 8     // m.LastHeard
  2929  	size += 8     // m.TotalBytes
  2930  	size += 4     // m.TotalPkts
  2931  	size += 1 * 4 // m.ExtHostAddress
  2932  	size += 2     // m.ExtHostPort
  2933  	size += 1 * 4 // m.ExtHostNatAddress
  2934  	size += 2     // m.ExtHostNatPort
  2935  	size += 1     // m.IsTimedOut
  2936  	return size
  2937  }
  2938  func (m *Nat44UserSessionV2Details) Marshal(b []byte) ([]byte, error) {
  2939  	if b == nil {
  2940  		b = make([]byte, m.Size())
  2941  	}
  2942  	buf := codec.NewBuffer(b)
  2943  	buf.EncodeBytes(m.OutsideIPAddress[:], 4)
  2944  	buf.EncodeUint16(m.OutsidePort)
  2945  	buf.EncodeBytes(m.InsideIPAddress[:], 4)
  2946  	buf.EncodeUint16(m.InsidePort)
  2947  	buf.EncodeUint16(m.Protocol)
  2948  	buf.EncodeUint8(uint8(m.Flags))
  2949  	buf.EncodeUint64(m.LastHeard)
  2950  	buf.EncodeUint64(m.TotalBytes)
  2951  	buf.EncodeUint32(m.TotalPkts)
  2952  	buf.EncodeBytes(m.ExtHostAddress[:], 4)
  2953  	buf.EncodeUint16(m.ExtHostPort)
  2954  	buf.EncodeBytes(m.ExtHostNatAddress[:], 4)
  2955  	buf.EncodeUint16(m.ExtHostNatPort)
  2956  	buf.EncodeBool(m.IsTimedOut)
  2957  	return buf.Bytes(), nil
  2958  }
  2959  func (m *Nat44UserSessionV2Details) Unmarshal(b []byte) error {
  2960  	buf := codec.NewBuffer(b)
  2961  	copy(m.OutsideIPAddress[:], buf.DecodeBytes(4))
  2962  	m.OutsidePort = buf.DecodeUint16()
  2963  	copy(m.InsideIPAddress[:], buf.DecodeBytes(4))
  2964  	m.InsidePort = buf.DecodeUint16()
  2965  	m.Protocol = buf.DecodeUint16()
  2966  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
  2967  	m.LastHeard = buf.DecodeUint64()
  2968  	m.TotalBytes = buf.DecodeUint64()
  2969  	m.TotalPkts = buf.DecodeUint32()
  2970  	copy(m.ExtHostAddress[:], buf.DecodeBytes(4))
  2971  	m.ExtHostPort = buf.DecodeUint16()
  2972  	copy(m.ExtHostNatAddress[:], buf.DecodeBytes(4))
  2973  	m.ExtHostNatPort = buf.DecodeUint16()
  2974  	m.IsTimedOut = buf.DecodeBool()
  2975  	return nil
  2976  }
  2977  
  2978  // NAT44 user's sessions
  2979  //   - ip_address - IPv4 address of the user to dump
  2980  //   - vrf_id - VRF_ID
  2981  //
  2982  // Nat44UserSessionV2Dump defines message 'nat44_user_session_v2_dump'.
  2983  // Deprecated: the message will be removed in the future versions
  2984  type Nat44UserSessionV2Dump struct {
  2985  	IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
  2986  	VrfID     uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
  2987  }
  2988  
  2989  func (m *Nat44UserSessionV2Dump) Reset()               { *m = Nat44UserSessionV2Dump{} }
  2990  func (*Nat44UserSessionV2Dump) GetMessageName() string { return "nat44_user_session_v2_dump" }
  2991  func (*Nat44UserSessionV2Dump) GetCrcString() string   { return "e1899c98" }
  2992  func (*Nat44UserSessionV2Dump) GetMessageType() api.MessageType {
  2993  	return api.RequestMessage
  2994  }
  2995  
  2996  func (m *Nat44UserSessionV2Dump) Size() (size int) {
  2997  	if m == nil {
  2998  		return 0
  2999  	}
  3000  	size += 1 * 4 // m.IPAddress
  3001  	size += 4     // m.VrfID
  3002  	return size
  3003  }
  3004  func (m *Nat44UserSessionV2Dump) Marshal(b []byte) ([]byte, error) {
  3005  	if b == nil {
  3006  		b = make([]byte, m.Size())
  3007  	}
  3008  	buf := codec.NewBuffer(b)
  3009  	buf.EncodeBytes(m.IPAddress[:], 4)
  3010  	buf.EncodeUint32(m.VrfID)
  3011  	return buf.Bytes(), nil
  3012  }
  3013  func (m *Nat44UserSessionV2Dump) Unmarshal(b []byte) error {
  3014  	buf := codec.NewBuffer(b)
  3015  	copy(m.IPAddress[:], buf.DecodeBytes(4))
  3016  	m.VrfID = buf.DecodeUint32()
  3017  	return nil
  3018  }
  3019  
  3020  // NAT44 user's sessions response
  3021  //   - outside_ip_address - outside IPv4 address
  3022  //   - outside_port - outside port
  3023  //   - inside_ip_address - inside IPv4 address
  3024  //   - inside_port - inside port
  3025  //   - protocol - protocol
  3026  //   - flags - flag NAT_IS_STATIC if session is static,
  3027  //     flag NAT_IS_TWICE_NAT if session is twice-nat,
  3028  //     flag NAT_IS_EXT_HOST_VALID if external host address
  3029  //     and port are valid
  3030  //   - last_heard - last heard timer since VPP start
  3031  //   - time_since_last_heard - difference between current vpp time and last_heard value
  3032  //   - total_bytes - count of bytes sent through session
  3033  //   - total_pkts - count of pakets sent through session
  3034  //   - ext_host_address - external host IPv4 address
  3035  //   - ext_host_port - external host port
  3036  //   - ext_host_nat_address - post-NAT external host IPv4 address (valid
  3037  //     only if twice-nat session)
  3038  //   - ext_host_nat_port - post-NAT external host port (valid only if
  3039  //     twice-nat session)
  3040  //   - is_timed_out - true, if session is timed out, and false, if session
  3041  //     is active
  3042  //
  3043  // Nat44UserSessionV3Details defines message 'nat44_user_session_v3_details'.
  3044  type Nat44UserSessionV3Details struct {
  3045  	OutsideIPAddress   ip_types.IP4Address      `binapi:"ip4_address,name=outside_ip_address" json:"outside_ip_address,omitempty"`
  3046  	OutsidePort        uint16                   `binapi:"u16,name=outside_port" json:"outside_port,omitempty"`
  3047  	InsideIPAddress    ip_types.IP4Address      `binapi:"ip4_address,name=inside_ip_address" json:"inside_ip_address,omitempty"`
  3048  	InsidePort         uint16                   `binapi:"u16,name=inside_port" json:"inside_port,omitempty"`
  3049  	Protocol           uint16                   `binapi:"u16,name=protocol" json:"protocol,omitempty"`
  3050  	Flags              nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
  3051  	LastHeard          uint64                   `binapi:"u64,name=last_heard" json:"last_heard,omitempty"`
  3052  	TimeSinceLastHeard uint64                   `binapi:"u64,name=time_since_last_heard" json:"time_since_last_heard,omitempty"`
  3053  	TotalBytes         uint64                   `binapi:"u64,name=total_bytes" json:"total_bytes,omitempty"`
  3054  	TotalPkts          uint32                   `binapi:"u32,name=total_pkts" json:"total_pkts,omitempty"`
  3055  	ExtHostAddress     ip_types.IP4Address      `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"`
  3056  	ExtHostPort        uint16                   `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"`
  3057  	ExtHostNatAddress  ip_types.IP4Address      `binapi:"ip4_address,name=ext_host_nat_address" json:"ext_host_nat_address,omitempty"`
  3058  	ExtHostNatPort     uint16                   `binapi:"u16,name=ext_host_nat_port" json:"ext_host_nat_port,omitempty"`
  3059  	IsTimedOut         bool                     `binapi:"bool,name=is_timed_out" json:"is_timed_out,omitempty"`
  3060  }
  3061  
  3062  func (m *Nat44UserSessionV3Details) Reset()               { *m = Nat44UserSessionV3Details{} }
  3063  func (*Nat44UserSessionV3Details) GetMessageName() string { return "nat44_user_session_v3_details" }
  3064  func (*Nat44UserSessionV3Details) GetCrcString() string   { return "edae926e" }
  3065  func (*Nat44UserSessionV3Details) GetMessageType() api.MessageType {
  3066  	return api.ReplyMessage
  3067  }
  3068  
  3069  func (m *Nat44UserSessionV3Details) Size() (size int) {
  3070  	if m == nil {
  3071  		return 0
  3072  	}
  3073  	size += 1 * 4 // m.OutsideIPAddress
  3074  	size += 2     // m.OutsidePort
  3075  	size += 1 * 4 // m.InsideIPAddress
  3076  	size += 2     // m.InsidePort
  3077  	size += 2     // m.Protocol
  3078  	size += 1     // m.Flags
  3079  	size += 8     // m.LastHeard
  3080  	size += 8     // m.TimeSinceLastHeard
  3081  	size += 8     // m.TotalBytes
  3082  	size += 4     // m.TotalPkts
  3083  	size += 1 * 4 // m.ExtHostAddress
  3084  	size += 2     // m.ExtHostPort
  3085  	size += 1 * 4 // m.ExtHostNatAddress
  3086  	size += 2     // m.ExtHostNatPort
  3087  	size += 1     // m.IsTimedOut
  3088  	return size
  3089  }
  3090  func (m *Nat44UserSessionV3Details) Marshal(b []byte) ([]byte, error) {
  3091  	if b == nil {
  3092  		b = make([]byte, m.Size())
  3093  	}
  3094  	buf := codec.NewBuffer(b)
  3095  	buf.EncodeBytes(m.OutsideIPAddress[:], 4)
  3096  	buf.EncodeUint16(m.OutsidePort)
  3097  	buf.EncodeBytes(m.InsideIPAddress[:], 4)
  3098  	buf.EncodeUint16(m.InsidePort)
  3099  	buf.EncodeUint16(m.Protocol)
  3100  	buf.EncodeUint8(uint8(m.Flags))
  3101  	buf.EncodeUint64(m.LastHeard)
  3102  	buf.EncodeUint64(m.TimeSinceLastHeard)
  3103  	buf.EncodeUint64(m.TotalBytes)
  3104  	buf.EncodeUint32(m.TotalPkts)
  3105  	buf.EncodeBytes(m.ExtHostAddress[:], 4)
  3106  	buf.EncodeUint16(m.ExtHostPort)
  3107  	buf.EncodeBytes(m.ExtHostNatAddress[:], 4)
  3108  	buf.EncodeUint16(m.ExtHostNatPort)
  3109  	buf.EncodeBool(m.IsTimedOut)
  3110  	return buf.Bytes(), nil
  3111  }
  3112  func (m *Nat44UserSessionV3Details) Unmarshal(b []byte) error {
  3113  	buf := codec.NewBuffer(b)
  3114  	copy(m.OutsideIPAddress[:], buf.DecodeBytes(4))
  3115  	m.OutsidePort = buf.DecodeUint16()
  3116  	copy(m.InsideIPAddress[:], buf.DecodeBytes(4))
  3117  	m.InsidePort = buf.DecodeUint16()
  3118  	m.Protocol = buf.DecodeUint16()
  3119  	m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
  3120  	m.LastHeard = buf.DecodeUint64()
  3121  	m.TimeSinceLastHeard = buf.DecodeUint64()
  3122  	m.TotalBytes = buf.DecodeUint64()
  3123  	m.TotalPkts = buf.DecodeUint32()
  3124  	copy(m.ExtHostAddress[:], buf.DecodeBytes(4))
  3125  	m.ExtHostPort = buf.DecodeUint16()
  3126  	copy(m.ExtHostNatAddress[:], buf.DecodeBytes(4))
  3127  	m.ExtHostNatPort = buf.DecodeUint16()
  3128  	m.IsTimedOut = buf.DecodeBool()
  3129  	return nil
  3130  }
  3131  
  3132  // NAT44 user's sessions
  3133  //   - ip_address - IPv4 address of the user to dump
  3134  //   - vrf_id - VRF_ID
  3135  //
  3136  // Nat44UserSessionV3Dump defines message 'nat44_user_session_v3_dump'.
  3137  type Nat44UserSessionV3Dump struct {
  3138  	IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
  3139  	VrfID     uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
  3140  }
  3141  
  3142  func (m *Nat44UserSessionV3Dump) Reset()               { *m = Nat44UserSessionV3Dump{} }
  3143  func (*Nat44UserSessionV3Dump) GetMessageName() string { return "nat44_user_session_v3_dump" }
  3144  func (*Nat44UserSessionV3Dump) GetCrcString() string   { return "e1899c98" }
  3145  func (*Nat44UserSessionV3Dump) GetMessageType() api.MessageType {
  3146  	return api.RequestMessage
  3147  }
  3148  
  3149  func (m *Nat44UserSessionV3Dump) Size() (size int) {
  3150  	if m == nil {
  3151  		return 0
  3152  	}
  3153  	size += 1 * 4 // m.IPAddress
  3154  	size += 4     // m.VrfID
  3155  	return size
  3156  }
  3157  func (m *Nat44UserSessionV3Dump) Marshal(b []byte) ([]byte, error) {
  3158  	if b == nil {
  3159  		b = make([]byte, m.Size())
  3160  	}
  3161  	buf := codec.NewBuffer(b)
  3162  	buf.EncodeBytes(m.IPAddress[:], 4)
  3163  	buf.EncodeUint32(m.VrfID)
  3164  	return buf.Bytes(), nil
  3165  }
  3166  func (m *Nat44UserSessionV3Dump) Unmarshal(b []byte) error {
  3167  	buf := codec.NewBuffer(b)
  3168  	copy(m.IPAddress[:], buf.DecodeBytes(4))
  3169  	m.VrfID = buf.DecodeUint32()
  3170  	return nil
  3171  }
  3172  
  3173  // Get TCP MSS rewriting configuration
  3174  // NatGetMssClamping defines message 'nat_get_mss_clamping'.
  3175  type NatGetMssClamping struct{}
  3176  
  3177  func (m *NatGetMssClamping) Reset()               { *m = NatGetMssClamping{} }
  3178  func (*NatGetMssClamping) GetMessageName() string { return "nat_get_mss_clamping" }
  3179  func (*NatGetMssClamping) GetCrcString() string   { return "51077d14" }
  3180  func (*NatGetMssClamping) GetMessageType() api.MessageType {
  3181  	return api.RequestMessage
  3182  }
  3183  
  3184  func (m *NatGetMssClamping) Size() (size int) {
  3185  	if m == nil {
  3186  		return 0
  3187  	}
  3188  	return size
  3189  }
  3190  func (m *NatGetMssClamping) Marshal(b []byte) ([]byte, error) {
  3191  	if b == nil {
  3192  		b = make([]byte, m.Size())
  3193  	}
  3194  	buf := codec.NewBuffer(b)
  3195  	return buf.Bytes(), nil
  3196  }
  3197  func (m *NatGetMssClamping) Unmarshal(b []byte) error {
  3198  	return nil
  3199  }
  3200  
  3201  // Get TCP MSS rewriting configuration reply
  3202  //   - retval - return code
  3203  //   - mss_value - MSS value to be used for MSS rewriting
  3204  //   - enable - if true enable MSS rewriting feature else disable
  3205  //
  3206  // NatGetMssClampingReply defines message 'nat_get_mss_clamping_reply'.
  3207  type NatGetMssClampingReply struct {
  3208  	Retval   int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  3209  	MssValue uint16 `binapi:"u16,name=mss_value" json:"mss_value,omitempty"`
  3210  	Enable   bool   `binapi:"bool,name=enable" json:"enable,omitempty"`
  3211  }
  3212  
  3213  func (m *NatGetMssClampingReply) Reset()               { *m = NatGetMssClampingReply{} }
  3214  func (*NatGetMssClampingReply) GetMessageName() string { return "nat_get_mss_clamping_reply" }
  3215  func (*NatGetMssClampingReply) GetCrcString() string   { return "1c0b2a78" }
  3216  func (*NatGetMssClampingReply) GetMessageType() api.MessageType {
  3217  	return api.ReplyMessage
  3218  }
  3219  
  3220  func (m *NatGetMssClampingReply) Size() (size int) {
  3221  	if m == nil {
  3222  		return 0
  3223  	}
  3224  	size += 4 // m.Retval
  3225  	size += 2 // m.MssValue
  3226  	size += 1 // m.Enable
  3227  	return size
  3228  }
  3229  func (m *NatGetMssClampingReply) Marshal(b []byte) ([]byte, error) {
  3230  	if b == nil {
  3231  		b = make([]byte, m.Size())
  3232  	}
  3233  	buf := codec.NewBuffer(b)
  3234  	buf.EncodeInt32(m.Retval)
  3235  	buf.EncodeUint16(m.MssValue)
  3236  	buf.EncodeBool(m.Enable)
  3237  	return buf.Bytes(), nil
  3238  }
  3239  func (m *NatGetMssClampingReply) Unmarshal(b []byte) error {
  3240  	buf := codec.NewBuffer(b)
  3241  	m.Retval = buf.DecodeInt32()
  3242  	m.MssValue = buf.DecodeUint16()
  3243  	m.Enable = buf.DecodeBool()
  3244  	return nil
  3245  }
  3246  
  3247  // Enable/disable NAT IPFIX logging
  3248  //   - domain_id - observation domain ID
  3249  //   - src_port - source port number
  3250  //   - enable - true if enable, false if disable
  3251  //
  3252  // NatIpfixEnableDisable defines message 'nat_ipfix_enable_disable'.
  3253  // Deprecated: the message will be removed in the future versions
  3254  type NatIpfixEnableDisable struct {
  3255  	DomainID uint32 `binapi:"u32,name=domain_id" json:"domain_id,omitempty"`
  3256  	SrcPort  uint16 `binapi:"u16,name=src_port" json:"src_port,omitempty"`
  3257  	Enable   bool   `binapi:"bool,name=enable" json:"enable,omitempty"`
  3258  }
  3259  
  3260  func (m *NatIpfixEnableDisable) Reset()               { *m = NatIpfixEnableDisable{} }
  3261  func (*NatIpfixEnableDisable) GetMessageName() string { return "nat_ipfix_enable_disable" }
  3262  func (*NatIpfixEnableDisable) GetCrcString() string   { return "9af4a2d2" }
  3263  func (*NatIpfixEnableDisable) GetMessageType() api.MessageType {
  3264  	return api.RequestMessage
  3265  }
  3266  
  3267  func (m *NatIpfixEnableDisable) Size() (size int) {
  3268  	if m == nil {
  3269  		return 0
  3270  	}
  3271  	size += 4 // m.DomainID
  3272  	size += 2 // m.SrcPort
  3273  	size += 1 // m.Enable
  3274  	return size
  3275  }
  3276  func (m *NatIpfixEnableDisable) Marshal(b []byte) ([]byte, error) {
  3277  	if b == nil {
  3278  		b = make([]byte, m.Size())
  3279  	}
  3280  	buf := codec.NewBuffer(b)
  3281  	buf.EncodeUint32(m.DomainID)
  3282  	buf.EncodeUint16(m.SrcPort)
  3283  	buf.EncodeBool(m.Enable)
  3284  	return buf.Bytes(), nil
  3285  }
  3286  func (m *NatIpfixEnableDisable) Unmarshal(b []byte) error {
  3287  	buf := codec.NewBuffer(b)
  3288  	m.DomainID = buf.DecodeUint32()
  3289  	m.SrcPort = buf.DecodeUint16()
  3290  	m.Enable = buf.DecodeBool()
  3291  	return nil
  3292  }
  3293  
  3294  // NatIpfixEnableDisableReply defines message 'nat_ipfix_enable_disable_reply'.
  3295  // Deprecated: the message will be removed in the future versions
  3296  type NatIpfixEnableDisableReply struct {
  3297  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  3298  }
  3299  
  3300  func (m *NatIpfixEnableDisableReply) Reset()               { *m = NatIpfixEnableDisableReply{} }
  3301  func (*NatIpfixEnableDisableReply) GetMessageName() string { return "nat_ipfix_enable_disable_reply" }
  3302  func (*NatIpfixEnableDisableReply) GetCrcString() string   { return "e8d4e804" }
  3303  func (*NatIpfixEnableDisableReply) GetMessageType() api.MessageType {
  3304  	return api.ReplyMessage
  3305  }
  3306  
  3307  func (m *NatIpfixEnableDisableReply) Size() (size int) {
  3308  	if m == nil {
  3309  		return 0
  3310  	}
  3311  	size += 4 // m.Retval
  3312  	return size
  3313  }
  3314  func (m *NatIpfixEnableDisableReply) Marshal(b []byte) ([]byte, error) {
  3315  	if b == nil {
  3316  		b = make([]byte, m.Size())
  3317  	}
  3318  	buf := codec.NewBuffer(b)
  3319  	buf.EncodeInt32(m.Retval)
  3320  	return buf.Bytes(), nil
  3321  }
  3322  func (m *NatIpfixEnableDisableReply) Unmarshal(b []byte) error {
  3323  	buf := codec.NewBuffer(b)
  3324  	m.Retval = buf.DecodeInt32()
  3325  	return nil
  3326  }
  3327  
  3328  // Set TCP MSS rewriting configuration
  3329  //   - mss_value - MSS value to be used for MSS rewriting
  3330  //   - enable - if true enable MSS rewriting feature else disable
  3331  //
  3332  // NatSetMssClamping defines message 'nat_set_mss_clamping'.
  3333  type NatSetMssClamping struct {
  3334  	MssValue uint16 `binapi:"u16,name=mss_value" json:"mss_value,omitempty"`
  3335  	Enable   bool   `binapi:"bool,name=enable" json:"enable,omitempty"`
  3336  }
  3337  
  3338  func (m *NatSetMssClamping) Reset()               { *m = NatSetMssClamping{} }
  3339  func (*NatSetMssClamping) GetMessageName() string { return "nat_set_mss_clamping" }
  3340  func (*NatSetMssClamping) GetCrcString() string   { return "25e90abb" }
  3341  func (*NatSetMssClamping) GetMessageType() api.MessageType {
  3342  	return api.RequestMessage
  3343  }
  3344  
  3345  func (m *NatSetMssClamping) Size() (size int) {
  3346  	if m == nil {
  3347  		return 0
  3348  	}
  3349  	size += 2 // m.MssValue
  3350  	size += 1 // m.Enable
  3351  	return size
  3352  }
  3353  func (m *NatSetMssClamping) Marshal(b []byte) ([]byte, error) {
  3354  	if b == nil {
  3355  		b = make([]byte, m.Size())
  3356  	}
  3357  	buf := codec.NewBuffer(b)
  3358  	buf.EncodeUint16(m.MssValue)
  3359  	buf.EncodeBool(m.Enable)
  3360  	return buf.Bytes(), nil
  3361  }
  3362  func (m *NatSetMssClamping) Unmarshal(b []byte) error {
  3363  	buf := codec.NewBuffer(b)
  3364  	m.MssValue = buf.DecodeUint16()
  3365  	m.Enable = buf.DecodeBool()
  3366  	return nil
  3367  }
  3368  
  3369  // NatSetMssClampingReply defines message 'nat_set_mss_clamping_reply'.
  3370  type NatSetMssClampingReply struct {
  3371  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  3372  }
  3373  
  3374  func (m *NatSetMssClampingReply) Reset()               { *m = NatSetMssClampingReply{} }
  3375  func (*NatSetMssClampingReply) GetMessageName() string { return "nat_set_mss_clamping_reply" }
  3376  func (*NatSetMssClampingReply) GetCrcString() string   { return "e8d4e804" }
  3377  func (*NatSetMssClampingReply) GetMessageType() api.MessageType {
  3378  	return api.ReplyMessage
  3379  }
  3380  
  3381  func (m *NatSetMssClampingReply) Size() (size int) {
  3382  	if m == nil {
  3383  		return 0
  3384  	}
  3385  	size += 4 // m.Retval
  3386  	return size
  3387  }
  3388  func (m *NatSetMssClampingReply) Marshal(b []byte) ([]byte, error) {
  3389  	if b == nil {
  3390  		b = make([]byte, m.Size())
  3391  	}
  3392  	buf := codec.NewBuffer(b)
  3393  	buf.EncodeInt32(m.Retval)
  3394  	return buf.Bytes(), nil
  3395  }
  3396  func (m *NatSetMssClampingReply) Unmarshal(b []byte) error {
  3397  	buf := codec.NewBuffer(b)
  3398  	m.Retval = buf.DecodeInt32()
  3399  	return nil
  3400  }
  3401  
  3402  // Set values of timeouts for NAT sessions (seconds)
  3403  //   - udp - UDP timeout (default 300sec)
  3404  //   - tcp_established - TCP established timeout (default 7440sec)
  3405  //   - tcp_transitory - TCP transitory timeout (default 240sec)
  3406  //   - icmp - ICMP timeout (default 60sec)
  3407  //
  3408  // NatSetTimeouts defines message 'nat_set_timeouts'.
  3409  // Deprecated: the message will be removed in the future versions
  3410  type NatSetTimeouts struct {
  3411  	UDP            uint32 `binapi:"u32,name=udp" json:"udp,omitempty"`
  3412  	TCPEstablished uint32 `binapi:"u32,name=tcp_established" json:"tcp_established,omitempty"`
  3413  	TCPTransitory  uint32 `binapi:"u32,name=tcp_transitory" json:"tcp_transitory,omitempty"`
  3414  	ICMP           uint32 `binapi:"u32,name=icmp" json:"icmp,omitempty"`
  3415  }
  3416  
  3417  func (m *NatSetTimeouts) Reset()               { *m = NatSetTimeouts{} }
  3418  func (*NatSetTimeouts) GetMessageName() string { return "nat_set_timeouts" }
  3419  func (*NatSetTimeouts) GetCrcString() string   { return "d4746b16" }
  3420  func (*NatSetTimeouts) GetMessageType() api.MessageType {
  3421  	return api.RequestMessage
  3422  }
  3423  
  3424  func (m *NatSetTimeouts) Size() (size int) {
  3425  	if m == nil {
  3426  		return 0
  3427  	}
  3428  	size += 4 // m.UDP
  3429  	size += 4 // m.TCPEstablished
  3430  	size += 4 // m.TCPTransitory
  3431  	size += 4 // m.ICMP
  3432  	return size
  3433  }
  3434  func (m *NatSetTimeouts) Marshal(b []byte) ([]byte, error) {
  3435  	if b == nil {
  3436  		b = make([]byte, m.Size())
  3437  	}
  3438  	buf := codec.NewBuffer(b)
  3439  	buf.EncodeUint32(m.UDP)
  3440  	buf.EncodeUint32(m.TCPEstablished)
  3441  	buf.EncodeUint32(m.TCPTransitory)
  3442  	buf.EncodeUint32(m.ICMP)
  3443  	return buf.Bytes(), nil
  3444  }
  3445  func (m *NatSetTimeouts) Unmarshal(b []byte) error {
  3446  	buf := codec.NewBuffer(b)
  3447  	m.UDP = buf.DecodeUint32()
  3448  	m.TCPEstablished = buf.DecodeUint32()
  3449  	m.TCPTransitory = buf.DecodeUint32()
  3450  	m.ICMP = buf.DecodeUint32()
  3451  	return nil
  3452  }
  3453  
  3454  // NatSetTimeoutsReply defines message 'nat_set_timeouts_reply'.
  3455  // Deprecated: the message will be removed in the future versions
  3456  type NatSetTimeoutsReply struct {
  3457  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  3458  }
  3459  
  3460  func (m *NatSetTimeoutsReply) Reset()               { *m = NatSetTimeoutsReply{} }
  3461  func (*NatSetTimeoutsReply) GetMessageName() string { return "nat_set_timeouts_reply" }
  3462  func (*NatSetTimeoutsReply) GetCrcString() string   { return "e8d4e804" }
  3463  func (*NatSetTimeoutsReply) GetMessageType() api.MessageType {
  3464  	return api.ReplyMessage
  3465  }
  3466  
  3467  func (m *NatSetTimeoutsReply) Size() (size int) {
  3468  	if m == nil {
  3469  		return 0
  3470  	}
  3471  	size += 4 // m.Retval
  3472  	return size
  3473  }
  3474  func (m *NatSetTimeoutsReply) Marshal(b []byte) ([]byte, error) {
  3475  	if b == nil {
  3476  		b = make([]byte, m.Size())
  3477  	}
  3478  	buf := codec.NewBuffer(b)
  3479  	buf.EncodeInt32(m.Retval)
  3480  	return buf.Bytes(), nil
  3481  }
  3482  func (m *NatSetTimeoutsReply) Unmarshal(b []byte) error {
  3483  	buf := codec.NewBuffer(b)
  3484  	m.Retval = buf.DecodeInt32()
  3485  	return nil
  3486  }
  3487  
  3488  // Set NAT workers
  3489  //   - worker_mask - NAT workers mask
  3490  //
  3491  // NatSetWorkers defines message 'nat_set_workers'.
  3492  type NatSetWorkers struct {
  3493  	WorkerMask uint64 `binapi:"u64,name=worker_mask" json:"worker_mask,omitempty"`
  3494  }
  3495  
  3496  func (m *NatSetWorkers) Reset()               { *m = NatSetWorkers{} }
  3497  func (*NatSetWorkers) GetMessageName() string { return "nat_set_workers" }
  3498  func (*NatSetWorkers) GetCrcString() string   { return "da926638" }
  3499  func (*NatSetWorkers) GetMessageType() api.MessageType {
  3500  	return api.RequestMessage
  3501  }
  3502  
  3503  func (m *NatSetWorkers) Size() (size int) {
  3504  	if m == nil {
  3505  		return 0
  3506  	}
  3507  	size += 8 // m.WorkerMask
  3508  	return size
  3509  }
  3510  func (m *NatSetWorkers) Marshal(b []byte) ([]byte, error) {
  3511  	if b == nil {
  3512  		b = make([]byte, m.Size())
  3513  	}
  3514  	buf := codec.NewBuffer(b)
  3515  	buf.EncodeUint64(m.WorkerMask)
  3516  	return buf.Bytes(), nil
  3517  }
  3518  func (m *NatSetWorkers) Unmarshal(b []byte) error {
  3519  	buf := codec.NewBuffer(b)
  3520  	m.WorkerMask = buf.DecodeUint64()
  3521  	return nil
  3522  }
  3523  
  3524  // NatSetWorkersReply defines message 'nat_set_workers_reply'.
  3525  type NatSetWorkersReply struct {
  3526  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  3527  }
  3528  
  3529  func (m *NatSetWorkersReply) Reset()               { *m = NatSetWorkersReply{} }
  3530  func (*NatSetWorkersReply) GetMessageName() string { return "nat_set_workers_reply" }
  3531  func (*NatSetWorkersReply) GetCrcString() string   { return "e8d4e804" }
  3532  func (*NatSetWorkersReply) GetMessageType() api.MessageType {
  3533  	return api.ReplyMessage
  3534  }
  3535  
  3536  func (m *NatSetWorkersReply) Size() (size int) {
  3537  	if m == nil {
  3538  		return 0
  3539  	}
  3540  	size += 4 // m.Retval
  3541  	return size
  3542  }
  3543  func (m *NatSetWorkersReply) Marshal(b []byte) ([]byte, error) {
  3544  	if b == nil {
  3545  		b = make([]byte, m.Size())
  3546  	}
  3547  	buf := codec.NewBuffer(b)
  3548  	buf.EncodeInt32(m.Retval)
  3549  	return buf.Bytes(), nil
  3550  }
  3551  func (m *NatSetWorkersReply) Unmarshal(b []byte) error {
  3552  	buf := codec.NewBuffer(b)
  3553  	m.Retval = buf.DecodeInt32()
  3554  	return nil
  3555  }
  3556  
  3557  // NAT workers details response
  3558  //   - worker_index - worker index
  3559  //   - lcore_id - lcore ID
  3560  //   - name - worker name
  3561  //
  3562  // NatWorkerDetails defines message 'nat_worker_details'.
  3563  type NatWorkerDetails struct {
  3564  	WorkerIndex uint32 `binapi:"u32,name=worker_index" json:"worker_index,omitempty"`
  3565  	LcoreID     uint32 `binapi:"u32,name=lcore_id" json:"lcore_id,omitempty"`
  3566  	Name        string `binapi:"string[64],name=name" json:"name,omitempty"`
  3567  }
  3568  
  3569  func (m *NatWorkerDetails) Reset()               { *m = NatWorkerDetails{} }
  3570  func (*NatWorkerDetails) GetMessageName() string { return "nat_worker_details" }
  3571  func (*NatWorkerDetails) GetCrcString() string   { return "84bf06fc" }
  3572  func (*NatWorkerDetails) GetMessageType() api.MessageType {
  3573  	return api.ReplyMessage
  3574  }
  3575  
  3576  func (m *NatWorkerDetails) Size() (size int) {
  3577  	if m == nil {
  3578  		return 0
  3579  	}
  3580  	size += 4  // m.WorkerIndex
  3581  	size += 4  // m.LcoreID
  3582  	size += 64 // m.Name
  3583  	return size
  3584  }
  3585  func (m *NatWorkerDetails) Marshal(b []byte) ([]byte, error) {
  3586  	if b == nil {
  3587  		b = make([]byte, m.Size())
  3588  	}
  3589  	buf := codec.NewBuffer(b)
  3590  	buf.EncodeUint32(m.WorkerIndex)
  3591  	buf.EncodeUint32(m.LcoreID)
  3592  	buf.EncodeString(m.Name, 64)
  3593  	return buf.Bytes(), nil
  3594  }
  3595  func (m *NatWorkerDetails) Unmarshal(b []byte) error {
  3596  	buf := codec.NewBuffer(b)
  3597  	m.WorkerIndex = buf.DecodeUint32()
  3598  	m.LcoreID = buf.DecodeUint32()
  3599  	m.Name = buf.DecodeString(64)
  3600  	return nil
  3601  }
  3602  
  3603  // Dump NAT workers
  3604  // NatWorkerDump defines message 'nat_worker_dump'.
  3605  type NatWorkerDump struct{}
  3606  
  3607  func (m *NatWorkerDump) Reset()               { *m = NatWorkerDump{} }
  3608  func (*NatWorkerDump) GetMessageName() string { return "nat_worker_dump" }
  3609  func (*NatWorkerDump) GetCrcString() string   { return "51077d14" }
  3610  func (*NatWorkerDump) GetMessageType() api.MessageType {
  3611  	return api.RequestMessage
  3612  }
  3613  
  3614  func (m *NatWorkerDump) Size() (size int) {
  3615  	if m == nil {
  3616  		return 0
  3617  	}
  3618  	return size
  3619  }
  3620  func (m *NatWorkerDump) Marshal(b []byte) ([]byte, error) {
  3621  	if b == nil {
  3622  		b = make([]byte, m.Size())
  3623  	}
  3624  	buf := codec.NewBuffer(b)
  3625  	return buf.Bytes(), nil
  3626  }
  3627  func (m *NatWorkerDump) Unmarshal(b []byte) error {
  3628  	return nil
  3629  }
  3630  
  3631  func init() { file_nat44_ed_binapi_init() }
  3632  func file_nat44_ed_binapi_init() {
  3633  	api.RegisterMessage((*Nat44AddDelAddressRange)(nil), "nat44_add_del_address_range_6f2b8055")
  3634  	api.RegisterMessage((*Nat44AddDelAddressRangeReply)(nil), "nat44_add_del_address_range_reply_e8d4e804")
  3635  	api.RegisterMessage((*Nat44AddDelIdentityMapping)(nil), "nat44_add_del_identity_mapping_02faaa22")
  3636  	api.RegisterMessage((*Nat44AddDelIdentityMappingReply)(nil), "nat44_add_del_identity_mapping_reply_e8d4e804")
  3637  	api.RegisterMessage((*Nat44AddDelInterfaceAddr)(nil), "nat44_add_del_interface_addr_4aed50c0")
  3638  	api.RegisterMessage((*Nat44AddDelInterfaceAddrReply)(nil), "nat44_add_del_interface_addr_reply_e8d4e804")
  3639  	api.RegisterMessage((*Nat44AddDelLbStaticMapping)(nil), "nat44_add_del_lb_static_mapping_4f68ee9d")
  3640  	api.RegisterMessage((*Nat44AddDelLbStaticMappingReply)(nil), "nat44_add_del_lb_static_mapping_reply_e8d4e804")
  3641  	api.RegisterMessage((*Nat44AddDelStaticMapping)(nil), "nat44_add_del_static_mapping_5ae5f03e")
  3642  	api.RegisterMessage((*Nat44AddDelStaticMappingReply)(nil), "nat44_add_del_static_mapping_reply_e8d4e804")
  3643  	api.RegisterMessage((*Nat44AddDelStaticMappingV2)(nil), "nat44_add_del_static_mapping_v2_5e205f1a")
  3644  	api.RegisterMessage((*Nat44AddDelStaticMappingV2Reply)(nil), "nat44_add_del_static_mapping_v2_reply_e8d4e804")
  3645  	api.RegisterMessage((*Nat44AddressDetails)(nil), "nat44_address_details_0d1beac1")
  3646  	api.RegisterMessage((*Nat44AddressDump)(nil), "nat44_address_dump_51077d14")
  3647  	api.RegisterMessage((*Nat44DelSession)(nil), "nat44_del_session_15a5bf8c")
  3648  	api.RegisterMessage((*Nat44DelSessionReply)(nil), "nat44_del_session_reply_e8d4e804")
  3649  	api.RegisterMessage((*Nat44EdAddDelOutputInterface)(nil), "nat44_ed_add_del_output_interface_47d6e753")
  3650  	api.RegisterMessage((*Nat44EdAddDelOutputInterfaceReply)(nil), "nat44_ed_add_del_output_interface_reply_e8d4e804")
  3651  	api.RegisterMessage((*Nat44EdAddDelVrfRoute)(nil), "nat44_ed_add_del_vrf_route_59187407")
  3652  	api.RegisterMessage((*Nat44EdAddDelVrfRouteReply)(nil), "nat44_ed_add_del_vrf_route_reply_e8d4e804")
  3653  	api.RegisterMessage((*Nat44EdAddDelVrfTable)(nil), "nat44_ed_add_del_vrf_table_08330904")
  3654  	api.RegisterMessage((*Nat44EdAddDelVrfTableReply)(nil), "nat44_ed_add_del_vrf_table_reply_e8d4e804")
  3655  	api.RegisterMessage((*Nat44EdOutputInterfaceDetails)(nil), "nat44_ed_output_interface_details_0b45011c")
  3656  	api.RegisterMessage((*Nat44EdOutputInterfaceGet)(nil), "nat44_ed_output_interface_get_f75ba505")
  3657  	api.RegisterMessage((*Nat44EdOutputInterfaceGetReply)(nil), "nat44_ed_output_interface_get_reply_53b48f5d")
  3658  	api.RegisterMessage((*Nat44EdPluginEnableDisable)(nil), "nat44_ed_plugin_enable_disable_be17f8dd")
  3659  	api.RegisterMessage((*Nat44EdPluginEnableDisableReply)(nil), "nat44_ed_plugin_enable_disable_reply_e8d4e804")
  3660  	api.RegisterMessage((*Nat44EdSetFqOptions)(nil), "nat44_ed_set_fq_options_2399bd71")
  3661  	api.RegisterMessage((*Nat44EdSetFqOptionsReply)(nil), "nat44_ed_set_fq_options_reply_e8d4e804")
  3662  	api.RegisterMessage((*Nat44EdShowFqOptions)(nil), "nat44_ed_show_fq_options_51077d14")
  3663  	api.RegisterMessage((*Nat44EdShowFqOptionsReply)(nil), "nat44_ed_show_fq_options_reply_7213b545")
  3664  	api.RegisterMessage((*Nat44EdVrfTablesDetails)(nil), "nat44_ed_vrf_tables_details_7b264e4f")
  3665  	api.RegisterMessage((*Nat44EdVrfTablesDump)(nil), "nat44_ed_vrf_tables_dump_51077d14")
  3666  	api.RegisterMessage((*Nat44EdVrfTablesV2Details)(nil), "nat44_ed_vrf_tables_v2_details_7b264e4f")
  3667  	api.RegisterMessage((*Nat44EdVrfTablesV2Dump)(nil), "nat44_ed_vrf_tables_v2_dump_51077d14")
  3668  	api.RegisterMessage((*Nat44ForwardingEnableDisable)(nil), "nat44_forwarding_enable_disable_b3e225d2")
  3669  	api.RegisterMessage((*Nat44ForwardingEnableDisableReply)(nil), "nat44_forwarding_enable_disable_reply_e8d4e804")
  3670  	api.RegisterMessage((*Nat44IdentityMappingDetails)(nil), "nat44_identity_mapping_details_2a52a030")
  3671  	api.RegisterMessage((*Nat44IdentityMappingDump)(nil), "nat44_identity_mapping_dump_51077d14")
  3672  	api.RegisterMessage((*Nat44InterfaceAddDelFeature)(nil), "nat44_interface_add_del_feature_f3699b83")
  3673  	api.RegisterMessage((*Nat44InterfaceAddDelFeatureReply)(nil), "nat44_interface_add_del_feature_reply_e8d4e804")
  3674  	api.RegisterMessage((*Nat44InterfaceAddrDetails)(nil), "nat44_interface_addr_details_e4aca9ca")
  3675  	api.RegisterMessage((*Nat44InterfaceAddrDump)(nil), "nat44_interface_addr_dump_51077d14")
  3676  	api.RegisterMessage((*Nat44InterfaceDetails)(nil), "nat44_interface_details_5d286289")
  3677  	api.RegisterMessage((*Nat44InterfaceDump)(nil), "nat44_interface_dump_51077d14")
  3678  	api.RegisterMessage((*Nat44LbStaticMappingAddDelLocal)(nil), "nat44_lb_static_mapping_add_del_local_7ca47547")
  3679  	api.RegisterMessage((*Nat44LbStaticMappingAddDelLocalReply)(nil), "nat44_lb_static_mapping_add_del_local_reply_e8d4e804")
  3680  	api.RegisterMessage((*Nat44LbStaticMappingDetails)(nil), "nat44_lb_static_mapping_details_ed5ce876")
  3681  	api.RegisterMessage((*Nat44LbStaticMappingDump)(nil), "nat44_lb_static_mapping_dump_51077d14")
  3682  	api.RegisterMessage((*Nat44SetSessionLimit)(nil), "nat44_set_session_limit_8899bbb1")
  3683  	api.RegisterMessage((*Nat44SetSessionLimitReply)(nil), "nat44_set_session_limit_reply_e8d4e804")
  3684  	api.RegisterMessage((*Nat44ShowRunningConfig)(nil), "nat44_show_running_config_51077d14")
  3685  	api.RegisterMessage((*Nat44ShowRunningConfigReply)(nil), "nat44_show_running_config_reply_93d8e267")
  3686  	api.RegisterMessage((*Nat44StaticMappingDetails)(nil), "nat44_static_mapping_details_06cb40b2")
  3687  	api.RegisterMessage((*Nat44StaticMappingDump)(nil), "nat44_static_mapping_dump_51077d14")
  3688  	api.RegisterMessage((*Nat44UserDetails)(nil), "nat44_user_details_355896c2")
  3689  	api.RegisterMessage((*Nat44UserDump)(nil), "nat44_user_dump_51077d14")
  3690  	api.RegisterMessage((*Nat44UserSessionDetails)(nil), "nat44_user_session_details_2cf6e16d")
  3691  	api.RegisterMessage((*Nat44UserSessionDump)(nil), "nat44_user_session_dump_e1899c98")
  3692  	api.RegisterMessage((*Nat44UserSessionV2Details)(nil), "nat44_user_session_v2_details_fd42b729")
  3693  	api.RegisterMessage((*Nat44UserSessionV2Dump)(nil), "nat44_user_session_v2_dump_e1899c98")
  3694  	api.RegisterMessage((*Nat44UserSessionV3Details)(nil), "nat44_user_session_v3_details_edae926e")
  3695  	api.RegisterMessage((*Nat44UserSessionV3Dump)(nil), "nat44_user_session_v3_dump_e1899c98")
  3696  	api.RegisterMessage((*NatGetMssClamping)(nil), "nat_get_mss_clamping_51077d14")
  3697  	api.RegisterMessage((*NatGetMssClampingReply)(nil), "nat_get_mss_clamping_reply_1c0b2a78")
  3698  	api.RegisterMessage((*NatIpfixEnableDisable)(nil), "nat_ipfix_enable_disable_9af4a2d2")
  3699  	api.RegisterMessage((*NatIpfixEnableDisableReply)(nil), "nat_ipfix_enable_disable_reply_e8d4e804")
  3700  	api.RegisterMessage((*NatSetMssClamping)(nil), "nat_set_mss_clamping_25e90abb")
  3701  	api.RegisterMessage((*NatSetMssClampingReply)(nil), "nat_set_mss_clamping_reply_e8d4e804")
  3702  	api.RegisterMessage((*NatSetTimeouts)(nil), "nat_set_timeouts_d4746b16")
  3703  	api.RegisterMessage((*NatSetTimeoutsReply)(nil), "nat_set_timeouts_reply_e8d4e804")
  3704  	api.RegisterMessage((*NatSetWorkers)(nil), "nat_set_workers_da926638")
  3705  	api.RegisterMessage((*NatSetWorkersReply)(nil), "nat_set_workers_reply_e8d4e804")
  3706  	api.RegisterMessage((*NatWorkerDetails)(nil), "nat_worker_details_84bf06fc")
  3707  	api.RegisterMessage((*NatWorkerDump)(nil), "nat_worker_dump_51077d14")
  3708  }
  3709  
  3710  // Messages returns list of all messages in this module.
  3711  func AllMessages() []api.Message {
  3712  	return []api.Message{
  3713  		(*Nat44AddDelAddressRange)(nil),
  3714  		(*Nat44AddDelAddressRangeReply)(nil),
  3715  		(*Nat44AddDelIdentityMapping)(nil),
  3716  		(*Nat44AddDelIdentityMappingReply)(nil),
  3717  		(*Nat44AddDelInterfaceAddr)(nil),
  3718  		(*Nat44AddDelInterfaceAddrReply)(nil),
  3719  		(*Nat44AddDelLbStaticMapping)(nil),
  3720  		(*Nat44AddDelLbStaticMappingReply)(nil),
  3721  		(*Nat44AddDelStaticMapping)(nil),
  3722  		(*Nat44AddDelStaticMappingReply)(nil),
  3723  		(*Nat44AddDelStaticMappingV2)(nil),
  3724  		(*Nat44AddDelStaticMappingV2Reply)(nil),
  3725  		(*Nat44AddressDetails)(nil),
  3726  		(*Nat44AddressDump)(nil),
  3727  		(*Nat44DelSession)(nil),
  3728  		(*Nat44DelSessionReply)(nil),
  3729  		(*Nat44EdAddDelOutputInterface)(nil),
  3730  		(*Nat44EdAddDelOutputInterfaceReply)(nil),
  3731  		(*Nat44EdAddDelVrfRoute)(nil),
  3732  		(*Nat44EdAddDelVrfRouteReply)(nil),
  3733  		(*Nat44EdAddDelVrfTable)(nil),
  3734  		(*Nat44EdAddDelVrfTableReply)(nil),
  3735  		(*Nat44EdOutputInterfaceDetails)(nil),
  3736  		(*Nat44EdOutputInterfaceGet)(nil),
  3737  		(*Nat44EdOutputInterfaceGetReply)(nil),
  3738  		(*Nat44EdPluginEnableDisable)(nil),
  3739  		(*Nat44EdPluginEnableDisableReply)(nil),
  3740  		(*Nat44EdSetFqOptions)(nil),
  3741  		(*Nat44EdSetFqOptionsReply)(nil),
  3742  		(*Nat44EdShowFqOptions)(nil),
  3743  		(*Nat44EdShowFqOptionsReply)(nil),
  3744  		(*Nat44EdVrfTablesDetails)(nil),
  3745  		(*Nat44EdVrfTablesDump)(nil),
  3746  		(*Nat44EdVrfTablesV2Details)(nil),
  3747  		(*Nat44EdVrfTablesV2Dump)(nil),
  3748  		(*Nat44ForwardingEnableDisable)(nil),
  3749  		(*Nat44ForwardingEnableDisableReply)(nil),
  3750  		(*Nat44IdentityMappingDetails)(nil),
  3751  		(*Nat44IdentityMappingDump)(nil),
  3752  		(*Nat44InterfaceAddDelFeature)(nil),
  3753  		(*Nat44InterfaceAddDelFeatureReply)(nil),
  3754  		(*Nat44InterfaceAddrDetails)(nil),
  3755  		(*Nat44InterfaceAddrDump)(nil),
  3756  		(*Nat44InterfaceDetails)(nil),
  3757  		(*Nat44InterfaceDump)(nil),
  3758  		(*Nat44LbStaticMappingAddDelLocal)(nil),
  3759  		(*Nat44LbStaticMappingAddDelLocalReply)(nil),
  3760  		(*Nat44LbStaticMappingDetails)(nil),
  3761  		(*Nat44LbStaticMappingDump)(nil),
  3762  		(*Nat44SetSessionLimit)(nil),
  3763  		(*Nat44SetSessionLimitReply)(nil),
  3764  		(*Nat44ShowRunningConfig)(nil),
  3765  		(*Nat44ShowRunningConfigReply)(nil),
  3766  		(*Nat44StaticMappingDetails)(nil),
  3767  		(*Nat44StaticMappingDump)(nil),
  3768  		(*Nat44UserDetails)(nil),
  3769  		(*Nat44UserDump)(nil),
  3770  		(*Nat44UserSessionDetails)(nil),
  3771  		(*Nat44UserSessionDump)(nil),
  3772  		(*Nat44UserSessionV2Details)(nil),
  3773  		(*Nat44UserSessionV2Dump)(nil),
  3774  		(*Nat44UserSessionV3Details)(nil),
  3775  		(*Nat44UserSessionV3Dump)(nil),
  3776  		(*NatGetMssClamping)(nil),
  3777  		(*NatGetMssClampingReply)(nil),
  3778  		(*NatIpfixEnableDisable)(nil),
  3779  		(*NatIpfixEnableDisableReply)(nil),
  3780  		(*NatSetMssClamping)(nil),
  3781  		(*NatSetMssClampingReply)(nil),
  3782  		(*NatSetTimeouts)(nil),
  3783  		(*NatSetTimeoutsReply)(nil),
  3784  		(*NatSetWorkers)(nil),
  3785  		(*NatSetWorkersReply)(nil),
  3786  		(*NatWorkerDetails)(nil),
  3787  		(*NatWorkerDump)(nil),
  3788  	}
  3789  }