+
+// TunnelFlags defines enum 'tunnel_flags'.
+type TunnelFlags uint8
+
+const (
+ TUNNEL_API_FLAG_TRACK_MTU TunnelFlags = 1
+)
+
+var (
+ TunnelFlags_name = map[uint8]string{
+ 1: "TUNNEL_API_FLAG_TRACK_MTU",
+ }
+ TunnelFlags_value = map[string]uint8{
+ "TUNNEL_API_FLAG_TRACK_MTU": 1,
+ }
+)
+
+func (x TunnelFlags) String() string {
+ s, ok := TunnelFlags_name[uint8(x)]
+ if ok {
+ return s
+ }
+ str := func(n uint8) string {
+ s, ok := TunnelFlags_name[uint8(n)]
+ if ok {
+ return s
+ }
+ return "TunnelFlags(" + strconv.Itoa(int(n)) + ")"
+ }
+ for i := uint8(0); i <= 8; i++ {
+ val := uint8(x)
+ if val&(1<<i) != 0 {
+ if s != "" {
+ s += "|"
+ }
+ s += str(1 << i)
+ }
+ }
+ if s == "" {
+ return str(uint8(x))
+ }
+ return s
+}
+
+// Tunnel defines type 'tunnel'.
+type Tunnel struct {
+ Instance uint32 `binapi:"u32,name=instance" json:"instance,omitempty"`
+ Src ip_types.Address `binapi:"address,name=src" json:"src,omitempty"`
+ Dst ip_types.Address `binapi:"address,name=dst" json:"dst,omitempty"`
+ SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+ TableID uint32 `binapi:"u32,name=table_id" json:"table_id,omitempty"`
+ EncapDecapFlags TunnelEncapDecapFlags `binapi:"tunnel_encap_decap_flags,name=encap_decap_flags" json:"encap_decap_flags,omitempty"`
+ Mode TunnelMode `binapi:"tunnel_mode,name=mode" json:"mode,omitempty"`
+ Flags TunnelFlags `binapi:"tunnel_flags,name=flags" json:"flags,omitempty"`
+ Dscp ip_types.IPDscp `binapi:"ip_dscp,name=dscp" json:"dscp,omitempty"`
+ HopLimit uint8 `binapi:"u8,name=hop_limit" json:"hop_limit,omitempty"`
+}