+// GeneveAddDelTunnel2 defines message 'geneve_add_del_tunnel2'.
+type GeneveAddDelTunnel2 struct {
+ IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"`
+ LocalAddress ip_types.Address `binapi:"address,name=local_address" json:"local_address,omitempty"`
+ RemoteAddress ip_types.Address `binapi:"address,name=remote_address" json:"remote_address,omitempty"`
+ McastSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=mcast_sw_if_index" json:"mcast_sw_if_index,omitempty"`
+ EncapVrfID uint32 `binapi:"u32,name=encap_vrf_id" json:"encap_vrf_id,omitempty"`
+ DecapNextIndex uint32 `binapi:"u32,name=decap_next_index" json:"decap_next_index,omitempty"`
+ Vni uint32 `binapi:"u32,name=vni" json:"vni,omitempty"`
+ L3Mode bool `binapi:"bool,name=l3_mode" json:"l3_mode,omitempty"`
+}
+
+func (m *GeneveAddDelTunnel2) Reset() { *m = GeneveAddDelTunnel2{} }
+func (*GeneveAddDelTunnel2) GetMessageName() string { return "geneve_add_del_tunnel2" }
+func (*GeneveAddDelTunnel2) GetCrcString() string { return "8c2a9999" }
+func (*GeneveAddDelTunnel2) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+func (m *GeneveAddDelTunnel2) Size() (size int) {
+ if m == nil {
+ return 0
+ }
+ size += 1 // m.IsAdd
+ size += 1 // m.LocalAddress.Af
+ size += 1 * 16 // m.LocalAddress.Un
+ size += 1 // m.RemoteAddress.Af
+ size += 1 * 16 // m.RemoteAddress.Un
+ size += 4 // m.McastSwIfIndex
+ size += 4 // m.EncapVrfID
+ size += 4 // m.DecapNextIndex
+ size += 4 // m.Vni
+ size += 1 // m.L3Mode
+ return size
+}
+func (m *GeneveAddDelTunnel2) 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.LocalAddress.Af))
+ buf.EncodeBytes(m.LocalAddress.Un.XXX_UnionData[:], 16)
+ buf.EncodeUint8(uint8(m.RemoteAddress.Af))
+ buf.EncodeBytes(m.RemoteAddress.Un.XXX_UnionData[:], 16)
+ buf.EncodeUint32(uint32(m.McastSwIfIndex))
+ buf.EncodeUint32(m.EncapVrfID)
+ buf.EncodeUint32(m.DecapNextIndex)
+ buf.EncodeUint32(m.Vni)
+ buf.EncodeBool(m.L3Mode)
+ return buf.Bytes(), nil
+}
+func (m *GeneveAddDelTunnel2) Unmarshal(b []byte) error {
+ buf := codec.NewBuffer(b)
+ m.IsAdd = buf.DecodeBool()
+ m.LocalAddress.Af = ip_types.AddressFamily(buf.DecodeUint8())
+ copy(m.LocalAddress.Un.XXX_UnionData[:], buf.DecodeBytes(16))
+ m.RemoteAddress.Af = ip_types.AddressFamily(buf.DecodeUint8())
+ copy(m.RemoteAddress.Un.XXX_UnionData[:], buf.DecodeBytes(16))
+ m.McastSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+ m.EncapVrfID = buf.DecodeUint32()
+ m.DecapNextIndex = buf.DecodeUint32()
+ m.Vni = buf.DecodeUint32()
+ m.L3Mode = buf.DecodeBool()
+ return nil
+}
+
+// GeneveAddDelTunnel2Reply defines message 'geneve_add_del_tunnel2_reply'.
+type GeneveAddDelTunnel2Reply struct {
+ Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+ SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *GeneveAddDelTunnel2Reply) Reset() { *m = GeneveAddDelTunnel2Reply{} }
+func (*GeneveAddDelTunnel2Reply) GetMessageName() string { return "geneve_add_del_tunnel2_reply" }
+func (*GeneveAddDelTunnel2Reply) GetCrcString() string { return "5383d31f" }
+func (*GeneveAddDelTunnel2Reply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+func (m *GeneveAddDelTunnel2Reply) Size() (size int) {
+ if m == nil {
+ return 0
+ }
+ size += 4 // m.Retval
+ size += 4 // m.SwIfIndex
+ return size
+}
+func (m *GeneveAddDelTunnel2Reply) Marshal(b []byte) ([]byte, error) {
+ if b == nil {
+ b = make([]byte, m.Size())
+ }
+ buf := codec.NewBuffer(b)
+ buf.EncodeInt32(m.Retval)
+ buf.EncodeUint32(uint32(m.SwIfIndex))
+ return buf.Bytes(), nil
+}
+func (m *GeneveAddDelTunnel2Reply) Unmarshal(b []byte) error {
+ buf := codec.NewBuffer(b)
+ m.Retval = buf.DecodeInt32()
+ m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+ return nil
+}
+