regenerate binapi
[govpp.git] / binapi / nat44_ed / nat44_ed.ba.go
similarity index 65%
rename from binapi/nat/nat.ba.go
rename to binapi/nat44_ed/nat44_ed.ba.go
index ac65413..7e22eeb 100644 (file)
@@ -1,17 +1,17 @@
 // Code generated by GoVPP's binapi-generator. DO NOT EDIT.
 // versions:
-//  binapi-generator: v0.4.0
-//  VPP:              20.05.1-release
-// source: /usr/share/vpp/api/plugins/nat.api.json
+//  binapi-generator: v0.3.5-56-gc0da1f2-dirty
+//  VPP:              21.06-release
+// source: /usr/share/vpp/api/plugins/nat44_ed.api.json
 
-// Package nat contains generated bindings for API file nat.api.
+// Package nat44_ed contains generated bindings for API file nat44_ed.api.
 //
 // Contents:
-//   2 enums
+//   1 enum
 //   1 struct
-// 125 messages
+//  97 messages
 //
-package nat
+package nat44_ed
 
 import (
        "strconv"
@@ -19,6 +19,7 @@ import (
        api "git.fd.io/govpp.git/api"
        interface_types "git.fd.io/govpp.git/binapi/interface_types"
        ip_types "git.fd.io/govpp.git/binapi/ip_types"
+       nat_types "git.fd.io/govpp.git/binapi/nat_types"
        codec "git.fd.io/govpp.git/codec"
 )
 
@@ -29,62 +30,50 @@ import (
 const _ = api.GoVppAPIPackageIsVersion2
 
 const (
-       APIFile    = "nat"
-       APIVersion = "5.2.0"
-       VersionCrc = 0xabdcbb0d
+       APIFile    = "nat44_ed"
+       APIVersion = "5.3.0"
+       VersionCrc = 0xfd9ae40f
 )
 
-// NatConfigFlags defines enum 'nat_config_flags'.
-type NatConfigFlags uint8
+// Nat44ConfigFlags defines enum 'nat44_config_flags'.
+type Nat44ConfigFlags uint8
 
 const (
-       NAT_IS_NONE           NatConfigFlags = 0
-       NAT_IS_TWICE_NAT      NatConfigFlags = 1
-       NAT_IS_SELF_TWICE_NAT NatConfigFlags = 2
-       NAT_IS_OUT2IN_ONLY    NatConfigFlags = 4
-       NAT_IS_ADDR_ONLY      NatConfigFlags = 8
-       NAT_IS_OUTSIDE        NatConfigFlags = 16
-       NAT_IS_INSIDE         NatConfigFlags = 32
-       NAT_IS_STATIC         NatConfigFlags = 64
-       NAT_IS_EXT_HOST_VALID NatConfigFlags = 128
+       NAT44_IS_ENDPOINT_INDEPENDENT Nat44ConfigFlags = 0
+       NAT44_IS_ENDPOINT_DEPENDENT   Nat44ConfigFlags = 1
+       NAT44_IS_STATIC_MAPPING_ONLY  Nat44ConfigFlags = 2
+       NAT44_IS_CONNECTION_TRACKING  Nat44ConfigFlags = 4
+       NAT44_IS_OUT2IN_DPO           Nat44ConfigFlags = 8
 )
 
 var (
-       NatConfigFlags_name = map[uint8]string{
-               0:   "NAT_IS_NONE",
-               1:   "NAT_IS_TWICE_NAT",
-               2:   "NAT_IS_SELF_TWICE_NAT",
-               4:   "NAT_IS_OUT2IN_ONLY",
-               8:   "NAT_IS_ADDR_ONLY",
-               16:  "NAT_IS_OUTSIDE",
-               32:  "NAT_IS_INSIDE",
-               64:  "NAT_IS_STATIC",
-               128: "NAT_IS_EXT_HOST_VALID",
-       }
-       NatConfigFlags_value = map[string]uint8{
-               "NAT_IS_NONE":           0,
-               "NAT_IS_TWICE_NAT":      1,
-               "NAT_IS_SELF_TWICE_NAT": 2,
-               "NAT_IS_OUT2IN_ONLY":    4,
-               "NAT_IS_ADDR_ONLY":      8,
-               "NAT_IS_OUTSIDE":        16,
-               "NAT_IS_INSIDE":         32,
-               "NAT_IS_STATIC":         64,
-               "NAT_IS_EXT_HOST_VALID": 128,
+       Nat44ConfigFlags_name = map[uint8]string{
+               0: "NAT44_IS_ENDPOINT_INDEPENDENT",
+               1: "NAT44_IS_ENDPOINT_DEPENDENT",
+               2: "NAT44_IS_STATIC_MAPPING_ONLY",
+               4: "NAT44_IS_CONNECTION_TRACKING",
+               8: "NAT44_IS_OUT2IN_DPO",
+       }
+       Nat44ConfigFlags_value = map[string]uint8{
+               "NAT44_IS_ENDPOINT_INDEPENDENT": 0,
+               "NAT44_IS_ENDPOINT_DEPENDENT":   1,
+               "NAT44_IS_STATIC_MAPPING_ONLY":  2,
+               "NAT44_IS_CONNECTION_TRACKING":  4,
+               "NAT44_IS_OUT2IN_DPO":           8,
        }
 )
 
-func (x NatConfigFlags) String() string {
-       s, ok := NatConfigFlags_name[uint8(x)]
+func (x Nat44ConfigFlags) String() string {
+       s, ok := Nat44ConfigFlags_name[uint8(x)]
        if ok {
                return s
        }
        str := func(n uint8) string {
-               s, ok := NatConfigFlags_name[uint8(n)]
+               s, ok := Nat44ConfigFlags_name[uint8(n)]
                if ok {
                        return s
                }
-               return "NatConfigFlags(" + strconv.Itoa(int(n)) + ")"
+               return "Nat44ConfigFlags(" + strconv.Itoa(int(n)) + ")"
        }
        for i := uint8(0); i <= 8; i++ {
                val := uint8(x)
@@ -101,45 +90,6 @@ func (x NatConfigFlags) String() string {
        return s
 }
 
-// NatLogLevel defines enum 'nat_log_level'.
-type NatLogLevel uint8
-
-const (
-       NAT_LOG_NONE    NatLogLevel = 0
-       NAT_LOG_ERROR   NatLogLevel = 1
-       NAT_LOG_WARNING NatLogLevel = 2
-       NAT_LOG_NOTICE  NatLogLevel = 3
-       NAT_LOG_INFO    NatLogLevel = 4
-       NAT_LOG_DEBUG   NatLogLevel = 5
-)
-
-var (
-       NatLogLevel_name = map[uint8]string{
-               0: "NAT_LOG_NONE",
-               1: "NAT_LOG_ERROR",
-               2: "NAT_LOG_WARNING",
-               3: "NAT_LOG_NOTICE",
-               4: "NAT_LOG_INFO",
-               5: "NAT_LOG_DEBUG",
-       }
-       NatLogLevel_value = map[string]uint8{
-               "NAT_LOG_NONE":    0,
-               "NAT_LOG_ERROR":   1,
-               "NAT_LOG_WARNING": 2,
-               "NAT_LOG_NOTICE":  3,
-               "NAT_LOG_INFO":    4,
-               "NAT_LOG_DEBUG":   5,
-       }
-)
-
-func (x NatLogLevel) String() string {
-       s, ok := NatLogLevel_name[uint8(x)]
-       if ok {
-               return s
-       }
-       return "NatLogLevel(" + strconv.Itoa(int(x)) + ")"
-}
-
 // Nat44LbAddrPort defines type 'nat44_lb_addr_port'.
 type Nat44LbAddrPort struct {
        Addr        ip_types.IP4Address `binapi:"ip4_address,name=addr" json:"addr,omitempty"`
@@ -150,16 +100,16 @@ type Nat44LbAddrPort struct {
 
 // Nat44AddDelAddressRange defines message 'nat44_add_del_address_range'.
 type Nat44AddDelAddressRange struct {
-       FirstIPAddress ip_types.IP4Address `binapi:"ip4_address,name=first_ip_address" json:"first_ip_address,omitempty"`
-       LastIPAddress  ip_types.IP4Address `binapi:"ip4_address,name=last_ip_address" json:"last_ip_address,omitempty"`
-       VrfID          uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-       IsAdd          bool                `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-       Flags          NatConfigFlags      `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       FirstIPAddress ip_types.IP4Address      `binapi:"ip4_address,name=first_ip_address" json:"first_ip_address,omitempty"`
+       LastIPAddress  ip_types.IP4Address      `binapi:"ip4_address,name=last_ip_address" json:"last_ip_address,omitempty"`
+       VrfID          uint32                   `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
+       IsAdd          bool                     `binapi:"bool,name=is_add" json:"is_add,omitempty"`
+       Flags          nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
 }
 
 func (m *Nat44AddDelAddressRange) Reset()               { *m = Nat44AddDelAddressRange{} }
 func (*Nat44AddDelAddressRange) GetMessageName() string { return "nat44_add_del_address_range" }
-func (*Nat44AddDelAddressRange) GetCrcString() string   { return "d4c7568c" }
+func (*Nat44AddDelAddressRange) GetCrcString() string   { return "6f2b8055" }
 func (*Nat44AddDelAddressRange) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
@@ -193,7 +143,7 @@ func (m *Nat44AddDelAddressRange) Unmarshal(b []byte) error {
        copy(m.LastIPAddress[:], buf.DecodeBytes(4))
        m.VrfID = buf.DecodeUint32()
        m.IsAdd = buf.DecodeBool()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        return nil
 }
 
@@ -235,7 +185,7 @@ func (m *Nat44AddDelAddressRangeReply) Unmarshal(b []byte) error {
 // Nat44AddDelIdentityMapping defines message 'nat44_add_del_identity_mapping'.
 type Nat44AddDelIdentityMapping struct {
        IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
        IPAddress ip_types.IP4Address            `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
        Protocol  uint8                          `binapi:"u8,name=protocol" json:"protocol,omitempty"`
        Port      uint16                         `binapi:"u16,name=port" json:"port,omitempty"`
@@ -246,7 +196,7 @@ type Nat44AddDelIdentityMapping struct {
 
 func (m *Nat44AddDelIdentityMapping) Reset()               { *m = Nat44AddDelIdentityMapping{} }
 func (*Nat44AddDelIdentityMapping) GetMessageName() string { return "nat44_add_del_identity_mapping" }
-func (*Nat44AddDelIdentityMapping) GetCrcString() string   { return "8e12743f" }
+func (*Nat44AddDelIdentityMapping) GetCrcString() string   { return "02faaa22" }
 func (*Nat44AddDelIdentityMapping) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
@@ -283,7 +233,7 @@ func (m *Nat44AddDelIdentityMapping) Marshal(b []byte) ([]byte, error) {
 func (m *Nat44AddDelIdentityMapping) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
        m.IsAdd = buf.DecodeBool()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        copy(m.IPAddress[:], buf.DecodeBytes(4))
        m.Protocol = buf.DecodeUint8()
        m.Port = buf.DecodeUint16()
@@ -332,12 +282,12 @@ func (m *Nat44AddDelIdentityMappingReply) Unmarshal(b []byte) error {
 type Nat44AddDelInterfaceAddr struct {
        IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
        SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
 }
 
 func (m *Nat44AddDelInterfaceAddr) Reset()               { *m = Nat44AddDelInterfaceAddr{} }
 func (*Nat44AddDelInterfaceAddr) GetMessageName() string { return "nat44_add_del_interface_addr" }
-func (*Nat44AddDelInterfaceAddr) GetCrcString() string   { return "fc835325" }
+func (*Nat44AddDelInterfaceAddr) GetCrcString() string   { return "4aed50c0" }
 func (*Nat44AddDelInterfaceAddr) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
@@ -365,7 +315,7 @@ func (m *Nat44AddDelInterfaceAddr) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
        m.IsAdd = buf.DecodeBool()
        m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        return nil
 }
 
@@ -406,20 +356,20 @@ func (m *Nat44AddDelInterfaceAddrReply) Unmarshal(b []byte) error {
 
 // Nat44AddDelLbStaticMapping defines message 'nat44_add_del_lb_static_mapping'.
 type Nat44AddDelLbStaticMapping struct {
-       IsAdd        bool                `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-       Flags        NatConfigFlags      `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
-       ExternalAddr ip_types.IP4Address `binapi:"ip4_address,name=external_addr" json:"external_addr,omitempty"`
-       ExternalPort uint16              `binapi:"u16,name=external_port" json:"external_port,omitempty"`
-       Protocol     uint8               `binapi:"u8,name=protocol" json:"protocol,omitempty"`
-       Affinity     uint32              `binapi:"u32,name=affinity" json:"affinity,omitempty"`
-       Tag          string              `binapi:"string[64],name=tag" json:"tag,omitempty"`
-       LocalNum     uint32              `binapi:"u32,name=local_num" json:"-"`
-       Locals       []Nat44LbAddrPort   `binapi:"nat44_lb_addr_port[local_num],name=locals" json:"locals,omitempty"`
+       IsAdd        bool                     `binapi:"bool,name=is_add" json:"is_add,omitempty"`
+       Flags        nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       ExternalAddr ip_types.IP4Address      `binapi:"ip4_address,name=external_addr" json:"external_addr,omitempty"`
+       ExternalPort uint16                   `binapi:"u16,name=external_port" json:"external_port,omitempty"`
+       Protocol     uint8                    `binapi:"u8,name=protocol" json:"protocol,omitempty"`
+       Affinity     uint32                   `binapi:"u32,name=affinity" json:"affinity,omitempty"`
+       Tag          string                   `binapi:"string[64],name=tag" json:"tag,omitempty"`
+       LocalNum     uint32                   `binapi:"u32,name=local_num" json:"-"`
+       Locals       []Nat44LbAddrPort        `binapi:"nat44_lb_addr_port[local_num],name=locals" json:"locals,omitempty"`
 }
 
 func (m *Nat44AddDelLbStaticMapping) Reset()               { *m = Nat44AddDelLbStaticMapping{} }
 func (*Nat44AddDelLbStaticMapping) GetMessageName() string { return "nat44_add_del_lb_static_mapping" }
-func (*Nat44AddDelLbStaticMapping) GetCrcString() string   { return "53b24611" }
+func (*Nat44AddDelLbStaticMapping) GetCrcString() string   { return "4f68ee9d" }
 func (*Nat44AddDelLbStaticMapping) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
@@ -477,7 +427,7 @@ func (m *Nat44AddDelLbStaticMapping) Marshal(b []byte) ([]byte, error) {
 func (m *Nat44AddDelLbStaticMapping) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
        m.IsAdd = buf.DecodeBool()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        copy(m.ExternalAddr[:], buf.DecodeBytes(4))
        m.ExternalPort = buf.DecodeUint16()
        m.Protocol = buf.DecodeUint8()
@@ -532,7 +482,7 @@ func (m *Nat44AddDelLbStaticMappingReply) Unmarshal(b []byte) error {
 // Nat44AddDelStaticMapping defines message 'nat44_add_del_static_mapping'.
 type Nat44AddDelStaticMapping struct {
        IsAdd             bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-       Flags             NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       Flags             nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
        LocalIPAddress    ip_types.IP4Address            `binapi:"ip4_address,name=local_ip_address" json:"local_ip_address,omitempty"`
        ExternalIPAddress ip_types.IP4Address            `binapi:"ip4_address,name=external_ip_address" json:"external_ip_address,omitempty"`
        Protocol          uint8                          `binapi:"u8,name=protocol" json:"protocol,omitempty"`
@@ -545,7 +495,7 @@ type Nat44AddDelStaticMapping struct {
 
 func (m *Nat44AddDelStaticMapping) Reset()               { *m = Nat44AddDelStaticMapping{} }
 func (*Nat44AddDelStaticMapping) GetMessageName() string { return "nat44_add_del_static_mapping" }
-func (*Nat44AddDelStaticMapping) GetCrcString() string   { return "e165e83b" }
+func (*Nat44AddDelStaticMapping) GetCrcString() string   { return "5ae5f03e" }
 func (*Nat44AddDelStaticMapping) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
@@ -586,7 +536,7 @@ func (m *Nat44AddDelStaticMapping) Marshal(b []byte) ([]byte, error) {
 func (m *Nat44AddDelStaticMapping) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
        m.IsAdd = buf.DecodeBool()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        copy(m.LocalIPAddress[:], buf.DecodeBytes(4))
        copy(m.ExternalIPAddress[:], buf.DecodeBytes(4))
        m.Protocol = buf.DecodeUint8()
@@ -633,16 +583,130 @@ func (m *Nat44AddDelStaticMappingReply) Unmarshal(b []byte) error {
        return nil
 }
 
+// Nat44AddDelStaticMappingV2 defines message 'nat44_add_del_static_mapping_v2'.
+// InProgress: the message form may change in the future versions
+type Nat44AddDelStaticMappingV2 struct {
+       IsAdd             bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
+       MatchPool         bool                           `binapi:"bool,name=match_pool" json:"match_pool,omitempty"`
+       Flags             nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       PoolIPAddress     ip_types.IP4Address            `binapi:"ip4_address,name=pool_ip_address" json:"pool_ip_address,omitempty"`
+       LocalIPAddress    ip_types.IP4Address            `binapi:"ip4_address,name=local_ip_address" json:"local_ip_address,omitempty"`
+       ExternalIPAddress ip_types.IP4Address            `binapi:"ip4_address,name=external_ip_address" json:"external_ip_address,omitempty"`
+       Protocol          uint8                          `binapi:"u8,name=protocol" json:"protocol,omitempty"`
+       LocalPort         uint16                         `binapi:"u16,name=local_port" json:"local_port,omitempty"`
+       ExternalPort      uint16                         `binapi:"u16,name=external_port" json:"external_port,omitempty"`
+       ExternalSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=external_sw_if_index" json:"external_sw_if_index,omitempty"`
+       VrfID             uint32                         `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
+       Tag               string                         `binapi:"string[64],name=tag" json:"tag,omitempty"`
+}
+
+func (m *Nat44AddDelStaticMappingV2) Reset()               { *m = Nat44AddDelStaticMappingV2{} }
+func (*Nat44AddDelStaticMappingV2) GetMessageName() string { return "nat44_add_del_static_mapping_v2" }
+func (*Nat44AddDelStaticMappingV2) GetCrcString() string   { return "5e205f1a" }
+func (*Nat44AddDelStaticMappingV2) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *Nat44AddDelStaticMappingV2) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       size += 1     // m.IsAdd
+       size += 1     // m.MatchPool
+       size += 1     // m.Flags
+       size += 1 * 4 // m.PoolIPAddress
+       size += 1 * 4 // m.LocalIPAddress
+       size += 1 * 4 // m.ExternalIPAddress
+       size += 1     // m.Protocol
+       size += 2     // m.LocalPort
+       size += 2     // m.ExternalPort
+       size += 4     // m.ExternalSwIfIndex
+       size += 4     // m.VrfID
+       size += 64    // m.Tag
+       return size
+}
+func (m *Nat44AddDelStaticMappingV2) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       buf.EncodeBool(m.IsAdd)
+       buf.EncodeBool(m.MatchPool)
+       buf.EncodeUint8(uint8(m.Flags))
+       buf.EncodeBytes(m.PoolIPAddress[:], 4)
+       buf.EncodeBytes(m.LocalIPAddress[:], 4)
+       buf.EncodeBytes(m.ExternalIPAddress[:], 4)
+       buf.EncodeUint8(m.Protocol)
+       buf.EncodeUint16(m.LocalPort)
+       buf.EncodeUint16(m.ExternalPort)
+       buf.EncodeUint32(uint32(m.ExternalSwIfIndex))
+       buf.EncodeUint32(m.VrfID)
+       buf.EncodeString(m.Tag, 64)
+       return buf.Bytes(), nil
+}
+func (m *Nat44AddDelStaticMappingV2) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.IsAdd = buf.DecodeBool()
+       m.MatchPool = buf.DecodeBool()
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
+       copy(m.PoolIPAddress[:], buf.DecodeBytes(4))
+       copy(m.LocalIPAddress[:], buf.DecodeBytes(4))
+       copy(m.ExternalIPAddress[:], buf.DecodeBytes(4))
+       m.Protocol = buf.DecodeUint8()
+       m.LocalPort = buf.DecodeUint16()
+       m.ExternalPort = buf.DecodeUint16()
+       m.ExternalSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+       m.VrfID = buf.DecodeUint32()
+       m.Tag = buf.DecodeString(64)
+       return nil
+}
+
+// Nat44AddDelStaticMappingV2Reply defines message 'nat44_add_del_static_mapping_v2_reply'.
+// InProgress: the message form may change in the future versions
+type Nat44AddDelStaticMappingV2Reply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *Nat44AddDelStaticMappingV2Reply) Reset() { *m = Nat44AddDelStaticMappingV2Reply{} }
+func (*Nat44AddDelStaticMappingV2Reply) GetMessageName() string {
+       return "nat44_add_del_static_mapping_v2_reply"
+}
+func (*Nat44AddDelStaticMappingV2Reply) GetCrcString() string { return "e8d4e804" }
+func (*Nat44AddDelStaticMappingV2Reply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *Nat44AddDelStaticMappingV2Reply) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       size += 4 // m.Retval
+       return size
+}
+func (m *Nat44AddDelStaticMappingV2Reply) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       buf.EncodeInt32(m.Retval)
+       return buf.Bytes(), nil
+}
+func (m *Nat44AddDelStaticMappingV2Reply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = buf.DecodeInt32()
+       return nil
+}
+
 // Nat44AddressDetails defines message 'nat44_address_details'.
 type Nat44AddressDetails struct {
-       IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
-       Flags     NatConfigFlags      `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
-       VrfID     uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
+       IPAddress ip_types.IP4Address      `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
+       Flags     nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       VrfID     uint32                   `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
 }
 
 func (m *Nat44AddressDetails) Reset()               { *m = Nat44AddressDetails{} }
 func (*Nat44AddressDetails) GetMessageName() string { return "nat44_address_details" }
-func (*Nat44AddressDetails) GetCrcString() string   { return "45410ac4" }
+func (*Nat44AddressDetails) GetCrcString() string   { return "0d1beac1" }
 func (*Nat44AddressDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
@@ -669,7 +733,7 @@ func (m *Nat44AddressDetails) Marshal(b []byte) ([]byte, error) {
 func (m *Nat44AddressDetails) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
        copy(m.IPAddress[:], buf.DecodeBytes(4))
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        m.VrfID = buf.DecodeUint32()
        return nil
 }
@@ -703,18 +767,18 @@ func (m *Nat44AddressDump) Unmarshal(b []byte) error {
 
 // Nat44DelSession defines message 'nat44_del_session'.
 type Nat44DelSession struct {
-       Address        ip_types.IP4Address `binapi:"ip4_address,name=address" json:"address,omitempty"`
-       Protocol       uint8               `binapi:"u8,name=protocol" json:"protocol,omitempty"`
-       Port           uint16              `binapi:"u16,name=port" json:"port,omitempty"`
-       VrfID          uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-       Flags          NatConfigFlags      `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
-       ExtHostAddress ip_types.IP4Address `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"`
-       ExtHostPort    uint16              `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"`
+       Address        ip_types.IP4Address      `binapi:"ip4_address,name=address" json:"address,omitempty"`
+       Protocol       uint8                    `binapi:"u8,name=protocol" json:"protocol,omitempty"`
+       Port           uint16                   `binapi:"u16,name=port" json:"port,omitempty"`
+       VrfID          uint32                   `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
+       Flags          nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       ExtHostAddress ip_types.IP4Address      `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"`
+       ExtHostPort    uint16                   `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"`
 }
 
 func (m *Nat44DelSession) Reset()               { *m = Nat44DelSession{} }
 func (*Nat44DelSession) GetMessageName() string { return "nat44_del_session" }
-func (*Nat44DelSession) GetCrcString() string   { return "4c49c387" }
+func (*Nat44DelSession) GetCrcString() string   { return "15a5bf8c" }
 func (*Nat44DelSession) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
@@ -752,7 +816,7 @@ func (m *Nat44DelSession) Unmarshal(b []byte) error {
        m.Protocol = buf.DecodeUint8()
        m.Port = buf.DecodeUint16()
        m.VrfID = buf.DecodeUint32()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        copy(m.ExtHostAddress[:], buf.DecodeBytes(4))
        m.ExtHostPort = buf.DecodeUint16()
        return nil
@@ -861,7 +925,232 @@ func (m *Nat44DelUserReply) Unmarshal(b []byte) error {
        return nil
 }
 
+// Nat44EdPluginEnableDisable defines message 'nat44_ed_plugin_enable_disable'.
+// InProgress: the message form may change in the future versions
+type Nat44EdPluginEnableDisable struct {
+       InsideVrf     uint32           `binapi:"u32,name=inside_vrf" json:"inside_vrf,omitempty"`
+       OutsideVrf    uint32           `binapi:"u32,name=outside_vrf" json:"outside_vrf,omitempty"`
+       Sessions      uint32           `binapi:"u32,name=sessions" json:"sessions,omitempty"`
+       SessionMemory uint32           `binapi:"u32,name=session_memory" json:"session_memory,omitempty"`
+       Enable        bool             `binapi:"bool,name=enable" json:"enable,omitempty"`
+       Flags         Nat44ConfigFlags `binapi:"nat44_config_flags,name=flags" json:"flags,omitempty"`
+}
+
+func (m *Nat44EdPluginEnableDisable) Reset()               { *m = Nat44EdPluginEnableDisable{} }
+func (*Nat44EdPluginEnableDisable) GetMessageName() string { return "nat44_ed_plugin_enable_disable" }
+func (*Nat44EdPluginEnableDisable) GetCrcString() string   { return "be17f8dd" }
+func (*Nat44EdPluginEnableDisable) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *Nat44EdPluginEnableDisable) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       size += 4 // m.InsideVrf
+       size += 4 // m.OutsideVrf
+       size += 4 // m.Sessions
+       size += 4 // m.SessionMemory
+       size += 1 // m.Enable
+       size += 1 // m.Flags
+       return size
+}
+func (m *Nat44EdPluginEnableDisable) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       buf.EncodeUint32(m.InsideVrf)
+       buf.EncodeUint32(m.OutsideVrf)
+       buf.EncodeUint32(m.Sessions)
+       buf.EncodeUint32(m.SessionMemory)
+       buf.EncodeBool(m.Enable)
+       buf.EncodeUint8(uint8(m.Flags))
+       return buf.Bytes(), nil
+}
+func (m *Nat44EdPluginEnableDisable) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.InsideVrf = buf.DecodeUint32()
+       m.OutsideVrf = buf.DecodeUint32()
+       m.Sessions = buf.DecodeUint32()
+       m.SessionMemory = buf.DecodeUint32()
+       m.Enable = buf.DecodeBool()
+       m.Flags = Nat44ConfigFlags(buf.DecodeUint8())
+       return nil
+}
+
+// Nat44EdPluginEnableDisableReply defines message 'nat44_ed_plugin_enable_disable_reply'.
+// InProgress: the message form may change in the future versions
+type Nat44EdPluginEnableDisableReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *Nat44EdPluginEnableDisableReply) Reset() { *m = Nat44EdPluginEnableDisableReply{} }
+func (*Nat44EdPluginEnableDisableReply) GetMessageName() string {
+       return "nat44_ed_plugin_enable_disable_reply"
+}
+func (*Nat44EdPluginEnableDisableReply) GetCrcString() string { return "e8d4e804" }
+func (*Nat44EdPluginEnableDisableReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *Nat44EdPluginEnableDisableReply) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       size += 4 // m.Retval
+       return size
+}
+func (m *Nat44EdPluginEnableDisableReply) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       buf.EncodeInt32(m.Retval)
+       return buf.Bytes(), nil
+}
+func (m *Nat44EdPluginEnableDisableReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = buf.DecodeInt32()
+       return nil
+}
+
+// Nat44EdSetFqOptions defines message 'nat44_ed_set_fq_options'.
+// InProgress: the message form may change in the future versions
+type Nat44EdSetFqOptions struct {
+       FrameQueueNelts uint32 `binapi:"u32,name=frame_queue_nelts" json:"frame_queue_nelts,omitempty"`
+}
+
+func (m *Nat44EdSetFqOptions) Reset()               { *m = Nat44EdSetFqOptions{} }
+func (*Nat44EdSetFqOptions) GetMessageName() string { return "nat44_ed_set_fq_options" }
+func (*Nat44EdSetFqOptions) GetCrcString() string   { return "2399bd71" }
+func (*Nat44EdSetFqOptions) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *Nat44EdSetFqOptions) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       size += 4 // m.FrameQueueNelts
+       return size
+}
+func (m *Nat44EdSetFqOptions) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       buf.EncodeUint32(m.FrameQueueNelts)
+       return buf.Bytes(), nil
+}
+func (m *Nat44EdSetFqOptions) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.FrameQueueNelts = buf.DecodeUint32()
+       return nil
+}
+
+// Nat44EdSetFqOptionsReply defines message 'nat44_ed_set_fq_options_reply'.
+// InProgress: the message form may change in the future versions
+type Nat44EdSetFqOptionsReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *Nat44EdSetFqOptionsReply) Reset()               { *m = Nat44EdSetFqOptionsReply{} }
+func (*Nat44EdSetFqOptionsReply) GetMessageName() string { return "nat44_ed_set_fq_options_reply" }
+func (*Nat44EdSetFqOptionsReply) GetCrcString() string   { return "e8d4e804" }
+func (*Nat44EdSetFqOptionsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *Nat44EdSetFqOptionsReply) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       size += 4 // m.Retval
+       return size
+}
+func (m *Nat44EdSetFqOptionsReply) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       buf.EncodeInt32(m.Retval)
+       return buf.Bytes(), nil
+}
+func (m *Nat44EdSetFqOptionsReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = buf.DecodeInt32()
+       return nil
+}
+
+// Nat44EdShowFqOptions defines message 'nat44_ed_show_fq_options'.
+// InProgress: the message form may change in the future versions
+type Nat44EdShowFqOptions struct{}
+
+func (m *Nat44EdShowFqOptions) Reset()               { *m = Nat44EdShowFqOptions{} }
+func (*Nat44EdShowFqOptions) GetMessageName() string { return "nat44_ed_show_fq_options" }
+func (*Nat44EdShowFqOptions) GetCrcString() string   { return "51077d14" }
+func (*Nat44EdShowFqOptions) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *Nat44EdShowFqOptions) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       return size
+}
+func (m *Nat44EdShowFqOptions) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       return buf.Bytes(), nil
+}
+func (m *Nat44EdShowFqOptions) Unmarshal(b []byte) error {
+       return nil
+}
+
+// Nat44EdShowFqOptionsReply defines message 'nat44_ed_show_fq_options_reply'.
+// InProgress: the message form may change in the future versions
+type Nat44EdShowFqOptionsReply struct {
+       Retval          int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
+       FrameQueueNelts uint32 `binapi:"u32,name=frame_queue_nelts" json:"frame_queue_nelts,omitempty"`
+}
+
+func (m *Nat44EdShowFqOptionsReply) Reset()               { *m = Nat44EdShowFqOptionsReply{} }
+func (*Nat44EdShowFqOptionsReply) GetMessageName() string { return "nat44_ed_show_fq_options_reply" }
+func (*Nat44EdShowFqOptionsReply) GetCrcString() string   { return "7213b545" }
+func (*Nat44EdShowFqOptionsReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *Nat44EdShowFqOptionsReply) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       size += 4 // m.Retval
+       size += 4 // m.FrameQueueNelts
+       return size
+}
+func (m *Nat44EdShowFqOptionsReply) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       buf.EncodeInt32(m.Retval)
+       buf.EncodeUint32(m.FrameQueueNelts)
+       return buf.Bytes(), nil
+}
+func (m *Nat44EdShowFqOptionsReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = buf.DecodeInt32()
+       m.FrameQueueNelts = buf.DecodeUint32()
+       return nil
+}
+
 // Nat44ForwardingEnableDisable defines message 'nat44_forwarding_enable_disable'.
+// Deprecated: the message will be removed in the future versions
 type Nat44ForwardingEnableDisable struct {
        Enable bool `binapi:"bool,name=enable" json:"enable,omitempty"`
 }
@@ -897,6 +1186,7 @@ func (m *Nat44ForwardingEnableDisable) Unmarshal(b []byte) error {
 }
 
 // Nat44ForwardingEnableDisableReply defines message 'nat44_forwarding_enable_disable_reply'.
+// Deprecated: the message will be removed in the future versions
 type Nat44ForwardingEnableDisableReply struct {
        Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
 }
@@ -932,6 +1222,7 @@ func (m *Nat44ForwardingEnableDisableReply) Unmarshal(b []byte) error {
 }
 
 // Nat44ForwardingIsEnabled defines message 'nat44_forwarding_is_enabled'.
+// Deprecated: the message will be removed in the future versions
 type Nat44ForwardingIsEnabled struct{}
 
 func (m *Nat44ForwardingIsEnabled) Reset()               { *m = Nat44ForwardingIsEnabled{} }
@@ -959,6 +1250,7 @@ func (m *Nat44ForwardingIsEnabled) Unmarshal(b []byte) error {
 }
 
 // Nat44ForwardingIsEnabledReply defines message 'nat44_forwarding_is_enabled_reply'.
+// Deprecated: the message will be removed in the future versions
 type Nat44ForwardingIsEnabledReply struct {
        Enabled bool `binapi:"bool,name=enabled" json:"enabled,omitempty"`
 }
@@ -995,7 +1287,7 @@ func (m *Nat44ForwardingIsEnabledReply) Unmarshal(b []byte) error {
 
 // Nat44IdentityMappingDetails defines message 'nat44_identity_mapping_details'.
 type Nat44IdentityMappingDetails struct {
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
        IPAddress ip_types.IP4Address            `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
        Protocol  uint8                          `binapi:"u8,name=protocol" json:"protocol,omitempty"`
        Port      uint16                         `binapi:"u16,name=port" json:"port,omitempty"`
@@ -1006,7 +1298,7 @@ type Nat44IdentityMappingDetails struct {
 
 func (m *Nat44IdentityMappingDetails) Reset()               { *m = Nat44IdentityMappingDetails{} }
 func (*Nat44IdentityMappingDetails) GetMessageName() string { return "nat44_identity_mapping_details" }
-func (*Nat44IdentityMappingDetails) GetCrcString() string   { return "36d21351" }
+func (*Nat44IdentityMappingDetails) GetCrcString() string   { return "2a52a030" }
 func (*Nat44IdentityMappingDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
@@ -1040,7 +1332,7 @@ func (m *Nat44IdentityMappingDetails) Marshal(b []byte) ([]byte, error) {
 }
 func (m *Nat44IdentityMappingDetails) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        copy(m.IPAddress[:], buf.DecodeBytes(4))
        m.Protocol = buf.DecodeUint8()
        m.Port = buf.DecodeUint16()
@@ -1080,7 +1372,7 @@ func (m *Nat44IdentityMappingDump) Unmarshal(b []byte) error {
 // Nat44InterfaceAddDelFeature defines message 'nat44_interface_add_del_feature'.
 type Nat44InterfaceAddDelFeature struct {
        IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
        SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
 }
 
@@ -1113,7 +1405,7 @@ func (m *Nat44InterfaceAddDelFeature) Marshal(b []byte) ([]byte, error) {
 func (m *Nat44InterfaceAddDelFeature) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
        m.IsAdd = buf.DecodeBool()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
        return nil
 }
@@ -1156,7 +1448,7 @@ func (m *Nat44InterfaceAddDelFeatureReply) Unmarshal(b []byte) error {
 // Nat44InterfaceAddDelOutputFeature defines message 'nat44_interface_add_del_output_feature'.
 type Nat44InterfaceAddDelOutputFeature struct {
        IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
        SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
 }
 
@@ -1191,7 +1483,7 @@ func (m *Nat44InterfaceAddDelOutputFeature) Marshal(b []byte) ([]byte, error) {
 func (m *Nat44InterfaceAddDelOutputFeature) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
        m.IsAdd = buf.DecodeBool()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
        return nil
 }
@@ -1236,12 +1528,12 @@ func (m *Nat44InterfaceAddDelOutputFeatureReply) Unmarshal(b []byte) error {
 // Nat44InterfaceAddrDetails defines message 'nat44_interface_addr_details'.
 type Nat44InterfaceAddrDetails struct {
        SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
 }
 
 func (m *Nat44InterfaceAddrDetails) Reset()               { *m = Nat44InterfaceAddrDetails{} }
 func (*Nat44InterfaceAddrDetails) GetMessageName() string { return "nat44_interface_addr_details" }
-func (*Nat44InterfaceAddrDetails) GetCrcString() string   { return "3e687514" }
+func (*Nat44InterfaceAddrDetails) GetCrcString() string   { return "e4aca9ca" }
 func (*Nat44InterfaceAddrDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
@@ -1266,7 +1558,7 @@ func (m *Nat44InterfaceAddrDetails) Marshal(b []byte) ([]byte, error) {
 func (m *Nat44InterfaceAddrDetails) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
        m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        return nil
 }
 
@@ -1299,7 +1591,7 @@ func (m *Nat44InterfaceAddrDump) Unmarshal(b []byte) error {
 
 // Nat44InterfaceDetails defines message 'nat44_interface_details'.
 type Nat44InterfaceDetails struct {
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
        SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
 }
 
@@ -1329,7 +1621,7 @@ func (m *Nat44InterfaceDetails) Marshal(b []byte) ([]byte, error) {
 }
 func (m *Nat44InterfaceDetails) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
        return nil
 }
@@ -1363,7 +1655,7 @@ func (m *Nat44InterfaceDump) Unmarshal(b []byte) error {
 
 // Nat44InterfaceOutputFeatureDetails defines message 'nat44_interface_output_feature_details'.
 type Nat44InterfaceOutputFeatureDetails struct {
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       Flags     nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
        SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
 }
 
@@ -1395,7 +1687,7 @@ func (m *Nat44InterfaceOutputFeatureDetails) Marshal(b []byte) ([]byte, error) {
 }
 func (m *Nat44InterfaceOutputFeatureDetails) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
        return nil
 }
@@ -1442,7 +1734,7 @@ func (m *Nat44LbStaticMappingAddDelLocal) Reset() { *m = Nat44LbStaticMappingAdd
 func (*Nat44LbStaticMappingAddDelLocal) GetMessageName() string {
        return "nat44_lb_static_mapping_add_del_local"
 }
-func (*Nat44LbStaticMappingAddDelLocal) GetCrcString() string { return "2910a151" }
+func (*Nat44LbStaticMappingAddDelLocal) GetCrcString() string { return "7ca47547" }
 func (*Nat44LbStaticMappingAddDelLocal) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
@@ -1526,19 +1818,19 @@ func (m *Nat44LbStaticMappingAddDelLocalReply) Unmarshal(b []byte) error {
 
 // Nat44LbStaticMappingDetails defines message 'nat44_lb_static_mapping_details'.
 type Nat44LbStaticMappingDetails struct {
-       ExternalAddr ip_types.IP4Address `binapi:"ip4_address,name=external_addr" json:"external_addr,omitempty"`
-       ExternalPort uint16              `binapi:"u16,name=external_port" json:"external_port,omitempty"`
-       Protocol     uint8               `binapi:"u8,name=protocol" json:"protocol,omitempty"`
-       Flags        NatConfigFlags      `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
-       Affinity     uint32              `binapi:"u32,name=affinity" json:"affinity,omitempty"`
-       Tag          string              `binapi:"string[64],name=tag" json:"tag,omitempty"`
-       LocalNum     uint32              `binapi:"u32,name=local_num" json:"-"`
-       Locals       []Nat44LbAddrPort   `binapi:"nat44_lb_addr_port[local_num],name=locals" json:"locals,omitempty"`
+       ExternalAddr ip_types.IP4Address      `binapi:"ip4_address,name=external_addr" json:"external_addr,omitempty"`
+       ExternalPort uint16                   `binapi:"u16,name=external_port" json:"external_port,omitempty"`
+       Protocol     uint8                    `binapi:"u8,name=protocol" json:"protocol,omitempty"`
+       Flags        nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       Affinity     uint32                   `binapi:"u32,name=affinity" json:"affinity,omitempty"`
+       Tag          string                   `binapi:"string[64],name=tag" json:"tag,omitempty"`
+       LocalNum     uint32                   `binapi:"u32,name=local_num" json:"-"`
+       Locals       []Nat44LbAddrPort        `binapi:"nat44_lb_addr_port[local_num],name=locals" json:"locals,omitempty"`
 }
 
 func (m *Nat44LbStaticMappingDetails) Reset()               { *m = Nat44LbStaticMappingDetails{} }
 func (*Nat44LbStaticMappingDetails) GetMessageName() string { return "nat44_lb_static_mapping_details" }
-func (*Nat44LbStaticMappingDetails) GetCrcString() string   { return "2267b9e8" }
+func (*Nat44LbStaticMappingDetails) GetCrcString() string   { return "ed5ce876" }
 func (*Nat44LbStaticMappingDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
@@ -1596,7 +1888,7 @@ func (m *Nat44LbStaticMappingDetails) Unmarshal(b []byte) error {
        copy(m.ExternalAddr[:], buf.DecodeBytes(4))
        m.ExternalPort = buf.DecodeUint16()
        m.Protocol = buf.DecodeUint8()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        m.Affinity = buf.DecodeUint32()
        m.Tag = buf.DecodeString(64)
        m.LocalNum = buf.DecodeUint32()
@@ -1637,34 +1929,138 @@ func (m *Nat44LbStaticMappingDump) Unmarshal(b []byte) error {
        return nil
 }
 
-// Nat44SessionCleanup defines message 'nat44_session_cleanup'.
-type Nat44SessionCleanup struct{}
-
-func (m *Nat44SessionCleanup) Reset()               { *m = Nat44SessionCleanup{} }
-func (*Nat44SessionCleanup) GetMessageName() string { return "nat44_session_cleanup" }
-func (*Nat44SessionCleanup) GetCrcString() string   { return "51077d14" }
-func (*Nat44SessionCleanup) GetMessageType() api.MessageType {
+// Nat44PluginEnableDisable defines message 'nat44_plugin_enable_disable'.
+// Deprecated: the message will be removed in the future versions
+type Nat44PluginEnableDisable struct {
+       InsideVrf     uint32           `binapi:"u32,name=inside_vrf" json:"inside_vrf,omitempty"`
+       OutsideVrf    uint32           `binapi:"u32,name=outside_vrf" json:"outside_vrf,omitempty"`
+       Users         uint32           `binapi:"u32,name=users" json:"users,omitempty"`
+       UserMemory    uint32           `binapi:"u32,name=user_memory" json:"user_memory,omitempty"`
+       Sessions      uint32           `binapi:"u32,name=sessions" json:"sessions,omitempty"`
+       SessionMemory uint32           `binapi:"u32,name=session_memory" json:"session_memory,omitempty"`
+       UserSessions  uint32           `binapi:"u32,name=user_sessions" json:"user_sessions,omitempty"`
+       Enable        bool             `binapi:"bool,name=enable" json:"enable,omitempty"`
+       Flags         Nat44ConfigFlags `binapi:"nat44_config_flags,name=flags" json:"flags,omitempty"`
+}
+
+func (m *Nat44PluginEnableDisable) Reset()               { *m = Nat44PluginEnableDisable{} }
+func (*Nat44PluginEnableDisable) GetMessageName() string { return "nat44_plugin_enable_disable" }
+func (*Nat44PluginEnableDisable) GetCrcString() string   { return "dea0d501" }
+func (*Nat44PluginEnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-func (m *Nat44SessionCleanup) Size() (size int) {
+func (m *Nat44PluginEnableDisable) Size() (size int) {
        if m == nil {
                return 0
        }
+       size += 4 // m.InsideVrf
+       size += 4 // m.OutsideVrf
+       size += 4 // m.Users
+       size += 4 // m.UserMemory
+       size += 4 // m.Sessions
+       size += 4 // m.SessionMemory
+       size += 4 // m.UserSessions
+       size += 1 // m.Enable
+       size += 1 // m.Flags
        return size
 }
-func (m *Nat44SessionCleanup) Marshal(b []byte) ([]byte, error) {
+func (m *Nat44PluginEnableDisable) Marshal(b []byte) ([]byte, error) {
        if b == nil {
                b = make([]byte, m.Size())
        }
        buf := codec.NewBuffer(b)
+       buf.EncodeUint32(m.InsideVrf)
+       buf.EncodeUint32(m.OutsideVrf)
+       buf.EncodeUint32(m.Users)
+       buf.EncodeUint32(m.UserMemory)
+       buf.EncodeUint32(m.Sessions)
+       buf.EncodeUint32(m.SessionMemory)
+       buf.EncodeUint32(m.UserSessions)
+       buf.EncodeBool(m.Enable)
+       buf.EncodeUint8(uint8(m.Flags))
        return buf.Bytes(), nil
 }
-func (m *Nat44SessionCleanup) Unmarshal(b []byte) error {
+func (m *Nat44PluginEnableDisable) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.InsideVrf = buf.DecodeUint32()
+       m.OutsideVrf = buf.DecodeUint32()
+       m.Users = buf.DecodeUint32()
+       m.UserMemory = buf.DecodeUint32()
+       m.Sessions = buf.DecodeUint32()
+       m.SessionMemory = buf.DecodeUint32()
+       m.UserSessions = buf.DecodeUint32()
+       m.Enable = buf.DecodeBool()
+       m.Flags = Nat44ConfigFlags(buf.DecodeUint8())
+       return nil
+}
+
+// Nat44PluginEnableDisableReply defines message 'nat44_plugin_enable_disable_reply'.
+// Deprecated: the message will be removed in the future versions
+type Nat44PluginEnableDisableReply struct {
+       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *Nat44PluginEnableDisableReply) Reset() { *m = Nat44PluginEnableDisableReply{} }
+func (*Nat44PluginEnableDisableReply) GetMessageName() string {
+       return "nat44_plugin_enable_disable_reply"
+}
+func (*Nat44PluginEnableDisableReply) GetCrcString() string { return "e8d4e804" }
+func (*Nat44PluginEnableDisableReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *Nat44PluginEnableDisableReply) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       size += 4 // m.Retval
+       return size
+}
+func (m *Nat44PluginEnableDisableReply) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       buf.EncodeInt32(m.Retval)
+       return buf.Bytes(), nil
+}
+func (m *Nat44PluginEnableDisableReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = buf.DecodeInt32()
+       return nil
+}
+
+// Nat44SessionCleanup defines message 'nat44_session_cleanup'.
+// Deprecated: the message will be removed in the future versions
+type Nat44SessionCleanup struct{}
+
+func (m *Nat44SessionCleanup) Reset()               { *m = Nat44SessionCleanup{} }
+func (*Nat44SessionCleanup) GetMessageName() string { return "nat44_session_cleanup" }
+func (*Nat44SessionCleanup) GetCrcString() string   { return "51077d14" }
+func (*Nat44SessionCleanup) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *Nat44SessionCleanup) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       return size
+}
+func (m *Nat44SessionCleanup) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       return buf.Bytes(), nil
+}
+func (m *Nat44SessionCleanup) Unmarshal(b []byte) error {
        return nil
 }
 
 // Nat44SessionCleanupReply defines message 'nat44_session_cleanup_reply'.
+// Deprecated: the message will be removed in the future versions
 type Nat44SessionCleanupReply struct {
        Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
 }
@@ -1767,9 +2163,128 @@ func (m *Nat44SetSessionLimitReply) Unmarshal(b []byte) error {
        return nil
 }
 
+// Nat44ShowRunningConfig defines message 'nat44_show_running_config'.
+// InProgress: the message form may change in the future versions
+type Nat44ShowRunningConfig struct{}
+
+func (m *Nat44ShowRunningConfig) Reset()               { *m = Nat44ShowRunningConfig{} }
+func (*Nat44ShowRunningConfig) GetMessageName() string { return "nat44_show_running_config" }
+func (*Nat44ShowRunningConfig) GetCrcString() string   { return "51077d14" }
+func (*Nat44ShowRunningConfig) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *Nat44ShowRunningConfig) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       return size
+}
+func (m *Nat44ShowRunningConfig) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       return buf.Bytes(), nil
+}
+func (m *Nat44ShowRunningConfig) Unmarshal(b []byte) error {
+       return nil
+}
+
+// Nat44ShowRunningConfigReply defines message 'nat44_show_running_config_reply'.
+// InProgress: the message form may change in the future versions
+type Nat44ShowRunningConfigReply struct {
+       Retval              int32                 `binapi:"i32,name=retval" json:"retval,omitempty"`
+       InsideVrf           uint32                `binapi:"u32,name=inside_vrf" json:"inside_vrf,omitempty"`
+       OutsideVrf          uint32                `binapi:"u32,name=outside_vrf" json:"outside_vrf,omitempty"`
+       Users               uint32                `binapi:"u32,name=users" json:"users,omitempty"`
+       Sessions            uint32                `binapi:"u32,name=sessions" json:"sessions,omitempty"`
+       UserSessions        uint32                `binapi:"u32,name=user_sessions" json:"user_sessions,omitempty"`
+       UserBuckets         uint32                `binapi:"u32,name=user_buckets" json:"user_buckets,omitempty"`
+       TranslationBuckets  uint32                `binapi:"u32,name=translation_buckets" json:"translation_buckets,omitempty"`
+       ForwardingEnabled   bool                  `binapi:"bool,name=forwarding_enabled" json:"forwarding_enabled,omitempty"`
+       IpfixLoggingEnabled bool                  `binapi:"bool,name=ipfix_logging_enabled" json:"ipfix_logging_enabled,omitempty"`
+       Timeouts            nat_types.NatTimeouts `binapi:"nat_timeouts,name=timeouts" json:"timeouts,omitempty"`
+       LogLevel            nat_types.NatLogLevel `binapi:"nat_log_level,name=log_level" json:"log_level,omitempty"`
+       Flags               Nat44ConfigFlags      `binapi:"nat44_config_flags,name=flags" json:"flags,omitempty"`
+}
+
+func (m *Nat44ShowRunningConfigReply) Reset()               { *m = Nat44ShowRunningConfigReply{} }
+func (*Nat44ShowRunningConfigReply) GetMessageName() string { return "nat44_show_running_config_reply" }
+func (*Nat44ShowRunningConfigReply) GetCrcString() string   { return "93d8e267" }
+func (*Nat44ShowRunningConfigReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *Nat44ShowRunningConfigReply) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       size += 4 // m.Retval
+       size += 4 // m.InsideVrf
+       size += 4 // m.OutsideVrf
+       size += 4 // m.Users
+       size += 4 // m.Sessions
+       size += 4 // m.UserSessions
+       size += 4 // m.UserBuckets
+       size += 4 // m.TranslationBuckets
+       size += 1 // m.ForwardingEnabled
+       size += 1 // m.IpfixLoggingEnabled
+       size += 4 // m.Timeouts.UDP
+       size += 4 // m.Timeouts.TCPEstablished
+       size += 4 // m.Timeouts.TCPTransitory
+       size += 4 // m.Timeouts.ICMP
+       size += 1 // m.LogLevel
+       size += 1 // m.Flags
+       return size
+}
+func (m *Nat44ShowRunningConfigReply) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       buf.EncodeInt32(m.Retval)
+       buf.EncodeUint32(m.InsideVrf)
+       buf.EncodeUint32(m.OutsideVrf)
+       buf.EncodeUint32(m.Users)
+       buf.EncodeUint32(m.Sessions)
+       buf.EncodeUint32(m.UserSessions)
+       buf.EncodeUint32(m.UserBuckets)
+       buf.EncodeUint32(m.TranslationBuckets)
+       buf.EncodeBool(m.ForwardingEnabled)
+       buf.EncodeBool(m.IpfixLoggingEnabled)
+       buf.EncodeUint32(m.Timeouts.UDP)
+       buf.EncodeUint32(m.Timeouts.TCPEstablished)
+       buf.EncodeUint32(m.Timeouts.TCPTransitory)
+       buf.EncodeUint32(m.Timeouts.ICMP)
+       buf.EncodeUint8(uint8(m.LogLevel))
+       buf.EncodeUint8(uint8(m.Flags))
+       return buf.Bytes(), nil
+}
+func (m *Nat44ShowRunningConfigReply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = buf.DecodeInt32()
+       m.InsideVrf = buf.DecodeUint32()
+       m.OutsideVrf = buf.DecodeUint32()
+       m.Users = buf.DecodeUint32()
+       m.Sessions = buf.DecodeUint32()
+       m.UserSessions = buf.DecodeUint32()
+       m.UserBuckets = buf.DecodeUint32()
+       m.TranslationBuckets = buf.DecodeUint32()
+       m.ForwardingEnabled = buf.DecodeBool()
+       m.IpfixLoggingEnabled = buf.DecodeBool()
+       m.Timeouts.UDP = buf.DecodeUint32()
+       m.Timeouts.TCPEstablished = buf.DecodeUint32()
+       m.Timeouts.TCPTransitory = buf.DecodeUint32()
+       m.Timeouts.ICMP = buf.DecodeUint32()
+       m.LogLevel = nat_types.NatLogLevel(buf.DecodeUint8())
+       m.Flags = Nat44ConfigFlags(buf.DecodeUint8())
+       return nil
+}
+
 // Nat44StaticMappingDetails defines message 'nat44_static_mapping_details'.
 type Nat44StaticMappingDetails struct {
-       Flags             NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       Flags             nat_types.NatConfigFlags       `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
        LocalIPAddress    ip_types.IP4Address            `binapi:"ip4_address,name=local_ip_address" json:"local_ip_address,omitempty"`
        ExternalIPAddress ip_types.IP4Address            `binapi:"ip4_address,name=external_ip_address" json:"external_ip_address,omitempty"`
        Protocol          uint8                          `binapi:"u8,name=protocol" json:"protocol,omitempty"`
@@ -1782,7 +2297,7 @@ type Nat44StaticMappingDetails struct {
 
 func (m *Nat44StaticMappingDetails) Reset()               { *m = Nat44StaticMappingDetails{} }
 func (*Nat44StaticMappingDetails) GetMessageName() string { return "nat44_static_mapping_details" }
-func (*Nat44StaticMappingDetails) GetCrcString() string   { return "1a433ef7" }
+func (*Nat44StaticMappingDetails) GetCrcString() string   { return "06cb40b2" }
 func (*Nat44StaticMappingDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
@@ -1820,7 +2335,7 @@ func (m *Nat44StaticMappingDetails) Marshal(b []byte) ([]byte, error) {
 }
 func (m *Nat44StaticMappingDetails) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
        copy(m.LocalIPAddress[:], buf.DecodeBytes(4))
        copy(m.ExternalIPAddress[:], buf.DecodeBytes(4))
        m.Protocol = buf.DecodeUint8()
@@ -1837,1917 +2352,285 @@ type Nat44StaticMappingDump struct{}
 
 func (m *Nat44StaticMappingDump) Reset()               { *m = Nat44StaticMappingDump{} }
 func (*Nat44StaticMappingDump) GetMessageName() string { return "nat44_static_mapping_dump" }
-func (*Nat44StaticMappingDump) GetCrcString() string   { return "51077d14" }
-func (*Nat44StaticMappingDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat44StaticMappingDump) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       return size
-}
-func (m *Nat44StaticMappingDump) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       return buf.Bytes(), nil
-}
-func (m *Nat44StaticMappingDump) Unmarshal(b []byte) error {
-       return nil
-}
-
-// Nat44UserDetails defines message 'nat44_user_details'.
-type Nat44UserDetails struct {
-       VrfID           uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-       IPAddress       ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
-       Nsessions       uint32              `binapi:"u32,name=nsessions" json:"nsessions,omitempty"`
-       Nstaticsessions uint32              `binapi:"u32,name=nstaticsessions" json:"nstaticsessions,omitempty"`
-}
-
-func (m *Nat44UserDetails) Reset()               { *m = Nat44UserDetails{} }
-func (*Nat44UserDetails) GetMessageName() string { return "nat44_user_details" }
-func (*Nat44UserDetails) GetCrcString() string   { return "355896c2" }
-func (*Nat44UserDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat44UserDetails) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4     // m.VrfID
-       size += 1 * 4 // m.IPAddress
-       size += 4     // m.Nsessions
-       size += 4     // m.Nstaticsessions
-       return size
-}
-func (m *Nat44UserDetails) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeUint32(m.VrfID)
-       buf.EncodeBytes(m.IPAddress[:], 4)
-       buf.EncodeUint32(m.Nsessions)
-       buf.EncodeUint32(m.Nstaticsessions)
-       return buf.Bytes(), nil
-}
-func (m *Nat44UserDetails) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.VrfID = buf.DecodeUint32()
-       copy(m.IPAddress[:], buf.DecodeBytes(4))
-       m.Nsessions = buf.DecodeUint32()
-       m.Nstaticsessions = buf.DecodeUint32()
-       return nil
-}
-
-// Nat44UserDump defines message 'nat44_user_dump'.
-type Nat44UserDump struct{}
-
-func (m *Nat44UserDump) Reset()               { *m = Nat44UserDump{} }
-func (*Nat44UserDump) GetMessageName() string { return "nat44_user_dump" }
-func (*Nat44UserDump) GetCrcString() string   { return "51077d14" }
-func (*Nat44UserDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat44UserDump) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       return size
-}
-func (m *Nat44UserDump) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       return buf.Bytes(), nil
-}
-func (m *Nat44UserDump) Unmarshal(b []byte) error {
-       return nil
-}
-
-// Nat44UserSessionDetails defines message 'nat44_user_session_details'.
-type Nat44UserSessionDetails struct {
-       OutsideIPAddress  ip_types.IP4Address `binapi:"ip4_address,name=outside_ip_address" json:"outside_ip_address,omitempty"`
-       OutsidePort       uint16              `binapi:"u16,name=outside_port" json:"outside_port,omitempty"`
-       InsideIPAddress   ip_types.IP4Address `binapi:"ip4_address,name=inside_ip_address" json:"inside_ip_address,omitempty"`
-       InsidePort        uint16              `binapi:"u16,name=inside_port" json:"inside_port,omitempty"`
-       Protocol          uint16              `binapi:"u16,name=protocol" json:"protocol,omitempty"`
-       Flags             NatConfigFlags      `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
-       LastHeard         uint64              `binapi:"u64,name=last_heard" json:"last_heard,omitempty"`
-       TotalBytes        uint64              `binapi:"u64,name=total_bytes" json:"total_bytes,omitempty"`
-       TotalPkts         uint32              `binapi:"u32,name=total_pkts" json:"total_pkts,omitempty"`
-       ExtHostAddress    ip_types.IP4Address `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"`
-       ExtHostPort       uint16              `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"`
-       ExtHostNatAddress ip_types.IP4Address `binapi:"ip4_address,name=ext_host_nat_address" json:"ext_host_nat_address,omitempty"`
-       ExtHostNatPort    uint16              `binapi:"u16,name=ext_host_nat_port" json:"ext_host_nat_port,omitempty"`
-}
-
-func (m *Nat44UserSessionDetails) Reset()               { *m = Nat44UserSessionDetails{} }
-func (*Nat44UserSessionDetails) GetMessageName() string { return "nat44_user_session_details" }
-func (*Nat44UserSessionDetails) GetCrcString() string   { return "1965fd69" }
-func (*Nat44UserSessionDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat44UserSessionDetails) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 4 // m.OutsideIPAddress
-       size += 2     // m.OutsidePort
-       size += 1 * 4 // m.InsideIPAddress
-       size += 2     // m.InsidePort
-       size += 2     // m.Protocol
-       size += 1     // m.Flags
-       size += 8     // m.LastHeard
-       size += 8     // m.TotalBytes
-       size += 4     // m.TotalPkts
-       size += 1 * 4 // m.ExtHostAddress
-       size += 2     // m.ExtHostPort
-       size += 1 * 4 // m.ExtHostNatAddress
-       size += 2     // m.ExtHostNatPort
-       return size
-}
-func (m *Nat44UserSessionDetails) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.OutsideIPAddress[:], 4)
-       buf.EncodeUint16(m.OutsidePort)
-       buf.EncodeBytes(m.InsideIPAddress[:], 4)
-       buf.EncodeUint16(m.InsidePort)
-       buf.EncodeUint16(m.Protocol)
-       buf.EncodeUint8(uint8(m.Flags))
-       buf.EncodeUint64(m.LastHeard)
-       buf.EncodeUint64(m.TotalBytes)
-       buf.EncodeUint32(m.TotalPkts)
-       buf.EncodeBytes(m.ExtHostAddress[:], 4)
-       buf.EncodeUint16(m.ExtHostPort)
-       buf.EncodeBytes(m.ExtHostNatAddress[:], 4)
-       buf.EncodeUint16(m.ExtHostNatPort)
-       return buf.Bytes(), nil
-}
-func (m *Nat44UserSessionDetails) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.OutsideIPAddress[:], buf.DecodeBytes(4))
-       m.OutsidePort = buf.DecodeUint16()
-       copy(m.InsideIPAddress[:], buf.DecodeBytes(4))
-       m.InsidePort = buf.DecodeUint16()
-       m.Protocol = buf.DecodeUint16()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
-       m.LastHeard = buf.DecodeUint64()
-       m.TotalBytes = buf.DecodeUint64()
-       m.TotalPkts = buf.DecodeUint32()
-       copy(m.ExtHostAddress[:], buf.DecodeBytes(4))
-       m.ExtHostPort = buf.DecodeUint16()
-       copy(m.ExtHostNatAddress[:], buf.DecodeBytes(4))
-       m.ExtHostNatPort = buf.DecodeUint16()
-       return nil
-}
-
-// Nat44UserSessionDump defines message 'nat44_user_session_dump'.
-type Nat44UserSessionDump struct {
-       IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
-       VrfID     uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-}
-
-func (m *Nat44UserSessionDump) Reset()               { *m = Nat44UserSessionDump{} }
-func (*Nat44UserSessionDump) GetMessageName() string { return "nat44_user_session_dump" }
-func (*Nat44UserSessionDump) GetCrcString() string   { return "e1899c98" }
-func (*Nat44UserSessionDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat44UserSessionDump) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 4 // m.IPAddress
-       size += 4     // m.VrfID
-       return size
-}
-func (m *Nat44UserSessionDump) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.IPAddress[:], 4)
-       buf.EncodeUint32(m.VrfID)
-       return buf.Bytes(), nil
-}
-func (m *Nat44UserSessionDump) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.IPAddress[:], buf.DecodeBytes(4))
-       m.VrfID = buf.DecodeUint32()
-       return nil
-}
-
-// Nat64AddDelInterface defines message 'nat64_add_del_interface'.
-type Nat64AddDelInterface struct {
-       IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
-       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
-}
-
-func (m *Nat64AddDelInterface) Reset()               { *m = Nat64AddDelInterface{} }
-func (*Nat64AddDelInterface) GetMessageName() string { return "nat64_add_del_interface" }
-func (*Nat64AddDelInterface) GetCrcString() string   { return "f3699b83" }
-func (*Nat64AddDelInterface) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat64AddDelInterface) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 // m.IsAdd
-       size += 1 // m.Flags
-       size += 4 // m.SwIfIndex
-       return size
-}
-func (m *Nat64AddDelInterface) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBool(m.IsAdd)
-       buf.EncodeUint8(uint8(m.Flags))
-       buf.EncodeUint32(uint32(m.SwIfIndex))
-       return buf.Bytes(), nil
-}
-func (m *Nat64AddDelInterface) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.IsAdd = buf.DecodeBool()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
-       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
-       return nil
-}
-
-// Nat64AddDelInterfaceAddr defines message 'nat64_add_del_interface_addr'.
-type Nat64AddDelInterfaceAddr struct {
-       IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
-}
-
-func (m *Nat64AddDelInterfaceAddr) Reset()               { *m = Nat64AddDelInterfaceAddr{} }
-func (*Nat64AddDelInterfaceAddr) GetMessageName() string { return "nat64_add_del_interface_addr" }
-func (*Nat64AddDelInterfaceAddr) GetCrcString() string   { return "47d6e753" }
-func (*Nat64AddDelInterfaceAddr) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat64AddDelInterfaceAddr) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 // m.IsAdd
-       size += 4 // m.SwIfIndex
-       return size
-}
-func (m *Nat64AddDelInterfaceAddr) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBool(m.IsAdd)
-       buf.EncodeUint32(uint32(m.SwIfIndex))
-       return buf.Bytes(), nil
-}
-func (m *Nat64AddDelInterfaceAddr) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.IsAdd = buf.DecodeBool()
-       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
-       return nil
-}
-
-// Nat64AddDelInterfaceAddrReply defines message 'nat64_add_del_interface_addr_reply'.
-type Nat64AddDelInterfaceAddrReply struct {
-       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
-}
-
-func (m *Nat64AddDelInterfaceAddrReply) Reset() { *m = Nat64AddDelInterfaceAddrReply{} }
-func (*Nat64AddDelInterfaceAddrReply) GetMessageName() string {
-       return "nat64_add_del_interface_addr_reply"
-}
-func (*Nat64AddDelInterfaceAddrReply) GetCrcString() string { return "e8d4e804" }
-func (*Nat64AddDelInterfaceAddrReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat64AddDelInterfaceAddrReply) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4 // m.Retval
-       return size
-}
-func (m *Nat64AddDelInterfaceAddrReply) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       return buf.Bytes(), nil
-}
-func (m *Nat64AddDelInterfaceAddrReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       return nil
-}
-
-// Nat64AddDelInterfaceReply defines message 'nat64_add_del_interface_reply'.
-type Nat64AddDelInterfaceReply struct {
-       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
-}
-
-func (m *Nat64AddDelInterfaceReply) Reset()               { *m = Nat64AddDelInterfaceReply{} }
-func (*Nat64AddDelInterfaceReply) GetMessageName() string { return "nat64_add_del_interface_reply" }
-func (*Nat64AddDelInterfaceReply) GetCrcString() string   { return "e8d4e804" }
-func (*Nat64AddDelInterfaceReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat64AddDelInterfaceReply) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4 // m.Retval
-       return size
-}
-func (m *Nat64AddDelInterfaceReply) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       return buf.Bytes(), nil
-}
-func (m *Nat64AddDelInterfaceReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       return nil
-}
-
-// Nat64AddDelPoolAddrRange defines message 'nat64_add_del_pool_addr_range'.
-type Nat64AddDelPoolAddrRange struct {
-       StartAddr ip_types.IP4Address `binapi:"ip4_address,name=start_addr" json:"start_addr,omitempty"`
-       EndAddr   ip_types.IP4Address `binapi:"ip4_address,name=end_addr" json:"end_addr,omitempty"`
-       VrfID     uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-       IsAdd     bool                `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-}
-
-func (m *Nat64AddDelPoolAddrRange) Reset()               { *m = Nat64AddDelPoolAddrRange{} }
-func (*Nat64AddDelPoolAddrRange) GetMessageName() string { return "nat64_add_del_pool_addr_range" }
-func (*Nat64AddDelPoolAddrRange) GetCrcString() string   { return "21234ef3" }
-func (*Nat64AddDelPoolAddrRange) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat64AddDelPoolAddrRange) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 4 // m.StartAddr
-       size += 1 * 4 // m.EndAddr
-       size += 4     // m.VrfID
-       size += 1     // m.IsAdd
-       return size
-}
-func (m *Nat64AddDelPoolAddrRange) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.StartAddr[:], 4)
-       buf.EncodeBytes(m.EndAddr[:], 4)
-       buf.EncodeUint32(m.VrfID)
-       buf.EncodeBool(m.IsAdd)
-       return buf.Bytes(), nil
-}
-func (m *Nat64AddDelPoolAddrRange) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.StartAddr[:], buf.DecodeBytes(4))
-       copy(m.EndAddr[:], buf.DecodeBytes(4))
-       m.VrfID = buf.DecodeUint32()
-       m.IsAdd = buf.DecodeBool()
-       return nil
-}
-
-// Nat64AddDelPoolAddrRangeReply defines message 'nat64_add_del_pool_addr_range_reply'.
-type Nat64AddDelPoolAddrRangeReply struct {
-       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
-}
-
-func (m *Nat64AddDelPoolAddrRangeReply) Reset() { *m = Nat64AddDelPoolAddrRangeReply{} }
-func (*Nat64AddDelPoolAddrRangeReply) GetMessageName() string {
-       return "nat64_add_del_pool_addr_range_reply"
-}
-func (*Nat64AddDelPoolAddrRangeReply) GetCrcString() string { return "e8d4e804" }
-func (*Nat64AddDelPoolAddrRangeReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat64AddDelPoolAddrRangeReply) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4 // m.Retval
-       return size
-}
-func (m *Nat64AddDelPoolAddrRangeReply) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       return buf.Bytes(), nil
-}
-func (m *Nat64AddDelPoolAddrRangeReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       return nil
-}
-
-// Nat64AddDelPrefix defines message 'nat64_add_del_prefix'.
-type Nat64AddDelPrefix struct {
-       Prefix ip_types.IP6Prefix `binapi:"ip6_prefix,name=prefix" json:"prefix,omitempty"`
-       VrfID  uint32             `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-       IsAdd  bool               `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-}
-
-func (m *Nat64AddDelPrefix) Reset()               { *m = Nat64AddDelPrefix{} }
-func (*Nat64AddDelPrefix) GetMessageName() string { return "nat64_add_del_prefix" }
-func (*Nat64AddDelPrefix) GetCrcString() string   { return "727b2f4c" }
-func (*Nat64AddDelPrefix) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat64AddDelPrefix) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 16 // m.Prefix.Address
-       size += 1      // m.Prefix.Len
-       size += 4      // m.VrfID
-       size += 1      // m.IsAdd
-       return size
-}
-func (m *Nat64AddDelPrefix) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.Prefix.Address[:], 16)
-       buf.EncodeUint8(m.Prefix.Len)
-       buf.EncodeUint32(m.VrfID)
-       buf.EncodeBool(m.IsAdd)
-       return buf.Bytes(), nil
-}
-func (m *Nat64AddDelPrefix) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.Prefix.Address[:], buf.DecodeBytes(16))
-       m.Prefix.Len = buf.DecodeUint8()
-       m.VrfID = buf.DecodeUint32()
-       m.IsAdd = buf.DecodeBool()
-       return nil
-}
-
-// Nat64AddDelPrefixReply defines message 'nat64_add_del_prefix_reply'.
-type Nat64AddDelPrefixReply struct {
-       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
-}
-
-func (m *Nat64AddDelPrefixReply) Reset()               { *m = Nat64AddDelPrefixReply{} }
-func (*Nat64AddDelPrefixReply) GetMessageName() string { return "nat64_add_del_prefix_reply" }
-func (*Nat64AddDelPrefixReply) GetCrcString() string   { return "e8d4e804" }
-func (*Nat64AddDelPrefixReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat64AddDelPrefixReply) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4 // m.Retval
-       return size
-}
-func (m *Nat64AddDelPrefixReply) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       return buf.Bytes(), nil
-}
-func (m *Nat64AddDelPrefixReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       return nil
-}
-
-// Nat64AddDelStaticBib defines message 'nat64_add_del_static_bib'.
-type Nat64AddDelStaticBib struct {
-       IAddr ip_types.IP6Address `binapi:"ip6_address,name=i_addr" json:"i_addr,omitempty"`
-       OAddr ip_types.IP4Address `binapi:"ip4_address,name=o_addr" json:"o_addr,omitempty"`
-       IPort uint16              `binapi:"u16,name=i_port" json:"i_port,omitempty"`
-       OPort uint16              `binapi:"u16,name=o_port" json:"o_port,omitempty"`
-       VrfID uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-       Proto uint8               `binapi:"u8,name=proto" json:"proto,omitempty"`
-       IsAdd bool                `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-}
-
-func (m *Nat64AddDelStaticBib) Reset()               { *m = Nat64AddDelStaticBib{} }
-func (*Nat64AddDelStaticBib) GetMessageName() string { return "nat64_add_del_static_bib" }
-func (*Nat64AddDelStaticBib) GetCrcString() string   { return "90fae58a" }
-func (*Nat64AddDelStaticBib) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat64AddDelStaticBib) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 16 // m.IAddr
-       size += 1 * 4  // m.OAddr
-       size += 2      // m.IPort
-       size += 2      // m.OPort
-       size += 4      // m.VrfID
-       size += 1      // m.Proto
-       size += 1      // m.IsAdd
-       return size
-}
-func (m *Nat64AddDelStaticBib) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.IAddr[:], 16)
-       buf.EncodeBytes(m.OAddr[:], 4)
-       buf.EncodeUint16(m.IPort)
-       buf.EncodeUint16(m.OPort)
-       buf.EncodeUint32(m.VrfID)
-       buf.EncodeUint8(m.Proto)
-       buf.EncodeBool(m.IsAdd)
-       return buf.Bytes(), nil
-}
-func (m *Nat64AddDelStaticBib) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.IAddr[:], buf.DecodeBytes(16))
-       copy(m.OAddr[:], buf.DecodeBytes(4))
-       m.IPort = buf.DecodeUint16()
-       m.OPort = buf.DecodeUint16()
-       m.VrfID = buf.DecodeUint32()
-       m.Proto = buf.DecodeUint8()
-       m.IsAdd = buf.DecodeBool()
-       return nil
-}
-
-// Nat64AddDelStaticBibReply defines message 'nat64_add_del_static_bib_reply'.
-type Nat64AddDelStaticBibReply struct {
-       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
-}
-
-func (m *Nat64AddDelStaticBibReply) Reset()               { *m = Nat64AddDelStaticBibReply{} }
-func (*Nat64AddDelStaticBibReply) GetMessageName() string { return "nat64_add_del_static_bib_reply" }
-func (*Nat64AddDelStaticBibReply) GetCrcString() string   { return "e8d4e804" }
-func (*Nat64AddDelStaticBibReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat64AddDelStaticBibReply) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4 // m.Retval
-       return size
-}
-func (m *Nat64AddDelStaticBibReply) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       return buf.Bytes(), nil
-}
-func (m *Nat64AddDelStaticBibReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       return nil
-}
-
-// Nat64BibDetails defines message 'nat64_bib_details'.
-type Nat64BibDetails struct {
-       IAddr  ip_types.IP6Address `binapi:"ip6_address,name=i_addr" json:"i_addr,omitempty"`
-       OAddr  ip_types.IP4Address `binapi:"ip4_address,name=o_addr" json:"o_addr,omitempty"`
-       IPort  uint16              `binapi:"u16,name=i_port" json:"i_port,omitempty"`
-       OPort  uint16              `binapi:"u16,name=o_port" json:"o_port,omitempty"`
-       VrfID  uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-       Proto  uint8               `binapi:"u8,name=proto" json:"proto,omitempty"`
-       Flags  NatConfigFlags      `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
-       SesNum uint32              `binapi:"u32,name=ses_num" json:"ses_num,omitempty"`
-}
-
-func (m *Nat64BibDetails) Reset()               { *m = Nat64BibDetails{} }
-func (*Nat64BibDetails) GetMessageName() string { return "nat64_bib_details" }
-func (*Nat64BibDetails) GetCrcString() string   { return "62c8541d" }
-func (*Nat64BibDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat64BibDetails) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 16 // m.IAddr
-       size += 1 * 4  // m.OAddr
-       size += 2      // m.IPort
-       size += 2      // m.OPort
-       size += 4      // m.VrfID
-       size += 1      // m.Proto
-       size += 1      // m.Flags
-       size += 4      // m.SesNum
-       return size
-}
-func (m *Nat64BibDetails) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.IAddr[:], 16)
-       buf.EncodeBytes(m.OAddr[:], 4)
-       buf.EncodeUint16(m.IPort)
-       buf.EncodeUint16(m.OPort)
-       buf.EncodeUint32(m.VrfID)
-       buf.EncodeUint8(m.Proto)
-       buf.EncodeUint8(uint8(m.Flags))
-       buf.EncodeUint32(m.SesNum)
-       return buf.Bytes(), nil
-}
-func (m *Nat64BibDetails) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.IAddr[:], buf.DecodeBytes(16))
-       copy(m.OAddr[:], buf.DecodeBytes(4))
-       m.IPort = buf.DecodeUint16()
-       m.OPort = buf.DecodeUint16()
-       m.VrfID = buf.DecodeUint32()
-       m.Proto = buf.DecodeUint8()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
-       m.SesNum = buf.DecodeUint32()
-       return nil
-}
-
-// Nat64BibDump defines message 'nat64_bib_dump'.
-type Nat64BibDump struct {
-       Proto uint8 `binapi:"u8,name=proto" json:"proto,omitempty"`
-}
-
-func (m *Nat64BibDump) Reset()               { *m = Nat64BibDump{} }
-func (*Nat64BibDump) GetMessageName() string { return "nat64_bib_dump" }
-func (*Nat64BibDump) GetCrcString() string   { return "cfcb6b75" }
-func (*Nat64BibDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat64BibDump) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 // m.Proto
-       return size
-}
-func (m *Nat64BibDump) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeUint8(m.Proto)
-       return buf.Bytes(), nil
-}
-func (m *Nat64BibDump) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Proto = buf.DecodeUint8()
-       return nil
-}
-
-// Nat64InterfaceDetails defines message 'nat64_interface_details'.
-type Nat64InterfaceDetails struct {
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
-       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
-}
-
-func (m *Nat64InterfaceDetails) Reset()               { *m = Nat64InterfaceDetails{} }
-func (*Nat64InterfaceDetails) GetMessageName() string { return "nat64_interface_details" }
-func (*Nat64InterfaceDetails) GetCrcString() string   { return "5d286289" }
-func (*Nat64InterfaceDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat64InterfaceDetails) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 // m.Flags
-       size += 4 // m.SwIfIndex
-       return size
-}
-func (m *Nat64InterfaceDetails) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeUint8(uint8(m.Flags))
-       buf.EncodeUint32(uint32(m.SwIfIndex))
-       return buf.Bytes(), nil
-}
-func (m *Nat64InterfaceDetails) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
-       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
-       return nil
-}
-
-// Nat64InterfaceDump defines message 'nat64_interface_dump'.
-type Nat64InterfaceDump struct{}
-
-func (m *Nat64InterfaceDump) Reset()               { *m = Nat64InterfaceDump{} }
-func (*Nat64InterfaceDump) GetMessageName() string { return "nat64_interface_dump" }
-func (*Nat64InterfaceDump) GetCrcString() string   { return "51077d14" }
-func (*Nat64InterfaceDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat64InterfaceDump) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       return size
-}
-func (m *Nat64InterfaceDump) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       return buf.Bytes(), nil
-}
-func (m *Nat64InterfaceDump) Unmarshal(b []byte) error {
-       return nil
-}
-
-// Nat64PoolAddrDetails defines message 'nat64_pool_addr_details'.
-type Nat64PoolAddrDetails struct {
-       Address ip_types.IP4Address `binapi:"ip4_address,name=address" json:"address,omitempty"`
-       VrfID   uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-}
-
-func (m *Nat64PoolAddrDetails) Reset()               { *m = Nat64PoolAddrDetails{} }
-func (*Nat64PoolAddrDetails) GetMessageName() string { return "nat64_pool_addr_details" }
-func (*Nat64PoolAddrDetails) GetCrcString() string   { return "9bb99cdb" }
-func (*Nat64PoolAddrDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat64PoolAddrDetails) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 4 // m.Address
-       size += 4     // m.VrfID
-       return size
-}
-func (m *Nat64PoolAddrDetails) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.Address[:], 4)
-       buf.EncodeUint32(m.VrfID)
-       return buf.Bytes(), nil
-}
-func (m *Nat64PoolAddrDetails) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.Address[:], buf.DecodeBytes(4))
-       m.VrfID = buf.DecodeUint32()
-       return nil
-}
-
-// Nat64PoolAddrDump defines message 'nat64_pool_addr_dump'.
-type Nat64PoolAddrDump struct{}
-
-func (m *Nat64PoolAddrDump) Reset()               { *m = Nat64PoolAddrDump{} }
-func (*Nat64PoolAddrDump) GetMessageName() string { return "nat64_pool_addr_dump" }
-func (*Nat64PoolAddrDump) GetCrcString() string   { return "51077d14" }
-func (*Nat64PoolAddrDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat64PoolAddrDump) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       return size
-}
-func (m *Nat64PoolAddrDump) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       return buf.Bytes(), nil
-}
-func (m *Nat64PoolAddrDump) Unmarshal(b []byte) error {
-       return nil
-}
-
-// Nat64PrefixDetails defines message 'nat64_prefix_details'.
-type Nat64PrefixDetails struct {
-       Prefix ip_types.IP6Prefix `binapi:"ip6_prefix,name=prefix" json:"prefix,omitempty"`
-       VrfID  uint32             `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-}
-
-func (m *Nat64PrefixDetails) Reset()               { *m = Nat64PrefixDetails{} }
-func (*Nat64PrefixDetails) GetMessageName() string { return "nat64_prefix_details" }
-func (*Nat64PrefixDetails) GetCrcString() string   { return "20568de3" }
-func (*Nat64PrefixDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat64PrefixDetails) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 16 // m.Prefix.Address
-       size += 1      // m.Prefix.Len
-       size += 4      // m.VrfID
-       return size
-}
-func (m *Nat64PrefixDetails) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.Prefix.Address[:], 16)
-       buf.EncodeUint8(m.Prefix.Len)
-       buf.EncodeUint32(m.VrfID)
-       return buf.Bytes(), nil
-}
-func (m *Nat64PrefixDetails) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.Prefix.Address[:], buf.DecodeBytes(16))
-       m.Prefix.Len = buf.DecodeUint8()
-       m.VrfID = buf.DecodeUint32()
-       return nil
-}
-
-// Nat64PrefixDump defines message 'nat64_prefix_dump'.
-type Nat64PrefixDump struct{}
-
-func (m *Nat64PrefixDump) Reset()               { *m = Nat64PrefixDump{} }
-func (*Nat64PrefixDump) GetMessageName() string { return "nat64_prefix_dump" }
-func (*Nat64PrefixDump) GetCrcString() string   { return "51077d14" }
-func (*Nat64PrefixDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat64PrefixDump) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       return size
-}
-func (m *Nat64PrefixDump) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       return buf.Bytes(), nil
-}
-func (m *Nat64PrefixDump) Unmarshal(b []byte) error {
-       return nil
-}
-
-// Nat64StDetails defines message 'nat64_st_details'.
-type Nat64StDetails struct {
-       IlAddr ip_types.IP6Address `binapi:"ip6_address,name=il_addr" json:"il_addr,omitempty"`
-       OlAddr ip_types.IP4Address `binapi:"ip4_address,name=ol_addr" json:"ol_addr,omitempty"`
-       IlPort uint16              `binapi:"u16,name=il_port" json:"il_port,omitempty"`
-       OlPort uint16              `binapi:"u16,name=ol_port" json:"ol_port,omitempty"`
-       IrAddr ip_types.IP6Address `binapi:"ip6_address,name=ir_addr" json:"ir_addr,omitempty"`
-       OrAddr ip_types.IP4Address `binapi:"ip4_address,name=or_addr" json:"or_addr,omitempty"`
-       RPort  uint16              `binapi:"u16,name=r_port" json:"r_port,omitempty"`
-       VrfID  uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-       Proto  uint8               `binapi:"u8,name=proto" json:"proto,omitempty"`
-}
-
-func (m *Nat64StDetails) Reset()               { *m = Nat64StDetails{} }
-func (*Nat64StDetails) GetMessageName() string { return "nat64_st_details" }
-func (*Nat64StDetails) GetCrcString() string   { return "c770d620" }
-func (*Nat64StDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat64StDetails) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 16 // m.IlAddr
-       size += 1 * 4  // m.OlAddr
-       size += 2      // m.IlPort
-       size += 2      // m.OlPort
-       size += 1 * 16 // m.IrAddr
-       size += 1 * 4  // m.OrAddr
-       size += 2      // m.RPort
-       size += 4      // m.VrfID
-       size += 1      // m.Proto
-       return size
-}
-func (m *Nat64StDetails) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.IlAddr[:], 16)
-       buf.EncodeBytes(m.OlAddr[:], 4)
-       buf.EncodeUint16(m.IlPort)
-       buf.EncodeUint16(m.OlPort)
-       buf.EncodeBytes(m.IrAddr[:], 16)
-       buf.EncodeBytes(m.OrAddr[:], 4)
-       buf.EncodeUint16(m.RPort)
-       buf.EncodeUint32(m.VrfID)
-       buf.EncodeUint8(m.Proto)
-       return buf.Bytes(), nil
-}
-func (m *Nat64StDetails) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.IlAddr[:], buf.DecodeBytes(16))
-       copy(m.OlAddr[:], buf.DecodeBytes(4))
-       m.IlPort = buf.DecodeUint16()
-       m.OlPort = buf.DecodeUint16()
-       copy(m.IrAddr[:], buf.DecodeBytes(16))
-       copy(m.OrAddr[:], buf.DecodeBytes(4))
-       m.RPort = buf.DecodeUint16()
-       m.VrfID = buf.DecodeUint32()
-       m.Proto = buf.DecodeUint8()
-       return nil
-}
-
-// Nat64StDump defines message 'nat64_st_dump'.
-type Nat64StDump struct {
-       Proto uint8 `binapi:"u8,name=proto" json:"proto,omitempty"`
-}
-
-func (m *Nat64StDump) Reset()               { *m = Nat64StDump{} }
-func (*Nat64StDump) GetMessageName() string { return "nat64_st_dump" }
-func (*Nat64StDump) GetCrcString() string   { return "cfcb6b75" }
-func (*Nat64StDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat64StDump) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 // m.Proto
-       return size
-}
-func (m *Nat64StDump) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeUint8(m.Proto)
-       return buf.Bytes(), nil
-}
-func (m *Nat64StDump) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Proto = buf.DecodeUint8()
-       return nil
-}
-
-// Nat66AddDelInterface defines message 'nat66_add_del_interface'.
-type Nat66AddDelInterface struct {
-       IsAdd     bool                           `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
-       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
-}
-
-func (m *Nat66AddDelInterface) Reset()               { *m = Nat66AddDelInterface{} }
-func (*Nat66AddDelInterface) GetMessageName() string { return "nat66_add_del_interface" }
-func (*Nat66AddDelInterface) GetCrcString() string   { return "f3699b83" }
-func (*Nat66AddDelInterface) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat66AddDelInterface) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 // m.IsAdd
-       size += 1 // m.Flags
-       size += 4 // m.SwIfIndex
-       return size
-}
-func (m *Nat66AddDelInterface) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBool(m.IsAdd)
-       buf.EncodeUint8(uint8(m.Flags))
-       buf.EncodeUint32(uint32(m.SwIfIndex))
-       return buf.Bytes(), nil
-}
-func (m *Nat66AddDelInterface) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.IsAdd = buf.DecodeBool()
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
-       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
-       return nil
-}
-
-// Nat66AddDelInterfaceReply defines message 'nat66_add_del_interface_reply'.
-type Nat66AddDelInterfaceReply struct {
-       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
-}
-
-func (m *Nat66AddDelInterfaceReply) Reset()               { *m = Nat66AddDelInterfaceReply{} }
-func (*Nat66AddDelInterfaceReply) GetMessageName() string { return "nat66_add_del_interface_reply" }
-func (*Nat66AddDelInterfaceReply) GetCrcString() string   { return "e8d4e804" }
-func (*Nat66AddDelInterfaceReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat66AddDelInterfaceReply) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4 // m.Retval
-       return size
-}
-func (m *Nat66AddDelInterfaceReply) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       return buf.Bytes(), nil
-}
-func (m *Nat66AddDelInterfaceReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       return nil
-}
-
-// Nat66AddDelStaticMapping defines message 'nat66_add_del_static_mapping'.
-type Nat66AddDelStaticMapping struct {
-       IsAdd             bool                `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-       LocalIPAddress    ip_types.IP6Address `binapi:"ip6_address,name=local_ip_address" json:"local_ip_address,omitempty"`
-       ExternalIPAddress ip_types.IP6Address `binapi:"ip6_address,name=external_ip_address" json:"external_ip_address,omitempty"`
-       VrfID             uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-}
-
-func (m *Nat66AddDelStaticMapping) Reset()               { *m = Nat66AddDelStaticMapping{} }
-func (*Nat66AddDelStaticMapping) GetMessageName() string { return "nat66_add_del_static_mapping" }
-func (*Nat66AddDelStaticMapping) GetCrcString() string   { return "fb64e50b" }
-func (*Nat66AddDelStaticMapping) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat66AddDelStaticMapping) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1      // m.IsAdd
-       size += 1 * 16 // m.LocalIPAddress
-       size += 1 * 16 // m.ExternalIPAddress
-       size += 4      // m.VrfID
-       return size
-}
-func (m *Nat66AddDelStaticMapping) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBool(m.IsAdd)
-       buf.EncodeBytes(m.LocalIPAddress[:], 16)
-       buf.EncodeBytes(m.ExternalIPAddress[:], 16)
-       buf.EncodeUint32(m.VrfID)
-       return buf.Bytes(), nil
-}
-func (m *Nat66AddDelStaticMapping) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.IsAdd = buf.DecodeBool()
-       copy(m.LocalIPAddress[:], buf.DecodeBytes(16))
-       copy(m.ExternalIPAddress[:], buf.DecodeBytes(16))
-       m.VrfID = buf.DecodeUint32()
-       return nil
-}
-
-// Nat66AddDelStaticMappingReply defines message 'nat66_add_del_static_mapping_reply'.
-type Nat66AddDelStaticMappingReply struct {
-       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
-}
-
-func (m *Nat66AddDelStaticMappingReply) Reset() { *m = Nat66AddDelStaticMappingReply{} }
-func (*Nat66AddDelStaticMappingReply) GetMessageName() string {
-       return "nat66_add_del_static_mapping_reply"
-}
-func (*Nat66AddDelStaticMappingReply) GetCrcString() string { return "e8d4e804" }
-func (*Nat66AddDelStaticMappingReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat66AddDelStaticMappingReply) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4 // m.Retval
-       return size
-}
-func (m *Nat66AddDelStaticMappingReply) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       return buf.Bytes(), nil
-}
-func (m *Nat66AddDelStaticMappingReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       return nil
-}
-
-// Nat66InterfaceDetails defines message 'nat66_interface_details'.
-type Nat66InterfaceDetails struct {
-       Flags     NatConfigFlags                 `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
-       SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
-}
-
-func (m *Nat66InterfaceDetails) Reset()               { *m = Nat66InterfaceDetails{} }
-func (*Nat66InterfaceDetails) GetMessageName() string { return "nat66_interface_details" }
-func (*Nat66InterfaceDetails) GetCrcString() string   { return "5d286289" }
-func (*Nat66InterfaceDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat66InterfaceDetails) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 // m.Flags
-       size += 4 // m.SwIfIndex
-       return size
-}
-func (m *Nat66InterfaceDetails) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeUint8(uint8(m.Flags))
-       buf.EncodeUint32(uint32(m.SwIfIndex))
-       return buf.Bytes(), nil
-}
-func (m *Nat66InterfaceDetails) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Flags = NatConfigFlags(buf.DecodeUint8())
-       m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
-       return nil
-}
-
-// Nat66InterfaceDump defines message 'nat66_interface_dump'.
-type Nat66InterfaceDump struct{}
-
-func (m *Nat66InterfaceDump) Reset()               { *m = Nat66InterfaceDump{} }
-func (*Nat66InterfaceDump) GetMessageName() string { return "nat66_interface_dump" }
-func (*Nat66InterfaceDump) GetCrcString() string   { return "51077d14" }
-func (*Nat66InterfaceDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat66InterfaceDump) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       return size
-}
-func (m *Nat66InterfaceDump) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       return buf.Bytes(), nil
-}
-func (m *Nat66InterfaceDump) Unmarshal(b []byte) error {
-       return nil
-}
-
-// Nat66StaticMappingDetails defines message 'nat66_static_mapping_details'.
-type Nat66StaticMappingDetails struct {
-       LocalIPAddress    ip_types.IP6Address `binapi:"ip6_address,name=local_ip_address" json:"local_ip_address,omitempty"`
-       ExternalIPAddress ip_types.IP6Address `binapi:"ip6_address,name=external_ip_address" json:"external_ip_address,omitempty"`
-       VrfID             uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
-       TotalBytes        uint64              `binapi:"u64,name=total_bytes" json:"total_bytes,omitempty"`
-       TotalPkts         uint64              `binapi:"u64,name=total_pkts" json:"total_pkts,omitempty"`
-}
-
-func (m *Nat66StaticMappingDetails) Reset()               { *m = Nat66StaticMappingDetails{} }
-func (*Nat66StaticMappingDetails) GetMessageName() string { return "nat66_static_mapping_details" }
-func (*Nat66StaticMappingDetails) GetCrcString() string   { return "5c568448" }
-func (*Nat66StaticMappingDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *Nat66StaticMappingDetails) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 16 // m.LocalIPAddress
-       size += 1 * 16 // m.ExternalIPAddress
-       size += 4      // m.VrfID
-       size += 8      // m.TotalBytes
-       size += 8      // m.TotalPkts
-       return size
-}
-func (m *Nat66StaticMappingDetails) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.LocalIPAddress[:], 16)
-       buf.EncodeBytes(m.ExternalIPAddress[:], 16)
-       buf.EncodeUint32(m.VrfID)
-       buf.EncodeUint64(m.TotalBytes)
-       buf.EncodeUint64(m.TotalPkts)
-       return buf.Bytes(), nil
-}
-func (m *Nat66StaticMappingDetails) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.LocalIPAddress[:], buf.DecodeBytes(16))
-       copy(m.ExternalIPAddress[:], buf.DecodeBytes(16))
-       m.VrfID = buf.DecodeUint32()
-       m.TotalBytes = buf.DecodeUint64()
-       m.TotalPkts = buf.DecodeUint64()
-       return nil
-}
-
-// Nat66StaticMappingDump defines message 'nat66_static_mapping_dump'.
-type Nat66StaticMappingDump struct{}
-
-func (m *Nat66StaticMappingDump) Reset()               { *m = Nat66StaticMappingDump{} }
-func (*Nat66StaticMappingDump) GetMessageName() string { return "nat66_static_mapping_dump" }
-func (*Nat66StaticMappingDump) GetCrcString() string   { return "51077d14" }
-func (*Nat66StaticMappingDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *Nat66StaticMappingDump) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       return size
-}
-func (m *Nat66StaticMappingDump) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       return buf.Bytes(), nil
-}
-func (m *Nat66StaticMappingDump) Unmarshal(b []byte) error {
-       return nil
-}
-
-// NatControlPing defines message 'nat_control_ping'.
-type NatControlPing struct{}
-
-func (m *NatControlPing) Reset()               { *m = NatControlPing{} }
-func (*NatControlPing) GetMessageName() string { return "nat_control_ping" }
-func (*NatControlPing) GetCrcString() string   { return "51077d14" }
-func (*NatControlPing) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *NatControlPing) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       return size
-}
-func (m *NatControlPing) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       return buf.Bytes(), nil
-}
-func (m *NatControlPing) Unmarshal(b []byte) error {
-       return nil
-}
-
-// NatControlPingReply defines message 'nat_control_ping_reply'.
-type NatControlPingReply struct {
-       Retval      int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
-       ClientIndex uint32 `binapi:"u32,name=client_index" json:"client_index,omitempty"`
-       VpePID      uint32 `binapi:"u32,name=vpe_pid" json:"vpe_pid,omitempty"`
-}
-
-func (m *NatControlPingReply) Reset()               { *m = NatControlPingReply{} }
-func (*NatControlPingReply) GetMessageName() string { return "nat_control_ping_reply" }
-func (*NatControlPingReply) GetCrcString() string   { return "f6b0b8ca" }
-func (*NatControlPingReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *NatControlPingReply) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4 // m.Retval
-       size += 4 // m.ClientIndex
-       size += 4 // m.VpePID
-       return size
-}
-func (m *NatControlPingReply) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       buf.EncodeUint32(m.ClientIndex)
-       buf.EncodeUint32(m.VpePID)
-       return buf.Bytes(), nil
-}
-func (m *NatControlPingReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       m.ClientIndex = buf.DecodeUint32()
-       m.VpePID = buf.DecodeUint32()
-       return nil
-}
-
-// NatDetAddDelMap defines message 'nat_det_add_del_map'.
-type NatDetAddDelMap struct {
-       IsAdd   bool                `binapi:"bool,name=is_add" json:"is_add,omitempty"`
-       InAddr  ip_types.IP4Address `binapi:"ip4_address,name=in_addr" json:"in_addr,omitempty"`
-       InPlen  uint8               `binapi:"u8,name=in_plen" json:"in_plen,omitempty"`
-       OutAddr ip_types.IP4Address `binapi:"ip4_address,name=out_addr" json:"out_addr,omitempty"`
-       OutPlen uint8               `binapi:"u8,name=out_plen" json:"out_plen,omitempty"`
-}
-
-func (m *NatDetAddDelMap) Reset()               { *m = NatDetAddDelMap{} }
-func (*NatDetAddDelMap) GetMessageName() string { return "nat_det_add_del_map" }
-func (*NatDetAddDelMap) GetCrcString() string   { return "112fde05" }
-func (*NatDetAddDelMap) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *NatDetAddDelMap) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1     // m.IsAdd
-       size += 1 * 4 // m.InAddr
-       size += 1     // m.InPlen
-       size += 1 * 4 // m.OutAddr
-       size += 1     // m.OutPlen
-       return size
-}
-func (m *NatDetAddDelMap) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBool(m.IsAdd)
-       buf.EncodeBytes(m.InAddr[:], 4)
-       buf.EncodeUint8(m.InPlen)
-       buf.EncodeBytes(m.OutAddr[:], 4)
-       buf.EncodeUint8(m.OutPlen)
-       return buf.Bytes(), nil
-}
-func (m *NatDetAddDelMap) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.IsAdd = buf.DecodeBool()
-       copy(m.InAddr[:], buf.DecodeBytes(4))
-       m.InPlen = buf.DecodeUint8()
-       copy(m.OutAddr[:], buf.DecodeBytes(4))
-       m.OutPlen = buf.DecodeUint8()
-       return nil
-}
-
-// NatDetAddDelMapReply defines message 'nat_det_add_del_map_reply'.
-type NatDetAddDelMapReply struct {
-       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
-}
-
-func (m *NatDetAddDelMapReply) Reset()               { *m = NatDetAddDelMapReply{} }
-func (*NatDetAddDelMapReply) GetMessageName() string { return "nat_det_add_del_map_reply" }
-func (*NatDetAddDelMapReply) GetCrcString() string   { return "e8d4e804" }
-func (*NatDetAddDelMapReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *NatDetAddDelMapReply) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4 // m.Retval
-       return size
-}
-func (m *NatDetAddDelMapReply) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       return buf.Bytes(), nil
-}
-func (m *NatDetAddDelMapReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       return nil
-}
-
-// NatDetCloseSessionIn defines message 'nat_det_close_session_in'.
-type NatDetCloseSessionIn struct {
-       InAddr  ip_types.IP4Address `binapi:"ip4_address,name=in_addr" json:"in_addr,omitempty"`
-       InPort  uint16              `binapi:"u16,name=in_port" json:"in_port,omitempty"`
-       ExtAddr ip_types.IP4Address `binapi:"ip4_address,name=ext_addr" json:"ext_addr,omitempty"`
-       ExtPort uint16              `binapi:"u16,name=ext_port" json:"ext_port,omitempty"`
-}
-
-func (m *NatDetCloseSessionIn) Reset()               { *m = NatDetCloseSessionIn{} }
-func (*NatDetCloseSessionIn) GetMessageName() string { return "nat_det_close_session_in" }
-func (*NatDetCloseSessionIn) GetCrcString() string   { return "0a10ef64" }
-func (*NatDetCloseSessionIn) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *NatDetCloseSessionIn) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 4 // m.InAddr
-       size += 2     // m.InPort
-       size += 1 * 4 // m.ExtAddr
-       size += 2     // m.ExtPort
-       return size
-}
-func (m *NatDetCloseSessionIn) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.InAddr[:], 4)
-       buf.EncodeUint16(m.InPort)
-       buf.EncodeBytes(m.ExtAddr[:], 4)
-       buf.EncodeUint16(m.ExtPort)
-       return buf.Bytes(), nil
-}
-func (m *NatDetCloseSessionIn) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.InAddr[:], buf.DecodeBytes(4))
-       m.InPort = buf.DecodeUint16()
-       copy(m.ExtAddr[:], buf.DecodeBytes(4))
-       m.ExtPort = buf.DecodeUint16()
-       return nil
-}
-
-// NatDetCloseSessionInReply defines message 'nat_det_close_session_in_reply'.
-type NatDetCloseSessionInReply struct {
-       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
-}
-
-func (m *NatDetCloseSessionInReply) Reset()               { *m = NatDetCloseSessionInReply{} }
-func (*NatDetCloseSessionInReply) GetMessageName() string { return "nat_det_close_session_in_reply" }
-func (*NatDetCloseSessionInReply) GetCrcString() string   { return "e8d4e804" }
-func (*NatDetCloseSessionInReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *NatDetCloseSessionInReply) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4 // m.Retval
-       return size
-}
-func (m *NatDetCloseSessionInReply) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       return buf.Bytes(), nil
-}
-func (m *NatDetCloseSessionInReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       return nil
-}
-
-// NatDetCloseSessionOut defines message 'nat_det_close_session_out'.
-type NatDetCloseSessionOut struct {
-       OutAddr ip_types.IP4Address `binapi:"ip4_address,name=out_addr" json:"out_addr,omitempty"`
-       OutPort uint16              `binapi:"u16,name=out_port" json:"out_port,omitempty"`
-       ExtAddr ip_types.IP4Address `binapi:"ip4_address,name=ext_addr" json:"ext_addr,omitempty"`
-       ExtPort uint16              `binapi:"u16,name=ext_port" json:"ext_port,omitempty"`
-}
-
-func (m *NatDetCloseSessionOut) Reset()               { *m = NatDetCloseSessionOut{} }
-func (*NatDetCloseSessionOut) GetMessageName() string { return "nat_det_close_session_out" }
-func (*NatDetCloseSessionOut) GetCrcString() string   { return "c1b6cbfb" }
-func (*NatDetCloseSessionOut) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *NatDetCloseSessionOut) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 4 // m.OutAddr
-       size += 2     // m.OutPort
-       size += 1 * 4 // m.ExtAddr
-       size += 2     // m.ExtPort
-       return size
-}
-func (m *NatDetCloseSessionOut) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.OutAddr[:], 4)
-       buf.EncodeUint16(m.OutPort)
-       buf.EncodeBytes(m.ExtAddr[:], 4)
-       buf.EncodeUint16(m.ExtPort)
-       return buf.Bytes(), nil
-}
-func (m *NatDetCloseSessionOut) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.OutAddr[:], buf.DecodeBytes(4))
-       m.OutPort = buf.DecodeUint16()
-       copy(m.ExtAddr[:], buf.DecodeBytes(4))
-       m.ExtPort = buf.DecodeUint16()
-       return nil
-}
-
-// NatDetCloseSessionOutReply defines message 'nat_det_close_session_out_reply'.
-type NatDetCloseSessionOutReply struct {
-       Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
-}
-
-func (m *NatDetCloseSessionOutReply) Reset()               { *m = NatDetCloseSessionOutReply{} }
-func (*NatDetCloseSessionOutReply) GetMessageName() string { return "nat_det_close_session_out_reply" }
-func (*NatDetCloseSessionOutReply) GetCrcString() string   { return "e8d4e804" }
-func (*NatDetCloseSessionOutReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
-}
-
-func (m *NatDetCloseSessionOutReply) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 4 // m.Retval
-       return size
-}
-func (m *NatDetCloseSessionOutReply) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       return buf.Bytes(), nil
-}
-func (m *NatDetCloseSessionOutReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       return nil
-}
-
-// NatDetForward defines message 'nat_det_forward'.
-type NatDetForward struct {
-       InAddr ip_types.IP4Address `binapi:"ip4_address,name=in_addr" json:"in_addr,omitempty"`
-}
-
-func (m *NatDetForward) Reset()               { *m = NatDetForward{} }
-func (*NatDetForward) GetMessageName() string { return "nat_det_forward" }
-func (*NatDetForward) GetCrcString() string   { return "7f8a89cd" }
-func (*NatDetForward) GetMessageType() api.MessageType {
-       return api.RequestMessage
-}
-
-func (m *NatDetForward) Size() (size int) {
-       if m == nil {
-               return 0
-       }
-       size += 1 * 4 // m.InAddr
-       return size
-}
-func (m *NatDetForward) Marshal(b []byte) ([]byte, error) {
-       if b == nil {
-               b = make([]byte, m.Size())
-       }
-       buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.InAddr[:], 4)
-       return buf.Bytes(), nil
-}
-func (m *NatDetForward) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       copy(m.InAddr[:], buf.DecodeBytes(4))
-       return nil
-}
-
-// NatDetForwardReply defines message 'nat_det_forward_reply'.
-type NatDetForwardReply struct {
-       Retval    int32               `binapi:"i32,name=retval" json:"retval,omitempty"`
-       OutPortLo uint16              `binapi:"u16,name=out_port_lo" json:"out_port_lo,omitempty"`
-       OutPortHi uint16              `binapi:"u16,name=out_port_hi" json:"out_port_hi,omitempty"`
-       OutAddr   ip_types.IP4Address `binapi:"ip4_address,name=out_addr" json:"out_addr,omitempty"`
-}
-
-func (m *NatDetForwardReply) Reset()               { *m = NatDetForwardReply{} }
-func (*NatDetForwardReply) GetMessageName() string { return "nat_det_forward_reply" }
-func (*NatDetForwardReply) GetCrcString() string   { return "a8ccbdc0" }
-func (*NatDetForwardReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (*Nat44StaticMappingDump) GetCrcString() string   { return "51077d14" }
+func (*Nat44StaticMappingDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-func (m *NatDetForwardReply) Size() (size int) {
+func (m *Nat44StaticMappingDump) Size() (size int) {
        if m == nil {
                return 0
        }
-       size += 4     // m.Retval
-       size += 2     // m.OutPortLo
-       size += 2     // m.OutPortHi
-       size += 1 * 4 // m.OutAddr
        return size
 }
-func (m *NatDetForwardReply) Marshal(b []byte) ([]byte, error) {
+func (m *Nat44StaticMappingDump) Marshal(b []byte) ([]byte, error) {
        if b == nil {
                b = make([]byte, m.Size())
        }
        buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       buf.EncodeUint16(m.OutPortLo)
-       buf.EncodeUint16(m.OutPortHi)
-       buf.EncodeBytes(m.OutAddr[:], 4)
        return buf.Bytes(), nil
 }
-func (m *NatDetForwardReply) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       m.OutPortLo = buf.DecodeUint16()
-       m.OutPortHi = buf.DecodeUint16()
-       copy(m.OutAddr[:], buf.DecodeBytes(4))
+func (m *Nat44StaticMappingDump) Unmarshal(b []byte) error {
        return nil
 }
 
-// NatDetMapDetails defines message 'nat_det_map_details'.
-type NatDetMapDetails struct {
-       InAddr       ip_types.IP4Address `binapi:"ip4_address,name=in_addr" json:"in_addr,omitempty"`
-       InPlen       uint8               `binapi:"u8,name=in_plen" json:"in_plen,omitempty"`
-       OutAddr      ip_types.IP4Address `binapi:"ip4_address,name=out_addr" json:"out_addr,omitempty"`
-       OutPlen      uint8               `binapi:"u8,name=out_plen" json:"out_plen,omitempty"`
-       SharingRatio uint32              `binapi:"u32,name=sharing_ratio" json:"sharing_ratio,omitempty"`
-       PortsPerHost uint16              `binapi:"u16,name=ports_per_host" json:"ports_per_host,omitempty"`
-       SesNum       uint32              `binapi:"u32,name=ses_num" json:"ses_num,omitempty"`
+// Nat44UserDetails defines message 'nat44_user_details'.
+type Nat44UserDetails struct {
+       VrfID           uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
+       IPAddress       ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
+       Nsessions       uint32              `binapi:"u32,name=nsessions" json:"nsessions,omitempty"`
+       Nstaticsessions uint32              `binapi:"u32,name=nstaticsessions" json:"nstaticsessions,omitempty"`
 }
 
-func (m *NatDetMapDetails) Reset()               { *m = NatDetMapDetails{} }
-func (*NatDetMapDetails) GetMessageName() string { return "nat_det_map_details" }
-func (*NatDetMapDetails) GetCrcString() string   { return "88000ee1" }
-func (*NatDetMapDetails) GetMessageType() api.MessageType {
+func (m *Nat44UserDetails) Reset()               { *m = Nat44UserDetails{} }
+func (*Nat44UserDetails) GetMessageName() string { return "nat44_user_details" }
+func (*Nat44UserDetails) GetCrcString() string   { return "355896c2" }
+func (*Nat44UserDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-func (m *NatDetMapDetails) Size() (size int) {
+func (m *Nat44UserDetails) Size() (size int) {
        if m == nil {
                return 0
        }
-       size += 1 * 4 // m.InAddr
-       size += 1     // m.InPlen
-       size += 1 * 4 // m.OutAddr
-       size += 1     // m.OutPlen
-       size += 4     // m.SharingRatio
-       size += 2     // m.PortsPerHost
-       size += 4     // m.SesNum
+       size += 4     // m.VrfID
+       size += 1 * 4 // m.IPAddress
+       size += 4     // m.Nsessions
+       size += 4     // m.Nstaticsessions
        return size
 }
-func (m *NatDetMapDetails) Marshal(b []byte) ([]byte, error) {
+func (m *Nat44UserDetails) Marshal(b []byte) ([]byte, error) {
        if b == nil {
                b = make([]byte, m.Size())
        }
        buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.InAddr[:], 4)
-       buf.EncodeUint8(m.InPlen)
-       buf.EncodeBytes(m.OutAddr[:], 4)
-       buf.EncodeUint8(m.OutPlen)
-       buf.EncodeUint32(m.SharingRatio)
-       buf.EncodeUint16(m.PortsPerHost)
-       buf.EncodeUint32(m.SesNum)
+       buf.EncodeUint32(m.VrfID)
+       buf.EncodeBytes(m.IPAddress[:], 4)
+       buf.EncodeUint32(m.Nsessions)
+       buf.EncodeUint32(m.Nstaticsessions)
        return buf.Bytes(), nil
 }
-func (m *NatDetMapDetails) Unmarshal(b []byte) error {
+func (m *Nat44UserDetails) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
-       copy(m.InAddr[:], buf.DecodeBytes(4))
-       m.InPlen = buf.DecodeUint8()
-       copy(m.OutAddr[:], buf.DecodeBytes(4))
-       m.OutPlen = buf.DecodeUint8()
-       m.SharingRatio = buf.DecodeUint32()
-       m.PortsPerHost = buf.DecodeUint16()
-       m.SesNum = buf.DecodeUint32()
+       m.VrfID = buf.DecodeUint32()
+       copy(m.IPAddress[:], buf.DecodeBytes(4))
+       m.Nsessions = buf.DecodeUint32()
+       m.Nstaticsessions = buf.DecodeUint32()
        return nil
 }
 
-// NatDetMapDump defines message 'nat_det_map_dump'.
-type NatDetMapDump struct{}
+// Nat44UserDump defines message 'nat44_user_dump'.
+type Nat44UserDump struct{}
 
-func (m *NatDetMapDump) Reset()               { *m = NatDetMapDump{} }
-func (*NatDetMapDump) GetMessageName() string { return "nat_det_map_dump" }
-func (*NatDetMapDump) GetCrcString() string   { return "51077d14" }
-func (*NatDetMapDump) GetMessageType() api.MessageType {
+func (m *Nat44UserDump) Reset()               { *m = Nat44UserDump{} }
+func (*Nat44UserDump) GetMessageName() string { return "nat44_user_dump" }
+func (*Nat44UserDump) GetCrcString() string   { return "51077d14" }
+func (*Nat44UserDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-func (m *NatDetMapDump) Size() (size int) {
+func (m *Nat44UserDump) Size() (size int) {
        if m == nil {
                return 0
        }
        return size
 }
-func (m *NatDetMapDump) Marshal(b []byte) ([]byte, error) {
+func (m *Nat44UserDump) Marshal(b []byte) ([]byte, error) {
        if b == nil {
                b = make([]byte, m.Size())
        }
        buf := codec.NewBuffer(b)
        return buf.Bytes(), nil
 }
-func (m *NatDetMapDump) Unmarshal(b []byte) error {
+func (m *Nat44UserDump) Unmarshal(b []byte) error {
        return nil
 }
 
-// NatDetReverse defines message 'nat_det_reverse'.
-type NatDetReverse struct {
-       OutPort uint16              `binapi:"u16,name=out_port" json:"out_port,omitempty"`
-       OutAddr ip_types.IP4Address `binapi:"ip4_address,name=out_addr" json:"out_addr,omitempty"`
+// Nat44UserSessionDetails defines message 'nat44_user_session_details'.
+type Nat44UserSessionDetails struct {
+       OutsideIPAddress  ip_types.IP4Address      `binapi:"ip4_address,name=outside_ip_address" json:"outside_ip_address,omitempty"`
+       OutsidePort       uint16                   `binapi:"u16,name=outside_port" json:"outside_port,omitempty"`
+       InsideIPAddress   ip_types.IP4Address      `binapi:"ip4_address,name=inside_ip_address" json:"inside_ip_address,omitempty"`
+       InsidePort        uint16                   `binapi:"u16,name=inside_port" json:"inside_port,omitempty"`
+       Protocol          uint16                   `binapi:"u16,name=protocol" json:"protocol,omitempty"`
+       Flags             nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"`
+       LastHeard         uint64                   `binapi:"u64,name=last_heard" json:"last_heard,omitempty"`
+       TotalBytes        uint64                   `binapi:"u64,name=total_bytes" json:"total_bytes,omitempty"`
+       TotalPkts         uint32                   `binapi:"u32,name=total_pkts" json:"total_pkts,omitempty"`
+       ExtHostAddress    ip_types.IP4Address      `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"`
+       ExtHostPort       uint16                   `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"`
+       ExtHostNatAddress ip_types.IP4Address      `binapi:"ip4_address,name=ext_host_nat_address" json:"ext_host_nat_address,omitempty"`
+       ExtHostNatPort    uint16                   `binapi:"u16,name=ext_host_nat_port" json:"ext_host_nat_port,omitempty"`
 }
 
-func (m *NatDetReverse) Reset()               { *m = NatDetReverse{} }
-func (*NatDetReverse) GetMessageName() string { return "nat_det_reverse" }
-func (*NatDetReverse) GetCrcString() string   { return "a7573fe1" }
-func (*NatDetReverse) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (m *Nat44UserSessionDetails) Reset()               { *m = Nat44UserSessionDetails{} }
+func (*Nat44UserSessionDetails) GetMessageName() string { return "nat44_user_session_details" }
+func (*Nat44UserSessionDetails) GetCrcString() string   { return "2cf6e16d" }
+func (*Nat44UserSessionDetails) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-func (m *NatDetReverse) Size() (size int) {
+func (m *Nat44UserSessionDetails) Size() (size int) {
        if m == nil {
                return 0
        }
-       size += 2     // m.OutPort
-       size += 1 * 4 // m.OutAddr
+       size += 1 * 4 // m.OutsideIPAddress
+       size += 2     // m.OutsidePort
+       size += 1 * 4 // m.InsideIPAddress
+       size += 2     // m.InsidePort
+       size += 2     // m.Protocol
+       size += 1     // m.Flags
+       size += 8     // m.LastHeard
+       size += 8     // m.TotalBytes
+       size += 4     // m.TotalPkts
+       size += 1 * 4 // m.ExtHostAddress
+       size += 2     // m.ExtHostPort
+       size += 1 * 4 // m.ExtHostNatAddress
+       size += 2     // m.ExtHostNatPort
        return size
 }
-func (m *NatDetReverse) Marshal(b []byte) ([]byte, error) {
+func (m *Nat44UserSessionDetails) Marshal(b []byte) ([]byte, error) {
        if b == nil {
                b = make([]byte, m.Size())
        }
        buf := codec.NewBuffer(b)
-       buf.EncodeUint16(m.OutPort)
-       buf.EncodeBytes(m.OutAddr[:], 4)
+       buf.EncodeBytes(m.OutsideIPAddress[:], 4)
+       buf.EncodeUint16(m.OutsidePort)
+       buf.EncodeBytes(m.InsideIPAddress[:], 4)
+       buf.EncodeUint16(m.InsidePort)
+       buf.EncodeUint16(m.Protocol)
+       buf.EncodeUint8(uint8(m.Flags))
+       buf.EncodeUint64(m.LastHeard)
+       buf.EncodeUint64(m.TotalBytes)
+       buf.EncodeUint32(m.TotalPkts)
+       buf.EncodeBytes(m.ExtHostAddress[:], 4)
+       buf.EncodeUint16(m.ExtHostPort)
+       buf.EncodeBytes(m.ExtHostNatAddress[:], 4)
+       buf.EncodeUint16(m.ExtHostNatPort)
        return buf.Bytes(), nil
 }
-func (m *NatDetReverse) Unmarshal(b []byte) error {
+func (m *Nat44UserSessionDetails) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
-       m.OutPort = buf.DecodeUint16()
-       copy(m.OutAddr[:], buf.DecodeBytes(4))
+       copy(m.OutsideIPAddress[:], buf.DecodeBytes(4))
+       m.OutsidePort = buf.DecodeUint16()
+       copy(m.InsideIPAddress[:], buf.DecodeBytes(4))
+       m.InsidePort = buf.DecodeUint16()
+       m.Protocol = buf.DecodeUint16()
+       m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8())
+       m.LastHeard = buf.DecodeUint64()
+       m.TotalBytes = buf.DecodeUint64()
+       m.TotalPkts = buf.DecodeUint32()
+       copy(m.ExtHostAddress[:], buf.DecodeBytes(4))
+       m.ExtHostPort = buf.DecodeUint16()
+       copy(m.ExtHostNatAddress[:], buf.DecodeBytes(4))
+       m.ExtHostNatPort = buf.DecodeUint16()
        return nil
 }
 
-// NatDetReverseReply defines message 'nat_det_reverse_reply'.
-type NatDetReverseReply struct {
-       Retval int32               `binapi:"i32,name=retval" json:"retval,omitempty"`
-       InAddr ip_types.IP4Address `binapi:"ip4_address,name=in_addr" json:"in_addr,omitempty"`
+// Nat44UserSessionDump defines message 'nat44_user_session_dump'.
+type Nat44UserSessionDump struct {
+       IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"`
+       VrfID     uint32              `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
 }
 
-func (m *NatDetReverseReply) Reset()               { *m = NatDetReverseReply{} }
-func (*NatDetReverseReply) GetMessageName() string { return "nat_det_reverse_reply" }
-func (*NatDetReverseReply) GetCrcString() string   { return "34066d48" }
-func (*NatDetReverseReply) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (m *Nat44UserSessionDump) Reset()               { *m = Nat44UserSessionDump{} }
+func (*Nat44UserSessionDump) GetMessageName() string { return "nat44_user_session_dump" }
+func (*Nat44UserSessionDump) GetCrcString() string   { return "e1899c98" }
+func (*Nat44UserSessionDump) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-func (m *NatDetReverseReply) Size() (size int) {
+func (m *Nat44UserSessionDump) Size() (size int) {
        if m == nil {
                return 0
        }
-       size += 4     // m.Retval
-       size += 1 * 4 // m.InAddr
+       size += 1 * 4 // m.IPAddress
+       size += 4     // m.VrfID
        return size
 }
-func (m *NatDetReverseReply) Marshal(b []byte) ([]byte, error) {
+func (m *Nat44UserSessionDump) Marshal(b []byte) ([]byte, error) {
        if b == nil {
                b = make([]byte, m.Size())
        }
        buf := codec.NewBuffer(b)
-       buf.EncodeInt32(m.Retval)
-       buf.EncodeBytes(m.InAddr[:], 4)
+       buf.EncodeBytes(m.IPAddress[:], 4)
+       buf.EncodeUint32(m.VrfID)
        return buf.Bytes(), nil
 }
-func (m *NatDetReverseReply) Unmarshal(b []byte) error {
+func (m *Nat44UserSessionDump) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
-       m.Retval = buf.DecodeInt32()
-       copy(m.InAddr[:], buf.DecodeBytes(4))
+       copy(m.IPAddress[:], buf.DecodeBytes(4))
+       m.VrfID = buf.DecodeUint32()
        return nil
 }
 
-// NatDetSessionDetails defines message 'nat_det_session_details'.
-type NatDetSessionDetails struct {
-       InPort  uint16              `binapi:"u16,name=in_port" json:"in_port,omitempty"`
-       ExtAddr ip_types.IP4Address `binapi:"ip4_address,name=ext_addr" json:"ext_addr,omitempty"`
-       ExtPort uint16              `binapi:"u16,name=ext_port" json:"ext_port,omitempty"`
-       OutPort uint16              `binapi:"u16,name=out_port" json:"out_port,omitempty"`
-       State   uint8               `binapi:"u8,name=state" json:"state,omitempty"`
-       Expire  uint32              `binapi:"u32,name=expire" json:"expire,omitempty"`
-}
+// NatControlPing defines message 'nat_control_ping'.
+// Deprecated: the message will be removed in the future versions
+type NatControlPing struct{}
 
-func (m *NatDetSessionDetails) Reset()               { *m = NatDetSessionDetails{} }
-func (*NatDetSessionDetails) GetMessageName() string { return "nat_det_session_details" }
-func (*NatDetSessionDetails) GetCrcString() string   { return "27f3c171" }
-func (*NatDetSessionDetails) GetMessageType() api.MessageType {
-       return api.ReplyMessage
+func (m *NatControlPing) Reset()               { *m = NatControlPing{} }
+func (*NatControlPing) GetMessageName() string { return "nat_control_ping" }
+func (*NatControlPing) GetCrcString() string   { return "51077d14" }
+func (*NatControlPing) GetMessageType() api.MessageType {
+       return api.RequestMessage
 }
 
-func (m *NatDetSessionDetails) Size() (size int) {
+func (m *NatControlPing) Size() (size int) {
        if m == nil {
                return 0
        }
-       size += 2     // m.InPort
-       size += 1 * 4 // m.ExtAddr
-       size += 2     // m.ExtPort
-       size += 2     // m.OutPort
-       size += 1     // m.State
-       size += 4     // m.Expire
        return size
 }
-func (m *NatDetSessionDetails) Marshal(b []byte) ([]byte, error) {
+func (m *NatControlPing) Marshal(b []byte) ([]byte, error) {
        if b == nil {
                b = make([]byte, m.Size())
        }
        buf := codec.NewBuffer(b)
-       buf.EncodeUint16(m.InPort)
-       buf.EncodeBytes(m.ExtAddr[:], 4)
-       buf.EncodeUint16(m.ExtPort)
-       buf.EncodeUint16(m.OutPort)
-       buf.EncodeUint8(m.State)
-       buf.EncodeUint32(m.Expire)
        return buf.Bytes(), nil
 }
-func (m *NatDetSessionDetails) Unmarshal(b []byte) error {
-       buf := codec.NewBuffer(b)
-       m.InPort = buf.DecodeUint16()
-       copy(m.ExtAddr[:], buf.DecodeBytes(4))
-       m.ExtPort = buf.DecodeUint16()
-       m.OutPort = buf.DecodeUint16()
-       m.State = buf.DecodeUint8()
-       m.Expire = buf.DecodeUint32()
+func (m *NatControlPing) Unmarshal(b []byte) error {
        return nil
 }
 
-// NatDetSessionDump defines message 'nat_det_session_dump'.
-type NatDetSessionDump struct {
-       UserAddr ip_types.IP4Address `binapi:"ip4_address,name=user_addr" json:"user_addr,omitempty"`
+// NatControlPingReply defines message 'nat_control_ping_reply'.
+// Deprecated: the message will be removed in the future versions
+type NatControlPingReply struct {
+       Retval      int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
+       ClientIndex uint32 `binapi:"u32,name=client_index" json:"client_index,omitempty"`
+       VpePID      uint32 `binapi:"u32,name=vpe_pid" json:"vpe_pid,omitempty"`
 }
 
-func (m *NatDetSessionDump) Reset()               { *m = NatDetSessionDump{} }
-func (*NatDetSessionDump) GetMessageName() string { return "nat_det_session_dump" }
-func (*NatDetSessionDump) GetCrcString() string   { return "e45a3af7" }
-func (*NatDetSessionDump) GetMessageType() api.MessageType {
-       return api.RequestMessage
+func (m *NatControlPingReply) Reset()               { *m = NatControlPingReply{} }
+func (*NatControlPingReply) GetMessageName() string { return "nat_control_ping_reply" }
+func (*NatControlPingReply) GetCrcString() string   { return "f6b0b8ca" }
+func (*NatControlPingReply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
 }
 
-func (m *NatDetSessionDump) Size() (size int) {
+func (m *NatControlPingReply) Size() (size int) {
        if m == nil {
                return 0
        }
-       size += 1 * 4 // m.UserAddr
+       size += 4 // m.Retval
+       size += 4 // m.ClientIndex
+       size += 4 // m.VpePID
        return size
 }
-func (m *NatDetSessionDump) Marshal(b []byte) ([]byte, error) {
+func (m *NatControlPingReply) Marshal(b []byte) ([]byte, error) {
        if b == nil {
                b = make([]byte, m.Size())
        }
        buf := codec.NewBuffer(b)
-       buf.EncodeBytes(m.UserAddr[:], 4)
+       buf.EncodeInt32(m.Retval)
+       buf.EncodeUint32(m.ClientIndex)
+       buf.EncodeUint32(m.VpePID)
        return buf.Bytes(), nil
 }
-func (m *NatDetSessionDump) Unmarshal(b []byte) error {
+func (m *NatControlPingReply) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
-       copy(m.UserAddr[:], buf.DecodeBytes(4))
+       m.Retval = buf.DecodeInt32()
+       m.ClientIndex = buf.DecodeUint32()
+       m.VpePID = buf.DecodeUint32()
        return nil
 }
 
@@ -3906,6 +2789,7 @@ func (m *NatGetMssClampingReply) Unmarshal(b []byte) error {
 }
 
 // NatGetTimeouts defines message 'nat_get_timeouts'.
+// Deprecated: the message will be removed in the future versions
 type NatGetTimeouts struct{}
 
 func (m *NatGetTimeouts) Reset()               { *m = NatGetTimeouts{} }
@@ -3933,6 +2817,7 @@ func (m *NatGetTimeouts) Unmarshal(b []byte) error {
 }
 
 // NatGetTimeoutsReply defines message 'nat_get_timeouts_reply'.
+// Deprecated: the message will be removed in the future versions
 type NatGetTimeoutsReply struct {
        Retval         int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
        UDP            uint32 `binapi:"u32,name=udp" json:"udp,omitempty"`
@@ -4441,6 +3326,7 @@ func (m *NatHaSetListenerReply) Unmarshal(b []byte) error {
 }
 
 // NatIpfixEnableDisable defines message 'nat_ipfix_enable_disable'.
+// Deprecated: the message will be removed in the future versions
 type NatIpfixEnableDisable struct {
        DomainID uint32 `binapi:"u32,name=domain_id" json:"domain_id,omitempty"`
        SrcPort  uint16 `binapi:"u16,name=src_port" json:"src_port,omitempty"`
@@ -4482,6 +3368,7 @@ func (m *NatIpfixEnableDisable) Unmarshal(b []byte) error {
 }
 
 // NatIpfixEnableDisableReply defines message 'nat_ipfix_enable_disable_reply'.
+// Deprecated: the message will be removed in the future versions
 type NatIpfixEnableDisableReply struct {
        Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
 }
@@ -4603,8 +3490,9 @@ func (m *NatSetAddrAndPortAllocAlgReply) Unmarshal(b []byte) error {
 }
 
 // NatSetLogLevel defines message 'nat_set_log_level'.
+// Deprecated: the message will be removed in the future versions
 type NatSetLogLevel struct {
-       LogLevel NatLogLevel `binapi:"nat_log_level,name=log_level" json:"log_level,omitempty"`
+       LogLevel nat_types.NatLogLevel `binapi:"nat_log_level,name=log_level" json:"log_level,omitempty"`
 }
 
 func (m *NatSetLogLevel) Reset()               { *m = NatSetLogLevel{} }
@@ -4631,11 +3519,12 @@ func (m *NatSetLogLevel) Marshal(b []byte) ([]byte, error) {
 }
 func (m *NatSetLogLevel) Unmarshal(b []byte) error {
        buf := codec.NewBuffer(b)
-       m.LogLevel = NatLogLevel(buf.DecodeUint8())
+       m.LogLevel = nat_types.NatLogLevel(buf.DecodeUint8())
        return nil
 }
 
 // NatSetLogLevelReply defines message 'nat_set_log_level_reply'.
+// Deprecated: the message will be removed in the future versions
 type NatSetLogLevelReply struct {
        Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
 }
@@ -4739,6 +3628,7 @@ func (m *NatSetMssClampingReply) Unmarshal(b []byte) error {
 }
 
 // NatSetTimeouts defines message 'nat_set_timeouts'.
+// Deprecated: the message will be removed in the future versions
 type NatSetTimeouts struct {
        UDP            uint32 `binapi:"u32,name=udp" json:"udp,omitempty"`
        TCPEstablished uint32 `binapi:"u32,name=tcp_established" json:"tcp_established,omitempty"`
@@ -4784,6 +3674,7 @@ func (m *NatSetTimeouts) Unmarshal(b []byte) error {
 }
 
 // NatSetTimeoutsReply defines message 'nat_set_timeouts_reply'.
+// Deprecated: the message will be removed in the future versions
 type NatSetTimeoutsReply struct {
        Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
 }
@@ -4883,6 +3774,7 @@ func (m *NatSetWorkersReply) Unmarshal(b []byte) error {
 }
 
 // NatShowConfig defines message 'nat_show_config'.
+// Deprecated: the message will be removed in the future versions
 type NatShowConfig struct{}
 
 func (m *NatShowConfig) Reset()               { *m = NatShowConfig{} }
@@ -4909,7 +3801,146 @@ func (m *NatShowConfig) Unmarshal(b []byte) error {
        return nil
 }
 
+// NatShowConfig2 defines message 'nat_show_config_2'.
+// Deprecated: the message will be removed in the future versions
+type NatShowConfig2 struct{}
+
+func (m *NatShowConfig2) Reset()               { *m = NatShowConfig2{} }
+func (*NatShowConfig2) GetMessageName() string { return "nat_show_config_2" }
+func (*NatShowConfig2) GetCrcString() string   { return "51077d14" }
+func (*NatShowConfig2) GetMessageType() api.MessageType {
+       return api.RequestMessage
+}
+
+func (m *NatShowConfig2) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       return size
+}
+func (m *NatShowConfig2) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       return buf.Bytes(), nil
+}
+func (m *NatShowConfig2) Unmarshal(b []byte) error {
+       return nil
+}
+
+// NatShowConfig2Reply defines message 'nat_show_config_2_reply'.
+// Deprecated: the message will be removed in the future versions
+type NatShowConfig2Reply struct {
+       Retval                          int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
+       StaticMappingOnly               bool   `binapi:"bool,name=static_mapping_only" json:"static_mapping_only,omitempty"`
+       StaticMappingConnectionTracking bool   `binapi:"bool,name=static_mapping_connection_tracking" json:"static_mapping_connection_tracking,omitempty"`
+       Deterministic                   bool   `binapi:"bool,name=deterministic" json:"deterministic,omitempty"`
+       EndpointDependent               bool   `binapi:"bool,name=endpoint_dependent" json:"endpoint_dependent,omitempty"`
+       Out2inDpo                       bool   `binapi:"bool,name=out2in_dpo" json:"out2in_dpo,omitempty"`
+       DsliteCe                        bool   `binapi:"bool,name=dslite_ce" json:"dslite_ce,omitempty"`
+       TranslationBuckets              uint32 `binapi:"u32,name=translation_buckets" json:"translation_buckets,omitempty"`
+       TranslationMemorySize           uint64 `binapi:"u64,name=translation_memory_size" json:"translation_memory_size,omitempty"`
+       UserBuckets                     uint32 `binapi:"u32,name=user_buckets" json:"user_buckets,omitempty"`
+       UserMemorySize                  uint64 `binapi:"u64,name=user_memory_size" json:"user_memory_size,omitempty"`
+       MaxTranslationsPerUser          uint32 `binapi:"u32,name=max_translations_per_user" json:"max_translations_per_user,omitempty"`
+       OutsideVrfID                    uint32 `binapi:"u32,name=outside_vrf_id" json:"outside_vrf_id,omitempty"`
+       InsideVrfID                     uint32 `binapi:"u32,name=inside_vrf_id" json:"inside_vrf_id,omitempty"`
+       Nat64BibBuckets                 uint32 `binapi:"u32,name=nat64_bib_buckets" json:"nat64_bib_buckets,omitempty"`
+       Nat64BibMemorySize              uint64 `binapi:"u64,name=nat64_bib_memory_size" json:"nat64_bib_memory_size,omitempty"`
+       Nat64StBuckets                  uint32 `binapi:"u32,name=nat64_st_buckets" json:"nat64_st_buckets,omitempty"`
+       Nat64StMemorySize               uint64 `binapi:"u64,name=nat64_st_memory_size" json:"nat64_st_memory_size,omitempty"`
+       MaxTranslationsPerThread        uint32 `binapi:"u32,name=max_translations_per_thread" json:"max_translations_per_thread,omitempty"`
+       MaxUsersPerThread               uint32 `binapi:"u32,name=max_users_per_thread" json:"max_users_per_thread,omitempty"`
+}
+
+func (m *NatShowConfig2Reply) Reset()               { *m = NatShowConfig2Reply{} }
+func (*NatShowConfig2Reply) GetMessageName() string { return "nat_show_config_2_reply" }
+func (*NatShowConfig2Reply) GetCrcString() string   { return "0404a5b4" }
+func (*NatShowConfig2Reply) GetMessageType() api.MessageType {
+       return api.ReplyMessage
+}
+
+func (m *NatShowConfig2Reply) Size() (size int) {
+       if m == nil {
+               return 0
+       }
+       size += 4 // m.Retval
+       size += 1 // m.StaticMappingOnly
+       size += 1 // m.StaticMappingConnectionTracking
+       size += 1 // m.Deterministic
+       size += 1 // m.EndpointDependent
+       size += 1 // m.Out2inDpo
+       size += 1 // m.DsliteCe
+       size += 4 // m.TranslationBuckets
+       size += 8 // m.TranslationMemorySize
+       size += 4 // m.UserBuckets
+       size += 8 // m.UserMemorySize
+       size += 4 // m.MaxTranslationsPerUser
+       size += 4 // m.OutsideVrfID
+       size += 4 // m.InsideVrfID
+       size += 4 // m.Nat64BibBuckets
+       size += 8 // m.Nat64BibMemorySize
+       size += 4 // m.Nat64StBuckets
+       size += 8 // m.Nat64StMemorySize
+       size += 4 // m.MaxTranslationsPerThread
+       size += 4 // m.MaxUsersPerThread
+       return size
+}
+func (m *NatShowConfig2Reply) Marshal(b []byte) ([]byte, error) {
+       if b == nil {
+               b = make([]byte, m.Size())
+       }
+       buf := codec.NewBuffer(b)
+       buf.EncodeInt32(m.Retval)
+       buf.EncodeBool(m.StaticMappingOnly)
+       buf.EncodeBool(m.StaticMappingConnectionTracking)
+       buf.EncodeBool(m.Deterministic)
+       buf.EncodeBool(m.EndpointDependent)
+       buf.EncodeBool(m.Out2inDpo)
+       buf.EncodeBool(m.DsliteCe)
+       buf.EncodeUint32(m.TranslationBuckets)
+       buf.EncodeUint64(m.TranslationMemorySize)
+       buf.EncodeUint32(m.UserBuckets)
+       buf.EncodeUint64(m.UserMemorySize)
+       buf.EncodeUint32(m.MaxTranslationsPerUser)
+       buf.EncodeUint32(m.OutsideVrfID)
+       buf.EncodeUint32(m.InsideVrfID)
+       buf.EncodeUint32(m.Nat64BibBuckets)
+       buf.EncodeUint64(m.Nat64BibMemorySize)
+       buf.EncodeUint32(m.Nat64StBuckets)
+       buf.EncodeUint64(m.Nat64StMemorySize)
+       buf.EncodeUint32(m.MaxTranslationsPerThread)
+       buf.EncodeUint32(m.MaxUsersPerThread)
+       return buf.Bytes(), nil
+}
+func (m *NatShowConfig2Reply) Unmarshal(b []byte) error {
+       buf := codec.NewBuffer(b)
+       m.Retval = buf.DecodeInt32()
+       m.StaticMappingOnly = buf.DecodeBool()
+       m.StaticMappingConnectionTracking = buf.DecodeBool()
+       m.Deterministic = buf.DecodeBool()
+       m.EndpointDependent = buf.DecodeBool()
+       m.Out2inDpo = buf.DecodeBool()
+       m.DsliteCe = buf.DecodeBool()
+       m.TranslationBuckets = buf.DecodeUint32()
+       m.TranslationMemorySize = buf.DecodeUint64()
+       m.UserBuckets = buf.DecodeUint32()
+       m.UserMemorySize = buf.DecodeUint64()
+       m.MaxTranslationsPerUser = buf.DecodeUint32()
+       m.OutsideVrfID = buf.DecodeUint32()
+       m.InsideVrfID = buf.DecodeUint32()
+       m.Nat64BibBuckets = buf.DecodeUint32()
+       m.Nat64BibMemorySize = buf.DecodeUint64()
+       m.Nat64StBuckets = buf.DecodeUint32()
+       m.Nat64StMemorySize = buf.DecodeUint64()
+       m.MaxTranslationsPerThread = buf.DecodeUint32()
+       m.MaxUsersPerThread = buf.DecodeUint32()
+       return nil
+}
+
 // NatShowConfigReply defines message 'nat_show_config_reply'.
+// Deprecated: the message will be removed in the future versions
 type NatShowConfigReply struct {
        Retval                          int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
        StaticMappingOnly               bool   `binapi:"bool,name=static_mapping_only" json:"static_mapping_only,omitempty"`
@@ -5078,98 +4109,68 @@ func (m *NatWorkerDump) Unmarshal(b []byte) error {
        return nil
 }
 
-func init() { file_nat_binapi_init() }
-func file_nat_binapi_init() {
-       api.RegisterMessage((*Nat44AddDelAddressRange)(nil), "nat44_add_del_address_range_d4c7568c")
+func init() { file_nat44_ed_binapi_init() }
+func file_nat44_ed_binapi_init() {
+       api.RegisterMessage((*Nat44AddDelAddressRange)(nil), "nat44_add_del_address_range_6f2b8055")
        api.RegisterMessage((*Nat44AddDelAddressRangeReply)(nil), "nat44_add_del_address_range_reply_e8d4e804")
-       api.RegisterMessage((*Nat44AddDelIdentityMapping)(nil), "nat44_add_del_identity_mapping_8e12743f")
+       api.RegisterMessage((*Nat44AddDelIdentityMapping)(nil), "nat44_add_del_identity_mapping_02faaa22")
        api.RegisterMessage((*Nat44AddDelIdentityMappingReply)(nil), "nat44_add_del_identity_mapping_reply_e8d4e804")
-       api.RegisterMessage((*Nat44AddDelInterfaceAddr)(nil), "nat44_add_del_interface_addr_fc835325")
+       api.RegisterMessage((*Nat44AddDelInterfaceAddr)(nil), "nat44_add_del_interface_addr_4aed50c0")
        api.RegisterMessage((*Nat44AddDelInterfaceAddrReply)(nil), "nat44_add_del_interface_addr_reply_e8d4e804")
-       api.RegisterMessage((*Nat44AddDelLbStaticMapping)(nil), "nat44_add_del_lb_static_mapping_53b24611")
+       api.RegisterMessage((*Nat44AddDelLbStaticMapping)(nil), "nat44_add_del_lb_static_mapping_4f68ee9d")
        api.RegisterMessage((*Nat44AddDelLbStaticMappingReply)(nil), "nat44_add_del_lb_static_mapping_reply_e8d4e804")
-       api.RegisterMessage((*Nat44AddDelStaticMapping)(nil), "nat44_add_del_static_mapping_e165e83b")
+       api.RegisterMessage((*Nat44AddDelStaticMapping)(nil), "nat44_add_del_static_mapping_5ae5f03e")
        api.RegisterMessage((*Nat44AddDelStaticMappingReply)(nil), "nat44_add_del_static_mapping_reply_e8d4e804")
-       api.RegisterMessage((*Nat44AddressDetails)(nil), "nat44_address_details_45410ac4")
+       api.RegisterMessage((*Nat44AddDelStaticMappingV2)(nil), "nat44_add_del_static_mapping_v2_5e205f1a")
+       api.RegisterMessage((*Nat44AddDelStaticMappingV2Reply)(nil), "nat44_add_del_static_mapping_v2_reply_e8d4e804")
+       api.RegisterMessage((*Nat44AddressDetails)(nil), "nat44_address_details_0d1beac1")
        api.RegisterMessage((*Nat44AddressDump)(nil), "nat44_address_dump_51077d14")
-       api.RegisterMessage((*Nat44DelSession)(nil), "nat44_del_session_4c49c387")
+       api.RegisterMessage((*Nat44DelSession)(nil), "nat44_del_session_15a5bf8c")
        api.RegisterMessage((*Nat44DelSessionReply)(nil), "nat44_del_session_reply_e8d4e804")
        api.RegisterMessage((*Nat44DelUser)(nil), "nat44_del_user_99a9f998")
        api.RegisterMessage((*Nat44DelUserReply)(nil), "nat44_del_user_reply_e8d4e804")
+       api.RegisterMessage((*Nat44EdPluginEnableDisable)(nil), "nat44_ed_plugin_enable_disable_be17f8dd")
+       api.RegisterMessage((*Nat44EdPluginEnableDisableReply)(nil), "nat44_ed_plugin_enable_disable_reply_e8d4e804")
+       api.RegisterMessage((*Nat44EdSetFqOptions)(nil), "nat44_ed_set_fq_options_2399bd71")
+       api.RegisterMessage((*Nat44EdSetFqOptionsReply)(nil), "nat44_ed_set_fq_options_reply_e8d4e804")
+       api.RegisterMessage((*Nat44EdShowFqOptions)(nil), "nat44_ed_show_fq_options_51077d14")
+       api.RegisterMessage((*Nat44EdShowFqOptionsReply)(nil), "nat44_ed_show_fq_options_reply_7213b545")
        api.RegisterMessage((*Nat44ForwardingEnableDisable)(nil), "nat44_forwarding_enable_disable_b3e225d2")
        api.RegisterMessage((*Nat44ForwardingEnableDisableReply)(nil), "nat44_forwarding_enable_disable_reply_e8d4e804")
        api.RegisterMessage((*Nat44ForwardingIsEnabled)(nil), "nat44_forwarding_is_enabled_51077d14")
        api.RegisterMessage((*Nat44ForwardingIsEnabledReply)(nil), "nat44_forwarding_is_enabled_reply_46924a06")
-       api.RegisterMessage((*Nat44IdentityMappingDetails)(nil), "nat44_identity_mapping_details_36d21351")
+       api.RegisterMessage((*Nat44IdentityMappingDetails)(nil), "nat44_identity_mapping_details_2a52a030")
        api.RegisterMessage((*Nat44IdentityMappingDump)(nil), "nat44_identity_mapping_dump_51077d14")
        api.RegisterMessage((*Nat44InterfaceAddDelFeature)(nil), "nat44_interface_add_del_feature_f3699b83")
        api.RegisterMessage((*Nat44InterfaceAddDelFeatureReply)(nil), "nat44_interface_add_del_feature_reply_e8d4e804")
        api.RegisterMessage((*Nat44InterfaceAddDelOutputFeature)(nil), "nat44_interface_add_del_output_feature_f3699b83")
        api.RegisterMessage((*Nat44InterfaceAddDelOutputFeatureReply)(nil), "nat44_interface_add_del_output_feature_reply_e8d4e804")
-       api.RegisterMessage((*Nat44InterfaceAddrDetails)(nil), "nat44_interface_addr_details_3e687514")
+       api.RegisterMessage((*Nat44InterfaceAddrDetails)(nil), "nat44_interface_addr_details_e4aca9ca")
        api.RegisterMessage((*Nat44InterfaceAddrDump)(nil), "nat44_interface_addr_dump_51077d14")
        api.RegisterMessage((*Nat44InterfaceDetails)(nil), "nat44_interface_details_5d286289")
        api.RegisterMessage((*Nat44InterfaceDump)(nil), "nat44_interface_dump_51077d14")
        api.RegisterMessage((*Nat44InterfaceOutputFeatureDetails)(nil), "nat44_interface_output_feature_details_5d286289")
        api.RegisterMessage((*Nat44InterfaceOutputFeatureDump)(nil), "nat44_interface_output_feature_dump_51077d14")
-       api.RegisterMessage((*Nat44LbStaticMappingAddDelLocal)(nil), "nat44_lb_static_mapping_add_del_local_2910a151")
+       api.RegisterMessage((*Nat44LbStaticMappingAddDelLocal)(nil), "nat44_lb_static_mapping_add_del_local_7ca47547")
        api.RegisterMessage((*Nat44LbStaticMappingAddDelLocalReply)(nil), "nat44_lb_static_mapping_add_del_local_reply_e8d4e804")
-       api.RegisterMessage((*Nat44LbStaticMappingDetails)(nil), "nat44_lb_static_mapping_details_2267b9e8")
+       api.RegisterMessage((*Nat44LbStaticMappingDetails)(nil), "nat44_lb_static_mapping_details_ed5ce876")
        api.RegisterMessage((*Nat44LbStaticMappingDump)(nil), "nat44_lb_static_mapping_dump_51077d14")
+       api.RegisterMessage((*Nat44PluginEnableDisable)(nil), "nat44_plugin_enable_disable_dea0d501")
+       api.RegisterMessage((*Nat44PluginEnableDisableReply)(nil), "nat44_plugin_enable_disable_reply_e8d4e804")
        api.RegisterMessage((*Nat44SessionCleanup)(nil), "nat44_session_cleanup_51077d14")
        api.RegisterMessage((*Nat44SessionCleanupReply)(nil), "nat44_session_cleanup_reply_e8d4e804")
        api.RegisterMessage((*Nat44SetSessionLimit)(nil), "nat44_set_session_limit_8899bbb1")
        api.RegisterMessage((*Nat44SetSessionLimitReply)(nil), "nat44_set_session_limit_reply_e8d4e804")
-       api.RegisterMessage((*Nat44StaticMappingDetails)(nil), "nat44_static_mapping_details_1a433ef7")
+       api.RegisterMessage((*Nat44ShowRunningConfig)(nil), "nat44_show_running_config_51077d14")
+       api.RegisterMessage((*Nat44ShowRunningConfigReply)(nil), "nat44_show_running_config_reply_93d8e267")
+       api.RegisterMessage((*Nat44StaticMappingDetails)(nil), "nat44_static_mapping_details_06cb40b2")
        api.RegisterMessage((*Nat44StaticMappingDump)(nil), "nat44_static_mapping_dump_51077d14")
        api.RegisterMessage((*Nat44UserDetails)(nil), "nat44_user_details_355896c2")
        api.RegisterMessage((*Nat44UserDump)(nil), "nat44_user_dump_51077d14")
-       api.RegisterMessage((*Nat44UserSessionDetails)(nil), "nat44_user_session_details_1965fd69")
+       api.RegisterMessage((*Nat44UserSessionDetails)(nil), "nat44_user_session_details_2cf6e16d")
        api.RegisterMessage((*Nat44UserSessionDump)(nil), "nat44_user_session_dump_e1899c98")
-       api.RegisterMessage((*Nat64AddDelInterface)(nil), "nat64_add_del_interface_f3699b83")
-       api.RegisterMessage((*Nat64AddDelInterfaceAddr)(nil), "nat64_add_del_interface_addr_47d6e753")
-       api.RegisterMessage((*Nat64AddDelInterfaceAddrReply)(nil), "nat64_add_del_interface_addr_reply_e8d4e804")
-       api.RegisterMessage((*Nat64AddDelInterfaceReply)(nil), "nat64_add_del_interface_reply_e8d4e804")
-       api.RegisterMessage((*Nat64AddDelPoolAddrRange)(nil), "nat64_add_del_pool_addr_range_21234ef3")
-       api.RegisterMessage((*Nat64AddDelPoolAddrRangeReply)(nil), "nat64_add_del_pool_addr_range_reply_e8d4e804")
-       api.RegisterMessage((*Nat64AddDelPrefix)(nil), "nat64_add_del_prefix_727b2f4c")
-       api.RegisterMessage((*Nat64AddDelPrefixReply)(nil), "nat64_add_del_prefix_reply_e8d4e804")
-       api.RegisterMessage((*Nat64AddDelStaticBib)(nil), "nat64_add_del_static_bib_90fae58a")
-       api.RegisterMessage((*Nat64AddDelStaticBibReply)(nil), "nat64_add_del_static_bib_reply_e8d4e804")
-       api.RegisterMessage((*Nat64BibDetails)(nil), "nat64_bib_details_62c8541d")
-       api.RegisterMessage((*Nat64BibDump)(nil), "nat64_bib_dump_cfcb6b75")
-       api.RegisterMessage((*Nat64InterfaceDetails)(nil), "nat64_interface_details_5d286289")
-       api.RegisterMessage((*Nat64InterfaceDump)(nil), "nat64_interface_dump_51077d14")
-       api.RegisterMessage((*Nat64PoolAddrDetails)(nil), "nat64_pool_addr_details_9bb99cdb")
-       api.RegisterMessage((*Nat64PoolAddrDump)(nil), "nat64_pool_addr_dump_51077d14")
-       api.RegisterMessage((*Nat64PrefixDetails)(nil), "nat64_prefix_details_20568de3")
-       api.RegisterMessage((*Nat64PrefixDump)(nil), "nat64_prefix_dump_51077d14")
-       api.RegisterMessage((*Nat64StDetails)(nil), "nat64_st_details_c770d620")
-       api.RegisterMessage((*Nat64StDump)(nil), "nat64_st_dump_cfcb6b75")
-       api.RegisterMessage((*Nat66AddDelInterface)(nil), "nat66_add_del_interface_f3699b83")
-       api.RegisterMessage((*Nat66AddDelInterfaceReply)(nil), "nat66_add_del_interface_reply_e8d4e804")
-       api.RegisterMessage((*Nat66AddDelStaticMapping)(nil), "nat66_add_del_static_mapping_fb64e50b")
-       api.RegisterMessage((*Nat66AddDelStaticMappingReply)(nil), "nat66_add_del_static_mapping_reply_e8d4e804")
-       api.RegisterMessage((*Nat66InterfaceDetails)(nil), "nat66_interface_details_5d286289")
-       api.RegisterMessage((*Nat66InterfaceDump)(nil), "nat66_interface_dump_51077d14")
-       api.RegisterMessage((*Nat66StaticMappingDetails)(nil), "nat66_static_mapping_details_5c568448")
-       api.RegisterMessage((*Nat66StaticMappingDump)(nil), "nat66_static_mapping_dump_51077d14")
        api.RegisterMessage((*NatControlPing)(nil), "nat_control_ping_51077d14")
        api.RegisterMessage((*NatControlPingReply)(nil), "nat_control_ping_reply_f6b0b8ca")
-       api.RegisterMessage((*NatDetAddDelMap)(nil), "nat_det_add_del_map_112fde05")
-       api.RegisterMessage((*NatDetAddDelMapReply)(nil), "nat_det_add_del_map_reply_e8d4e804")
-       api.RegisterMessage((*NatDetCloseSessionIn)(nil), "nat_det_close_session_in_0a10ef64")
-       api.RegisterMessage((*NatDetCloseSessionInReply)(nil), "nat_det_close_session_in_reply_e8d4e804")
-       api.RegisterMessage((*NatDetCloseSessionOut)(nil), "nat_det_close_session_out_c1b6cbfb")
-       api.RegisterMessage((*NatDetCloseSessionOutReply)(nil), "nat_det_close_session_out_reply_e8d4e804")
-       api.RegisterMessage((*NatDetForward)(nil), "nat_det_forward_7f8a89cd")
-       api.RegisterMessage((*NatDetForwardReply)(nil), "nat_det_forward_reply_a8ccbdc0")
-       api.RegisterMessage((*NatDetMapDetails)(nil), "nat_det_map_details_88000ee1")
-       api.RegisterMessage((*NatDetMapDump)(nil), "nat_det_map_dump_51077d14")
-       api.RegisterMessage((*NatDetReverse)(nil), "nat_det_reverse_a7573fe1")
-       api.RegisterMessage((*NatDetReverseReply)(nil), "nat_det_reverse_reply_34066d48")
-       api.RegisterMessage((*NatDetSessionDetails)(nil), "nat_det_session_details_27f3c171")
-       api.RegisterMessage((*NatDetSessionDump)(nil), "nat_det_session_dump_e45a3af7")
        api.RegisterMessage((*NatGetAddrAndPortAllocAlg)(nil), "nat_get_addr_and_port_alloc_alg_51077d14")
        api.RegisterMessage((*NatGetAddrAndPortAllocAlgReply)(nil), "nat_get_addr_and_port_alloc_alg_reply_3607a7d0")
        api.RegisterMessage((*NatGetMssClamping)(nil), "nat_get_mss_clamping_51077d14")
@@ -5202,6 +4203,8 @@ func file_nat_binapi_init() {
        api.RegisterMessage((*NatSetWorkers)(nil), "nat_set_workers_da926638")
        api.RegisterMessage((*NatSetWorkersReply)(nil), "nat_set_workers_reply_e8d4e804")
        api.RegisterMessage((*NatShowConfig)(nil), "nat_show_config_51077d14")
+       api.RegisterMessage((*NatShowConfig2)(nil), "nat_show_config_2_51077d14")
+       api.RegisterMessage((*NatShowConfig2Reply)(nil), "nat_show_config_2_reply_0404a5b4")
        api.RegisterMessage((*NatShowConfigReply)(nil), "nat_show_config_reply_7903ef06")
        api.RegisterMessage((*NatWorkerDetails)(nil), "nat_worker_details_84bf06fc")
        api.RegisterMessage((*NatWorkerDump)(nil), "nat_worker_dump_51077d14")
@@ -5220,12 +4223,20 @@ func AllMessages() []api.Message {
                (*Nat44AddDelLbStaticMappingReply)(nil),
                (*Nat44AddDelStaticMapping)(nil),
                (*Nat44AddDelStaticMappingReply)(nil),
+               (*Nat44AddDelStaticMappingV2)(nil),
+               (*Nat44AddDelStaticMappingV2Reply)(nil),
                (*Nat44AddressDetails)(nil),
                (*Nat44AddressDump)(nil),
                (*Nat44DelSession)(nil),
                (*Nat44DelSessionReply)(nil),
                (*Nat44DelUser)(nil),
                (*Nat44DelUserReply)(nil),
+               (*Nat44EdPluginEnableDisable)(nil),
+               (*Nat44EdPluginEnableDisableReply)(nil),
+               (*Nat44EdSetFqOptions)(nil),
+               (*Nat44EdSetFqOptionsReply)(nil),
+               (*Nat44EdShowFqOptions)(nil),
+               (*Nat44EdShowFqOptionsReply)(nil),
                (*Nat44ForwardingEnableDisable)(nil),
                (*Nat44ForwardingEnableDisableReply)(nil),
                (*Nat44ForwardingIsEnabled)(nil),
@@ -5246,60 +4257,22 @@ func AllMessages() []api.Message {
                (*Nat44LbStaticMappingAddDelLocalReply)(nil),
                (*Nat44LbStaticMappingDetails)(nil),
                (*Nat44LbStaticMappingDump)(nil),
+               (*Nat44PluginEnableDisable)(nil),
+               (*Nat44PluginEnableDisableReply)(nil),
                (*Nat44SessionCleanup)(nil),
                (*Nat44SessionCleanupReply)(nil),
                (*Nat44SetSessionLimit)(nil),
                (*Nat44SetSessionLimitReply)(nil),
+               (*Nat44ShowRunningConfig)(nil),
+               (*Nat44ShowRunningConfigReply)(nil),
                (*Nat44StaticMappingDetails)(nil),
                (*Nat44StaticMappingDump)(nil),
                (*Nat44UserDetails)(nil),
                (*Nat44UserDump)(nil),
                (*Nat44UserSessionDetails)(nil),
                (*Nat44UserSessionDump)(nil),
-               (*Nat64AddDelInterface)(nil),
-               (*Nat64AddDelInterfaceAddr)(nil),
-               (*Nat64AddDelInterfaceAddrReply)(nil),
-               (*Nat64AddDelInterfaceReply)(nil),
-               (*Nat64AddDelPoolAddrRange)(nil),
-               (*Nat64AddDelPoolAddrRangeReply)(nil),
-               (*Nat64AddDelPrefix)(nil),
-               (*Nat64AddDelPrefixReply)(nil),
-               (*Nat64AddDelStaticBib)(nil),
-               (*Nat64AddDelStaticBibReply)(nil),
-               (*Nat64BibDetails)(nil),
-               (*Nat64BibDump)(nil),
-               (*Nat64InterfaceDetails)(nil),
-               (*Nat64InterfaceDump)(nil),
-               (*Nat64PoolAddrDetails)(nil),
-               (*Nat64PoolAddrDump)(nil),
-               (*Nat64PrefixDetails)(nil),
-               (*Nat64PrefixDump)(nil),
-               (*Nat64StDetails)(nil),
-               (*Nat64StDump)(nil),
-               (*Nat66AddDelInterface)(nil),
-               (*Nat66AddDelInterfaceReply)(nil),
-               (*Nat66AddDelStaticMapping)(nil),
-               (*Nat66AddDelStaticMappingReply)(nil),
-               (*Nat66InterfaceDetails)(nil),
-               (*Nat66InterfaceDump)(nil),
-               (*Nat66StaticMappingDetails)(nil),
-               (*Nat66StaticMappingDump)(nil),
                (*NatControlPing)(nil),
                (*NatControlPingReply)(nil),
-               (*NatDetAddDelMap)(nil),
-               (*NatDetAddDelMapReply)(nil),
-               (*NatDetCloseSessionIn)(nil),
-               (*NatDetCloseSessionInReply)(nil),
-               (*NatDetCloseSessionOut)(nil),
-               (*NatDetCloseSessionOutReply)(nil),
-               (*NatDetForward)(nil),
-               (*NatDetForwardReply)(nil),
-               (*NatDetMapDetails)(nil),
-               (*NatDetMapDump)(nil),
-               (*NatDetReverse)(nil),
-               (*NatDetReverseReply)(nil),
-               (*NatDetSessionDetails)(nil),
-               (*NatDetSessionDump)(nil),
                (*NatGetAddrAndPortAllocAlg)(nil),
                (*NatGetAddrAndPortAllocAlgReply)(nil),
                (*NatGetMssClamping)(nil),
@@ -5332,6 +4305,8 @@ func AllMessages() []api.Message {
                (*NatSetWorkers)(nil),
                (*NatSetWorkersReply)(nil),
                (*NatShowConfig)(nil),
+               (*NatShowConfig2)(nil),
+               (*NatShowConfig2Reply)(nil),
                (*NatShowConfigReply)(nil),
                (*NatWorkerDetails)(nil),
                (*NatWorkerDump)(nil),