+// Nat44UserSessionV2Details defines message 'nat44_user_session_v2_details'.
+// InProgress: the message form may change in the future versions
+type Nat44UserSessionV2Details 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"`
+ IsTimedOut bool `binapi:"bool,name=is_timed_out" json:"is_timed_out,omitempty"`
+}
+
+func (m *Nat44UserSessionV2Details) Reset() { *m = Nat44UserSessionV2Details{} }
+func (*Nat44UserSessionV2Details) GetMessageName() string { return "nat44_user_session_v2_details" }
+func (*Nat44UserSessionV2Details) GetCrcString() string { return "fd42b729" }
+func (*Nat44UserSessionV2Details) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+func (m *Nat44UserSessionV2Details) 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
+ size += 1 // m.IsTimedOut
+ return size
+}
+func (m *Nat44UserSessionV2Details) 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)
+ buf.EncodeBool(m.IsTimedOut)
+ return buf.Bytes(), nil
+}
+func (m *Nat44UserSessionV2Details) 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 = 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()
+ m.IsTimedOut = buf.DecodeBool()
+ return nil
+}
+
+// Nat44UserSessionV2Dump defines message 'nat44_user_session_v2_dump'.
+// InProgress: the message form may change in the future versions
+type Nat44UserSessionV2Dump 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 *Nat44UserSessionV2Dump) Reset() { *m = Nat44UserSessionV2Dump{} }
+func (*Nat44UserSessionV2Dump) GetMessageName() string { return "nat44_user_session_v2_dump" }
+func (*Nat44UserSessionV2Dump) GetCrcString() string { return "e1899c98" }
+func (*Nat44UserSessionV2Dump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+func (m *Nat44UserSessionV2Dump) Size() (size int) {
+ if m == nil {
+ return 0
+ }
+ size += 1 * 4 // m.IPAddress
+ size += 4 // m.VrfID
+ return size
+}
+func (m *Nat44UserSessionV2Dump) 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 *Nat44UserSessionV2Dump) Unmarshal(b []byte) error {
+ buf := codec.NewBuffer(b)
+ copy(m.IPAddress[:], buf.DecodeBytes(4))
+ m.VrfID = buf.DecodeUint32()
+ return nil
+}
+