go.ligato.io/vpp-agent/v3@v3.5.0/plugins/vpp/binapi/vpp2202/ip/ip.ba.go (about)

     1  // Code generated by GoVPP's binapi-generator. DO NOT EDIT.
     2  
     3  // Package ip contains generated bindings for API file ip.api.
     4  //
     5  // Contents:
     6  // -  2 enums
     7  // -  7 structs
     8  // - 87 messages
     9  package ip
    10  
    11  import (
    12  	"strconv"
    13  
    14  	api "go.fd.io/govpp/api"
    15  	codec "go.fd.io/govpp/codec"
    16  	_ "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2202/ethernet_types"
    17  	fib_types "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2202/fib_types"
    18  	interface_types "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2202/interface_types"
    19  	ip_types "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2202/ip_types"
    20  	mfib_types "go.ligato.io/vpp-agent/v3/plugins/vpp/binapi/vpp2202/mfib_types"
    21  )
    22  
    23  // This is a compile-time assertion to ensure that this generated file
    24  // is compatible with the GoVPP api package it is being compiled against.
    25  // A compilation error at this line likely means your copy of the
    26  // GoVPP api package needs to be updated.
    27  const _ = api.GoVppAPIPackageIsVersion2
    28  
    29  const (
    30  	APIFile    = "ip"
    31  	APIVersion = "3.2.0"
    32  	VersionCrc = 0x557b5866
    33  )
    34  
    35  // IPReassType defines enum 'ip_reass_type'.
    36  type IPReassType uint32
    37  
    38  const (
    39  	IP_REASS_TYPE_FULL            IPReassType = 0
    40  	IP_REASS_TYPE_SHALLOW_VIRTUAL IPReassType = 1
    41  )
    42  
    43  var (
    44  	IPReassType_name = map[uint32]string{
    45  		0: "IP_REASS_TYPE_FULL",
    46  		1: "IP_REASS_TYPE_SHALLOW_VIRTUAL",
    47  	}
    48  	IPReassType_value = map[string]uint32{
    49  		"IP_REASS_TYPE_FULL":            0,
    50  		"IP_REASS_TYPE_SHALLOW_VIRTUAL": 1,
    51  	}
    52  )
    53  
    54  func (x IPReassType) String() string {
    55  	s, ok := IPReassType_name[uint32(x)]
    56  	if ok {
    57  		return s
    58  	}
    59  	return "IPReassType(" + strconv.Itoa(int(x)) + ")"
    60  }
    61  
    62  // IPFlowHashConfig defines enum 'ip_flow_hash_config'.
    63  type IPFlowHashConfig uint32
    64  
    65  const (
    66  	IP_API_FLOW_HASH_SRC_IP     IPFlowHashConfig = 1
    67  	IP_API_FLOW_HASH_DST_IP     IPFlowHashConfig = 2
    68  	IP_API_FLOW_HASH_SRC_PORT   IPFlowHashConfig = 4
    69  	IP_API_FLOW_HASH_DST_PORT   IPFlowHashConfig = 8
    70  	IP_API_FLOW_HASH_PROTO      IPFlowHashConfig = 16
    71  	IP_API_FLOW_HASH_REVERSE    IPFlowHashConfig = 32
    72  	IP_API_FLOW_HASH_SYMETRIC   IPFlowHashConfig = 64
    73  	IP_API_FLOW_HASH_FLOW_LABEL IPFlowHashConfig = 128
    74  )
    75  
    76  var (
    77  	IPFlowHashConfig_name = map[uint32]string{
    78  		1:   "IP_API_FLOW_HASH_SRC_IP",
    79  		2:   "IP_API_FLOW_HASH_DST_IP",
    80  		4:   "IP_API_FLOW_HASH_SRC_PORT",
    81  		8:   "IP_API_FLOW_HASH_DST_PORT",
    82  		16:  "IP_API_FLOW_HASH_PROTO",
    83  		32:  "IP_API_FLOW_HASH_REVERSE",
    84  		64:  "IP_API_FLOW_HASH_SYMETRIC",
    85  		128: "IP_API_FLOW_HASH_FLOW_LABEL",
    86  	}
    87  	IPFlowHashConfig_value = map[string]uint32{
    88  		"IP_API_FLOW_HASH_SRC_IP":     1,
    89  		"IP_API_FLOW_HASH_DST_IP":     2,
    90  		"IP_API_FLOW_HASH_SRC_PORT":   4,
    91  		"IP_API_FLOW_HASH_DST_PORT":   8,
    92  		"IP_API_FLOW_HASH_PROTO":      16,
    93  		"IP_API_FLOW_HASH_REVERSE":    32,
    94  		"IP_API_FLOW_HASH_SYMETRIC":   64,
    95  		"IP_API_FLOW_HASH_FLOW_LABEL": 128,
    96  	}
    97  )
    98  
    99  func (x IPFlowHashConfig) String() string {
   100  	s, ok := IPFlowHashConfig_name[uint32(x)]
   101  	if ok {
   102  		return s
   103  	}
   104  	str := func(n uint32) string {
   105  		s, ok := IPFlowHashConfig_name[uint32(n)]
   106  		if ok {
   107  			return s
   108  		}
   109  		return "IPFlowHashConfig(" + strconv.Itoa(int(n)) + ")"
   110  	}
   111  	for i := uint32(0); i <= 32; i++ {
   112  		val := uint32(x)
   113  		if val&(1<<i) != 0 {
   114  			if s != "" {
   115  				s += "|"
   116  			}
   117  			s += str(1 << i)
   118  		}
   119  	}
   120  	if s == "" {
   121  		return str(uint32(x))
   122  	}
   123  	return s
   124  }
   125  
   126  // IPMroute defines type 'ip_mroute'.
   127  type IPMroute struct {
   128  	TableID    uint32                    `binapi:"u32,name=table_id" json:"table_id,omitempty"`
   129  	EntryFlags mfib_types.MfibEntryFlags `binapi:"mfib_entry_flags,name=entry_flags" json:"entry_flags,omitempty"`
   130  	RpfID      uint32                    `binapi:"u32,name=rpf_id" json:"rpf_id,omitempty"`
   131  	Prefix     ip_types.Mprefix          `binapi:"mprefix,name=prefix" json:"prefix,omitempty"`
   132  	NPaths     uint8                     `binapi:"u8,name=n_paths" json:"-"`
   133  	Paths      []mfib_types.MfibPath     `binapi:"mfib_path[n_paths],name=paths" json:"paths,omitempty"`
   134  }
   135  
   136  // IPPathMtu defines type 'ip_path_mtu'.
   137  type IPPathMtu struct {
   138  	ClientIndex uint32           `binapi:"u32,name=client_index" json:"client_index,omitempty"`
   139  	Context     uint32           `binapi:"u32,name=context" json:"context,omitempty"`
   140  	TableID     uint32           `binapi:"u32,name=table_id" json:"table_id,omitempty"`
   141  	Nh          ip_types.Address `binapi:"address,name=nh" json:"nh,omitempty"`
   142  	PathMtu     uint16           `binapi:"u16,name=path_mtu" json:"path_mtu,omitempty"`
   143  }
   144  
   145  // IPRoute defines type 'ip_route'.
   146  type IPRoute struct {
   147  	TableID    uint32              `binapi:"u32,name=table_id" json:"table_id,omitempty"`
   148  	StatsIndex uint32              `binapi:"u32,name=stats_index" json:"stats_index,omitempty"`
   149  	Prefix     ip_types.Prefix     `binapi:"prefix,name=prefix" json:"prefix,omitempty"`
   150  	NPaths     uint8               `binapi:"u8,name=n_paths" json:"-"`
   151  	Paths      []fib_types.FibPath `binapi:"fib_path[n_paths],name=paths" json:"paths,omitempty"`
   152  }
   153  
   154  // IPRouteV2 defines type 'ip_route_v2'.
   155  type IPRouteV2 struct {
   156  	TableID    uint32              `binapi:"u32,name=table_id" json:"table_id,omitempty"`
   157  	StatsIndex uint32              `binapi:"u32,name=stats_index" json:"stats_index,omitempty"`
   158  	Prefix     ip_types.Prefix     `binapi:"prefix,name=prefix" json:"prefix,omitempty"`
   159  	NPaths     uint8               `binapi:"u8,name=n_paths" json:"-"`
   160  	Src        uint8               `binapi:"u8,name=src" json:"src,omitempty"`
   161  	Paths      []fib_types.FibPath `binapi:"fib_path[n_paths],name=paths" json:"paths,omitempty"`
   162  }
   163  
   164  // IPTable defines type 'ip_table'.
   165  type IPTable struct {
   166  	TableID uint32 `binapi:"u32,name=table_id" json:"table_id,omitempty"`
   167  	IsIP6   bool   `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"`
   168  	Name    string `binapi:"string[64],name=name" json:"name,omitempty"`
   169  }
   170  
   171  // PuntRedirect defines type 'punt_redirect'.
   172  type PuntRedirect struct {
   173  	RxSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=rx_sw_if_index" json:"rx_sw_if_index,omitempty"`
   174  	TxSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=tx_sw_if_index" json:"tx_sw_if_index,omitempty"`
   175  	Nh          ip_types.Address               `binapi:"address,name=nh" json:"nh,omitempty"`
   176  }
   177  
   178  // PuntRedirectV2 defines type 'punt_redirect_v2'.
   179  type PuntRedirectV2 struct {
   180  	RxSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=rx_sw_if_index,default=4294967295" json:"rx_sw_if_index,omitempty"`
   181  	Af          ip_types.AddressFamily         `binapi:"address_family,name=af" json:"af,omitempty"`
   182  	NPaths      uint32                         `binapi:"u32,name=n_paths" json:"-"`
   183  	Paths       []fib_types.FibPath            `binapi:"fib_path[n_paths],name=paths" json:"paths,omitempty"`
   184  }
   185  
   186  // AddDelIPPuntRedirectV2 defines message 'add_del_ip_punt_redirect_v2'.
   187  type AddDelIPPuntRedirectV2 struct {
   188  	IsAdd bool           `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"`
   189  	Punt  PuntRedirectV2 `binapi:"punt_redirect_v2,name=punt" json:"punt,omitempty"`
   190  }
   191  
   192  func (m *AddDelIPPuntRedirectV2) Reset()               { *m = AddDelIPPuntRedirectV2{} }
   193  func (*AddDelIPPuntRedirectV2) GetMessageName() string { return "add_del_ip_punt_redirect_v2" }
   194  func (*AddDelIPPuntRedirectV2) GetCrcString() string   { return "9e804227" }
   195  func (*AddDelIPPuntRedirectV2) GetMessageType() api.MessageType {
   196  	return api.RequestMessage
   197  }
   198  
   199  func (m *AddDelIPPuntRedirectV2) Size() (size int) {
   200  	if m == nil {
   201  		return 0
   202  	}
   203  	size += 1 // m.IsAdd
   204  	size += 4 // m.Punt.RxSwIfIndex
   205  	size += 1 // m.Punt.Af
   206  	size += 4 // m.Punt.NPaths
   207  	for j2 := 0; j2 < len(m.Punt.Paths); j2++ {
   208  		var s2 fib_types.FibPath
   209  		_ = s2
   210  		if j2 < len(m.Punt.Paths) {
   211  			s2 = m.Punt.Paths[j2]
   212  		}
   213  		size += 4      // s2.SwIfIndex
   214  		size += 4      // s2.TableID
   215  		size += 4      // s2.RpfID
   216  		size += 1      // s2.Weight
   217  		size += 1      // s2.Preference
   218  		size += 4      // s2.Type
   219  		size += 4      // s2.Flags
   220  		size += 4      // s2.Proto
   221  		size += 1 * 16 // s2.Nh.Address
   222  		size += 4      // s2.Nh.ViaLabel
   223  		size += 4      // s2.Nh.ObjID
   224  		size += 4      // s2.Nh.ClassifyTableIndex
   225  		size += 1      // s2.NLabels
   226  		for j3 := 0; j3 < 16; j3++ {
   227  			size += 1 // s2.LabelStack[j3].IsUniform
   228  			size += 4 // s2.LabelStack[j3].Label
   229  			size += 1 // s2.LabelStack[j3].TTL
   230  			size += 1 // s2.LabelStack[j3].Exp
   231  		}
   232  	}
   233  	return size
   234  }
   235  func (m *AddDelIPPuntRedirectV2) Marshal(b []byte) ([]byte, error) {
   236  	if b == nil {
   237  		b = make([]byte, m.Size())
   238  	}
   239  	buf := codec.NewBuffer(b)
   240  	buf.EncodeBool(m.IsAdd)
   241  	buf.EncodeUint32(uint32(m.Punt.RxSwIfIndex))
   242  	buf.EncodeUint8(uint8(m.Punt.Af))
   243  	buf.EncodeUint32(uint32(len(m.Punt.Paths)))
   244  	for j1 := 0; j1 < len(m.Punt.Paths); j1++ {
   245  		var v1 fib_types.FibPath // Paths
   246  		if j1 < len(m.Punt.Paths) {
   247  			v1 = m.Punt.Paths[j1]
   248  		}
   249  		buf.EncodeUint32(v1.SwIfIndex)
   250  		buf.EncodeUint32(v1.TableID)
   251  		buf.EncodeUint32(v1.RpfID)
   252  		buf.EncodeUint8(v1.Weight)
   253  		buf.EncodeUint8(v1.Preference)
   254  		buf.EncodeUint32(uint32(v1.Type))
   255  		buf.EncodeUint32(uint32(v1.Flags))
   256  		buf.EncodeUint32(uint32(v1.Proto))
   257  		buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 16)
   258  		buf.EncodeUint32(v1.Nh.ViaLabel)
   259  		buf.EncodeUint32(v1.Nh.ObjID)
   260  		buf.EncodeUint32(v1.Nh.ClassifyTableIndex)
   261  		buf.EncodeUint8(v1.NLabels)
   262  		for j2 := 0; j2 < 16; j2++ {
   263  			buf.EncodeUint8(v1.LabelStack[j2].IsUniform)
   264  			buf.EncodeUint32(v1.LabelStack[j2].Label)
   265  			buf.EncodeUint8(v1.LabelStack[j2].TTL)
   266  			buf.EncodeUint8(v1.LabelStack[j2].Exp)
   267  		}
   268  	}
   269  	return buf.Bytes(), nil
   270  }
   271  func (m *AddDelIPPuntRedirectV2) Unmarshal(b []byte) error {
   272  	buf := codec.NewBuffer(b)
   273  	m.IsAdd = buf.DecodeBool()
   274  	m.Punt.RxSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   275  	m.Punt.Af = ip_types.AddressFamily(buf.DecodeUint8())
   276  	m.Punt.NPaths = buf.DecodeUint32()
   277  	m.Punt.Paths = make([]fib_types.FibPath, m.Punt.NPaths)
   278  	for j1 := 0; j1 < len(m.Punt.Paths); j1++ {
   279  		m.Punt.Paths[j1].SwIfIndex = buf.DecodeUint32()
   280  		m.Punt.Paths[j1].TableID = buf.DecodeUint32()
   281  		m.Punt.Paths[j1].RpfID = buf.DecodeUint32()
   282  		m.Punt.Paths[j1].Weight = buf.DecodeUint8()
   283  		m.Punt.Paths[j1].Preference = buf.DecodeUint8()
   284  		m.Punt.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32())
   285  		m.Punt.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32())
   286  		m.Punt.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32())
   287  		copy(m.Punt.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16))
   288  		m.Punt.Paths[j1].Nh.ViaLabel = buf.DecodeUint32()
   289  		m.Punt.Paths[j1].Nh.ObjID = buf.DecodeUint32()
   290  		m.Punt.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32()
   291  		m.Punt.Paths[j1].NLabels = buf.DecodeUint8()
   292  		for j2 := 0; j2 < 16; j2++ {
   293  			m.Punt.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8()
   294  			m.Punt.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32()
   295  			m.Punt.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8()
   296  			m.Punt.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8()
   297  		}
   298  	}
   299  	return nil
   300  }
   301  
   302  // AddDelIPPuntRedirectV2Reply defines message 'add_del_ip_punt_redirect_v2_reply'.
   303  type AddDelIPPuntRedirectV2Reply struct {
   304  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   305  }
   306  
   307  func (m *AddDelIPPuntRedirectV2Reply) Reset() { *m = AddDelIPPuntRedirectV2Reply{} }
   308  func (*AddDelIPPuntRedirectV2Reply) GetMessageName() string {
   309  	return "add_del_ip_punt_redirect_v2_reply"
   310  }
   311  func (*AddDelIPPuntRedirectV2Reply) GetCrcString() string { return "e8d4e804" }
   312  func (*AddDelIPPuntRedirectV2Reply) GetMessageType() api.MessageType {
   313  	return api.ReplyMessage
   314  }
   315  
   316  func (m *AddDelIPPuntRedirectV2Reply) Size() (size int) {
   317  	if m == nil {
   318  		return 0
   319  	}
   320  	size += 4 // m.Retval
   321  	return size
   322  }
   323  func (m *AddDelIPPuntRedirectV2Reply) Marshal(b []byte) ([]byte, error) {
   324  	if b == nil {
   325  		b = make([]byte, m.Size())
   326  	}
   327  	buf := codec.NewBuffer(b)
   328  	buf.EncodeInt32(m.Retval)
   329  	return buf.Bytes(), nil
   330  }
   331  func (m *AddDelIPPuntRedirectV2Reply) Unmarshal(b []byte) error {
   332  	buf := codec.NewBuffer(b)
   333  	m.Retval = buf.DecodeInt32()
   334  	return nil
   335  }
   336  
   337  // IoamDisable defines message 'ioam_disable'.
   338  type IoamDisable struct {
   339  	ID uint16 `binapi:"u16,name=id" json:"id,omitempty"`
   340  }
   341  
   342  func (m *IoamDisable) Reset()               { *m = IoamDisable{} }
   343  func (*IoamDisable) GetMessageName() string { return "ioam_disable" }
   344  func (*IoamDisable) GetCrcString() string   { return "6b16a45e" }
   345  func (*IoamDisable) GetMessageType() api.MessageType {
   346  	return api.RequestMessage
   347  }
   348  
   349  func (m *IoamDisable) Size() (size int) {
   350  	if m == nil {
   351  		return 0
   352  	}
   353  	size += 2 // m.ID
   354  	return size
   355  }
   356  func (m *IoamDisable) Marshal(b []byte) ([]byte, error) {
   357  	if b == nil {
   358  		b = make([]byte, m.Size())
   359  	}
   360  	buf := codec.NewBuffer(b)
   361  	buf.EncodeUint16(m.ID)
   362  	return buf.Bytes(), nil
   363  }
   364  func (m *IoamDisable) Unmarshal(b []byte) error {
   365  	buf := codec.NewBuffer(b)
   366  	m.ID = buf.DecodeUint16()
   367  	return nil
   368  }
   369  
   370  // IoamDisableReply defines message 'ioam_disable_reply'.
   371  type IoamDisableReply struct {
   372  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   373  }
   374  
   375  func (m *IoamDisableReply) Reset()               { *m = IoamDisableReply{} }
   376  func (*IoamDisableReply) GetMessageName() string { return "ioam_disable_reply" }
   377  func (*IoamDisableReply) GetCrcString() string   { return "e8d4e804" }
   378  func (*IoamDisableReply) GetMessageType() api.MessageType {
   379  	return api.ReplyMessage
   380  }
   381  
   382  func (m *IoamDisableReply) Size() (size int) {
   383  	if m == nil {
   384  		return 0
   385  	}
   386  	size += 4 // m.Retval
   387  	return size
   388  }
   389  func (m *IoamDisableReply) Marshal(b []byte) ([]byte, error) {
   390  	if b == nil {
   391  		b = make([]byte, m.Size())
   392  	}
   393  	buf := codec.NewBuffer(b)
   394  	buf.EncodeInt32(m.Retval)
   395  	return buf.Bytes(), nil
   396  }
   397  func (m *IoamDisableReply) Unmarshal(b []byte) error {
   398  	buf := codec.NewBuffer(b)
   399  	m.Retval = buf.DecodeInt32()
   400  	return nil
   401  }
   402  
   403  // IoamEnable defines message 'ioam_enable'.
   404  type IoamEnable struct {
   405  	ID          uint16 `binapi:"u16,name=id" json:"id,omitempty"`
   406  	Seqno       bool   `binapi:"bool,name=seqno" json:"seqno,omitempty"`
   407  	Analyse     bool   `binapi:"bool,name=analyse" json:"analyse,omitempty"`
   408  	PotEnable   bool   `binapi:"bool,name=pot_enable" json:"pot_enable,omitempty"`
   409  	TraceEnable bool   `binapi:"bool,name=trace_enable" json:"trace_enable,omitempty"`
   410  	NodeID      uint32 `binapi:"u32,name=node_id" json:"node_id,omitempty"`
   411  }
   412  
   413  func (m *IoamEnable) Reset()               { *m = IoamEnable{} }
   414  func (*IoamEnable) GetMessageName() string { return "ioam_enable" }
   415  func (*IoamEnable) GetCrcString() string   { return "51ccd868" }
   416  func (*IoamEnable) GetMessageType() api.MessageType {
   417  	return api.RequestMessage
   418  }
   419  
   420  func (m *IoamEnable) Size() (size int) {
   421  	if m == nil {
   422  		return 0
   423  	}
   424  	size += 2 // m.ID
   425  	size += 1 // m.Seqno
   426  	size += 1 // m.Analyse
   427  	size += 1 // m.PotEnable
   428  	size += 1 // m.TraceEnable
   429  	size += 4 // m.NodeID
   430  	return size
   431  }
   432  func (m *IoamEnable) Marshal(b []byte) ([]byte, error) {
   433  	if b == nil {
   434  		b = make([]byte, m.Size())
   435  	}
   436  	buf := codec.NewBuffer(b)
   437  	buf.EncodeUint16(m.ID)
   438  	buf.EncodeBool(m.Seqno)
   439  	buf.EncodeBool(m.Analyse)
   440  	buf.EncodeBool(m.PotEnable)
   441  	buf.EncodeBool(m.TraceEnable)
   442  	buf.EncodeUint32(m.NodeID)
   443  	return buf.Bytes(), nil
   444  }
   445  func (m *IoamEnable) Unmarshal(b []byte) error {
   446  	buf := codec.NewBuffer(b)
   447  	m.ID = buf.DecodeUint16()
   448  	m.Seqno = buf.DecodeBool()
   449  	m.Analyse = buf.DecodeBool()
   450  	m.PotEnable = buf.DecodeBool()
   451  	m.TraceEnable = buf.DecodeBool()
   452  	m.NodeID = buf.DecodeUint32()
   453  	return nil
   454  }
   455  
   456  // IoamEnableReply defines message 'ioam_enable_reply'.
   457  type IoamEnableReply struct {
   458  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   459  }
   460  
   461  func (m *IoamEnableReply) Reset()               { *m = IoamEnableReply{} }
   462  func (*IoamEnableReply) GetMessageName() string { return "ioam_enable_reply" }
   463  func (*IoamEnableReply) GetCrcString() string   { return "e8d4e804" }
   464  func (*IoamEnableReply) GetMessageType() api.MessageType {
   465  	return api.ReplyMessage
   466  }
   467  
   468  func (m *IoamEnableReply) Size() (size int) {
   469  	if m == nil {
   470  		return 0
   471  	}
   472  	size += 4 // m.Retval
   473  	return size
   474  }
   475  func (m *IoamEnableReply) Marshal(b []byte) ([]byte, error) {
   476  	if b == nil {
   477  		b = make([]byte, m.Size())
   478  	}
   479  	buf := codec.NewBuffer(b)
   480  	buf.EncodeInt32(m.Retval)
   481  	return buf.Bytes(), nil
   482  }
   483  func (m *IoamEnableReply) Unmarshal(b []byte) error {
   484  	buf := codec.NewBuffer(b)
   485  	m.Retval = buf.DecodeInt32()
   486  	return nil
   487  }
   488  
   489  // IPAddressDetails defines message 'ip_address_details'.
   490  type IPAddressDetails struct {
   491  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   492  	Prefix    ip_types.AddressWithPrefix     `binapi:"address_with_prefix,name=prefix" json:"prefix,omitempty"`
   493  }
   494  
   495  func (m *IPAddressDetails) Reset()               { *m = IPAddressDetails{} }
   496  func (*IPAddressDetails) GetMessageName() string { return "ip_address_details" }
   497  func (*IPAddressDetails) GetCrcString() string   { return "ee29b797" }
   498  func (*IPAddressDetails) GetMessageType() api.MessageType {
   499  	return api.ReplyMessage
   500  }
   501  
   502  func (m *IPAddressDetails) Size() (size int) {
   503  	if m == nil {
   504  		return 0
   505  	}
   506  	size += 4      // m.SwIfIndex
   507  	size += 1      // m.Prefix.Address.Af
   508  	size += 1 * 16 // m.Prefix.Address.Un
   509  	size += 1      // m.Prefix.Len
   510  	return size
   511  }
   512  func (m *IPAddressDetails) Marshal(b []byte) ([]byte, error) {
   513  	if b == nil {
   514  		b = make([]byte, m.Size())
   515  	}
   516  	buf := codec.NewBuffer(b)
   517  	buf.EncodeUint32(uint32(m.SwIfIndex))
   518  	buf.EncodeUint8(uint8(m.Prefix.Address.Af))
   519  	buf.EncodeBytes(m.Prefix.Address.Un.XXX_UnionData[:], 16)
   520  	buf.EncodeUint8(m.Prefix.Len)
   521  	return buf.Bytes(), nil
   522  }
   523  func (m *IPAddressDetails) Unmarshal(b []byte) error {
   524  	buf := codec.NewBuffer(b)
   525  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   526  	m.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
   527  	copy(m.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
   528  	m.Prefix.Len = buf.DecodeUint8()
   529  	return nil
   530  }
   531  
   532  // IPAddressDump defines message 'ip_address_dump'.
   533  type IPAddressDump struct {
   534  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   535  	IsIPv6    bool                           `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"`
   536  }
   537  
   538  func (m *IPAddressDump) Reset()               { *m = IPAddressDump{} }
   539  func (*IPAddressDump) GetMessageName() string { return "ip_address_dump" }
   540  func (*IPAddressDump) GetCrcString() string   { return "2d033de4" }
   541  func (*IPAddressDump) GetMessageType() api.MessageType {
   542  	return api.RequestMessage
   543  }
   544  
   545  func (m *IPAddressDump) Size() (size int) {
   546  	if m == nil {
   547  		return 0
   548  	}
   549  	size += 4 // m.SwIfIndex
   550  	size += 1 // m.IsIPv6
   551  	return size
   552  }
   553  func (m *IPAddressDump) Marshal(b []byte) ([]byte, error) {
   554  	if b == nil {
   555  		b = make([]byte, m.Size())
   556  	}
   557  	buf := codec.NewBuffer(b)
   558  	buf.EncodeUint32(uint32(m.SwIfIndex))
   559  	buf.EncodeBool(m.IsIPv6)
   560  	return buf.Bytes(), nil
   561  }
   562  func (m *IPAddressDump) Unmarshal(b []byte) error {
   563  	buf := codec.NewBuffer(b)
   564  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   565  	m.IsIPv6 = buf.DecodeBool()
   566  	return nil
   567  }
   568  
   569  // IPContainerProxyAddDel defines message 'ip_container_proxy_add_del'.
   570  type IPContainerProxyAddDel struct {
   571  	Pfx       ip_types.Prefix                `binapi:"prefix,name=pfx" json:"pfx,omitempty"`
   572  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   573  	IsAdd     bool                           `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"`
   574  }
   575  
   576  func (m *IPContainerProxyAddDel) Reset()               { *m = IPContainerProxyAddDel{} }
   577  func (*IPContainerProxyAddDel) GetMessageName() string { return "ip_container_proxy_add_del" }
   578  func (*IPContainerProxyAddDel) GetCrcString() string   { return "7df1dff1" }
   579  func (*IPContainerProxyAddDel) GetMessageType() api.MessageType {
   580  	return api.RequestMessage
   581  }
   582  
   583  func (m *IPContainerProxyAddDel) Size() (size int) {
   584  	if m == nil {
   585  		return 0
   586  	}
   587  	size += 1      // m.Pfx.Address.Af
   588  	size += 1 * 16 // m.Pfx.Address.Un
   589  	size += 1      // m.Pfx.Len
   590  	size += 4      // m.SwIfIndex
   591  	size += 1      // m.IsAdd
   592  	return size
   593  }
   594  func (m *IPContainerProxyAddDel) Marshal(b []byte) ([]byte, error) {
   595  	if b == nil {
   596  		b = make([]byte, m.Size())
   597  	}
   598  	buf := codec.NewBuffer(b)
   599  	buf.EncodeUint8(uint8(m.Pfx.Address.Af))
   600  	buf.EncodeBytes(m.Pfx.Address.Un.XXX_UnionData[:], 16)
   601  	buf.EncodeUint8(m.Pfx.Len)
   602  	buf.EncodeUint32(uint32(m.SwIfIndex))
   603  	buf.EncodeBool(m.IsAdd)
   604  	return buf.Bytes(), nil
   605  }
   606  func (m *IPContainerProxyAddDel) Unmarshal(b []byte) error {
   607  	buf := codec.NewBuffer(b)
   608  	m.Pfx.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
   609  	copy(m.Pfx.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
   610  	m.Pfx.Len = buf.DecodeUint8()
   611  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   612  	m.IsAdd = buf.DecodeBool()
   613  	return nil
   614  }
   615  
   616  // IPContainerProxyAddDelReply defines message 'ip_container_proxy_add_del_reply'.
   617  type IPContainerProxyAddDelReply struct {
   618  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
   619  }
   620  
   621  func (m *IPContainerProxyAddDelReply) Reset() { *m = IPContainerProxyAddDelReply{} }
   622  func (*IPContainerProxyAddDelReply) GetMessageName() string {
   623  	return "ip_container_proxy_add_del_reply"
   624  }
   625  func (*IPContainerProxyAddDelReply) GetCrcString() string { return "e8d4e804" }
   626  func (*IPContainerProxyAddDelReply) GetMessageType() api.MessageType {
   627  	return api.ReplyMessage
   628  }
   629  
   630  func (m *IPContainerProxyAddDelReply) Size() (size int) {
   631  	if m == nil {
   632  		return 0
   633  	}
   634  	size += 4 // m.Retval
   635  	return size
   636  }
   637  func (m *IPContainerProxyAddDelReply) Marshal(b []byte) ([]byte, error) {
   638  	if b == nil {
   639  		b = make([]byte, m.Size())
   640  	}
   641  	buf := codec.NewBuffer(b)
   642  	buf.EncodeInt32(m.Retval)
   643  	return buf.Bytes(), nil
   644  }
   645  func (m *IPContainerProxyAddDelReply) Unmarshal(b []byte) error {
   646  	buf := codec.NewBuffer(b)
   647  	m.Retval = buf.DecodeInt32()
   648  	return nil
   649  }
   650  
   651  // IPContainerProxyDetails defines message 'ip_container_proxy_details'.
   652  type IPContainerProxyDetails struct {
   653  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   654  	Prefix    ip_types.Prefix                `binapi:"prefix,name=prefix" json:"prefix,omitempty"`
   655  }
   656  
   657  func (m *IPContainerProxyDetails) Reset()               { *m = IPContainerProxyDetails{} }
   658  func (*IPContainerProxyDetails) GetMessageName() string { return "ip_container_proxy_details" }
   659  func (*IPContainerProxyDetails) GetCrcString() string   { return "a8085523" }
   660  func (*IPContainerProxyDetails) GetMessageType() api.MessageType {
   661  	return api.ReplyMessage
   662  }
   663  
   664  func (m *IPContainerProxyDetails) Size() (size int) {
   665  	if m == nil {
   666  		return 0
   667  	}
   668  	size += 4      // m.SwIfIndex
   669  	size += 1      // m.Prefix.Address.Af
   670  	size += 1 * 16 // m.Prefix.Address.Un
   671  	size += 1      // m.Prefix.Len
   672  	return size
   673  }
   674  func (m *IPContainerProxyDetails) Marshal(b []byte) ([]byte, error) {
   675  	if b == nil {
   676  		b = make([]byte, m.Size())
   677  	}
   678  	buf := codec.NewBuffer(b)
   679  	buf.EncodeUint32(uint32(m.SwIfIndex))
   680  	buf.EncodeUint8(uint8(m.Prefix.Address.Af))
   681  	buf.EncodeBytes(m.Prefix.Address.Un.XXX_UnionData[:], 16)
   682  	buf.EncodeUint8(m.Prefix.Len)
   683  	return buf.Bytes(), nil
   684  }
   685  func (m *IPContainerProxyDetails) Unmarshal(b []byte) error {
   686  	buf := codec.NewBuffer(b)
   687  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   688  	m.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
   689  	copy(m.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
   690  	m.Prefix.Len = buf.DecodeUint8()
   691  	return nil
   692  }
   693  
   694  // IPContainerProxyDump defines message 'ip_container_proxy_dump'.
   695  type IPContainerProxyDump struct{}
   696  
   697  func (m *IPContainerProxyDump) Reset()               { *m = IPContainerProxyDump{} }
   698  func (*IPContainerProxyDump) GetMessageName() string { return "ip_container_proxy_dump" }
   699  func (*IPContainerProxyDump) GetCrcString() string   { return "51077d14" }
   700  func (*IPContainerProxyDump) GetMessageType() api.MessageType {
   701  	return api.RequestMessage
   702  }
   703  
   704  func (m *IPContainerProxyDump) Size() (size int) {
   705  	if m == nil {
   706  		return 0
   707  	}
   708  	return size
   709  }
   710  func (m *IPContainerProxyDump) Marshal(b []byte) ([]byte, error) {
   711  	if b == nil {
   712  		b = make([]byte, m.Size())
   713  	}
   714  	buf := codec.NewBuffer(b)
   715  	return buf.Bytes(), nil
   716  }
   717  func (m *IPContainerProxyDump) Unmarshal(b []byte) error {
   718  	return nil
   719  }
   720  
   721  // IPDetails defines message 'ip_details'.
   722  type IPDetails struct {
   723  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   724  	IsIPv6    bool                           `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"`
   725  }
   726  
   727  func (m *IPDetails) Reset()               { *m = IPDetails{} }
   728  func (*IPDetails) GetMessageName() string { return "ip_details" }
   729  func (*IPDetails) GetCrcString() string   { return "eb152d07" }
   730  func (*IPDetails) GetMessageType() api.MessageType {
   731  	return api.ReplyMessage
   732  }
   733  
   734  func (m *IPDetails) Size() (size int) {
   735  	if m == nil {
   736  		return 0
   737  	}
   738  	size += 4 // m.SwIfIndex
   739  	size += 1 // m.IsIPv6
   740  	return size
   741  }
   742  func (m *IPDetails) Marshal(b []byte) ([]byte, error) {
   743  	if b == nil {
   744  		b = make([]byte, m.Size())
   745  	}
   746  	buf := codec.NewBuffer(b)
   747  	buf.EncodeUint32(uint32(m.SwIfIndex))
   748  	buf.EncodeBool(m.IsIPv6)
   749  	return buf.Bytes(), nil
   750  }
   751  func (m *IPDetails) Unmarshal(b []byte) error {
   752  	buf := codec.NewBuffer(b)
   753  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
   754  	m.IsIPv6 = buf.DecodeBool()
   755  	return nil
   756  }
   757  
   758  // IPDump defines message 'ip_dump'.
   759  type IPDump struct {
   760  	IsIPv6 bool `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"`
   761  }
   762  
   763  func (m *IPDump) Reset()               { *m = IPDump{} }
   764  func (*IPDump) GetMessageName() string { return "ip_dump" }
   765  func (*IPDump) GetCrcString() string   { return "98d231ca" }
   766  func (*IPDump) GetMessageType() api.MessageType {
   767  	return api.RequestMessage
   768  }
   769  
   770  func (m *IPDump) Size() (size int) {
   771  	if m == nil {
   772  		return 0
   773  	}
   774  	size += 1 // m.IsIPv6
   775  	return size
   776  }
   777  func (m *IPDump) Marshal(b []byte) ([]byte, error) {
   778  	if b == nil {
   779  		b = make([]byte, m.Size())
   780  	}
   781  	buf := codec.NewBuffer(b)
   782  	buf.EncodeBool(m.IsIPv6)
   783  	return buf.Bytes(), nil
   784  }
   785  func (m *IPDump) Unmarshal(b []byte) error {
   786  	buf := codec.NewBuffer(b)
   787  	m.IsIPv6 = buf.DecodeBool()
   788  	return nil
   789  }
   790  
   791  // IPMrouteAddDel defines message 'ip_mroute_add_del'.
   792  type IPMrouteAddDel struct {
   793  	IsAdd       bool     `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"`
   794  	IsMultipath bool     `binapi:"bool,name=is_multipath" json:"is_multipath,omitempty"`
   795  	Route       IPMroute `binapi:"ip_mroute,name=route" json:"route,omitempty"`
   796  }
   797  
   798  func (m *IPMrouteAddDel) Reset()               { *m = IPMrouteAddDel{} }
   799  func (*IPMrouteAddDel) GetMessageName() string { return "ip_mroute_add_del" }
   800  func (*IPMrouteAddDel) GetCrcString() string   { return "0dd7e790" }
   801  func (*IPMrouteAddDel) GetMessageType() api.MessageType {
   802  	return api.RequestMessage
   803  }
   804  
   805  func (m *IPMrouteAddDel) Size() (size int) {
   806  	if m == nil {
   807  		return 0
   808  	}
   809  	size += 1      // m.IsAdd
   810  	size += 1      // m.IsMultipath
   811  	size += 4      // m.Route.TableID
   812  	size += 4      // m.Route.EntryFlags
   813  	size += 4      // m.Route.RpfID
   814  	size += 1      // m.Route.Prefix.Af
   815  	size += 2      // m.Route.Prefix.GrpAddressLength
   816  	size += 1 * 16 // m.Route.Prefix.GrpAddress
   817  	size += 1 * 16 // m.Route.Prefix.SrcAddress
   818  	size += 1      // m.Route.NPaths
   819  	for j2 := 0; j2 < len(m.Route.Paths); j2++ {
   820  		var s2 mfib_types.MfibPath
   821  		_ = s2
   822  		if j2 < len(m.Route.Paths) {
   823  			s2 = m.Route.Paths[j2]
   824  		}
   825  		size += 4      // s2.ItfFlags
   826  		size += 4      // s2.Path.SwIfIndex
   827  		size += 4      // s2.Path.TableID
   828  		size += 4      // s2.Path.RpfID
   829  		size += 1      // s2.Path.Weight
   830  		size += 1      // s2.Path.Preference
   831  		size += 4      // s2.Path.Type
   832  		size += 4      // s2.Path.Flags
   833  		size += 4      // s2.Path.Proto
   834  		size += 1 * 16 // s2.Path.Nh.Address
   835  		size += 4      // s2.Path.Nh.ViaLabel
   836  		size += 4      // s2.Path.Nh.ObjID
   837  		size += 4      // s2.Path.Nh.ClassifyTableIndex
   838  		size += 1      // s2.Path.NLabels
   839  		for j4 := 0; j4 < 16; j4++ {
   840  			size += 1 // s2.Path.LabelStack[j4].IsUniform
   841  			size += 4 // s2.Path.LabelStack[j4].Label
   842  			size += 1 // s2.Path.LabelStack[j4].TTL
   843  			size += 1 // s2.Path.LabelStack[j4].Exp
   844  		}
   845  	}
   846  	return size
   847  }
   848  func (m *IPMrouteAddDel) Marshal(b []byte) ([]byte, error) {
   849  	if b == nil {
   850  		b = make([]byte, m.Size())
   851  	}
   852  	buf := codec.NewBuffer(b)
   853  	buf.EncodeBool(m.IsAdd)
   854  	buf.EncodeBool(m.IsMultipath)
   855  	buf.EncodeUint32(m.Route.TableID)
   856  	buf.EncodeUint32(uint32(m.Route.EntryFlags))
   857  	buf.EncodeUint32(m.Route.RpfID)
   858  	buf.EncodeUint8(uint8(m.Route.Prefix.Af))
   859  	buf.EncodeUint16(m.Route.Prefix.GrpAddressLength)
   860  	buf.EncodeBytes(m.Route.Prefix.GrpAddress.XXX_UnionData[:], 16)
   861  	buf.EncodeBytes(m.Route.Prefix.SrcAddress.XXX_UnionData[:], 16)
   862  	buf.EncodeUint8(uint8(len(m.Route.Paths)))
   863  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
   864  		var v1 mfib_types.MfibPath // Paths
   865  		if j1 < len(m.Route.Paths) {
   866  			v1 = m.Route.Paths[j1]
   867  		}
   868  		buf.EncodeUint32(uint32(v1.ItfFlags))
   869  		buf.EncodeUint32(v1.Path.SwIfIndex)
   870  		buf.EncodeUint32(v1.Path.TableID)
   871  		buf.EncodeUint32(v1.Path.RpfID)
   872  		buf.EncodeUint8(v1.Path.Weight)
   873  		buf.EncodeUint8(v1.Path.Preference)
   874  		buf.EncodeUint32(uint32(v1.Path.Type))
   875  		buf.EncodeUint32(uint32(v1.Path.Flags))
   876  		buf.EncodeUint32(uint32(v1.Path.Proto))
   877  		buf.EncodeBytes(v1.Path.Nh.Address.XXX_UnionData[:], 16)
   878  		buf.EncodeUint32(v1.Path.Nh.ViaLabel)
   879  		buf.EncodeUint32(v1.Path.Nh.ObjID)
   880  		buf.EncodeUint32(v1.Path.Nh.ClassifyTableIndex)
   881  		buf.EncodeUint8(v1.Path.NLabels)
   882  		for j3 := 0; j3 < 16; j3++ {
   883  			buf.EncodeUint8(v1.Path.LabelStack[j3].IsUniform)
   884  			buf.EncodeUint32(v1.Path.LabelStack[j3].Label)
   885  			buf.EncodeUint8(v1.Path.LabelStack[j3].TTL)
   886  			buf.EncodeUint8(v1.Path.LabelStack[j3].Exp)
   887  		}
   888  	}
   889  	return buf.Bytes(), nil
   890  }
   891  func (m *IPMrouteAddDel) Unmarshal(b []byte) error {
   892  	buf := codec.NewBuffer(b)
   893  	m.IsAdd = buf.DecodeBool()
   894  	m.IsMultipath = buf.DecodeBool()
   895  	m.Route.TableID = buf.DecodeUint32()
   896  	m.Route.EntryFlags = mfib_types.MfibEntryFlags(buf.DecodeUint32())
   897  	m.Route.RpfID = buf.DecodeUint32()
   898  	m.Route.Prefix.Af = ip_types.AddressFamily(buf.DecodeUint8())
   899  	m.Route.Prefix.GrpAddressLength = buf.DecodeUint16()
   900  	copy(m.Route.Prefix.GrpAddress.XXX_UnionData[:], buf.DecodeBytes(16))
   901  	copy(m.Route.Prefix.SrcAddress.XXX_UnionData[:], buf.DecodeBytes(16))
   902  	m.Route.NPaths = buf.DecodeUint8()
   903  	m.Route.Paths = make([]mfib_types.MfibPath, m.Route.NPaths)
   904  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
   905  		m.Route.Paths[j1].ItfFlags = mfib_types.MfibItfFlags(buf.DecodeUint32())
   906  		m.Route.Paths[j1].Path.SwIfIndex = buf.DecodeUint32()
   907  		m.Route.Paths[j1].Path.TableID = buf.DecodeUint32()
   908  		m.Route.Paths[j1].Path.RpfID = buf.DecodeUint32()
   909  		m.Route.Paths[j1].Path.Weight = buf.DecodeUint8()
   910  		m.Route.Paths[j1].Path.Preference = buf.DecodeUint8()
   911  		m.Route.Paths[j1].Path.Type = fib_types.FibPathType(buf.DecodeUint32())
   912  		m.Route.Paths[j1].Path.Flags = fib_types.FibPathFlags(buf.DecodeUint32())
   913  		m.Route.Paths[j1].Path.Proto = fib_types.FibPathNhProto(buf.DecodeUint32())
   914  		copy(m.Route.Paths[j1].Path.Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16))
   915  		m.Route.Paths[j1].Path.Nh.ViaLabel = buf.DecodeUint32()
   916  		m.Route.Paths[j1].Path.Nh.ObjID = buf.DecodeUint32()
   917  		m.Route.Paths[j1].Path.Nh.ClassifyTableIndex = buf.DecodeUint32()
   918  		m.Route.Paths[j1].Path.NLabels = buf.DecodeUint8()
   919  		for j3 := 0; j3 < 16; j3++ {
   920  			m.Route.Paths[j1].Path.LabelStack[j3].IsUniform = buf.DecodeUint8()
   921  			m.Route.Paths[j1].Path.LabelStack[j3].Label = buf.DecodeUint32()
   922  			m.Route.Paths[j1].Path.LabelStack[j3].TTL = buf.DecodeUint8()
   923  			m.Route.Paths[j1].Path.LabelStack[j3].Exp = buf.DecodeUint8()
   924  		}
   925  	}
   926  	return nil
   927  }
   928  
   929  // IPMrouteAddDelReply defines message 'ip_mroute_add_del_reply'.
   930  type IPMrouteAddDelReply struct {
   931  	Retval     int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
   932  	StatsIndex uint32 `binapi:"u32,name=stats_index" json:"stats_index,omitempty"`
   933  }
   934  
   935  func (m *IPMrouteAddDelReply) Reset()               { *m = IPMrouteAddDelReply{} }
   936  func (*IPMrouteAddDelReply) GetMessageName() string { return "ip_mroute_add_del_reply" }
   937  func (*IPMrouteAddDelReply) GetCrcString() string   { return "1992deab" }
   938  func (*IPMrouteAddDelReply) GetMessageType() api.MessageType {
   939  	return api.ReplyMessage
   940  }
   941  
   942  func (m *IPMrouteAddDelReply) Size() (size int) {
   943  	if m == nil {
   944  		return 0
   945  	}
   946  	size += 4 // m.Retval
   947  	size += 4 // m.StatsIndex
   948  	return size
   949  }
   950  func (m *IPMrouteAddDelReply) Marshal(b []byte) ([]byte, error) {
   951  	if b == nil {
   952  		b = make([]byte, m.Size())
   953  	}
   954  	buf := codec.NewBuffer(b)
   955  	buf.EncodeInt32(m.Retval)
   956  	buf.EncodeUint32(m.StatsIndex)
   957  	return buf.Bytes(), nil
   958  }
   959  func (m *IPMrouteAddDelReply) Unmarshal(b []byte) error {
   960  	buf := codec.NewBuffer(b)
   961  	m.Retval = buf.DecodeInt32()
   962  	m.StatsIndex = buf.DecodeUint32()
   963  	return nil
   964  }
   965  
   966  // IPMrouteDetails defines message 'ip_mroute_details'.
   967  type IPMrouteDetails struct {
   968  	Route IPMroute `binapi:"ip_mroute,name=route" json:"route,omitempty"`
   969  }
   970  
   971  func (m *IPMrouteDetails) Reset()               { *m = IPMrouteDetails{} }
   972  func (*IPMrouteDetails) GetMessageName() string { return "ip_mroute_details" }
   973  func (*IPMrouteDetails) GetCrcString() string   { return "c5cb23fc" }
   974  func (*IPMrouteDetails) GetMessageType() api.MessageType {
   975  	return api.ReplyMessage
   976  }
   977  
   978  func (m *IPMrouteDetails) Size() (size int) {
   979  	if m == nil {
   980  		return 0
   981  	}
   982  	size += 4      // m.Route.TableID
   983  	size += 4      // m.Route.EntryFlags
   984  	size += 4      // m.Route.RpfID
   985  	size += 1      // m.Route.Prefix.Af
   986  	size += 2      // m.Route.Prefix.GrpAddressLength
   987  	size += 1 * 16 // m.Route.Prefix.GrpAddress
   988  	size += 1 * 16 // m.Route.Prefix.SrcAddress
   989  	size += 1      // m.Route.NPaths
   990  	for j2 := 0; j2 < len(m.Route.Paths); j2++ {
   991  		var s2 mfib_types.MfibPath
   992  		_ = s2
   993  		if j2 < len(m.Route.Paths) {
   994  			s2 = m.Route.Paths[j2]
   995  		}
   996  		size += 4      // s2.ItfFlags
   997  		size += 4      // s2.Path.SwIfIndex
   998  		size += 4      // s2.Path.TableID
   999  		size += 4      // s2.Path.RpfID
  1000  		size += 1      // s2.Path.Weight
  1001  		size += 1      // s2.Path.Preference
  1002  		size += 4      // s2.Path.Type
  1003  		size += 4      // s2.Path.Flags
  1004  		size += 4      // s2.Path.Proto
  1005  		size += 1 * 16 // s2.Path.Nh.Address
  1006  		size += 4      // s2.Path.Nh.ViaLabel
  1007  		size += 4      // s2.Path.Nh.ObjID
  1008  		size += 4      // s2.Path.Nh.ClassifyTableIndex
  1009  		size += 1      // s2.Path.NLabels
  1010  		for j4 := 0; j4 < 16; j4++ {
  1011  			size += 1 // s2.Path.LabelStack[j4].IsUniform
  1012  			size += 4 // s2.Path.LabelStack[j4].Label
  1013  			size += 1 // s2.Path.LabelStack[j4].TTL
  1014  			size += 1 // s2.Path.LabelStack[j4].Exp
  1015  		}
  1016  	}
  1017  	return size
  1018  }
  1019  func (m *IPMrouteDetails) Marshal(b []byte) ([]byte, error) {
  1020  	if b == nil {
  1021  		b = make([]byte, m.Size())
  1022  	}
  1023  	buf := codec.NewBuffer(b)
  1024  	buf.EncodeUint32(m.Route.TableID)
  1025  	buf.EncodeUint32(uint32(m.Route.EntryFlags))
  1026  	buf.EncodeUint32(m.Route.RpfID)
  1027  	buf.EncodeUint8(uint8(m.Route.Prefix.Af))
  1028  	buf.EncodeUint16(m.Route.Prefix.GrpAddressLength)
  1029  	buf.EncodeBytes(m.Route.Prefix.GrpAddress.XXX_UnionData[:], 16)
  1030  	buf.EncodeBytes(m.Route.Prefix.SrcAddress.XXX_UnionData[:], 16)
  1031  	buf.EncodeUint8(uint8(len(m.Route.Paths)))
  1032  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  1033  		var v1 mfib_types.MfibPath // Paths
  1034  		if j1 < len(m.Route.Paths) {
  1035  			v1 = m.Route.Paths[j1]
  1036  		}
  1037  		buf.EncodeUint32(uint32(v1.ItfFlags))
  1038  		buf.EncodeUint32(v1.Path.SwIfIndex)
  1039  		buf.EncodeUint32(v1.Path.TableID)
  1040  		buf.EncodeUint32(v1.Path.RpfID)
  1041  		buf.EncodeUint8(v1.Path.Weight)
  1042  		buf.EncodeUint8(v1.Path.Preference)
  1043  		buf.EncodeUint32(uint32(v1.Path.Type))
  1044  		buf.EncodeUint32(uint32(v1.Path.Flags))
  1045  		buf.EncodeUint32(uint32(v1.Path.Proto))
  1046  		buf.EncodeBytes(v1.Path.Nh.Address.XXX_UnionData[:], 16)
  1047  		buf.EncodeUint32(v1.Path.Nh.ViaLabel)
  1048  		buf.EncodeUint32(v1.Path.Nh.ObjID)
  1049  		buf.EncodeUint32(v1.Path.Nh.ClassifyTableIndex)
  1050  		buf.EncodeUint8(v1.Path.NLabels)
  1051  		for j3 := 0; j3 < 16; j3++ {
  1052  			buf.EncodeUint8(v1.Path.LabelStack[j3].IsUniform)
  1053  			buf.EncodeUint32(v1.Path.LabelStack[j3].Label)
  1054  			buf.EncodeUint8(v1.Path.LabelStack[j3].TTL)
  1055  			buf.EncodeUint8(v1.Path.LabelStack[j3].Exp)
  1056  		}
  1057  	}
  1058  	return buf.Bytes(), nil
  1059  }
  1060  func (m *IPMrouteDetails) Unmarshal(b []byte) error {
  1061  	buf := codec.NewBuffer(b)
  1062  	m.Route.TableID = buf.DecodeUint32()
  1063  	m.Route.EntryFlags = mfib_types.MfibEntryFlags(buf.DecodeUint32())
  1064  	m.Route.RpfID = buf.DecodeUint32()
  1065  	m.Route.Prefix.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1066  	m.Route.Prefix.GrpAddressLength = buf.DecodeUint16()
  1067  	copy(m.Route.Prefix.GrpAddress.XXX_UnionData[:], buf.DecodeBytes(16))
  1068  	copy(m.Route.Prefix.SrcAddress.XXX_UnionData[:], buf.DecodeBytes(16))
  1069  	m.Route.NPaths = buf.DecodeUint8()
  1070  	m.Route.Paths = make([]mfib_types.MfibPath, m.Route.NPaths)
  1071  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  1072  		m.Route.Paths[j1].ItfFlags = mfib_types.MfibItfFlags(buf.DecodeUint32())
  1073  		m.Route.Paths[j1].Path.SwIfIndex = buf.DecodeUint32()
  1074  		m.Route.Paths[j1].Path.TableID = buf.DecodeUint32()
  1075  		m.Route.Paths[j1].Path.RpfID = buf.DecodeUint32()
  1076  		m.Route.Paths[j1].Path.Weight = buf.DecodeUint8()
  1077  		m.Route.Paths[j1].Path.Preference = buf.DecodeUint8()
  1078  		m.Route.Paths[j1].Path.Type = fib_types.FibPathType(buf.DecodeUint32())
  1079  		m.Route.Paths[j1].Path.Flags = fib_types.FibPathFlags(buf.DecodeUint32())
  1080  		m.Route.Paths[j1].Path.Proto = fib_types.FibPathNhProto(buf.DecodeUint32())
  1081  		copy(m.Route.Paths[j1].Path.Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16))
  1082  		m.Route.Paths[j1].Path.Nh.ViaLabel = buf.DecodeUint32()
  1083  		m.Route.Paths[j1].Path.Nh.ObjID = buf.DecodeUint32()
  1084  		m.Route.Paths[j1].Path.Nh.ClassifyTableIndex = buf.DecodeUint32()
  1085  		m.Route.Paths[j1].Path.NLabels = buf.DecodeUint8()
  1086  		for j3 := 0; j3 < 16; j3++ {
  1087  			m.Route.Paths[j1].Path.LabelStack[j3].IsUniform = buf.DecodeUint8()
  1088  			m.Route.Paths[j1].Path.LabelStack[j3].Label = buf.DecodeUint32()
  1089  			m.Route.Paths[j1].Path.LabelStack[j3].TTL = buf.DecodeUint8()
  1090  			m.Route.Paths[j1].Path.LabelStack[j3].Exp = buf.DecodeUint8()
  1091  		}
  1092  	}
  1093  	return nil
  1094  }
  1095  
  1096  // IPMrouteDump defines message 'ip_mroute_dump'.
  1097  type IPMrouteDump struct {
  1098  	Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"`
  1099  }
  1100  
  1101  func (m *IPMrouteDump) Reset()               { *m = IPMrouteDump{} }
  1102  func (*IPMrouteDump) GetMessageName() string { return "ip_mroute_dump" }
  1103  func (*IPMrouteDump) GetCrcString() string   { return "b9d2e09e" }
  1104  func (*IPMrouteDump) GetMessageType() api.MessageType {
  1105  	return api.RequestMessage
  1106  }
  1107  
  1108  func (m *IPMrouteDump) Size() (size int) {
  1109  	if m == nil {
  1110  		return 0
  1111  	}
  1112  	size += 4  // m.Table.TableID
  1113  	size += 1  // m.Table.IsIP6
  1114  	size += 64 // m.Table.Name
  1115  	return size
  1116  }
  1117  func (m *IPMrouteDump) Marshal(b []byte) ([]byte, error) {
  1118  	if b == nil {
  1119  		b = make([]byte, m.Size())
  1120  	}
  1121  	buf := codec.NewBuffer(b)
  1122  	buf.EncodeUint32(m.Table.TableID)
  1123  	buf.EncodeBool(m.Table.IsIP6)
  1124  	buf.EncodeString(m.Table.Name, 64)
  1125  	return buf.Bytes(), nil
  1126  }
  1127  func (m *IPMrouteDump) Unmarshal(b []byte) error {
  1128  	buf := codec.NewBuffer(b)
  1129  	m.Table.TableID = buf.DecodeUint32()
  1130  	m.Table.IsIP6 = buf.DecodeBool()
  1131  	m.Table.Name = buf.DecodeString(64)
  1132  	return nil
  1133  }
  1134  
  1135  // IPMtableDetails defines message 'ip_mtable_details'.
  1136  type IPMtableDetails struct {
  1137  	Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"`
  1138  }
  1139  
  1140  func (m *IPMtableDetails) Reset()               { *m = IPMtableDetails{} }
  1141  func (*IPMtableDetails) GetMessageName() string { return "ip_mtable_details" }
  1142  func (*IPMtableDetails) GetCrcString() string   { return "b9d2e09e" }
  1143  func (*IPMtableDetails) GetMessageType() api.MessageType {
  1144  	return api.RequestMessage
  1145  }
  1146  
  1147  func (m *IPMtableDetails) Size() (size int) {
  1148  	if m == nil {
  1149  		return 0
  1150  	}
  1151  	size += 4  // m.Table.TableID
  1152  	size += 1  // m.Table.IsIP6
  1153  	size += 64 // m.Table.Name
  1154  	return size
  1155  }
  1156  func (m *IPMtableDetails) Marshal(b []byte) ([]byte, error) {
  1157  	if b == nil {
  1158  		b = make([]byte, m.Size())
  1159  	}
  1160  	buf := codec.NewBuffer(b)
  1161  	buf.EncodeUint32(m.Table.TableID)
  1162  	buf.EncodeBool(m.Table.IsIP6)
  1163  	buf.EncodeString(m.Table.Name, 64)
  1164  	return buf.Bytes(), nil
  1165  }
  1166  func (m *IPMtableDetails) Unmarshal(b []byte) error {
  1167  	buf := codec.NewBuffer(b)
  1168  	m.Table.TableID = buf.DecodeUint32()
  1169  	m.Table.IsIP6 = buf.DecodeBool()
  1170  	m.Table.Name = buf.DecodeString(64)
  1171  	return nil
  1172  }
  1173  
  1174  // IPMtableDump defines message 'ip_mtable_dump'.
  1175  type IPMtableDump struct{}
  1176  
  1177  func (m *IPMtableDump) Reset()               { *m = IPMtableDump{} }
  1178  func (*IPMtableDump) GetMessageName() string { return "ip_mtable_dump" }
  1179  func (*IPMtableDump) GetCrcString() string   { return "51077d14" }
  1180  func (*IPMtableDump) GetMessageType() api.MessageType {
  1181  	return api.RequestMessage
  1182  }
  1183  
  1184  func (m *IPMtableDump) Size() (size int) {
  1185  	if m == nil {
  1186  		return 0
  1187  	}
  1188  	return size
  1189  }
  1190  func (m *IPMtableDump) Marshal(b []byte) ([]byte, error) {
  1191  	if b == nil {
  1192  		b = make([]byte, m.Size())
  1193  	}
  1194  	buf := codec.NewBuffer(b)
  1195  	return buf.Bytes(), nil
  1196  }
  1197  func (m *IPMtableDump) Unmarshal(b []byte) error {
  1198  	return nil
  1199  }
  1200  
  1201  // IPPathMtuDetails defines message 'ip_path_mtu_details'.
  1202  type IPPathMtuDetails struct {
  1203  	Pmtu IPPathMtu `binapi:"ip_path_mtu,name=pmtu" json:"pmtu,omitempty"`
  1204  }
  1205  
  1206  func (m *IPPathMtuDetails) Reset()               { *m = IPPathMtuDetails{} }
  1207  func (*IPPathMtuDetails) GetMessageName() string { return "ip_path_mtu_details" }
  1208  func (*IPPathMtuDetails) GetCrcString() string   { return "ac9539a7" }
  1209  func (*IPPathMtuDetails) GetMessageType() api.MessageType {
  1210  	return api.ReplyMessage
  1211  }
  1212  
  1213  func (m *IPPathMtuDetails) Size() (size int) {
  1214  	if m == nil {
  1215  		return 0
  1216  	}
  1217  	size += 4      // m.Pmtu.ClientIndex
  1218  	size += 4      // m.Pmtu.Context
  1219  	size += 4      // m.Pmtu.TableID
  1220  	size += 1      // m.Pmtu.Nh.Af
  1221  	size += 1 * 16 // m.Pmtu.Nh.Un
  1222  	size += 2      // m.Pmtu.PathMtu
  1223  	return size
  1224  }
  1225  func (m *IPPathMtuDetails) Marshal(b []byte) ([]byte, error) {
  1226  	if b == nil {
  1227  		b = make([]byte, m.Size())
  1228  	}
  1229  	buf := codec.NewBuffer(b)
  1230  	buf.EncodeUint32(m.Pmtu.ClientIndex)
  1231  	buf.EncodeUint32(m.Pmtu.Context)
  1232  	buf.EncodeUint32(m.Pmtu.TableID)
  1233  	buf.EncodeUint8(uint8(m.Pmtu.Nh.Af))
  1234  	buf.EncodeBytes(m.Pmtu.Nh.Un.XXX_UnionData[:], 16)
  1235  	buf.EncodeUint16(m.Pmtu.PathMtu)
  1236  	return buf.Bytes(), nil
  1237  }
  1238  func (m *IPPathMtuDetails) Unmarshal(b []byte) error {
  1239  	buf := codec.NewBuffer(b)
  1240  	m.Pmtu.ClientIndex = buf.DecodeUint32()
  1241  	m.Pmtu.Context = buf.DecodeUint32()
  1242  	m.Pmtu.TableID = buf.DecodeUint32()
  1243  	m.Pmtu.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1244  	copy(m.Pmtu.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1245  	m.Pmtu.PathMtu = buf.DecodeUint16()
  1246  	return nil
  1247  }
  1248  
  1249  // IPPathMtuGet defines message 'ip_path_mtu_get'.
  1250  type IPPathMtuGet struct {
  1251  	Cursor uint32 `binapi:"u32,name=cursor" json:"cursor,omitempty"`
  1252  }
  1253  
  1254  func (m *IPPathMtuGet) Reset()               { *m = IPPathMtuGet{} }
  1255  func (*IPPathMtuGet) GetMessageName() string { return "ip_path_mtu_get" }
  1256  func (*IPPathMtuGet) GetCrcString() string   { return "f75ba505" }
  1257  func (*IPPathMtuGet) GetMessageType() api.MessageType {
  1258  	return api.RequestMessage
  1259  }
  1260  
  1261  func (m *IPPathMtuGet) Size() (size int) {
  1262  	if m == nil {
  1263  		return 0
  1264  	}
  1265  	size += 4 // m.Cursor
  1266  	return size
  1267  }
  1268  func (m *IPPathMtuGet) Marshal(b []byte) ([]byte, error) {
  1269  	if b == nil {
  1270  		b = make([]byte, m.Size())
  1271  	}
  1272  	buf := codec.NewBuffer(b)
  1273  	buf.EncodeUint32(m.Cursor)
  1274  	return buf.Bytes(), nil
  1275  }
  1276  func (m *IPPathMtuGet) Unmarshal(b []byte) error {
  1277  	buf := codec.NewBuffer(b)
  1278  	m.Cursor = buf.DecodeUint32()
  1279  	return nil
  1280  }
  1281  
  1282  // IPPathMtuGetReply defines message 'ip_path_mtu_get_reply'.
  1283  type IPPathMtuGetReply struct {
  1284  	Retval int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  1285  	Cursor uint32 `binapi:"u32,name=cursor" json:"cursor,omitempty"`
  1286  }
  1287  
  1288  func (m *IPPathMtuGetReply) Reset()               { *m = IPPathMtuGetReply{} }
  1289  func (*IPPathMtuGetReply) GetMessageName() string { return "ip_path_mtu_get_reply" }
  1290  func (*IPPathMtuGetReply) GetCrcString() string   { return "53b48f5d" }
  1291  func (*IPPathMtuGetReply) GetMessageType() api.MessageType {
  1292  	return api.ReplyMessage
  1293  }
  1294  
  1295  func (m *IPPathMtuGetReply) Size() (size int) {
  1296  	if m == nil {
  1297  		return 0
  1298  	}
  1299  	size += 4 // m.Retval
  1300  	size += 4 // m.Cursor
  1301  	return size
  1302  }
  1303  func (m *IPPathMtuGetReply) Marshal(b []byte) ([]byte, error) {
  1304  	if b == nil {
  1305  		b = make([]byte, m.Size())
  1306  	}
  1307  	buf := codec.NewBuffer(b)
  1308  	buf.EncodeInt32(m.Retval)
  1309  	buf.EncodeUint32(m.Cursor)
  1310  	return buf.Bytes(), nil
  1311  }
  1312  func (m *IPPathMtuGetReply) Unmarshal(b []byte) error {
  1313  	buf := codec.NewBuffer(b)
  1314  	m.Retval = buf.DecodeInt32()
  1315  	m.Cursor = buf.DecodeUint32()
  1316  	return nil
  1317  }
  1318  
  1319  // IPPathMtuReplaceBegin defines message 'ip_path_mtu_replace_begin'.
  1320  type IPPathMtuReplaceBegin struct{}
  1321  
  1322  func (m *IPPathMtuReplaceBegin) Reset()               { *m = IPPathMtuReplaceBegin{} }
  1323  func (*IPPathMtuReplaceBegin) GetMessageName() string { return "ip_path_mtu_replace_begin" }
  1324  func (*IPPathMtuReplaceBegin) GetCrcString() string   { return "51077d14" }
  1325  func (*IPPathMtuReplaceBegin) GetMessageType() api.MessageType {
  1326  	return api.RequestMessage
  1327  }
  1328  
  1329  func (m *IPPathMtuReplaceBegin) Size() (size int) {
  1330  	if m == nil {
  1331  		return 0
  1332  	}
  1333  	return size
  1334  }
  1335  func (m *IPPathMtuReplaceBegin) Marshal(b []byte) ([]byte, error) {
  1336  	if b == nil {
  1337  		b = make([]byte, m.Size())
  1338  	}
  1339  	buf := codec.NewBuffer(b)
  1340  	return buf.Bytes(), nil
  1341  }
  1342  func (m *IPPathMtuReplaceBegin) Unmarshal(b []byte) error {
  1343  	return nil
  1344  }
  1345  
  1346  // IPPathMtuReplaceBeginReply defines message 'ip_path_mtu_replace_begin_reply'.
  1347  type IPPathMtuReplaceBeginReply struct {
  1348  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1349  }
  1350  
  1351  func (m *IPPathMtuReplaceBeginReply) Reset()               { *m = IPPathMtuReplaceBeginReply{} }
  1352  func (*IPPathMtuReplaceBeginReply) GetMessageName() string { return "ip_path_mtu_replace_begin_reply" }
  1353  func (*IPPathMtuReplaceBeginReply) GetCrcString() string   { return "e8d4e804" }
  1354  func (*IPPathMtuReplaceBeginReply) GetMessageType() api.MessageType {
  1355  	return api.ReplyMessage
  1356  }
  1357  
  1358  func (m *IPPathMtuReplaceBeginReply) Size() (size int) {
  1359  	if m == nil {
  1360  		return 0
  1361  	}
  1362  	size += 4 // m.Retval
  1363  	return size
  1364  }
  1365  func (m *IPPathMtuReplaceBeginReply) Marshal(b []byte) ([]byte, error) {
  1366  	if b == nil {
  1367  		b = make([]byte, m.Size())
  1368  	}
  1369  	buf := codec.NewBuffer(b)
  1370  	buf.EncodeInt32(m.Retval)
  1371  	return buf.Bytes(), nil
  1372  }
  1373  func (m *IPPathMtuReplaceBeginReply) Unmarshal(b []byte) error {
  1374  	buf := codec.NewBuffer(b)
  1375  	m.Retval = buf.DecodeInt32()
  1376  	return nil
  1377  }
  1378  
  1379  // IPPathMtuReplaceEnd defines message 'ip_path_mtu_replace_end'.
  1380  type IPPathMtuReplaceEnd struct{}
  1381  
  1382  func (m *IPPathMtuReplaceEnd) Reset()               { *m = IPPathMtuReplaceEnd{} }
  1383  func (*IPPathMtuReplaceEnd) GetMessageName() string { return "ip_path_mtu_replace_end" }
  1384  func (*IPPathMtuReplaceEnd) GetCrcString() string   { return "51077d14" }
  1385  func (*IPPathMtuReplaceEnd) GetMessageType() api.MessageType {
  1386  	return api.RequestMessage
  1387  }
  1388  
  1389  func (m *IPPathMtuReplaceEnd) Size() (size int) {
  1390  	if m == nil {
  1391  		return 0
  1392  	}
  1393  	return size
  1394  }
  1395  func (m *IPPathMtuReplaceEnd) Marshal(b []byte) ([]byte, error) {
  1396  	if b == nil {
  1397  		b = make([]byte, m.Size())
  1398  	}
  1399  	buf := codec.NewBuffer(b)
  1400  	return buf.Bytes(), nil
  1401  }
  1402  func (m *IPPathMtuReplaceEnd) Unmarshal(b []byte) error {
  1403  	return nil
  1404  }
  1405  
  1406  // IPPathMtuReplaceEndReply defines message 'ip_path_mtu_replace_end_reply'.
  1407  type IPPathMtuReplaceEndReply struct {
  1408  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1409  }
  1410  
  1411  func (m *IPPathMtuReplaceEndReply) Reset()               { *m = IPPathMtuReplaceEndReply{} }
  1412  func (*IPPathMtuReplaceEndReply) GetMessageName() string { return "ip_path_mtu_replace_end_reply" }
  1413  func (*IPPathMtuReplaceEndReply) GetCrcString() string   { return "e8d4e804" }
  1414  func (*IPPathMtuReplaceEndReply) GetMessageType() api.MessageType {
  1415  	return api.ReplyMessage
  1416  }
  1417  
  1418  func (m *IPPathMtuReplaceEndReply) Size() (size int) {
  1419  	if m == nil {
  1420  		return 0
  1421  	}
  1422  	size += 4 // m.Retval
  1423  	return size
  1424  }
  1425  func (m *IPPathMtuReplaceEndReply) Marshal(b []byte) ([]byte, error) {
  1426  	if b == nil {
  1427  		b = make([]byte, m.Size())
  1428  	}
  1429  	buf := codec.NewBuffer(b)
  1430  	buf.EncodeInt32(m.Retval)
  1431  	return buf.Bytes(), nil
  1432  }
  1433  func (m *IPPathMtuReplaceEndReply) Unmarshal(b []byte) error {
  1434  	buf := codec.NewBuffer(b)
  1435  	m.Retval = buf.DecodeInt32()
  1436  	return nil
  1437  }
  1438  
  1439  // IPPathMtuUpdate defines message 'ip_path_mtu_update'.
  1440  type IPPathMtuUpdate struct {
  1441  	Pmtu IPPathMtu `binapi:"ip_path_mtu,name=pmtu" json:"pmtu,omitempty"`
  1442  }
  1443  
  1444  func (m *IPPathMtuUpdate) Reset()               { *m = IPPathMtuUpdate{} }
  1445  func (*IPPathMtuUpdate) GetMessageName() string { return "ip_path_mtu_update" }
  1446  func (*IPPathMtuUpdate) GetCrcString() string   { return "10bbe5cb" }
  1447  func (*IPPathMtuUpdate) GetMessageType() api.MessageType {
  1448  	return api.RequestMessage
  1449  }
  1450  
  1451  func (m *IPPathMtuUpdate) Size() (size int) {
  1452  	if m == nil {
  1453  		return 0
  1454  	}
  1455  	size += 4      // m.Pmtu.ClientIndex
  1456  	size += 4      // m.Pmtu.Context
  1457  	size += 4      // m.Pmtu.TableID
  1458  	size += 1      // m.Pmtu.Nh.Af
  1459  	size += 1 * 16 // m.Pmtu.Nh.Un
  1460  	size += 2      // m.Pmtu.PathMtu
  1461  	return size
  1462  }
  1463  func (m *IPPathMtuUpdate) Marshal(b []byte) ([]byte, error) {
  1464  	if b == nil {
  1465  		b = make([]byte, m.Size())
  1466  	}
  1467  	buf := codec.NewBuffer(b)
  1468  	buf.EncodeUint32(m.Pmtu.ClientIndex)
  1469  	buf.EncodeUint32(m.Pmtu.Context)
  1470  	buf.EncodeUint32(m.Pmtu.TableID)
  1471  	buf.EncodeUint8(uint8(m.Pmtu.Nh.Af))
  1472  	buf.EncodeBytes(m.Pmtu.Nh.Un.XXX_UnionData[:], 16)
  1473  	buf.EncodeUint16(m.Pmtu.PathMtu)
  1474  	return buf.Bytes(), nil
  1475  }
  1476  func (m *IPPathMtuUpdate) Unmarshal(b []byte) error {
  1477  	buf := codec.NewBuffer(b)
  1478  	m.Pmtu.ClientIndex = buf.DecodeUint32()
  1479  	m.Pmtu.Context = buf.DecodeUint32()
  1480  	m.Pmtu.TableID = buf.DecodeUint32()
  1481  	m.Pmtu.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1482  	copy(m.Pmtu.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1483  	m.Pmtu.PathMtu = buf.DecodeUint16()
  1484  	return nil
  1485  }
  1486  
  1487  // IPPathMtuUpdateReply defines message 'ip_path_mtu_update_reply'.
  1488  type IPPathMtuUpdateReply struct {
  1489  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1490  }
  1491  
  1492  func (m *IPPathMtuUpdateReply) Reset()               { *m = IPPathMtuUpdateReply{} }
  1493  func (*IPPathMtuUpdateReply) GetMessageName() string { return "ip_path_mtu_update_reply" }
  1494  func (*IPPathMtuUpdateReply) GetCrcString() string   { return "e8d4e804" }
  1495  func (*IPPathMtuUpdateReply) GetMessageType() api.MessageType {
  1496  	return api.ReplyMessage
  1497  }
  1498  
  1499  func (m *IPPathMtuUpdateReply) Size() (size int) {
  1500  	if m == nil {
  1501  		return 0
  1502  	}
  1503  	size += 4 // m.Retval
  1504  	return size
  1505  }
  1506  func (m *IPPathMtuUpdateReply) Marshal(b []byte) ([]byte, error) {
  1507  	if b == nil {
  1508  		b = make([]byte, m.Size())
  1509  	}
  1510  	buf := codec.NewBuffer(b)
  1511  	buf.EncodeInt32(m.Retval)
  1512  	return buf.Bytes(), nil
  1513  }
  1514  func (m *IPPathMtuUpdateReply) Unmarshal(b []byte) error {
  1515  	buf := codec.NewBuffer(b)
  1516  	m.Retval = buf.DecodeInt32()
  1517  	return nil
  1518  }
  1519  
  1520  // IPPuntPolice defines message 'ip_punt_police'.
  1521  type IPPuntPolice struct {
  1522  	PolicerIndex uint32 `binapi:"u32,name=policer_index" json:"policer_index,omitempty"`
  1523  	IsAdd        bool   `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"`
  1524  	IsIP6        bool   `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"`
  1525  }
  1526  
  1527  func (m *IPPuntPolice) Reset()               { *m = IPPuntPolice{} }
  1528  func (*IPPuntPolice) GetMessageName() string { return "ip_punt_police" }
  1529  func (*IPPuntPolice) GetCrcString() string   { return "db867cea" }
  1530  func (*IPPuntPolice) GetMessageType() api.MessageType {
  1531  	return api.RequestMessage
  1532  }
  1533  
  1534  func (m *IPPuntPolice) Size() (size int) {
  1535  	if m == nil {
  1536  		return 0
  1537  	}
  1538  	size += 4 // m.PolicerIndex
  1539  	size += 1 // m.IsAdd
  1540  	size += 1 // m.IsIP6
  1541  	return size
  1542  }
  1543  func (m *IPPuntPolice) Marshal(b []byte) ([]byte, error) {
  1544  	if b == nil {
  1545  		b = make([]byte, m.Size())
  1546  	}
  1547  	buf := codec.NewBuffer(b)
  1548  	buf.EncodeUint32(m.PolicerIndex)
  1549  	buf.EncodeBool(m.IsAdd)
  1550  	buf.EncodeBool(m.IsIP6)
  1551  	return buf.Bytes(), nil
  1552  }
  1553  func (m *IPPuntPolice) Unmarshal(b []byte) error {
  1554  	buf := codec.NewBuffer(b)
  1555  	m.PolicerIndex = buf.DecodeUint32()
  1556  	m.IsAdd = buf.DecodeBool()
  1557  	m.IsIP6 = buf.DecodeBool()
  1558  	return nil
  1559  }
  1560  
  1561  // IPPuntPoliceReply defines message 'ip_punt_police_reply'.
  1562  type IPPuntPoliceReply struct {
  1563  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1564  }
  1565  
  1566  func (m *IPPuntPoliceReply) Reset()               { *m = IPPuntPoliceReply{} }
  1567  func (*IPPuntPoliceReply) GetMessageName() string { return "ip_punt_police_reply" }
  1568  func (*IPPuntPoliceReply) GetCrcString() string   { return "e8d4e804" }
  1569  func (*IPPuntPoliceReply) GetMessageType() api.MessageType {
  1570  	return api.ReplyMessage
  1571  }
  1572  
  1573  func (m *IPPuntPoliceReply) Size() (size int) {
  1574  	if m == nil {
  1575  		return 0
  1576  	}
  1577  	size += 4 // m.Retval
  1578  	return size
  1579  }
  1580  func (m *IPPuntPoliceReply) Marshal(b []byte) ([]byte, error) {
  1581  	if b == nil {
  1582  		b = make([]byte, m.Size())
  1583  	}
  1584  	buf := codec.NewBuffer(b)
  1585  	buf.EncodeInt32(m.Retval)
  1586  	return buf.Bytes(), nil
  1587  }
  1588  func (m *IPPuntPoliceReply) Unmarshal(b []byte) error {
  1589  	buf := codec.NewBuffer(b)
  1590  	m.Retval = buf.DecodeInt32()
  1591  	return nil
  1592  }
  1593  
  1594  // IPPuntRedirect defines message 'ip_punt_redirect'.
  1595  // Deprecated: the message will be removed in the future versions
  1596  type IPPuntRedirect struct {
  1597  	Punt  PuntRedirect `binapi:"punt_redirect,name=punt" json:"punt,omitempty"`
  1598  	IsAdd bool         `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"`
  1599  }
  1600  
  1601  func (m *IPPuntRedirect) Reset()               { *m = IPPuntRedirect{} }
  1602  func (*IPPuntRedirect) GetMessageName() string { return "ip_punt_redirect" }
  1603  func (*IPPuntRedirect) GetCrcString() string   { return "6580f635" }
  1604  func (*IPPuntRedirect) GetMessageType() api.MessageType {
  1605  	return api.RequestMessage
  1606  }
  1607  
  1608  func (m *IPPuntRedirect) Size() (size int) {
  1609  	if m == nil {
  1610  		return 0
  1611  	}
  1612  	size += 4      // m.Punt.RxSwIfIndex
  1613  	size += 4      // m.Punt.TxSwIfIndex
  1614  	size += 1      // m.Punt.Nh.Af
  1615  	size += 1 * 16 // m.Punt.Nh.Un
  1616  	size += 1      // m.IsAdd
  1617  	return size
  1618  }
  1619  func (m *IPPuntRedirect) Marshal(b []byte) ([]byte, error) {
  1620  	if b == nil {
  1621  		b = make([]byte, m.Size())
  1622  	}
  1623  	buf := codec.NewBuffer(b)
  1624  	buf.EncodeUint32(uint32(m.Punt.RxSwIfIndex))
  1625  	buf.EncodeUint32(uint32(m.Punt.TxSwIfIndex))
  1626  	buf.EncodeUint8(uint8(m.Punt.Nh.Af))
  1627  	buf.EncodeBytes(m.Punt.Nh.Un.XXX_UnionData[:], 16)
  1628  	buf.EncodeBool(m.IsAdd)
  1629  	return buf.Bytes(), nil
  1630  }
  1631  func (m *IPPuntRedirect) Unmarshal(b []byte) error {
  1632  	buf := codec.NewBuffer(b)
  1633  	m.Punt.RxSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1634  	m.Punt.TxSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1635  	m.Punt.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1636  	copy(m.Punt.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1637  	m.IsAdd = buf.DecodeBool()
  1638  	return nil
  1639  }
  1640  
  1641  // IPPuntRedirectDetails defines message 'ip_punt_redirect_details'.
  1642  type IPPuntRedirectDetails struct {
  1643  	Punt PuntRedirect `binapi:"punt_redirect,name=punt" json:"punt,omitempty"`
  1644  }
  1645  
  1646  func (m *IPPuntRedirectDetails) Reset()               { *m = IPPuntRedirectDetails{} }
  1647  func (*IPPuntRedirectDetails) GetMessageName() string { return "ip_punt_redirect_details" }
  1648  func (*IPPuntRedirectDetails) GetCrcString() string   { return "2cef63e7" }
  1649  func (*IPPuntRedirectDetails) GetMessageType() api.MessageType {
  1650  	return api.ReplyMessage
  1651  }
  1652  
  1653  func (m *IPPuntRedirectDetails) Size() (size int) {
  1654  	if m == nil {
  1655  		return 0
  1656  	}
  1657  	size += 4      // m.Punt.RxSwIfIndex
  1658  	size += 4      // m.Punt.TxSwIfIndex
  1659  	size += 1      // m.Punt.Nh.Af
  1660  	size += 1 * 16 // m.Punt.Nh.Un
  1661  	return size
  1662  }
  1663  func (m *IPPuntRedirectDetails) Marshal(b []byte) ([]byte, error) {
  1664  	if b == nil {
  1665  		b = make([]byte, m.Size())
  1666  	}
  1667  	buf := codec.NewBuffer(b)
  1668  	buf.EncodeUint32(uint32(m.Punt.RxSwIfIndex))
  1669  	buf.EncodeUint32(uint32(m.Punt.TxSwIfIndex))
  1670  	buf.EncodeUint8(uint8(m.Punt.Nh.Af))
  1671  	buf.EncodeBytes(m.Punt.Nh.Un.XXX_UnionData[:], 16)
  1672  	return buf.Bytes(), nil
  1673  }
  1674  func (m *IPPuntRedirectDetails) Unmarshal(b []byte) error {
  1675  	buf := codec.NewBuffer(b)
  1676  	m.Punt.RxSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1677  	m.Punt.TxSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1678  	m.Punt.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1679  	copy(m.Punt.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  1680  	return nil
  1681  }
  1682  
  1683  // IPPuntRedirectDump defines message 'ip_punt_redirect_dump'.
  1684  type IPPuntRedirectDump struct {
  1685  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  1686  	IsIPv6    bool                           `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"`
  1687  }
  1688  
  1689  func (m *IPPuntRedirectDump) Reset()               { *m = IPPuntRedirectDump{} }
  1690  func (*IPPuntRedirectDump) GetMessageName() string { return "ip_punt_redirect_dump" }
  1691  func (*IPPuntRedirectDump) GetCrcString() string   { return "2d033de4" }
  1692  func (*IPPuntRedirectDump) GetMessageType() api.MessageType {
  1693  	return api.RequestMessage
  1694  }
  1695  
  1696  func (m *IPPuntRedirectDump) Size() (size int) {
  1697  	if m == nil {
  1698  		return 0
  1699  	}
  1700  	size += 4 // m.SwIfIndex
  1701  	size += 1 // m.IsIPv6
  1702  	return size
  1703  }
  1704  func (m *IPPuntRedirectDump) Marshal(b []byte) ([]byte, error) {
  1705  	if b == nil {
  1706  		b = make([]byte, m.Size())
  1707  	}
  1708  	buf := codec.NewBuffer(b)
  1709  	buf.EncodeUint32(uint32(m.SwIfIndex))
  1710  	buf.EncodeBool(m.IsIPv6)
  1711  	return buf.Bytes(), nil
  1712  }
  1713  func (m *IPPuntRedirectDump) Unmarshal(b []byte) error {
  1714  	buf := codec.NewBuffer(b)
  1715  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1716  	m.IsIPv6 = buf.DecodeBool()
  1717  	return nil
  1718  }
  1719  
  1720  // IPPuntRedirectReply defines message 'ip_punt_redirect_reply'.
  1721  // Deprecated: the message will be removed in the future versions
  1722  type IPPuntRedirectReply struct {
  1723  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1724  }
  1725  
  1726  func (m *IPPuntRedirectReply) Reset()               { *m = IPPuntRedirectReply{} }
  1727  func (*IPPuntRedirectReply) GetMessageName() string { return "ip_punt_redirect_reply" }
  1728  func (*IPPuntRedirectReply) GetCrcString() string   { return "e8d4e804" }
  1729  func (*IPPuntRedirectReply) GetMessageType() api.MessageType {
  1730  	return api.ReplyMessage
  1731  }
  1732  
  1733  func (m *IPPuntRedirectReply) Size() (size int) {
  1734  	if m == nil {
  1735  		return 0
  1736  	}
  1737  	size += 4 // m.Retval
  1738  	return size
  1739  }
  1740  func (m *IPPuntRedirectReply) Marshal(b []byte) ([]byte, error) {
  1741  	if b == nil {
  1742  		b = make([]byte, m.Size())
  1743  	}
  1744  	buf := codec.NewBuffer(b)
  1745  	buf.EncodeInt32(m.Retval)
  1746  	return buf.Bytes(), nil
  1747  }
  1748  func (m *IPPuntRedirectReply) Unmarshal(b []byte) error {
  1749  	buf := codec.NewBuffer(b)
  1750  	m.Retval = buf.DecodeInt32()
  1751  	return nil
  1752  }
  1753  
  1754  // IPPuntRedirectV2Details defines message 'ip_punt_redirect_v2_details'.
  1755  type IPPuntRedirectV2Details struct {
  1756  	Punt PuntRedirectV2 `binapi:"punt_redirect_v2,name=punt" json:"punt,omitempty"`
  1757  }
  1758  
  1759  func (m *IPPuntRedirectV2Details) Reset()               { *m = IPPuntRedirectV2Details{} }
  1760  func (*IPPuntRedirectV2Details) GetMessageName() string { return "ip_punt_redirect_v2_details" }
  1761  func (*IPPuntRedirectV2Details) GetCrcString() string   { return "7ba42e1d" }
  1762  func (*IPPuntRedirectV2Details) GetMessageType() api.MessageType {
  1763  	return api.ReplyMessage
  1764  }
  1765  
  1766  func (m *IPPuntRedirectV2Details) Size() (size int) {
  1767  	if m == nil {
  1768  		return 0
  1769  	}
  1770  	size += 4 // m.Punt.RxSwIfIndex
  1771  	size += 1 // m.Punt.Af
  1772  	size += 4 // m.Punt.NPaths
  1773  	for j2 := 0; j2 < len(m.Punt.Paths); j2++ {
  1774  		var s2 fib_types.FibPath
  1775  		_ = s2
  1776  		if j2 < len(m.Punt.Paths) {
  1777  			s2 = m.Punt.Paths[j2]
  1778  		}
  1779  		size += 4      // s2.SwIfIndex
  1780  		size += 4      // s2.TableID
  1781  		size += 4      // s2.RpfID
  1782  		size += 1      // s2.Weight
  1783  		size += 1      // s2.Preference
  1784  		size += 4      // s2.Type
  1785  		size += 4      // s2.Flags
  1786  		size += 4      // s2.Proto
  1787  		size += 1 * 16 // s2.Nh.Address
  1788  		size += 4      // s2.Nh.ViaLabel
  1789  		size += 4      // s2.Nh.ObjID
  1790  		size += 4      // s2.Nh.ClassifyTableIndex
  1791  		size += 1      // s2.NLabels
  1792  		for j3 := 0; j3 < 16; j3++ {
  1793  			size += 1 // s2.LabelStack[j3].IsUniform
  1794  			size += 4 // s2.LabelStack[j3].Label
  1795  			size += 1 // s2.LabelStack[j3].TTL
  1796  			size += 1 // s2.LabelStack[j3].Exp
  1797  		}
  1798  	}
  1799  	return size
  1800  }
  1801  func (m *IPPuntRedirectV2Details) Marshal(b []byte) ([]byte, error) {
  1802  	if b == nil {
  1803  		b = make([]byte, m.Size())
  1804  	}
  1805  	buf := codec.NewBuffer(b)
  1806  	buf.EncodeUint32(uint32(m.Punt.RxSwIfIndex))
  1807  	buf.EncodeUint8(uint8(m.Punt.Af))
  1808  	buf.EncodeUint32(uint32(len(m.Punt.Paths)))
  1809  	for j1 := 0; j1 < len(m.Punt.Paths); j1++ {
  1810  		var v1 fib_types.FibPath // Paths
  1811  		if j1 < len(m.Punt.Paths) {
  1812  			v1 = m.Punt.Paths[j1]
  1813  		}
  1814  		buf.EncodeUint32(v1.SwIfIndex)
  1815  		buf.EncodeUint32(v1.TableID)
  1816  		buf.EncodeUint32(v1.RpfID)
  1817  		buf.EncodeUint8(v1.Weight)
  1818  		buf.EncodeUint8(v1.Preference)
  1819  		buf.EncodeUint32(uint32(v1.Type))
  1820  		buf.EncodeUint32(uint32(v1.Flags))
  1821  		buf.EncodeUint32(uint32(v1.Proto))
  1822  		buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 16)
  1823  		buf.EncodeUint32(v1.Nh.ViaLabel)
  1824  		buf.EncodeUint32(v1.Nh.ObjID)
  1825  		buf.EncodeUint32(v1.Nh.ClassifyTableIndex)
  1826  		buf.EncodeUint8(v1.NLabels)
  1827  		for j2 := 0; j2 < 16; j2++ {
  1828  			buf.EncodeUint8(v1.LabelStack[j2].IsUniform)
  1829  			buf.EncodeUint32(v1.LabelStack[j2].Label)
  1830  			buf.EncodeUint8(v1.LabelStack[j2].TTL)
  1831  			buf.EncodeUint8(v1.LabelStack[j2].Exp)
  1832  		}
  1833  	}
  1834  	return buf.Bytes(), nil
  1835  }
  1836  func (m *IPPuntRedirectV2Details) Unmarshal(b []byte) error {
  1837  	buf := codec.NewBuffer(b)
  1838  	m.Punt.RxSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1839  	m.Punt.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1840  	m.Punt.NPaths = buf.DecodeUint32()
  1841  	m.Punt.Paths = make([]fib_types.FibPath, m.Punt.NPaths)
  1842  	for j1 := 0; j1 < len(m.Punt.Paths); j1++ {
  1843  		m.Punt.Paths[j1].SwIfIndex = buf.DecodeUint32()
  1844  		m.Punt.Paths[j1].TableID = buf.DecodeUint32()
  1845  		m.Punt.Paths[j1].RpfID = buf.DecodeUint32()
  1846  		m.Punt.Paths[j1].Weight = buf.DecodeUint8()
  1847  		m.Punt.Paths[j1].Preference = buf.DecodeUint8()
  1848  		m.Punt.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32())
  1849  		m.Punt.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32())
  1850  		m.Punt.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32())
  1851  		copy(m.Punt.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16))
  1852  		m.Punt.Paths[j1].Nh.ViaLabel = buf.DecodeUint32()
  1853  		m.Punt.Paths[j1].Nh.ObjID = buf.DecodeUint32()
  1854  		m.Punt.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32()
  1855  		m.Punt.Paths[j1].NLabels = buf.DecodeUint8()
  1856  		for j2 := 0; j2 < 16; j2++ {
  1857  			m.Punt.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8()
  1858  			m.Punt.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32()
  1859  			m.Punt.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8()
  1860  			m.Punt.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8()
  1861  		}
  1862  	}
  1863  	return nil
  1864  }
  1865  
  1866  // IPPuntRedirectV2Dump defines message 'ip_punt_redirect_v2_dump'.
  1867  type IPPuntRedirectV2Dump struct {
  1868  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  1869  	Af        ip_types.AddressFamily         `binapi:"address_family,name=af" json:"af,omitempty"`
  1870  }
  1871  
  1872  func (m *IPPuntRedirectV2Dump) Reset()               { *m = IPPuntRedirectV2Dump{} }
  1873  func (*IPPuntRedirectV2Dump) GetMessageName() string { return "ip_punt_redirect_v2_dump" }
  1874  func (*IPPuntRedirectV2Dump) GetCrcString() string   { return "d817a484" }
  1875  func (*IPPuntRedirectV2Dump) GetMessageType() api.MessageType {
  1876  	return api.RequestMessage
  1877  }
  1878  
  1879  func (m *IPPuntRedirectV2Dump) Size() (size int) {
  1880  	if m == nil {
  1881  		return 0
  1882  	}
  1883  	size += 4 // m.SwIfIndex
  1884  	size += 1 // m.Af
  1885  	return size
  1886  }
  1887  func (m *IPPuntRedirectV2Dump) Marshal(b []byte) ([]byte, error) {
  1888  	if b == nil {
  1889  		b = make([]byte, m.Size())
  1890  	}
  1891  	buf := codec.NewBuffer(b)
  1892  	buf.EncodeUint32(uint32(m.SwIfIndex))
  1893  	buf.EncodeUint8(uint8(m.Af))
  1894  	return buf.Bytes(), nil
  1895  }
  1896  func (m *IPPuntRedirectV2Dump) Unmarshal(b []byte) error {
  1897  	buf := codec.NewBuffer(b)
  1898  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1899  	m.Af = ip_types.AddressFamily(buf.DecodeUint8())
  1900  	return nil
  1901  }
  1902  
  1903  // IPReassemblyEnableDisable defines message 'ip_reassembly_enable_disable'.
  1904  type IPReassemblyEnableDisable struct {
  1905  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  1906  	EnableIP4 bool                           `binapi:"bool,name=enable_ip4" json:"enable_ip4,omitempty"`
  1907  	EnableIP6 bool                           `binapi:"bool,name=enable_ip6" json:"enable_ip6,omitempty"`
  1908  	Type      IPReassType                    `binapi:"ip_reass_type,name=type" json:"type,omitempty"`
  1909  }
  1910  
  1911  func (m *IPReassemblyEnableDisable) Reset()               { *m = IPReassemblyEnableDisable{} }
  1912  func (*IPReassemblyEnableDisable) GetMessageName() string { return "ip_reassembly_enable_disable" }
  1913  func (*IPReassemblyEnableDisable) GetCrcString() string   { return "eb77968d" }
  1914  func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType {
  1915  	return api.RequestMessage
  1916  }
  1917  
  1918  func (m *IPReassemblyEnableDisable) Size() (size int) {
  1919  	if m == nil {
  1920  		return 0
  1921  	}
  1922  	size += 4 // m.SwIfIndex
  1923  	size += 1 // m.EnableIP4
  1924  	size += 1 // m.EnableIP6
  1925  	size += 4 // m.Type
  1926  	return size
  1927  }
  1928  func (m *IPReassemblyEnableDisable) Marshal(b []byte) ([]byte, error) {
  1929  	if b == nil {
  1930  		b = make([]byte, m.Size())
  1931  	}
  1932  	buf := codec.NewBuffer(b)
  1933  	buf.EncodeUint32(uint32(m.SwIfIndex))
  1934  	buf.EncodeBool(m.EnableIP4)
  1935  	buf.EncodeBool(m.EnableIP6)
  1936  	buf.EncodeUint32(uint32(m.Type))
  1937  	return buf.Bytes(), nil
  1938  }
  1939  func (m *IPReassemblyEnableDisable) Unmarshal(b []byte) error {
  1940  	buf := codec.NewBuffer(b)
  1941  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  1942  	m.EnableIP4 = buf.DecodeBool()
  1943  	m.EnableIP6 = buf.DecodeBool()
  1944  	m.Type = IPReassType(buf.DecodeUint32())
  1945  	return nil
  1946  }
  1947  
  1948  // IPReassemblyEnableDisableReply defines message 'ip_reassembly_enable_disable_reply'.
  1949  type IPReassemblyEnableDisableReply struct {
  1950  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  1951  }
  1952  
  1953  func (m *IPReassemblyEnableDisableReply) Reset() { *m = IPReassemblyEnableDisableReply{} }
  1954  func (*IPReassemblyEnableDisableReply) GetMessageName() string {
  1955  	return "ip_reassembly_enable_disable_reply"
  1956  }
  1957  func (*IPReassemblyEnableDisableReply) GetCrcString() string { return "e8d4e804" }
  1958  func (*IPReassemblyEnableDisableReply) GetMessageType() api.MessageType {
  1959  	return api.ReplyMessage
  1960  }
  1961  
  1962  func (m *IPReassemblyEnableDisableReply) Size() (size int) {
  1963  	if m == nil {
  1964  		return 0
  1965  	}
  1966  	size += 4 // m.Retval
  1967  	return size
  1968  }
  1969  func (m *IPReassemblyEnableDisableReply) Marshal(b []byte) ([]byte, error) {
  1970  	if b == nil {
  1971  		b = make([]byte, m.Size())
  1972  	}
  1973  	buf := codec.NewBuffer(b)
  1974  	buf.EncodeInt32(m.Retval)
  1975  	return buf.Bytes(), nil
  1976  }
  1977  func (m *IPReassemblyEnableDisableReply) Unmarshal(b []byte) error {
  1978  	buf := codec.NewBuffer(b)
  1979  	m.Retval = buf.DecodeInt32()
  1980  	return nil
  1981  }
  1982  
  1983  // IPReassemblyGet defines message 'ip_reassembly_get'.
  1984  type IPReassemblyGet struct {
  1985  	IsIP6 bool        `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"`
  1986  	Type  IPReassType `binapi:"ip_reass_type,name=type" json:"type,omitempty"`
  1987  }
  1988  
  1989  func (m *IPReassemblyGet) Reset()               { *m = IPReassemblyGet{} }
  1990  func (*IPReassemblyGet) GetMessageName() string { return "ip_reassembly_get" }
  1991  func (*IPReassemblyGet) GetCrcString() string   { return "ea13ff63" }
  1992  func (*IPReassemblyGet) GetMessageType() api.MessageType {
  1993  	return api.RequestMessage
  1994  }
  1995  
  1996  func (m *IPReassemblyGet) Size() (size int) {
  1997  	if m == nil {
  1998  		return 0
  1999  	}
  2000  	size += 1 // m.IsIP6
  2001  	size += 4 // m.Type
  2002  	return size
  2003  }
  2004  func (m *IPReassemblyGet) Marshal(b []byte) ([]byte, error) {
  2005  	if b == nil {
  2006  		b = make([]byte, m.Size())
  2007  	}
  2008  	buf := codec.NewBuffer(b)
  2009  	buf.EncodeBool(m.IsIP6)
  2010  	buf.EncodeUint32(uint32(m.Type))
  2011  	return buf.Bytes(), nil
  2012  }
  2013  func (m *IPReassemblyGet) Unmarshal(b []byte) error {
  2014  	buf := codec.NewBuffer(b)
  2015  	m.IsIP6 = buf.DecodeBool()
  2016  	m.Type = IPReassType(buf.DecodeUint32())
  2017  	return nil
  2018  }
  2019  
  2020  // IPReassemblyGetReply defines message 'ip_reassembly_get_reply'.
  2021  type IPReassemblyGetReply struct {
  2022  	Retval               int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  2023  	TimeoutMs            uint32 `binapi:"u32,name=timeout_ms" json:"timeout_ms,omitempty"`
  2024  	MaxReassemblies      uint32 `binapi:"u32,name=max_reassemblies" json:"max_reassemblies,omitempty"`
  2025  	MaxReassemblyLength  uint32 `binapi:"u32,name=max_reassembly_length" json:"max_reassembly_length,omitempty"`
  2026  	ExpireWalkIntervalMs uint32 `binapi:"u32,name=expire_walk_interval_ms" json:"expire_walk_interval_ms,omitempty"`
  2027  	IsIP6                bool   `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"`
  2028  }
  2029  
  2030  func (m *IPReassemblyGetReply) Reset()               { *m = IPReassemblyGetReply{} }
  2031  func (*IPReassemblyGetReply) GetMessageName() string { return "ip_reassembly_get_reply" }
  2032  func (*IPReassemblyGetReply) GetCrcString() string   { return "d5eb8d34" }
  2033  func (*IPReassemblyGetReply) GetMessageType() api.MessageType {
  2034  	return api.ReplyMessage
  2035  }
  2036  
  2037  func (m *IPReassemblyGetReply) Size() (size int) {
  2038  	if m == nil {
  2039  		return 0
  2040  	}
  2041  	size += 4 // m.Retval
  2042  	size += 4 // m.TimeoutMs
  2043  	size += 4 // m.MaxReassemblies
  2044  	size += 4 // m.MaxReassemblyLength
  2045  	size += 4 // m.ExpireWalkIntervalMs
  2046  	size += 1 // m.IsIP6
  2047  	return size
  2048  }
  2049  func (m *IPReassemblyGetReply) Marshal(b []byte) ([]byte, error) {
  2050  	if b == nil {
  2051  		b = make([]byte, m.Size())
  2052  	}
  2053  	buf := codec.NewBuffer(b)
  2054  	buf.EncodeInt32(m.Retval)
  2055  	buf.EncodeUint32(m.TimeoutMs)
  2056  	buf.EncodeUint32(m.MaxReassemblies)
  2057  	buf.EncodeUint32(m.MaxReassemblyLength)
  2058  	buf.EncodeUint32(m.ExpireWalkIntervalMs)
  2059  	buf.EncodeBool(m.IsIP6)
  2060  	return buf.Bytes(), nil
  2061  }
  2062  func (m *IPReassemblyGetReply) Unmarshal(b []byte) error {
  2063  	buf := codec.NewBuffer(b)
  2064  	m.Retval = buf.DecodeInt32()
  2065  	m.TimeoutMs = buf.DecodeUint32()
  2066  	m.MaxReassemblies = buf.DecodeUint32()
  2067  	m.MaxReassemblyLength = buf.DecodeUint32()
  2068  	m.ExpireWalkIntervalMs = buf.DecodeUint32()
  2069  	m.IsIP6 = buf.DecodeBool()
  2070  	return nil
  2071  }
  2072  
  2073  // IPReassemblySet defines message 'ip_reassembly_set'.
  2074  type IPReassemblySet struct {
  2075  	TimeoutMs            uint32      `binapi:"u32,name=timeout_ms" json:"timeout_ms,omitempty"`
  2076  	MaxReassemblies      uint32      `binapi:"u32,name=max_reassemblies" json:"max_reassemblies,omitempty"`
  2077  	MaxReassemblyLength  uint32      `binapi:"u32,name=max_reassembly_length" json:"max_reassembly_length,omitempty"`
  2078  	ExpireWalkIntervalMs uint32      `binapi:"u32,name=expire_walk_interval_ms" json:"expire_walk_interval_ms,omitempty"`
  2079  	IsIP6                bool        `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"`
  2080  	Type                 IPReassType `binapi:"ip_reass_type,name=type" json:"type,omitempty"`
  2081  }
  2082  
  2083  func (m *IPReassemblySet) Reset()               { *m = IPReassemblySet{} }
  2084  func (*IPReassemblySet) GetMessageName() string { return "ip_reassembly_set" }
  2085  func (*IPReassemblySet) GetCrcString() string   { return "16467d25" }
  2086  func (*IPReassemblySet) GetMessageType() api.MessageType {
  2087  	return api.RequestMessage
  2088  }
  2089  
  2090  func (m *IPReassemblySet) Size() (size int) {
  2091  	if m == nil {
  2092  		return 0
  2093  	}
  2094  	size += 4 // m.TimeoutMs
  2095  	size += 4 // m.MaxReassemblies
  2096  	size += 4 // m.MaxReassemblyLength
  2097  	size += 4 // m.ExpireWalkIntervalMs
  2098  	size += 1 // m.IsIP6
  2099  	size += 4 // m.Type
  2100  	return size
  2101  }
  2102  func (m *IPReassemblySet) Marshal(b []byte) ([]byte, error) {
  2103  	if b == nil {
  2104  		b = make([]byte, m.Size())
  2105  	}
  2106  	buf := codec.NewBuffer(b)
  2107  	buf.EncodeUint32(m.TimeoutMs)
  2108  	buf.EncodeUint32(m.MaxReassemblies)
  2109  	buf.EncodeUint32(m.MaxReassemblyLength)
  2110  	buf.EncodeUint32(m.ExpireWalkIntervalMs)
  2111  	buf.EncodeBool(m.IsIP6)
  2112  	buf.EncodeUint32(uint32(m.Type))
  2113  	return buf.Bytes(), nil
  2114  }
  2115  func (m *IPReassemblySet) Unmarshal(b []byte) error {
  2116  	buf := codec.NewBuffer(b)
  2117  	m.TimeoutMs = buf.DecodeUint32()
  2118  	m.MaxReassemblies = buf.DecodeUint32()
  2119  	m.MaxReassemblyLength = buf.DecodeUint32()
  2120  	m.ExpireWalkIntervalMs = buf.DecodeUint32()
  2121  	m.IsIP6 = buf.DecodeBool()
  2122  	m.Type = IPReassType(buf.DecodeUint32())
  2123  	return nil
  2124  }
  2125  
  2126  // IPReassemblySetReply defines message 'ip_reassembly_set_reply'.
  2127  type IPReassemblySetReply struct {
  2128  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  2129  }
  2130  
  2131  func (m *IPReassemblySetReply) Reset()               { *m = IPReassemblySetReply{} }
  2132  func (*IPReassemblySetReply) GetMessageName() string { return "ip_reassembly_set_reply" }
  2133  func (*IPReassemblySetReply) GetCrcString() string   { return "e8d4e804" }
  2134  func (*IPReassemblySetReply) GetMessageType() api.MessageType {
  2135  	return api.ReplyMessage
  2136  }
  2137  
  2138  func (m *IPReassemblySetReply) Size() (size int) {
  2139  	if m == nil {
  2140  		return 0
  2141  	}
  2142  	size += 4 // m.Retval
  2143  	return size
  2144  }
  2145  func (m *IPReassemblySetReply) Marshal(b []byte) ([]byte, error) {
  2146  	if b == nil {
  2147  		b = make([]byte, m.Size())
  2148  	}
  2149  	buf := codec.NewBuffer(b)
  2150  	buf.EncodeInt32(m.Retval)
  2151  	return buf.Bytes(), nil
  2152  }
  2153  func (m *IPReassemblySetReply) Unmarshal(b []byte) error {
  2154  	buf := codec.NewBuffer(b)
  2155  	m.Retval = buf.DecodeInt32()
  2156  	return nil
  2157  }
  2158  
  2159  // IPRouteAddDel defines message 'ip_route_add_del'.
  2160  type IPRouteAddDel struct {
  2161  	IsAdd       bool    `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"`
  2162  	IsMultipath bool    `binapi:"bool,name=is_multipath" json:"is_multipath,omitempty"`
  2163  	Route       IPRoute `binapi:"ip_route,name=route" json:"route,omitempty"`
  2164  }
  2165  
  2166  func (m *IPRouteAddDel) Reset()               { *m = IPRouteAddDel{} }
  2167  func (*IPRouteAddDel) GetMessageName() string { return "ip_route_add_del" }
  2168  func (*IPRouteAddDel) GetCrcString() string   { return "b8ecfe0d" }
  2169  func (*IPRouteAddDel) GetMessageType() api.MessageType {
  2170  	return api.RequestMessage
  2171  }
  2172  
  2173  func (m *IPRouteAddDel) Size() (size int) {
  2174  	if m == nil {
  2175  		return 0
  2176  	}
  2177  	size += 1      // m.IsAdd
  2178  	size += 1      // m.IsMultipath
  2179  	size += 4      // m.Route.TableID
  2180  	size += 4      // m.Route.StatsIndex
  2181  	size += 1      // m.Route.Prefix.Address.Af
  2182  	size += 1 * 16 // m.Route.Prefix.Address.Un
  2183  	size += 1      // m.Route.Prefix.Len
  2184  	size += 1      // m.Route.NPaths
  2185  	for j2 := 0; j2 < len(m.Route.Paths); j2++ {
  2186  		var s2 fib_types.FibPath
  2187  		_ = s2
  2188  		if j2 < len(m.Route.Paths) {
  2189  			s2 = m.Route.Paths[j2]
  2190  		}
  2191  		size += 4      // s2.SwIfIndex
  2192  		size += 4      // s2.TableID
  2193  		size += 4      // s2.RpfID
  2194  		size += 1      // s2.Weight
  2195  		size += 1      // s2.Preference
  2196  		size += 4      // s2.Type
  2197  		size += 4      // s2.Flags
  2198  		size += 4      // s2.Proto
  2199  		size += 1 * 16 // s2.Nh.Address
  2200  		size += 4      // s2.Nh.ViaLabel
  2201  		size += 4      // s2.Nh.ObjID
  2202  		size += 4      // s2.Nh.ClassifyTableIndex
  2203  		size += 1      // s2.NLabels
  2204  		for j3 := 0; j3 < 16; j3++ {
  2205  			size += 1 // s2.LabelStack[j3].IsUniform
  2206  			size += 4 // s2.LabelStack[j3].Label
  2207  			size += 1 // s2.LabelStack[j3].TTL
  2208  			size += 1 // s2.LabelStack[j3].Exp
  2209  		}
  2210  	}
  2211  	return size
  2212  }
  2213  func (m *IPRouteAddDel) Marshal(b []byte) ([]byte, error) {
  2214  	if b == nil {
  2215  		b = make([]byte, m.Size())
  2216  	}
  2217  	buf := codec.NewBuffer(b)
  2218  	buf.EncodeBool(m.IsAdd)
  2219  	buf.EncodeBool(m.IsMultipath)
  2220  	buf.EncodeUint32(m.Route.TableID)
  2221  	buf.EncodeUint32(m.Route.StatsIndex)
  2222  	buf.EncodeUint8(uint8(m.Route.Prefix.Address.Af))
  2223  	buf.EncodeBytes(m.Route.Prefix.Address.Un.XXX_UnionData[:], 16)
  2224  	buf.EncodeUint8(m.Route.Prefix.Len)
  2225  	buf.EncodeUint8(uint8(len(m.Route.Paths)))
  2226  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  2227  		var v1 fib_types.FibPath // Paths
  2228  		if j1 < len(m.Route.Paths) {
  2229  			v1 = m.Route.Paths[j1]
  2230  		}
  2231  		buf.EncodeUint32(v1.SwIfIndex)
  2232  		buf.EncodeUint32(v1.TableID)
  2233  		buf.EncodeUint32(v1.RpfID)
  2234  		buf.EncodeUint8(v1.Weight)
  2235  		buf.EncodeUint8(v1.Preference)
  2236  		buf.EncodeUint32(uint32(v1.Type))
  2237  		buf.EncodeUint32(uint32(v1.Flags))
  2238  		buf.EncodeUint32(uint32(v1.Proto))
  2239  		buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 16)
  2240  		buf.EncodeUint32(v1.Nh.ViaLabel)
  2241  		buf.EncodeUint32(v1.Nh.ObjID)
  2242  		buf.EncodeUint32(v1.Nh.ClassifyTableIndex)
  2243  		buf.EncodeUint8(v1.NLabels)
  2244  		for j2 := 0; j2 < 16; j2++ {
  2245  			buf.EncodeUint8(v1.LabelStack[j2].IsUniform)
  2246  			buf.EncodeUint32(v1.LabelStack[j2].Label)
  2247  			buf.EncodeUint8(v1.LabelStack[j2].TTL)
  2248  			buf.EncodeUint8(v1.LabelStack[j2].Exp)
  2249  		}
  2250  	}
  2251  	return buf.Bytes(), nil
  2252  }
  2253  func (m *IPRouteAddDel) Unmarshal(b []byte) error {
  2254  	buf := codec.NewBuffer(b)
  2255  	m.IsAdd = buf.DecodeBool()
  2256  	m.IsMultipath = buf.DecodeBool()
  2257  	m.Route.TableID = buf.DecodeUint32()
  2258  	m.Route.StatsIndex = buf.DecodeUint32()
  2259  	m.Route.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2260  	copy(m.Route.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2261  	m.Route.Prefix.Len = buf.DecodeUint8()
  2262  	m.Route.NPaths = buf.DecodeUint8()
  2263  	m.Route.Paths = make([]fib_types.FibPath, m.Route.NPaths)
  2264  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  2265  		m.Route.Paths[j1].SwIfIndex = buf.DecodeUint32()
  2266  		m.Route.Paths[j1].TableID = buf.DecodeUint32()
  2267  		m.Route.Paths[j1].RpfID = buf.DecodeUint32()
  2268  		m.Route.Paths[j1].Weight = buf.DecodeUint8()
  2269  		m.Route.Paths[j1].Preference = buf.DecodeUint8()
  2270  		m.Route.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32())
  2271  		m.Route.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32())
  2272  		m.Route.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32())
  2273  		copy(m.Route.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16))
  2274  		m.Route.Paths[j1].Nh.ViaLabel = buf.DecodeUint32()
  2275  		m.Route.Paths[j1].Nh.ObjID = buf.DecodeUint32()
  2276  		m.Route.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32()
  2277  		m.Route.Paths[j1].NLabels = buf.DecodeUint8()
  2278  		for j2 := 0; j2 < 16; j2++ {
  2279  			m.Route.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8()
  2280  			m.Route.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32()
  2281  			m.Route.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8()
  2282  			m.Route.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8()
  2283  		}
  2284  	}
  2285  	return nil
  2286  }
  2287  
  2288  // IPRouteAddDelReply defines message 'ip_route_add_del_reply'.
  2289  type IPRouteAddDelReply struct {
  2290  	Retval     int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  2291  	StatsIndex uint32 `binapi:"u32,name=stats_index" json:"stats_index,omitempty"`
  2292  }
  2293  
  2294  func (m *IPRouteAddDelReply) Reset()               { *m = IPRouteAddDelReply{} }
  2295  func (*IPRouteAddDelReply) GetMessageName() string { return "ip_route_add_del_reply" }
  2296  func (*IPRouteAddDelReply) GetCrcString() string   { return "1992deab" }
  2297  func (*IPRouteAddDelReply) GetMessageType() api.MessageType {
  2298  	return api.ReplyMessage
  2299  }
  2300  
  2301  func (m *IPRouteAddDelReply) Size() (size int) {
  2302  	if m == nil {
  2303  		return 0
  2304  	}
  2305  	size += 4 // m.Retval
  2306  	size += 4 // m.StatsIndex
  2307  	return size
  2308  }
  2309  func (m *IPRouteAddDelReply) Marshal(b []byte) ([]byte, error) {
  2310  	if b == nil {
  2311  		b = make([]byte, m.Size())
  2312  	}
  2313  	buf := codec.NewBuffer(b)
  2314  	buf.EncodeInt32(m.Retval)
  2315  	buf.EncodeUint32(m.StatsIndex)
  2316  	return buf.Bytes(), nil
  2317  }
  2318  func (m *IPRouteAddDelReply) Unmarshal(b []byte) error {
  2319  	buf := codec.NewBuffer(b)
  2320  	m.Retval = buf.DecodeInt32()
  2321  	m.StatsIndex = buf.DecodeUint32()
  2322  	return nil
  2323  }
  2324  
  2325  // IPRouteAddDelV2 defines message 'ip_route_add_del_v2'.
  2326  // InProgress: the message form may change in the future versions
  2327  type IPRouteAddDelV2 struct {
  2328  	IsAdd       bool      `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"`
  2329  	IsMultipath bool      `binapi:"bool,name=is_multipath" json:"is_multipath,omitempty"`
  2330  	Route       IPRouteV2 `binapi:"ip_route_v2,name=route" json:"route,omitempty"`
  2331  }
  2332  
  2333  func (m *IPRouteAddDelV2) Reset()               { *m = IPRouteAddDelV2{} }
  2334  func (*IPRouteAddDelV2) GetMessageName() string { return "ip_route_add_del_v2" }
  2335  func (*IPRouteAddDelV2) GetCrcString() string   { return "521ef330" }
  2336  func (*IPRouteAddDelV2) GetMessageType() api.MessageType {
  2337  	return api.RequestMessage
  2338  }
  2339  
  2340  func (m *IPRouteAddDelV2) Size() (size int) {
  2341  	if m == nil {
  2342  		return 0
  2343  	}
  2344  	size += 1      // m.IsAdd
  2345  	size += 1      // m.IsMultipath
  2346  	size += 4      // m.Route.TableID
  2347  	size += 4      // m.Route.StatsIndex
  2348  	size += 1      // m.Route.Prefix.Address.Af
  2349  	size += 1 * 16 // m.Route.Prefix.Address.Un
  2350  	size += 1      // m.Route.Prefix.Len
  2351  	size += 1      // m.Route.NPaths
  2352  	size += 1      // m.Route.Src
  2353  	for j2 := 0; j2 < len(m.Route.Paths); j2++ {
  2354  		var s2 fib_types.FibPath
  2355  		_ = s2
  2356  		if j2 < len(m.Route.Paths) {
  2357  			s2 = m.Route.Paths[j2]
  2358  		}
  2359  		size += 4      // s2.SwIfIndex
  2360  		size += 4      // s2.TableID
  2361  		size += 4      // s2.RpfID
  2362  		size += 1      // s2.Weight
  2363  		size += 1      // s2.Preference
  2364  		size += 4      // s2.Type
  2365  		size += 4      // s2.Flags
  2366  		size += 4      // s2.Proto
  2367  		size += 1 * 16 // s2.Nh.Address
  2368  		size += 4      // s2.Nh.ViaLabel
  2369  		size += 4      // s2.Nh.ObjID
  2370  		size += 4      // s2.Nh.ClassifyTableIndex
  2371  		size += 1      // s2.NLabels
  2372  		for j3 := 0; j3 < 16; j3++ {
  2373  			size += 1 // s2.LabelStack[j3].IsUniform
  2374  			size += 4 // s2.LabelStack[j3].Label
  2375  			size += 1 // s2.LabelStack[j3].TTL
  2376  			size += 1 // s2.LabelStack[j3].Exp
  2377  		}
  2378  	}
  2379  	return size
  2380  }
  2381  func (m *IPRouteAddDelV2) Marshal(b []byte) ([]byte, error) {
  2382  	if b == nil {
  2383  		b = make([]byte, m.Size())
  2384  	}
  2385  	buf := codec.NewBuffer(b)
  2386  	buf.EncodeBool(m.IsAdd)
  2387  	buf.EncodeBool(m.IsMultipath)
  2388  	buf.EncodeUint32(m.Route.TableID)
  2389  	buf.EncodeUint32(m.Route.StatsIndex)
  2390  	buf.EncodeUint8(uint8(m.Route.Prefix.Address.Af))
  2391  	buf.EncodeBytes(m.Route.Prefix.Address.Un.XXX_UnionData[:], 16)
  2392  	buf.EncodeUint8(m.Route.Prefix.Len)
  2393  	buf.EncodeUint8(uint8(len(m.Route.Paths)))
  2394  	buf.EncodeUint8(m.Route.Src)
  2395  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  2396  		var v1 fib_types.FibPath // Paths
  2397  		if j1 < len(m.Route.Paths) {
  2398  			v1 = m.Route.Paths[j1]
  2399  		}
  2400  		buf.EncodeUint32(v1.SwIfIndex)
  2401  		buf.EncodeUint32(v1.TableID)
  2402  		buf.EncodeUint32(v1.RpfID)
  2403  		buf.EncodeUint8(v1.Weight)
  2404  		buf.EncodeUint8(v1.Preference)
  2405  		buf.EncodeUint32(uint32(v1.Type))
  2406  		buf.EncodeUint32(uint32(v1.Flags))
  2407  		buf.EncodeUint32(uint32(v1.Proto))
  2408  		buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 16)
  2409  		buf.EncodeUint32(v1.Nh.ViaLabel)
  2410  		buf.EncodeUint32(v1.Nh.ObjID)
  2411  		buf.EncodeUint32(v1.Nh.ClassifyTableIndex)
  2412  		buf.EncodeUint8(v1.NLabels)
  2413  		for j2 := 0; j2 < 16; j2++ {
  2414  			buf.EncodeUint8(v1.LabelStack[j2].IsUniform)
  2415  			buf.EncodeUint32(v1.LabelStack[j2].Label)
  2416  			buf.EncodeUint8(v1.LabelStack[j2].TTL)
  2417  			buf.EncodeUint8(v1.LabelStack[j2].Exp)
  2418  		}
  2419  	}
  2420  	return buf.Bytes(), nil
  2421  }
  2422  func (m *IPRouteAddDelV2) Unmarshal(b []byte) error {
  2423  	buf := codec.NewBuffer(b)
  2424  	m.IsAdd = buf.DecodeBool()
  2425  	m.IsMultipath = buf.DecodeBool()
  2426  	m.Route.TableID = buf.DecodeUint32()
  2427  	m.Route.StatsIndex = buf.DecodeUint32()
  2428  	m.Route.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2429  	copy(m.Route.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2430  	m.Route.Prefix.Len = buf.DecodeUint8()
  2431  	m.Route.NPaths = buf.DecodeUint8()
  2432  	m.Route.Src = buf.DecodeUint8()
  2433  	m.Route.Paths = make([]fib_types.FibPath, m.Route.NPaths)
  2434  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  2435  		m.Route.Paths[j1].SwIfIndex = buf.DecodeUint32()
  2436  		m.Route.Paths[j1].TableID = buf.DecodeUint32()
  2437  		m.Route.Paths[j1].RpfID = buf.DecodeUint32()
  2438  		m.Route.Paths[j1].Weight = buf.DecodeUint8()
  2439  		m.Route.Paths[j1].Preference = buf.DecodeUint8()
  2440  		m.Route.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32())
  2441  		m.Route.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32())
  2442  		m.Route.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32())
  2443  		copy(m.Route.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16))
  2444  		m.Route.Paths[j1].Nh.ViaLabel = buf.DecodeUint32()
  2445  		m.Route.Paths[j1].Nh.ObjID = buf.DecodeUint32()
  2446  		m.Route.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32()
  2447  		m.Route.Paths[j1].NLabels = buf.DecodeUint8()
  2448  		for j2 := 0; j2 < 16; j2++ {
  2449  			m.Route.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8()
  2450  			m.Route.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32()
  2451  			m.Route.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8()
  2452  			m.Route.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8()
  2453  		}
  2454  	}
  2455  	return nil
  2456  }
  2457  
  2458  // IPRouteAddDelV2Reply defines message 'ip_route_add_del_v2_reply'.
  2459  // InProgress: the message form may change in the future versions
  2460  type IPRouteAddDelV2Reply struct {
  2461  	Retval     int32  `binapi:"i32,name=retval" json:"retval,omitempty"`
  2462  	StatsIndex uint32 `binapi:"u32,name=stats_index" json:"stats_index,omitempty"`
  2463  }
  2464  
  2465  func (m *IPRouteAddDelV2Reply) Reset()               { *m = IPRouteAddDelV2Reply{} }
  2466  func (*IPRouteAddDelV2Reply) GetMessageName() string { return "ip_route_add_del_v2_reply" }
  2467  func (*IPRouteAddDelV2Reply) GetCrcString() string   { return "1992deab" }
  2468  func (*IPRouteAddDelV2Reply) GetMessageType() api.MessageType {
  2469  	return api.ReplyMessage
  2470  }
  2471  
  2472  func (m *IPRouteAddDelV2Reply) Size() (size int) {
  2473  	if m == nil {
  2474  		return 0
  2475  	}
  2476  	size += 4 // m.Retval
  2477  	size += 4 // m.StatsIndex
  2478  	return size
  2479  }
  2480  func (m *IPRouteAddDelV2Reply) Marshal(b []byte) ([]byte, error) {
  2481  	if b == nil {
  2482  		b = make([]byte, m.Size())
  2483  	}
  2484  	buf := codec.NewBuffer(b)
  2485  	buf.EncodeInt32(m.Retval)
  2486  	buf.EncodeUint32(m.StatsIndex)
  2487  	return buf.Bytes(), nil
  2488  }
  2489  func (m *IPRouteAddDelV2Reply) Unmarshal(b []byte) error {
  2490  	buf := codec.NewBuffer(b)
  2491  	m.Retval = buf.DecodeInt32()
  2492  	m.StatsIndex = buf.DecodeUint32()
  2493  	return nil
  2494  }
  2495  
  2496  // IPRouteDetails defines message 'ip_route_details'.
  2497  type IPRouteDetails struct {
  2498  	Route IPRoute `binapi:"ip_route,name=route" json:"route,omitempty"`
  2499  }
  2500  
  2501  func (m *IPRouteDetails) Reset()               { *m = IPRouteDetails{} }
  2502  func (*IPRouteDetails) GetMessageName() string { return "ip_route_details" }
  2503  func (*IPRouteDetails) GetCrcString() string   { return "bda8f315" }
  2504  func (*IPRouteDetails) GetMessageType() api.MessageType {
  2505  	return api.ReplyMessage
  2506  }
  2507  
  2508  func (m *IPRouteDetails) Size() (size int) {
  2509  	if m == nil {
  2510  		return 0
  2511  	}
  2512  	size += 4      // m.Route.TableID
  2513  	size += 4      // m.Route.StatsIndex
  2514  	size += 1      // m.Route.Prefix.Address.Af
  2515  	size += 1 * 16 // m.Route.Prefix.Address.Un
  2516  	size += 1      // m.Route.Prefix.Len
  2517  	size += 1      // m.Route.NPaths
  2518  	for j2 := 0; j2 < len(m.Route.Paths); j2++ {
  2519  		var s2 fib_types.FibPath
  2520  		_ = s2
  2521  		if j2 < len(m.Route.Paths) {
  2522  			s2 = m.Route.Paths[j2]
  2523  		}
  2524  		size += 4      // s2.SwIfIndex
  2525  		size += 4      // s2.TableID
  2526  		size += 4      // s2.RpfID
  2527  		size += 1      // s2.Weight
  2528  		size += 1      // s2.Preference
  2529  		size += 4      // s2.Type
  2530  		size += 4      // s2.Flags
  2531  		size += 4      // s2.Proto
  2532  		size += 1 * 16 // s2.Nh.Address
  2533  		size += 4      // s2.Nh.ViaLabel
  2534  		size += 4      // s2.Nh.ObjID
  2535  		size += 4      // s2.Nh.ClassifyTableIndex
  2536  		size += 1      // s2.NLabels
  2537  		for j3 := 0; j3 < 16; j3++ {
  2538  			size += 1 // s2.LabelStack[j3].IsUniform
  2539  			size += 4 // s2.LabelStack[j3].Label
  2540  			size += 1 // s2.LabelStack[j3].TTL
  2541  			size += 1 // s2.LabelStack[j3].Exp
  2542  		}
  2543  	}
  2544  	return size
  2545  }
  2546  func (m *IPRouteDetails) Marshal(b []byte) ([]byte, error) {
  2547  	if b == nil {
  2548  		b = make([]byte, m.Size())
  2549  	}
  2550  	buf := codec.NewBuffer(b)
  2551  	buf.EncodeUint32(m.Route.TableID)
  2552  	buf.EncodeUint32(m.Route.StatsIndex)
  2553  	buf.EncodeUint8(uint8(m.Route.Prefix.Address.Af))
  2554  	buf.EncodeBytes(m.Route.Prefix.Address.Un.XXX_UnionData[:], 16)
  2555  	buf.EncodeUint8(m.Route.Prefix.Len)
  2556  	buf.EncodeUint8(uint8(len(m.Route.Paths)))
  2557  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  2558  		var v1 fib_types.FibPath // Paths
  2559  		if j1 < len(m.Route.Paths) {
  2560  			v1 = m.Route.Paths[j1]
  2561  		}
  2562  		buf.EncodeUint32(v1.SwIfIndex)
  2563  		buf.EncodeUint32(v1.TableID)
  2564  		buf.EncodeUint32(v1.RpfID)
  2565  		buf.EncodeUint8(v1.Weight)
  2566  		buf.EncodeUint8(v1.Preference)
  2567  		buf.EncodeUint32(uint32(v1.Type))
  2568  		buf.EncodeUint32(uint32(v1.Flags))
  2569  		buf.EncodeUint32(uint32(v1.Proto))
  2570  		buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 16)
  2571  		buf.EncodeUint32(v1.Nh.ViaLabel)
  2572  		buf.EncodeUint32(v1.Nh.ObjID)
  2573  		buf.EncodeUint32(v1.Nh.ClassifyTableIndex)
  2574  		buf.EncodeUint8(v1.NLabels)
  2575  		for j2 := 0; j2 < 16; j2++ {
  2576  			buf.EncodeUint8(v1.LabelStack[j2].IsUniform)
  2577  			buf.EncodeUint32(v1.LabelStack[j2].Label)
  2578  			buf.EncodeUint8(v1.LabelStack[j2].TTL)
  2579  			buf.EncodeUint8(v1.LabelStack[j2].Exp)
  2580  		}
  2581  	}
  2582  	return buf.Bytes(), nil
  2583  }
  2584  func (m *IPRouteDetails) Unmarshal(b []byte) error {
  2585  	buf := codec.NewBuffer(b)
  2586  	m.Route.TableID = buf.DecodeUint32()
  2587  	m.Route.StatsIndex = buf.DecodeUint32()
  2588  	m.Route.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2589  	copy(m.Route.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2590  	m.Route.Prefix.Len = buf.DecodeUint8()
  2591  	m.Route.NPaths = buf.DecodeUint8()
  2592  	m.Route.Paths = make([]fib_types.FibPath, m.Route.NPaths)
  2593  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  2594  		m.Route.Paths[j1].SwIfIndex = buf.DecodeUint32()
  2595  		m.Route.Paths[j1].TableID = buf.DecodeUint32()
  2596  		m.Route.Paths[j1].RpfID = buf.DecodeUint32()
  2597  		m.Route.Paths[j1].Weight = buf.DecodeUint8()
  2598  		m.Route.Paths[j1].Preference = buf.DecodeUint8()
  2599  		m.Route.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32())
  2600  		m.Route.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32())
  2601  		m.Route.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32())
  2602  		copy(m.Route.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16))
  2603  		m.Route.Paths[j1].Nh.ViaLabel = buf.DecodeUint32()
  2604  		m.Route.Paths[j1].Nh.ObjID = buf.DecodeUint32()
  2605  		m.Route.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32()
  2606  		m.Route.Paths[j1].NLabels = buf.DecodeUint8()
  2607  		for j2 := 0; j2 < 16; j2++ {
  2608  			m.Route.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8()
  2609  			m.Route.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32()
  2610  			m.Route.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8()
  2611  			m.Route.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8()
  2612  		}
  2613  	}
  2614  	return nil
  2615  }
  2616  
  2617  // IPRouteDump defines message 'ip_route_dump'.
  2618  type IPRouteDump struct {
  2619  	Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"`
  2620  }
  2621  
  2622  func (m *IPRouteDump) Reset()               { *m = IPRouteDump{} }
  2623  func (*IPRouteDump) GetMessageName() string { return "ip_route_dump" }
  2624  func (*IPRouteDump) GetCrcString() string   { return "b9d2e09e" }
  2625  func (*IPRouteDump) GetMessageType() api.MessageType {
  2626  	return api.RequestMessage
  2627  }
  2628  
  2629  func (m *IPRouteDump) Size() (size int) {
  2630  	if m == nil {
  2631  		return 0
  2632  	}
  2633  	size += 4  // m.Table.TableID
  2634  	size += 1  // m.Table.IsIP6
  2635  	size += 64 // m.Table.Name
  2636  	return size
  2637  }
  2638  func (m *IPRouteDump) Marshal(b []byte) ([]byte, error) {
  2639  	if b == nil {
  2640  		b = make([]byte, m.Size())
  2641  	}
  2642  	buf := codec.NewBuffer(b)
  2643  	buf.EncodeUint32(m.Table.TableID)
  2644  	buf.EncodeBool(m.Table.IsIP6)
  2645  	buf.EncodeString(m.Table.Name, 64)
  2646  	return buf.Bytes(), nil
  2647  }
  2648  func (m *IPRouteDump) Unmarshal(b []byte) error {
  2649  	buf := codec.NewBuffer(b)
  2650  	m.Table.TableID = buf.DecodeUint32()
  2651  	m.Table.IsIP6 = buf.DecodeBool()
  2652  	m.Table.Name = buf.DecodeString(64)
  2653  	return nil
  2654  }
  2655  
  2656  // IPRouteLookup defines message 'ip_route_lookup'.
  2657  type IPRouteLookup struct {
  2658  	TableID uint32          `binapi:"u32,name=table_id" json:"table_id,omitempty"`
  2659  	Exact   uint8           `binapi:"u8,name=exact" json:"exact,omitempty"`
  2660  	Prefix  ip_types.Prefix `binapi:"prefix,name=prefix" json:"prefix,omitempty"`
  2661  }
  2662  
  2663  func (m *IPRouteLookup) Reset()               { *m = IPRouteLookup{} }
  2664  func (*IPRouteLookup) GetMessageName() string { return "ip_route_lookup" }
  2665  func (*IPRouteLookup) GetCrcString() string   { return "710d6471" }
  2666  func (*IPRouteLookup) GetMessageType() api.MessageType {
  2667  	return api.RequestMessage
  2668  }
  2669  
  2670  func (m *IPRouteLookup) Size() (size int) {
  2671  	if m == nil {
  2672  		return 0
  2673  	}
  2674  	size += 4      // m.TableID
  2675  	size += 1      // m.Exact
  2676  	size += 1      // m.Prefix.Address.Af
  2677  	size += 1 * 16 // m.Prefix.Address.Un
  2678  	size += 1      // m.Prefix.Len
  2679  	return size
  2680  }
  2681  func (m *IPRouteLookup) Marshal(b []byte) ([]byte, error) {
  2682  	if b == nil {
  2683  		b = make([]byte, m.Size())
  2684  	}
  2685  	buf := codec.NewBuffer(b)
  2686  	buf.EncodeUint32(m.TableID)
  2687  	buf.EncodeUint8(m.Exact)
  2688  	buf.EncodeUint8(uint8(m.Prefix.Address.Af))
  2689  	buf.EncodeBytes(m.Prefix.Address.Un.XXX_UnionData[:], 16)
  2690  	buf.EncodeUint8(m.Prefix.Len)
  2691  	return buf.Bytes(), nil
  2692  }
  2693  func (m *IPRouteLookup) Unmarshal(b []byte) error {
  2694  	buf := codec.NewBuffer(b)
  2695  	m.TableID = buf.DecodeUint32()
  2696  	m.Exact = buf.DecodeUint8()
  2697  	m.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2698  	copy(m.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2699  	m.Prefix.Len = buf.DecodeUint8()
  2700  	return nil
  2701  }
  2702  
  2703  // IPRouteLookupReply defines message 'ip_route_lookup_reply'.
  2704  type IPRouteLookupReply struct {
  2705  	Retval int32   `binapi:"i32,name=retval" json:"retval,omitempty"`
  2706  	Route  IPRoute `binapi:"ip_route,name=route" json:"route,omitempty"`
  2707  }
  2708  
  2709  func (m *IPRouteLookupReply) Reset()               { *m = IPRouteLookupReply{} }
  2710  func (*IPRouteLookupReply) GetMessageName() string { return "ip_route_lookup_reply" }
  2711  func (*IPRouteLookupReply) GetCrcString() string   { return "5d8febcb" }
  2712  func (*IPRouteLookupReply) GetMessageType() api.MessageType {
  2713  	return api.ReplyMessage
  2714  }
  2715  
  2716  func (m *IPRouteLookupReply) Size() (size int) {
  2717  	if m == nil {
  2718  		return 0
  2719  	}
  2720  	size += 4      // m.Retval
  2721  	size += 4      // m.Route.TableID
  2722  	size += 4      // m.Route.StatsIndex
  2723  	size += 1      // m.Route.Prefix.Address.Af
  2724  	size += 1 * 16 // m.Route.Prefix.Address.Un
  2725  	size += 1      // m.Route.Prefix.Len
  2726  	size += 1      // m.Route.NPaths
  2727  	for j2 := 0; j2 < len(m.Route.Paths); j2++ {
  2728  		var s2 fib_types.FibPath
  2729  		_ = s2
  2730  		if j2 < len(m.Route.Paths) {
  2731  			s2 = m.Route.Paths[j2]
  2732  		}
  2733  		size += 4      // s2.SwIfIndex
  2734  		size += 4      // s2.TableID
  2735  		size += 4      // s2.RpfID
  2736  		size += 1      // s2.Weight
  2737  		size += 1      // s2.Preference
  2738  		size += 4      // s2.Type
  2739  		size += 4      // s2.Flags
  2740  		size += 4      // s2.Proto
  2741  		size += 1 * 16 // s2.Nh.Address
  2742  		size += 4      // s2.Nh.ViaLabel
  2743  		size += 4      // s2.Nh.ObjID
  2744  		size += 4      // s2.Nh.ClassifyTableIndex
  2745  		size += 1      // s2.NLabels
  2746  		for j3 := 0; j3 < 16; j3++ {
  2747  			size += 1 // s2.LabelStack[j3].IsUniform
  2748  			size += 4 // s2.LabelStack[j3].Label
  2749  			size += 1 // s2.LabelStack[j3].TTL
  2750  			size += 1 // s2.LabelStack[j3].Exp
  2751  		}
  2752  	}
  2753  	return size
  2754  }
  2755  func (m *IPRouteLookupReply) Marshal(b []byte) ([]byte, error) {
  2756  	if b == nil {
  2757  		b = make([]byte, m.Size())
  2758  	}
  2759  	buf := codec.NewBuffer(b)
  2760  	buf.EncodeInt32(m.Retval)
  2761  	buf.EncodeUint32(m.Route.TableID)
  2762  	buf.EncodeUint32(m.Route.StatsIndex)
  2763  	buf.EncodeUint8(uint8(m.Route.Prefix.Address.Af))
  2764  	buf.EncodeBytes(m.Route.Prefix.Address.Un.XXX_UnionData[:], 16)
  2765  	buf.EncodeUint8(m.Route.Prefix.Len)
  2766  	buf.EncodeUint8(uint8(len(m.Route.Paths)))
  2767  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  2768  		var v1 fib_types.FibPath // Paths
  2769  		if j1 < len(m.Route.Paths) {
  2770  			v1 = m.Route.Paths[j1]
  2771  		}
  2772  		buf.EncodeUint32(v1.SwIfIndex)
  2773  		buf.EncodeUint32(v1.TableID)
  2774  		buf.EncodeUint32(v1.RpfID)
  2775  		buf.EncodeUint8(v1.Weight)
  2776  		buf.EncodeUint8(v1.Preference)
  2777  		buf.EncodeUint32(uint32(v1.Type))
  2778  		buf.EncodeUint32(uint32(v1.Flags))
  2779  		buf.EncodeUint32(uint32(v1.Proto))
  2780  		buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 16)
  2781  		buf.EncodeUint32(v1.Nh.ViaLabel)
  2782  		buf.EncodeUint32(v1.Nh.ObjID)
  2783  		buf.EncodeUint32(v1.Nh.ClassifyTableIndex)
  2784  		buf.EncodeUint8(v1.NLabels)
  2785  		for j2 := 0; j2 < 16; j2++ {
  2786  			buf.EncodeUint8(v1.LabelStack[j2].IsUniform)
  2787  			buf.EncodeUint32(v1.LabelStack[j2].Label)
  2788  			buf.EncodeUint8(v1.LabelStack[j2].TTL)
  2789  			buf.EncodeUint8(v1.LabelStack[j2].Exp)
  2790  		}
  2791  	}
  2792  	return buf.Bytes(), nil
  2793  }
  2794  func (m *IPRouteLookupReply) Unmarshal(b []byte) error {
  2795  	buf := codec.NewBuffer(b)
  2796  	m.Retval = buf.DecodeInt32()
  2797  	m.Route.TableID = buf.DecodeUint32()
  2798  	m.Route.StatsIndex = buf.DecodeUint32()
  2799  	m.Route.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2800  	copy(m.Route.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2801  	m.Route.Prefix.Len = buf.DecodeUint8()
  2802  	m.Route.NPaths = buf.DecodeUint8()
  2803  	m.Route.Paths = make([]fib_types.FibPath, m.Route.NPaths)
  2804  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  2805  		m.Route.Paths[j1].SwIfIndex = buf.DecodeUint32()
  2806  		m.Route.Paths[j1].TableID = buf.DecodeUint32()
  2807  		m.Route.Paths[j1].RpfID = buf.DecodeUint32()
  2808  		m.Route.Paths[j1].Weight = buf.DecodeUint8()
  2809  		m.Route.Paths[j1].Preference = buf.DecodeUint8()
  2810  		m.Route.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32())
  2811  		m.Route.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32())
  2812  		m.Route.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32())
  2813  		copy(m.Route.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16))
  2814  		m.Route.Paths[j1].Nh.ViaLabel = buf.DecodeUint32()
  2815  		m.Route.Paths[j1].Nh.ObjID = buf.DecodeUint32()
  2816  		m.Route.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32()
  2817  		m.Route.Paths[j1].NLabels = buf.DecodeUint8()
  2818  		for j2 := 0; j2 < 16; j2++ {
  2819  			m.Route.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8()
  2820  			m.Route.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32()
  2821  			m.Route.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8()
  2822  			m.Route.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8()
  2823  		}
  2824  	}
  2825  	return nil
  2826  }
  2827  
  2828  // IPRouteLookupV2 defines message 'ip_route_lookup_v2'.
  2829  // InProgress: the message form may change in the future versions
  2830  type IPRouteLookupV2 struct {
  2831  	TableID uint32          `binapi:"u32,name=table_id" json:"table_id,omitempty"`
  2832  	Exact   uint8           `binapi:"u8,name=exact" json:"exact,omitempty"`
  2833  	Prefix  ip_types.Prefix `binapi:"prefix,name=prefix" json:"prefix,omitempty"`
  2834  }
  2835  
  2836  func (m *IPRouteLookupV2) Reset()               { *m = IPRouteLookupV2{} }
  2837  func (*IPRouteLookupV2) GetMessageName() string { return "ip_route_lookup_v2" }
  2838  func (*IPRouteLookupV2) GetCrcString() string   { return "710d6471" }
  2839  func (*IPRouteLookupV2) GetMessageType() api.MessageType {
  2840  	return api.RequestMessage
  2841  }
  2842  
  2843  func (m *IPRouteLookupV2) Size() (size int) {
  2844  	if m == nil {
  2845  		return 0
  2846  	}
  2847  	size += 4      // m.TableID
  2848  	size += 1      // m.Exact
  2849  	size += 1      // m.Prefix.Address.Af
  2850  	size += 1 * 16 // m.Prefix.Address.Un
  2851  	size += 1      // m.Prefix.Len
  2852  	return size
  2853  }
  2854  func (m *IPRouteLookupV2) Marshal(b []byte) ([]byte, error) {
  2855  	if b == nil {
  2856  		b = make([]byte, m.Size())
  2857  	}
  2858  	buf := codec.NewBuffer(b)
  2859  	buf.EncodeUint32(m.TableID)
  2860  	buf.EncodeUint8(m.Exact)
  2861  	buf.EncodeUint8(uint8(m.Prefix.Address.Af))
  2862  	buf.EncodeBytes(m.Prefix.Address.Un.XXX_UnionData[:], 16)
  2863  	buf.EncodeUint8(m.Prefix.Len)
  2864  	return buf.Bytes(), nil
  2865  }
  2866  func (m *IPRouteLookupV2) Unmarshal(b []byte) error {
  2867  	buf := codec.NewBuffer(b)
  2868  	m.TableID = buf.DecodeUint32()
  2869  	m.Exact = buf.DecodeUint8()
  2870  	m.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2871  	copy(m.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2872  	m.Prefix.Len = buf.DecodeUint8()
  2873  	return nil
  2874  }
  2875  
  2876  // IPRouteLookupV2Reply defines message 'ip_route_lookup_v2_reply'.
  2877  // InProgress: the message form may change in the future versions
  2878  type IPRouteLookupV2Reply struct {
  2879  	Retval int32     `binapi:"i32,name=retval" json:"retval,omitempty"`
  2880  	Route  IPRouteV2 `binapi:"ip_route_v2,name=route" json:"route,omitempty"`
  2881  }
  2882  
  2883  func (m *IPRouteLookupV2Reply) Reset()               { *m = IPRouteLookupV2Reply{} }
  2884  func (*IPRouteLookupV2Reply) GetMessageName() string { return "ip_route_lookup_v2_reply" }
  2885  func (*IPRouteLookupV2Reply) GetCrcString() string   { return "84cc9e03" }
  2886  func (*IPRouteLookupV2Reply) GetMessageType() api.MessageType {
  2887  	return api.ReplyMessage
  2888  }
  2889  
  2890  func (m *IPRouteLookupV2Reply) Size() (size int) {
  2891  	if m == nil {
  2892  		return 0
  2893  	}
  2894  	size += 4      // m.Retval
  2895  	size += 4      // m.Route.TableID
  2896  	size += 4      // m.Route.StatsIndex
  2897  	size += 1      // m.Route.Prefix.Address.Af
  2898  	size += 1 * 16 // m.Route.Prefix.Address.Un
  2899  	size += 1      // m.Route.Prefix.Len
  2900  	size += 1      // m.Route.NPaths
  2901  	size += 1      // m.Route.Src
  2902  	for j2 := 0; j2 < len(m.Route.Paths); j2++ {
  2903  		var s2 fib_types.FibPath
  2904  		_ = s2
  2905  		if j2 < len(m.Route.Paths) {
  2906  			s2 = m.Route.Paths[j2]
  2907  		}
  2908  		size += 4      // s2.SwIfIndex
  2909  		size += 4      // s2.TableID
  2910  		size += 4      // s2.RpfID
  2911  		size += 1      // s2.Weight
  2912  		size += 1      // s2.Preference
  2913  		size += 4      // s2.Type
  2914  		size += 4      // s2.Flags
  2915  		size += 4      // s2.Proto
  2916  		size += 1 * 16 // s2.Nh.Address
  2917  		size += 4      // s2.Nh.ViaLabel
  2918  		size += 4      // s2.Nh.ObjID
  2919  		size += 4      // s2.Nh.ClassifyTableIndex
  2920  		size += 1      // s2.NLabels
  2921  		for j3 := 0; j3 < 16; j3++ {
  2922  			size += 1 // s2.LabelStack[j3].IsUniform
  2923  			size += 4 // s2.LabelStack[j3].Label
  2924  			size += 1 // s2.LabelStack[j3].TTL
  2925  			size += 1 // s2.LabelStack[j3].Exp
  2926  		}
  2927  	}
  2928  	return size
  2929  }
  2930  func (m *IPRouteLookupV2Reply) Marshal(b []byte) ([]byte, error) {
  2931  	if b == nil {
  2932  		b = make([]byte, m.Size())
  2933  	}
  2934  	buf := codec.NewBuffer(b)
  2935  	buf.EncodeInt32(m.Retval)
  2936  	buf.EncodeUint32(m.Route.TableID)
  2937  	buf.EncodeUint32(m.Route.StatsIndex)
  2938  	buf.EncodeUint8(uint8(m.Route.Prefix.Address.Af))
  2939  	buf.EncodeBytes(m.Route.Prefix.Address.Un.XXX_UnionData[:], 16)
  2940  	buf.EncodeUint8(m.Route.Prefix.Len)
  2941  	buf.EncodeUint8(uint8(len(m.Route.Paths)))
  2942  	buf.EncodeUint8(m.Route.Src)
  2943  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  2944  		var v1 fib_types.FibPath // Paths
  2945  		if j1 < len(m.Route.Paths) {
  2946  			v1 = m.Route.Paths[j1]
  2947  		}
  2948  		buf.EncodeUint32(v1.SwIfIndex)
  2949  		buf.EncodeUint32(v1.TableID)
  2950  		buf.EncodeUint32(v1.RpfID)
  2951  		buf.EncodeUint8(v1.Weight)
  2952  		buf.EncodeUint8(v1.Preference)
  2953  		buf.EncodeUint32(uint32(v1.Type))
  2954  		buf.EncodeUint32(uint32(v1.Flags))
  2955  		buf.EncodeUint32(uint32(v1.Proto))
  2956  		buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 16)
  2957  		buf.EncodeUint32(v1.Nh.ViaLabel)
  2958  		buf.EncodeUint32(v1.Nh.ObjID)
  2959  		buf.EncodeUint32(v1.Nh.ClassifyTableIndex)
  2960  		buf.EncodeUint8(v1.NLabels)
  2961  		for j2 := 0; j2 < 16; j2++ {
  2962  			buf.EncodeUint8(v1.LabelStack[j2].IsUniform)
  2963  			buf.EncodeUint32(v1.LabelStack[j2].Label)
  2964  			buf.EncodeUint8(v1.LabelStack[j2].TTL)
  2965  			buf.EncodeUint8(v1.LabelStack[j2].Exp)
  2966  		}
  2967  	}
  2968  	return buf.Bytes(), nil
  2969  }
  2970  func (m *IPRouteLookupV2Reply) Unmarshal(b []byte) error {
  2971  	buf := codec.NewBuffer(b)
  2972  	m.Retval = buf.DecodeInt32()
  2973  	m.Route.TableID = buf.DecodeUint32()
  2974  	m.Route.StatsIndex = buf.DecodeUint32()
  2975  	m.Route.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
  2976  	copy(m.Route.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  2977  	m.Route.Prefix.Len = buf.DecodeUint8()
  2978  	m.Route.NPaths = buf.DecodeUint8()
  2979  	m.Route.Src = buf.DecodeUint8()
  2980  	m.Route.Paths = make([]fib_types.FibPath, m.Route.NPaths)
  2981  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  2982  		m.Route.Paths[j1].SwIfIndex = buf.DecodeUint32()
  2983  		m.Route.Paths[j1].TableID = buf.DecodeUint32()
  2984  		m.Route.Paths[j1].RpfID = buf.DecodeUint32()
  2985  		m.Route.Paths[j1].Weight = buf.DecodeUint8()
  2986  		m.Route.Paths[j1].Preference = buf.DecodeUint8()
  2987  		m.Route.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32())
  2988  		m.Route.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32())
  2989  		m.Route.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32())
  2990  		copy(m.Route.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16))
  2991  		m.Route.Paths[j1].Nh.ViaLabel = buf.DecodeUint32()
  2992  		m.Route.Paths[j1].Nh.ObjID = buf.DecodeUint32()
  2993  		m.Route.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32()
  2994  		m.Route.Paths[j1].NLabels = buf.DecodeUint8()
  2995  		for j2 := 0; j2 < 16; j2++ {
  2996  			m.Route.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8()
  2997  			m.Route.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32()
  2998  			m.Route.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8()
  2999  			m.Route.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8()
  3000  		}
  3001  	}
  3002  	return nil
  3003  }
  3004  
  3005  // IPRouteV2Details defines message 'ip_route_v2_details'.
  3006  // InProgress: the message form may change in the future versions
  3007  type IPRouteV2Details struct {
  3008  	Route IPRouteV2 `binapi:"ip_route_v2,name=route" json:"route,omitempty"`
  3009  }
  3010  
  3011  func (m *IPRouteV2Details) Reset()               { *m = IPRouteV2Details{} }
  3012  func (*IPRouteV2Details) GetMessageName() string { return "ip_route_v2_details" }
  3013  func (*IPRouteV2Details) GetCrcString() string   { return "b09aa6c0" }
  3014  func (*IPRouteV2Details) GetMessageType() api.MessageType {
  3015  	return api.ReplyMessage
  3016  }
  3017  
  3018  func (m *IPRouteV2Details) Size() (size int) {
  3019  	if m == nil {
  3020  		return 0
  3021  	}
  3022  	size += 4      // m.Route.TableID
  3023  	size += 4      // m.Route.StatsIndex
  3024  	size += 1      // m.Route.Prefix.Address.Af
  3025  	size += 1 * 16 // m.Route.Prefix.Address.Un
  3026  	size += 1      // m.Route.Prefix.Len
  3027  	size += 1      // m.Route.NPaths
  3028  	size += 1      // m.Route.Src
  3029  	for j2 := 0; j2 < len(m.Route.Paths); j2++ {
  3030  		var s2 fib_types.FibPath
  3031  		_ = s2
  3032  		if j2 < len(m.Route.Paths) {
  3033  			s2 = m.Route.Paths[j2]
  3034  		}
  3035  		size += 4      // s2.SwIfIndex
  3036  		size += 4      // s2.TableID
  3037  		size += 4      // s2.RpfID
  3038  		size += 1      // s2.Weight
  3039  		size += 1      // s2.Preference
  3040  		size += 4      // s2.Type
  3041  		size += 4      // s2.Flags
  3042  		size += 4      // s2.Proto
  3043  		size += 1 * 16 // s2.Nh.Address
  3044  		size += 4      // s2.Nh.ViaLabel
  3045  		size += 4      // s2.Nh.ObjID
  3046  		size += 4      // s2.Nh.ClassifyTableIndex
  3047  		size += 1      // s2.NLabels
  3048  		for j3 := 0; j3 < 16; j3++ {
  3049  			size += 1 // s2.LabelStack[j3].IsUniform
  3050  			size += 4 // s2.LabelStack[j3].Label
  3051  			size += 1 // s2.LabelStack[j3].TTL
  3052  			size += 1 // s2.LabelStack[j3].Exp
  3053  		}
  3054  	}
  3055  	return size
  3056  }
  3057  func (m *IPRouteV2Details) Marshal(b []byte) ([]byte, error) {
  3058  	if b == nil {
  3059  		b = make([]byte, m.Size())
  3060  	}
  3061  	buf := codec.NewBuffer(b)
  3062  	buf.EncodeUint32(m.Route.TableID)
  3063  	buf.EncodeUint32(m.Route.StatsIndex)
  3064  	buf.EncodeUint8(uint8(m.Route.Prefix.Address.Af))
  3065  	buf.EncodeBytes(m.Route.Prefix.Address.Un.XXX_UnionData[:], 16)
  3066  	buf.EncodeUint8(m.Route.Prefix.Len)
  3067  	buf.EncodeUint8(uint8(len(m.Route.Paths)))
  3068  	buf.EncodeUint8(m.Route.Src)
  3069  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  3070  		var v1 fib_types.FibPath // Paths
  3071  		if j1 < len(m.Route.Paths) {
  3072  			v1 = m.Route.Paths[j1]
  3073  		}
  3074  		buf.EncodeUint32(v1.SwIfIndex)
  3075  		buf.EncodeUint32(v1.TableID)
  3076  		buf.EncodeUint32(v1.RpfID)
  3077  		buf.EncodeUint8(v1.Weight)
  3078  		buf.EncodeUint8(v1.Preference)
  3079  		buf.EncodeUint32(uint32(v1.Type))
  3080  		buf.EncodeUint32(uint32(v1.Flags))
  3081  		buf.EncodeUint32(uint32(v1.Proto))
  3082  		buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 16)
  3083  		buf.EncodeUint32(v1.Nh.ViaLabel)
  3084  		buf.EncodeUint32(v1.Nh.ObjID)
  3085  		buf.EncodeUint32(v1.Nh.ClassifyTableIndex)
  3086  		buf.EncodeUint8(v1.NLabels)
  3087  		for j2 := 0; j2 < 16; j2++ {
  3088  			buf.EncodeUint8(v1.LabelStack[j2].IsUniform)
  3089  			buf.EncodeUint32(v1.LabelStack[j2].Label)
  3090  			buf.EncodeUint8(v1.LabelStack[j2].TTL)
  3091  			buf.EncodeUint8(v1.LabelStack[j2].Exp)
  3092  		}
  3093  	}
  3094  	return buf.Bytes(), nil
  3095  }
  3096  func (m *IPRouteV2Details) Unmarshal(b []byte) error {
  3097  	buf := codec.NewBuffer(b)
  3098  	m.Route.TableID = buf.DecodeUint32()
  3099  	m.Route.StatsIndex = buf.DecodeUint32()
  3100  	m.Route.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
  3101  	copy(m.Route.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  3102  	m.Route.Prefix.Len = buf.DecodeUint8()
  3103  	m.Route.NPaths = buf.DecodeUint8()
  3104  	m.Route.Src = buf.DecodeUint8()
  3105  	m.Route.Paths = make([]fib_types.FibPath, m.Route.NPaths)
  3106  	for j1 := 0; j1 < len(m.Route.Paths); j1++ {
  3107  		m.Route.Paths[j1].SwIfIndex = buf.DecodeUint32()
  3108  		m.Route.Paths[j1].TableID = buf.DecodeUint32()
  3109  		m.Route.Paths[j1].RpfID = buf.DecodeUint32()
  3110  		m.Route.Paths[j1].Weight = buf.DecodeUint8()
  3111  		m.Route.Paths[j1].Preference = buf.DecodeUint8()
  3112  		m.Route.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32())
  3113  		m.Route.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32())
  3114  		m.Route.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32())
  3115  		copy(m.Route.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16))
  3116  		m.Route.Paths[j1].Nh.ViaLabel = buf.DecodeUint32()
  3117  		m.Route.Paths[j1].Nh.ObjID = buf.DecodeUint32()
  3118  		m.Route.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32()
  3119  		m.Route.Paths[j1].NLabels = buf.DecodeUint8()
  3120  		for j2 := 0; j2 < 16; j2++ {
  3121  			m.Route.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8()
  3122  			m.Route.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32()
  3123  			m.Route.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8()
  3124  			m.Route.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8()
  3125  		}
  3126  	}
  3127  	return nil
  3128  }
  3129  
  3130  // IPRouteV2Dump defines message 'ip_route_v2_dump'.
  3131  // InProgress: the message form may change in the future versions
  3132  type IPRouteV2Dump struct {
  3133  	Src   uint8   `binapi:"u8,name=src" json:"src,omitempty"`
  3134  	Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"`
  3135  }
  3136  
  3137  func (m *IPRouteV2Dump) Reset()               { *m = IPRouteV2Dump{} }
  3138  func (*IPRouteV2Dump) GetMessageName() string { return "ip_route_v2_dump" }
  3139  func (*IPRouteV2Dump) GetCrcString() string   { return "d16f72e6" }
  3140  func (*IPRouteV2Dump) GetMessageType() api.MessageType {
  3141  	return api.RequestMessage
  3142  }
  3143  
  3144  func (m *IPRouteV2Dump) Size() (size int) {
  3145  	if m == nil {
  3146  		return 0
  3147  	}
  3148  	size += 1  // m.Src
  3149  	size += 4  // m.Table.TableID
  3150  	size += 1  // m.Table.IsIP6
  3151  	size += 64 // m.Table.Name
  3152  	return size
  3153  }
  3154  func (m *IPRouteV2Dump) Marshal(b []byte) ([]byte, error) {
  3155  	if b == nil {
  3156  		b = make([]byte, m.Size())
  3157  	}
  3158  	buf := codec.NewBuffer(b)
  3159  	buf.EncodeUint8(m.Src)
  3160  	buf.EncodeUint32(m.Table.TableID)
  3161  	buf.EncodeBool(m.Table.IsIP6)
  3162  	buf.EncodeString(m.Table.Name, 64)
  3163  	return buf.Bytes(), nil
  3164  }
  3165  func (m *IPRouteV2Dump) Unmarshal(b []byte) error {
  3166  	buf := codec.NewBuffer(b)
  3167  	m.Src = buf.DecodeUint8()
  3168  	m.Table.TableID = buf.DecodeUint32()
  3169  	m.Table.IsIP6 = buf.DecodeBool()
  3170  	m.Table.Name = buf.DecodeString(64)
  3171  	return nil
  3172  }
  3173  
  3174  // IPSourceAndPortRangeCheckAddDel defines message 'ip_source_and_port_range_check_add_del'.
  3175  type IPSourceAndPortRangeCheckAddDel struct {
  3176  	IsAdd          bool            `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"`
  3177  	Prefix         ip_types.Prefix `binapi:"prefix,name=prefix" json:"prefix,omitempty"`
  3178  	NumberOfRanges uint8           `binapi:"u8,name=number_of_ranges" json:"number_of_ranges,omitempty"`
  3179  	LowPorts       []uint16        `binapi:"u16[32],name=low_ports" json:"low_ports,omitempty"`
  3180  	HighPorts      []uint16        `binapi:"u16[32],name=high_ports" json:"high_ports,omitempty"`
  3181  	VrfID          uint32          `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
  3182  }
  3183  
  3184  func (m *IPSourceAndPortRangeCheckAddDel) Reset() { *m = IPSourceAndPortRangeCheckAddDel{} }
  3185  func (*IPSourceAndPortRangeCheckAddDel) GetMessageName() string {
  3186  	return "ip_source_and_port_range_check_add_del"
  3187  }
  3188  func (*IPSourceAndPortRangeCheckAddDel) GetCrcString() string { return "92a067e3" }
  3189  func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType {
  3190  	return api.RequestMessage
  3191  }
  3192  
  3193  func (m *IPSourceAndPortRangeCheckAddDel) Size() (size int) {
  3194  	if m == nil {
  3195  		return 0
  3196  	}
  3197  	size += 1      // m.IsAdd
  3198  	size += 1      // m.Prefix.Address.Af
  3199  	size += 1 * 16 // m.Prefix.Address.Un
  3200  	size += 1      // m.Prefix.Len
  3201  	size += 1      // m.NumberOfRanges
  3202  	size += 2 * 32 // m.LowPorts
  3203  	size += 2 * 32 // m.HighPorts
  3204  	size += 4      // m.VrfID
  3205  	return size
  3206  }
  3207  func (m *IPSourceAndPortRangeCheckAddDel) Marshal(b []byte) ([]byte, error) {
  3208  	if b == nil {
  3209  		b = make([]byte, m.Size())
  3210  	}
  3211  	buf := codec.NewBuffer(b)
  3212  	buf.EncodeBool(m.IsAdd)
  3213  	buf.EncodeUint8(uint8(m.Prefix.Address.Af))
  3214  	buf.EncodeBytes(m.Prefix.Address.Un.XXX_UnionData[:], 16)
  3215  	buf.EncodeUint8(m.Prefix.Len)
  3216  	buf.EncodeUint8(m.NumberOfRanges)
  3217  	for i := 0; i < 32; i++ {
  3218  		var x uint16
  3219  		if i < len(m.LowPorts) {
  3220  			x = uint16(m.LowPorts[i])
  3221  		}
  3222  		buf.EncodeUint16(x)
  3223  	}
  3224  	for i := 0; i < 32; i++ {
  3225  		var x uint16
  3226  		if i < len(m.HighPorts) {
  3227  			x = uint16(m.HighPorts[i])
  3228  		}
  3229  		buf.EncodeUint16(x)
  3230  	}
  3231  	buf.EncodeUint32(m.VrfID)
  3232  	return buf.Bytes(), nil
  3233  }
  3234  func (m *IPSourceAndPortRangeCheckAddDel) Unmarshal(b []byte) error {
  3235  	buf := codec.NewBuffer(b)
  3236  	m.IsAdd = buf.DecodeBool()
  3237  	m.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
  3238  	copy(m.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
  3239  	m.Prefix.Len = buf.DecodeUint8()
  3240  	m.NumberOfRanges = buf.DecodeUint8()
  3241  	m.LowPorts = make([]uint16, 32)
  3242  	for i := 0; i < len(m.LowPorts); i++ {
  3243  		m.LowPorts[i] = buf.DecodeUint16()
  3244  	}
  3245  	m.HighPorts = make([]uint16, 32)
  3246  	for i := 0; i < len(m.HighPorts); i++ {
  3247  		m.HighPorts[i] = buf.DecodeUint16()
  3248  	}
  3249  	m.VrfID = buf.DecodeUint32()
  3250  	return nil
  3251  }
  3252  
  3253  // IPSourceAndPortRangeCheckAddDelReply defines message 'ip_source_and_port_range_check_add_del_reply'.
  3254  type IPSourceAndPortRangeCheckAddDelReply struct {
  3255  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  3256  }
  3257  
  3258  func (m *IPSourceAndPortRangeCheckAddDelReply) Reset() { *m = IPSourceAndPortRangeCheckAddDelReply{} }
  3259  func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageName() string {
  3260  	return "ip_source_and_port_range_check_add_del_reply"
  3261  }
  3262  func (*IPSourceAndPortRangeCheckAddDelReply) GetCrcString() string { return "e8d4e804" }
  3263  func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageType() api.MessageType {
  3264  	return api.ReplyMessage
  3265  }
  3266  
  3267  func (m *IPSourceAndPortRangeCheckAddDelReply) Size() (size int) {
  3268  	if m == nil {
  3269  		return 0
  3270  	}
  3271  	size += 4 // m.Retval
  3272  	return size
  3273  }
  3274  func (m *IPSourceAndPortRangeCheckAddDelReply) Marshal(b []byte) ([]byte, error) {
  3275  	if b == nil {
  3276  		b = make([]byte, m.Size())
  3277  	}
  3278  	buf := codec.NewBuffer(b)
  3279  	buf.EncodeInt32(m.Retval)
  3280  	return buf.Bytes(), nil
  3281  }
  3282  func (m *IPSourceAndPortRangeCheckAddDelReply) Unmarshal(b []byte) error {
  3283  	buf := codec.NewBuffer(b)
  3284  	m.Retval = buf.DecodeInt32()
  3285  	return nil
  3286  }
  3287  
  3288  // IPSourceAndPortRangeCheckInterfaceAddDel defines message 'ip_source_and_port_range_check_interface_add_del'.
  3289  type IPSourceAndPortRangeCheckInterfaceAddDel struct {
  3290  	IsAdd       bool                           `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"`
  3291  	SwIfIndex   interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  3292  	TCPInVrfID  uint32                         `binapi:"u32,name=tcp_in_vrf_id" json:"tcp_in_vrf_id,omitempty"`
  3293  	TCPOutVrfID uint32                         `binapi:"u32,name=tcp_out_vrf_id" json:"tcp_out_vrf_id,omitempty"`
  3294  	UDPInVrfID  uint32                         `binapi:"u32,name=udp_in_vrf_id" json:"udp_in_vrf_id,omitempty"`
  3295  	UDPOutVrfID uint32                         `binapi:"u32,name=udp_out_vrf_id" json:"udp_out_vrf_id,omitempty"`
  3296  }
  3297  
  3298  func (m *IPSourceAndPortRangeCheckInterfaceAddDel) Reset() {
  3299  	*m = IPSourceAndPortRangeCheckInterfaceAddDel{}
  3300  }
  3301  func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageName() string {
  3302  	return "ip_source_and_port_range_check_interface_add_del"
  3303  }
  3304  func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetCrcString() string { return "e1ba8987" }
  3305  func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageType() api.MessageType {
  3306  	return api.RequestMessage
  3307  }
  3308  
  3309  func (m *IPSourceAndPortRangeCheckInterfaceAddDel) Size() (size int) {
  3310  	if m == nil {
  3311  		return 0
  3312  	}
  3313  	size += 1 // m.IsAdd
  3314  	size += 4 // m.SwIfIndex
  3315  	size += 4 // m.TCPInVrfID
  3316  	size += 4 // m.TCPOutVrfID
  3317  	size += 4 // m.UDPInVrfID
  3318  	size += 4 // m.UDPOutVrfID
  3319  	return size
  3320  }
  3321  func (m *IPSourceAndPortRangeCheckInterfaceAddDel) Marshal(b []byte) ([]byte, error) {
  3322  	if b == nil {
  3323  		b = make([]byte, m.Size())
  3324  	}
  3325  	buf := codec.NewBuffer(b)
  3326  	buf.EncodeBool(m.IsAdd)
  3327  	buf.EncodeUint32(uint32(m.SwIfIndex))
  3328  	buf.EncodeUint32(m.TCPInVrfID)
  3329  	buf.EncodeUint32(m.TCPOutVrfID)
  3330  	buf.EncodeUint32(m.UDPInVrfID)
  3331  	buf.EncodeUint32(m.UDPOutVrfID)
  3332  	return buf.Bytes(), nil
  3333  }
  3334  func (m *IPSourceAndPortRangeCheckInterfaceAddDel) Unmarshal(b []byte) error {
  3335  	buf := codec.NewBuffer(b)
  3336  	m.IsAdd = buf.DecodeBool()
  3337  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  3338  	m.TCPInVrfID = buf.DecodeUint32()
  3339  	m.TCPOutVrfID = buf.DecodeUint32()
  3340  	m.UDPInVrfID = buf.DecodeUint32()
  3341  	m.UDPOutVrfID = buf.DecodeUint32()
  3342  	return nil
  3343  }
  3344  
  3345  // IPSourceAndPortRangeCheckInterfaceAddDelReply defines message 'ip_source_and_port_range_check_interface_add_del_reply'.
  3346  type IPSourceAndPortRangeCheckInterfaceAddDelReply struct {
  3347  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  3348  }
  3349  
  3350  func (m *IPSourceAndPortRangeCheckInterfaceAddDelReply) Reset() {
  3351  	*m = IPSourceAndPortRangeCheckInterfaceAddDelReply{}
  3352  }
  3353  func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageName() string {
  3354  	return "ip_source_and_port_range_check_interface_add_del_reply"
  3355  }
  3356  func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetCrcString() string { return "e8d4e804" }
  3357  func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
  3358  	return api.ReplyMessage
  3359  }
  3360  
  3361  func (m *IPSourceAndPortRangeCheckInterfaceAddDelReply) Size() (size int) {
  3362  	if m == nil {
  3363  		return 0
  3364  	}
  3365  	size += 4 // m.Retval
  3366  	return size
  3367  }
  3368  func (m *IPSourceAndPortRangeCheckInterfaceAddDelReply) Marshal(b []byte) ([]byte, error) {
  3369  	if b == nil {
  3370  		b = make([]byte, m.Size())
  3371  	}
  3372  	buf := codec.NewBuffer(b)
  3373  	buf.EncodeInt32(m.Retval)
  3374  	return buf.Bytes(), nil
  3375  }
  3376  func (m *IPSourceAndPortRangeCheckInterfaceAddDelReply) Unmarshal(b []byte) error {
  3377  	buf := codec.NewBuffer(b)
  3378  	m.Retval = buf.DecodeInt32()
  3379  	return nil
  3380  }
  3381  
  3382  // IPTableAddDel defines message 'ip_table_add_del'.
  3383  type IPTableAddDel struct {
  3384  	IsAdd bool    `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"`
  3385  	Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"`
  3386  }
  3387  
  3388  func (m *IPTableAddDel) Reset()               { *m = IPTableAddDel{} }
  3389  func (*IPTableAddDel) GetMessageName() string { return "ip_table_add_del" }
  3390  func (*IPTableAddDel) GetCrcString() string   { return "0ffdaec0" }
  3391  func (*IPTableAddDel) GetMessageType() api.MessageType {
  3392  	return api.RequestMessage
  3393  }
  3394  
  3395  func (m *IPTableAddDel) Size() (size int) {
  3396  	if m == nil {
  3397  		return 0
  3398  	}
  3399  	size += 1  // m.IsAdd
  3400  	size += 4  // m.Table.TableID
  3401  	size += 1  // m.Table.IsIP6
  3402  	size += 64 // m.Table.Name
  3403  	return size
  3404  }
  3405  func (m *IPTableAddDel) Marshal(b []byte) ([]byte, error) {
  3406  	if b == nil {
  3407  		b = make([]byte, m.Size())
  3408  	}
  3409  	buf := codec.NewBuffer(b)
  3410  	buf.EncodeBool(m.IsAdd)
  3411  	buf.EncodeUint32(m.Table.TableID)
  3412  	buf.EncodeBool(m.Table.IsIP6)
  3413  	buf.EncodeString(m.Table.Name, 64)
  3414  	return buf.Bytes(), nil
  3415  }
  3416  func (m *IPTableAddDel) Unmarshal(b []byte) error {
  3417  	buf := codec.NewBuffer(b)
  3418  	m.IsAdd = buf.DecodeBool()
  3419  	m.Table.TableID = buf.DecodeUint32()
  3420  	m.Table.IsIP6 = buf.DecodeBool()
  3421  	m.Table.Name = buf.DecodeString(64)
  3422  	return nil
  3423  }
  3424  
  3425  // IPTableAddDelReply defines message 'ip_table_add_del_reply'.
  3426  type IPTableAddDelReply struct {
  3427  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  3428  }
  3429  
  3430  func (m *IPTableAddDelReply) Reset()               { *m = IPTableAddDelReply{} }
  3431  func (*IPTableAddDelReply) GetMessageName() string { return "ip_table_add_del_reply" }
  3432  func (*IPTableAddDelReply) GetCrcString() string   { return "e8d4e804" }
  3433  func (*IPTableAddDelReply) GetMessageType() api.MessageType {
  3434  	return api.ReplyMessage
  3435  }
  3436  
  3437  func (m *IPTableAddDelReply) Size() (size int) {
  3438  	if m == nil {
  3439  		return 0
  3440  	}
  3441  	size += 4 // m.Retval
  3442  	return size
  3443  }
  3444  func (m *IPTableAddDelReply) Marshal(b []byte) ([]byte, error) {
  3445  	if b == nil {
  3446  		b = make([]byte, m.Size())
  3447  	}
  3448  	buf := codec.NewBuffer(b)
  3449  	buf.EncodeInt32(m.Retval)
  3450  	return buf.Bytes(), nil
  3451  }
  3452  func (m *IPTableAddDelReply) Unmarshal(b []byte) error {
  3453  	buf := codec.NewBuffer(b)
  3454  	m.Retval = buf.DecodeInt32()
  3455  	return nil
  3456  }
  3457  
  3458  // IPTableAllocate defines message 'ip_table_allocate'.
  3459  type IPTableAllocate struct {
  3460  	Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"`
  3461  }
  3462  
  3463  func (m *IPTableAllocate) Reset()               { *m = IPTableAllocate{} }
  3464  func (*IPTableAllocate) GetMessageName() string { return "ip_table_allocate" }
  3465  func (*IPTableAllocate) GetCrcString() string   { return "b9d2e09e" }
  3466  func (*IPTableAllocate) GetMessageType() api.MessageType {
  3467  	return api.RequestMessage
  3468  }
  3469  
  3470  func (m *IPTableAllocate) Size() (size int) {
  3471  	if m == nil {
  3472  		return 0
  3473  	}
  3474  	size += 4  // m.Table.TableID
  3475  	size += 1  // m.Table.IsIP6
  3476  	size += 64 // m.Table.Name
  3477  	return size
  3478  }
  3479  func (m *IPTableAllocate) Marshal(b []byte) ([]byte, error) {
  3480  	if b == nil {
  3481  		b = make([]byte, m.Size())
  3482  	}
  3483  	buf := codec.NewBuffer(b)
  3484  	buf.EncodeUint32(m.Table.TableID)
  3485  	buf.EncodeBool(m.Table.IsIP6)
  3486  	buf.EncodeString(m.Table.Name, 64)
  3487  	return buf.Bytes(), nil
  3488  }
  3489  func (m *IPTableAllocate) Unmarshal(b []byte) error {
  3490  	buf := codec.NewBuffer(b)
  3491  	m.Table.TableID = buf.DecodeUint32()
  3492  	m.Table.IsIP6 = buf.DecodeBool()
  3493  	m.Table.Name = buf.DecodeString(64)
  3494  	return nil
  3495  }
  3496  
  3497  // IPTableAllocateReply defines message 'ip_table_allocate_reply'.
  3498  type IPTableAllocateReply struct {
  3499  	Retval int32   `binapi:"i32,name=retval" json:"retval,omitempty"`
  3500  	Table  IPTable `binapi:"ip_table,name=table" json:"table,omitempty"`
  3501  }
  3502  
  3503  func (m *IPTableAllocateReply) Reset()               { *m = IPTableAllocateReply{} }
  3504  func (*IPTableAllocateReply) GetMessageName() string { return "ip_table_allocate_reply" }
  3505  func (*IPTableAllocateReply) GetCrcString() string   { return "1728303a" }
  3506  func (*IPTableAllocateReply) GetMessageType() api.MessageType {
  3507  	return api.ReplyMessage
  3508  }
  3509  
  3510  func (m *IPTableAllocateReply) Size() (size int) {
  3511  	if m == nil {
  3512  		return 0
  3513  	}
  3514  	size += 4  // m.Retval
  3515  	size += 4  // m.Table.TableID
  3516  	size += 1  // m.Table.IsIP6
  3517  	size += 64 // m.Table.Name
  3518  	return size
  3519  }
  3520  func (m *IPTableAllocateReply) Marshal(b []byte) ([]byte, error) {
  3521  	if b == nil {
  3522  		b = make([]byte, m.Size())
  3523  	}
  3524  	buf := codec.NewBuffer(b)
  3525  	buf.EncodeInt32(m.Retval)
  3526  	buf.EncodeUint32(m.Table.TableID)
  3527  	buf.EncodeBool(m.Table.IsIP6)
  3528  	buf.EncodeString(m.Table.Name, 64)
  3529  	return buf.Bytes(), nil
  3530  }
  3531  func (m *IPTableAllocateReply) Unmarshal(b []byte) error {
  3532  	buf := codec.NewBuffer(b)
  3533  	m.Retval = buf.DecodeInt32()
  3534  	m.Table.TableID = buf.DecodeUint32()
  3535  	m.Table.IsIP6 = buf.DecodeBool()
  3536  	m.Table.Name = buf.DecodeString(64)
  3537  	return nil
  3538  }
  3539  
  3540  // IPTableDetails defines message 'ip_table_details'.
  3541  type IPTableDetails struct {
  3542  	Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"`
  3543  }
  3544  
  3545  func (m *IPTableDetails) Reset()               { *m = IPTableDetails{} }
  3546  func (*IPTableDetails) GetMessageName() string { return "ip_table_details" }
  3547  func (*IPTableDetails) GetCrcString() string   { return "c79fca0f" }
  3548  func (*IPTableDetails) GetMessageType() api.MessageType {
  3549  	return api.ReplyMessage
  3550  }
  3551  
  3552  func (m *IPTableDetails) Size() (size int) {
  3553  	if m == nil {
  3554  		return 0
  3555  	}
  3556  	size += 4  // m.Table.TableID
  3557  	size += 1  // m.Table.IsIP6
  3558  	size += 64 // m.Table.Name
  3559  	return size
  3560  }
  3561  func (m *IPTableDetails) Marshal(b []byte) ([]byte, error) {
  3562  	if b == nil {
  3563  		b = make([]byte, m.Size())
  3564  	}
  3565  	buf := codec.NewBuffer(b)
  3566  	buf.EncodeUint32(m.Table.TableID)
  3567  	buf.EncodeBool(m.Table.IsIP6)
  3568  	buf.EncodeString(m.Table.Name, 64)
  3569  	return buf.Bytes(), nil
  3570  }
  3571  func (m *IPTableDetails) Unmarshal(b []byte) error {
  3572  	buf := codec.NewBuffer(b)
  3573  	m.Table.TableID = buf.DecodeUint32()
  3574  	m.Table.IsIP6 = buf.DecodeBool()
  3575  	m.Table.Name = buf.DecodeString(64)
  3576  	return nil
  3577  }
  3578  
  3579  // IPTableDump defines message 'ip_table_dump'.
  3580  type IPTableDump struct{}
  3581  
  3582  func (m *IPTableDump) Reset()               { *m = IPTableDump{} }
  3583  func (*IPTableDump) GetMessageName() string { return "ip_table_dump" }
  3584  func (*IPTableDump) GetCrcString() string   { return "51077d14" }
  3585  func (*IPTableDump) GetMessageType() api.MessageType {
  3586  	return api.RequestMessage
  3587  }
  3588  
  3589  func (m *IPTableDump) Size() (size int) {
  3590  	if m == nil {
  3591  		return 0
  3592  	}
  3593  	return size
  3594  }
  3595  func (m *IPTableDump) Marshal(b []byte) ([]byte, error) {
  3596  	if b == nil {
  3597  		b = make([]byte, m.Size())
  3598  	}
  3599  	buf := codec.NewBuffer(b)
  3600  	return buf.Bytes(), nil
  3601  }
  3602  func (m *IPTableDump) Unmarshal(b []byte) error {
  3603  	return nil
  3604  }
  3605  
  3606  // IPTableFlush defines message 'ip_table_flush'.
  3607  type IPTableFlush struct {
  3608  	Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"`
  3609  }
  3610  
  3611  func (m *IPTableFlush) Reset()               { *m = IPTableFlush{} }
  3612  func (*IPTableFlush) GetMessageName() string { return "ip_table_flush" }
  3613  func (*IPTableFlush) GetCrcString() string   { return "b9d2e09e" }
  3614  func (*IPTableFlush) GetMessageType() api.MessageType {
  3615  	return api.RequestMessage
  3616  }
  3617  
  3618  func (m *IPTableFlush) Size() (size int) {
  3619  	if m == nil {
  3620  		return 0
  3621  	}
  3622  	size += 4  // m.Table.TableID
  3623  	size += 1  // m.Table.IsIP6
  3624  	size += 64 // m.Table.Name
  3625  	return size
  3626  }
  3627  func (m *IPTableFlush) Marshal(b []byte) ([]byte, error) {
  3628  	if b == nil {
  3629  		b = make([]byte, m.Size())
  3630  	}
  3631  	buf := codec.NewBuffer(b)
  3632  	buf.EncodeUint32(m.Table.TableID)
  3633  	buf.EncodeBool(m.Table.IsIP6)
  3634  	buf.EncodeString(m.Table.Name, 64)
  3635  	return buf.Bytes(), nil
  3636  }
  3637  func (m *IPTableFlush) Unmarshal(b []byte) error {
  3638  	buf := codec.NewBuffer(b)
  3639  	m.Table.TableID = buf.DecodeUint32()
  3640  	m.Table.IsIP6 = buf.DecodeBool()
  3641  	m.Table.Name = buf.DecodeString(64)
  3642  	return nil
  3643  }
  3644  
  3645  // IPTableFlushReply defines message 'ip_table_flush_reply'.
  3646  type IPTableFlushReply struct {
  3647  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  3648  }
  3649  
  3650  func (m *IPTableFlushReply) Reset()               { *m = IPTableFlushReply{} }
  3651  func (*IPTableFlushReply) GetMessageName() string { return "ip_table_flush_reply" }
  3652  func (*IPTableFlushReply) GetCrcString() string   { return "e8d4e804" }
  3653  func (*IPTableFlushReply) GetMessageType() api.MessageType {
  3654  	return api.ReplyMessage
  3655  }
  3656  
  3657  func (m *IPTableFlushReply) Size() (size int) {
  3658  	if m == nil {
  3659  		return 0
  3660  	}
  3661  	size += 4 // m.Retval
  3662  	return size
  3663  }
  3664  func (m *IPTableFlushReply) Marshal(b []byte) ([]byte, error) {
  3665  	if b == nil {
  3666  		b = make([]byte, m.Size())
  3667  	}
  3668  	buf := codec.NewBuffer(b)
  3669  	buf.EncodeInt32(m.Retval)
  3670  	return buf.Bytes(), nil
  3671  }
  3672  func (m *IPTableFlushReply) Unmarshal(b []byte) error {
  3673  	buf := codec.NewBuffer(b)
  3674  	m.Retval = buf.DecodeInt32()
  3675  	return nil
  3676  }
  3677  
  3678  // IPTableReplaceBegin defines message 'ip_table_replace_begin'.
  3679  type IPTableReplaceBegin struct {
  3680  	Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"`
  3681  }
  3682  
  3683  func (m *IPTableReplaceBegin) Reset()               { *m = IPTableReplaceBegin{} }
  3684  func (*IPTableReplaceBegin) GetMessageName() string { return "ip_table_replace_begin" }
  3685  func (*IPTableReplaceBegin) GetCrcString() string   { return "b9d2e09e" }
  3686  func (*IPTableReplaceBegin) GetMessageType() api.MessageType {
  3687  	return api.RequestMessage
  3688  }
  3689  
  3690  func (m *IPTableReplaceBegin) Size() (size int) {
  3691  	if m == nil {
  3692  		return 0
  3693  	}
  3694  	size += 4  // m.Table.TableID
  3695  	size += 1  // m.Table.IsIP6
  3696  	size += 64 // m.Table.Name
  3697  	return size
  3698  }
  3699  func (m *IPTableReplaceBegin) Marshal(b []byte) ([]byte, error) {
  3700  	if b == nil {
  3701  		b = make([]byte, m.Size())
  3702  	}
  3703  	buf := codec.NewBuffer(b)
  3704  	buf.EncodeUint32(m.Table.TableID)
  3705  	buf.EncodeBool(m.Table.IsIP6)
  3706  	buf.EncodeString(m.Table.Name, 64)
  3707  	return buf.Bytes(), nil
  3708  }
  3709  func (m *IPTableReplaceBegin) Unmarshal(b []byte) error {
  3710  	buf := codec.NewBuffer(b)
  3711  	m.Table.TableID = buf.DecodeUint32()
  3712  	m.Table.IsIP6 = buf.DecodeBool()
  3713  	m.Table.Name = buf.DecodeString(64)
  3714  	return nil
  3715  }
  3716  
  3717  // IPTableReplaceBeginReply defines message 'ip_table_replace_begin_reply'.
  3718  type IPTableReplaceBeginReply struct {
  3719  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  3720  }
  3721  
  3722  func (m *IPTableReplaceBeginReply) Reset()               { *m = IPTableReplaceBeginReply{} }
  3723  func (*IPTableReplaceBeginReply) GetMessageName() string { return "ip_table_replace_begin_reply" }
  3724  func (*IPTableReplaceBeginReply) GetCrcString() string   { return "e8d4e804" }
  3725  func (*IPTableReplaceBeginReply) GetMessageType() api.MessageType {
  3726  	return api.ReplyMessage
  3727  }
  3728  
  3729  func (m *IPTableReplaceBeginReply) Size() (size int) {
  3730  	if m == nil {
  3731  		return 0
  3732  	}
  3733  	size += 4 // m.Retval
  3734  	return size
  3735  }
  3736  func (m *IPTableReplaceBeginReply) Marshal(b []byte) ([]byte, error) {
  3737  	if b == nil {
  3738  		b = make([]byte, m.Size())
  3739  	}
  3740  	buf := codec.NewBuffer(b)
  3741  	buf.EncodeInt32(m.Retval)
  3742  	return buf.Bytes(), nil
  3743  }
  3744  func (m *IPTableReplaceBeginReply) Unmarshal(b []byte) error {
  3745  	buf := codec.NewBuffer(b)
  3746  	m.Retval = buf.DecodeInt32()
  3747  	return nil
  3748  }
  3749  
  3750  // IPTableReplaceEnd defines message 'ip_table_replace_end'.
  3751  type IPTableReplaceEnd struct {
  3752  	Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"`
  3753  }
  3754  
  3755  func (m *IPTableReplaceEnd) Reset()               { *m = IPTableReplaceEnd{} }
  3756  func (*IPTableReplaceEnd) GetMessageName() string { return "ip_table_replace_end" }
  3757  func (*IPTableReplaceEnd) GetCrcString() string   { return "b9d2e09e" }
  3758  func (*IPTableReplaceEnd) GetMessageType() api.MessageType {
  3759  	return api.RequestMessage
  3760  }
  3761  
  3762  func (m *IPTableReplaceEnd) Size() (size int) {
  3763  	if m == nil {
  3764  		return 0
  3765  	}
  3766  	size += 4  // m.Table.TableID
  3767  	size += 1  // m.Table.IsIP6
  3768  	size += 64 // m.Table.Name
  3769  	return size
  3770  }
  3771  func (m *IPTableReplaceEnd) Marshal(b []byte) ([]byte, error) {
  3772  	if b == nil {
  3773  		b = make([]byte, m.Size())
  3774  	}
  3775  	buf := codec.NewBuffer(b)
  3776  	buf.EncodeUint32(m.Table.TableID)
  3777  	buf.EncodeBool(m.Table.IsIP6)
  3778  	buf.EncodeString(m.Table.Name, 64)
  3779  	return buf.Bytes(), nil
  3780  }
  3781  func (m *IPTableReplaceEnd) Unmarshal(b []byte) error {
  3782  	buf := codec.NewBuffer(b)
  3783  	m.Table.TableID = buf.DecodeUint32()
  3784  	m.Table.IsIP6 = buf.DecodeBool()
  3785  	m.Table.Name = buf.DecodeString(64)
  3786  	return nil
  3787  }
  3788  
  3789  // IPTableReplaceEndReply defines message 'ip_table_replace_end_reply'.
  3790  type IPTableReplaceEndReply struct {
  3791  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  3792  }
  3793  
  3794  func (m *IPTableReplaceEndReply) Reset()               { *m = IPTableReplaceEndReply{} }
  3795  func (*IPTableReplaceEndReply) GetMessageName() string { return "ip_table_replace_end_reply" }
  3796  func (*IPTableReplaceEndReply) GetCrcString() string   { return "e8d4e804" }
  3797  func (*IPTableReplaceEndReply) GetMessageType() api.MessageType {
  3798  	return api.ReplyMessage
  3799  }
  3800  
  3801  func (m *IPTableReplaceEndReply) Size() (size int) {
  3802  	if m == nil {
  3803  		return 0
  3804  	}
  3805  	size += 4 // m.Retval
  3806  	return size
  3807  }
  3808  func (m *IPTableReplaceEndReply) Marshal(b []byte) ([]byte, error) {
  3809  	if b == nil {
  3810  		b = make([]byte, m.Size())
  3811  	}
  3812  	buf := codec.NewBuffer(b)
  3813  	buf.EncodeInt32(m.Retval)
  3814  	return buf.Bytes(), nil
  3815  }
  3816  func (m *IPTableReplaceEndReply) Unmarshal(b []byte) error {
  3817  	buf := codec.NewBuffer(b)
  3818  	m.Retval = buf.DecodeInt32()
  3819  	return nil
  3820  }
  3821  
  3822  // IPUnnumberedDetails defines message 'ip_unnumbered_details'.
  3823  type IPUnnumberedDetails struct {
  3824  	SwIfIndex   interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  3825  	IPSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=ip_sw_if_index" json:"ip_sw_if_index,omitempty"`
  3826  }
  3827  
  3828  func (m *IPUnnumberedDetails) Reset()               { *m = IPUnnumberedDetails{} }
  3829  func (*IPUnnumberedDetails) GetMessageName() string { return "ip_unnumbered_details" }
  3830  func (*IPUnnumberedDetails) GetCrcString() string   { return "cc59bd42" }
  3831  func (*IPUnnumberedDetails) GetMessageType() api.MessageType {
  3832  	return api.ReplyMessage
  3833  }
  3834  
  3835  func (m *IPUnnumberedDetails) Size() (size int) {
  3836  	if m == nil {
  3837  		return 0
  3838  	}
  3839  	size += 4 // m.SwIfIndex
  3840  	size += 4 // m.IPSwIfIndex
  3841  	return size
  3842  }
  3843  func (m *IPUnnumberedDetails) Marshal(b []byte) ([]byte, error) {
  3844  	if b == nil {
  3845  		b = make([]byte, m.Size())
  3846  	}
  3847  	buf := codec.NewBuffer(b)
  3848  	buf.EncodeUint32(uint32(m.SwIfIndex))
  3849  	buf.EncodeUint32(uint32(m.IPSwIfIndex))
  3850  	return buf.Bytes(), nil
  3851  }
  3852  func (m *IPUnnumberedDetails) Unmarshal(b []byte) error {
  3853  	buf := codec.NewBuffer(b)
  3854  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  3855  	m.IPSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  3856  	return nil
  3857  }
  3858  
  3859  // IPUnnumberedDump defines message 'ip_unnumbered_dump'.
  3860  type IPUnnumberedDump struct {
  3861  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index,default=4294967295" json:"sw_if_index,omitempty"`
  3862  }
  3863  
  3864  func (m *IPUnnumberedDump) Reset()               { *m = IPUnnumberedDump{} }
  3865  func (*IPUnnumberedDump) GetMessageName() string { return "ip_unnumbered_dump" }
  3866  func (*IPUnnumberedDump) GetCrcString() string   { return "f9e6675e" }
  3867  func (*IPUnnumberedDump) GetMessageType() api.MessageType {
  3868  	return api.RequestMessage
  3869  }
  3870  
  3871  func (m *IPUnnumberedDump) Size() (size int) {
  3872  	if m == nil {
  3873  		return 0
  3874  	}
  3875  	size += 4 // m.SwIfIndex
  3876  	return size
  3877  }
  3878  func (m *IPUnnumberedDump) Marshal(b []byte) ([]byte, error) {
  3879  	if b == nil {
  3880  		b = make([]byte, m.Size())
  3881  	}
  3882  	buf := codec.NewBuffer(b)
  3883  	buf.EncodeUint32(uint32(m.SwIfIndex))
  3884  	return buf.Bytes(), nil
  3885  }
  3886  func (m *IPUnnumberedDump) Unmarshal(b []byte) error {
  3887  	buf := codec.NewBuffer(b)
  3888  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  3889  	return nil
  3890  }
  3891  
  3892  // MfibSignalDetails defines message 'mfib_signal_details'.
  3893  type MfibSignalDetails struct {
  3894  	SwIfIndex    interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  3895  	TableID      uint32                         `binapi:"u32,name=table_id" json:"table_id,omitempty"`
  3896  	Prefix       ip_types.Mprefix               `binapi:"mprefix,name=prefix" json:"prefix,omitempty"`
  3897  	IPPacketLen  uint16                         `binapi:"u16,name=ip_packet_len" json:"ip_packet_len,omitempty"`
  3898  	IPPacketData []byte                         `binapi:"u8[256],name=ip_packet_data" json:"ip_packet_data,omitempty"`
  3899  }
  3900  
  3901  func (m *MfibSignalDetails) Reset()               { *m = MfibSignalDetails{} }
  3902  func (*MfibSignalDetails) GetMessageName() string { return "mfib_signal_details" }
  3903  func (*MfibSignalDetails) GetCrcString() string   { return "6f4a4cfb" }
  3904  func (*MfibSignalDetails) GetMessageType() api.MessageType {
  3905  	return api.ReplyMessage
  3906  }
  3907  
  3908  func (m *MfibSignalDetails) Size() (size int) {
  3909  	if m == nil {
  3910  		return 0
  3911  	}
  3912  	size += 4       // m.SwIfIndex
  3913  	size += 4       // m.TableID
  3914  	size += 1       // m.Prefix.Af
  3915  	size += 2       // m.Prefix.GrpAddressLength
  3916  	size += 1 * 16  // m.Prefix.GrpAddress
  3917  	size += 1 * 16  // m.Prefix.SrcAddress
  3918  	size += 2       // m.IPPacketLen
  3919  	size += 1 * 256 // m.IPPacketData
  3920  	return size
  3921  }
  3922  func (m *MfibSignalDetails) Marshal(b []byte) ([]byte, error) {
  3923  	if b == nil {
  3924  		b = make([]byte, m.Size())
  3925  	}
  3926  	buf := codec.NewBuffer(b)
  3927  	buf.EncodeUint32(uint32(m.SwIfIndex))
  3928  	buf.EncodeUint32(m.TableID)
  3929  	buf.EncodeUint8(uint8(m.Prefix.Af))
  3930  	buf.EncodeUint16(m.Prefix.GrpAddressLength)
  3931  	buf.EncodeBytes(m.Prefix.GrpAddress.XXX_UnionData[:], 16)
  3932  	buf.EncodeBytes(m.Prefix.SrcAddress.XXX_UnionData[:], 16)
  3933  	buf.EncodeUint16(m.IPPacketLen)
  3934  	buf.EncodeBytes(m.IPPacketData, 256)
  3935  	return buf.Bytes(), nil
  3936  }
  3937  func (m *MfibSignalDetails) Unmarshal(b []byte) error {
  3938  	buf := codec.NewBuffer(b)
  3939  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  3940  	m.TableID = buf.DecodeUint32()
  3941  	m.Prefix.Af = ip_types.AddressFamily(buf.DecodeUint8())
  3942  	m.Prefix.GrpAddressLength = buf.DecodeUint16()
  3943  	copy(m.Prefix.GrpAddress.XXX_UnionData[:], buf.DecodeBytes(16))
  3944  	copy(m.Prefix.SrcAddress.XXX_UnionData[:], buf.DecodeBytes(16))
  3945  	m.IPPacketLen = buf.DecodeUint16()
  3946  	m.IPPacketData = make([]byte, 256)
  3947  	copy(m.IPPacketData, buf.DecodeBytes(len(m.IPPacketData)))
  3948  	return nil
  3949  }
  3950  
  3951  // MfibSignalDump defines message 'mfib_signal_dump'.
  3952  type MfibSignalDump struct{}
  3953  
  3954  func (m *MfibSignalDump) Reset()               { *m = MfibSignalDump{} }
  3955  func (*MfibSignalDump) GetMessageName() string { return "mfib_signal_dump" }
  3956  func (*MfibSignalDump) GetCrcString() string   { return "51077d14" }
  3957  func (*MfibSignalDump) GetMessageType() api.MessageType {
  3958  	return api.RequestMessage
  3959  }
  3960  
  3961  func (m *MfibSignalDump) Size() (size int) {
  3962  	if m == nil {
  3963  		return 0
  3964  	}
  3965  	return size
  3966  }
  3967  func (m *MfibSignalDump) Marshal(b []byte) ([]byte, error) {
  3968  	if b == nil {
  3969  		b = make([]byte, m.Size())
  3970  	}
  3971  	buf := codec.NewBuffer(b)
  3972  	return buf.Bytes(), nil
  3973  }
  3974  func (m *MfibSignalDump) Unmarshal(b []byte) error {
  3975  	return nil
  3976  }
  3977  
  3978  // SetIPFlowHash defines message 'set_ip_flow_hash'.
  3979  // Deprecated: the message will be removed in the future versions
  3980  type SetIPFlowHash struct {
  3981  	VrfID     uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"`
  3982  	IsIPv6    bool   `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"`
  3983  	Src       bool   `binapi:"bool,name=src" json:"src,omitempty"`
  3984  	Dst       bool   `binapi:"bool,name=dst" json:"dst,omitempty"`
  3985  	Sport     bool   `binapi:"bool,name=sport" json:"sport,omitempty"`
  3986  	Dport     bool   `binapi:"bool,name=dport" json:"dport,omitempty"`
  3987  	Proto     bool   `binapi:"bool,name=proto" json:"proto,omitempty"`
  3988  	Reverse   bool   `binapi:"bool,name=reverse" json:"reverse,omitempty"`
  3989  	Symmetric bool   `binapi:"bool,name=symmetric" json:"symmetric,omitempty"`
  3990  }
  3991  
  3992  func (m *SetIPFlowHash) Reset()               { *m = SetIPFlowHash{} }
  3993  func (*SetIPFlowHash) GetMessageName() string { return "set_ip_flow_hash" }
  3994  func (*SetIPFlowHash) GetCrcString() string   { return "084ee09e" }
  3995  func (*SetIPFlowHash) GetMessageType() api.MessageType {
  3996  	return api.RequestMessage
  3997  }
  3998  
  3999  func (m *SetIPFlowHash) Size() (size int) {
  4000  	if m == nil {
  4001  		return 0
  4002  	}
  4003  	size += 4 // m.VrfID
  4004  	size += 1 // m.IsIPv6
  4005  	size += 1 // m.Src
  4006  	size += 1 // m.Dst
  4007  	size += 1 // m.Sport
  4008  	size += 1 // m.Dport
  4009  	size += 1 // m.Proto
  4010  	size += 1 // m.Reverse
  4011  	size += 1 // m.Symmetric
  4012  	return size
  4013  }
  4014  func (m *SetIPFlowHash) Marshal(b []byte) ([]byte, error) {
  4015  	if b == nil {
  4016  		b = make([]byte, m.Size())
  4017  	}
  4018  	buf := codec.NewBuffer(b)
  4019  	buf.EncodeUint32(m.VrfID)
  4020  	buf.EncodeBool(m.IsIPv6)
  4021  	buf.EncodeBool(m.Src)
  4022  	buf.EncodeBool(m.Dst)
  4023  	buf.EncodeBool(m.Sport)
  4024  	buf.EncodeBool(m.Dport)
  4025  	buf.EncodeBool(m.Proto)
  4026  	buf.EncodeBool(m.Reverse)
  4027  	buf.EncodeBool(m.Symmetric)
  4028  	return buf.Bytes(), nil
  4029  }
  4030  func (m *SetIPFlowHash) Unmarshal(b []byte) error {
  4031  	buf := codec.NewBuffer(b)
  4032  	m.VrfID = buf.DecodeUint32()
  4033  	m.IsIPv6 = buf.DecodeBool()
  4034  	m.Src = buf.DecodeBool()
  4035  	m.Dst = buf.DecodeBool()
  4036  	m.Sport = buf.DecodeBool()
  4037  	m.Dport = buf.DecodeBool()
  4038  	m.Proto = buf.DecodeBool()
  4039  	m.Reverse = buf.DecodeBool()
  4040  	m.Symmetric = buf.DecodeBool()
  4041  	return nil
  4042  }
  4043  
  4044  // SetIPFlowHashReply defines message 'set_ip_flow_hash_reply'.
  4045  // Deprecated: the message will be removed in the future versions
  4046  type SetIPFlowHashReply struct {
  4047  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  4048  }
  4049  
  4050  func (m *SetIPFlowHashReply) Reset()               { *m = SetIPFlowHashReply{} }
  4051  func (*SetIPFlowHashReply) GetMessageName() string { return "set_ip_flow_hash_reply" }
  4052  func (*SetIPFlowHashReply) GetCrcString() string   { return "e8d4e804" }
  4053  func (*SetIPFlowHashReply) GetMessageType() api.MessageType {
  4054  	return api.ReplyMessage
  4055  }
  4056  
  4057  func (m *SetIPFlowHashReply) Size() (size int) {
  4058  	if m == nil {
  4059  		return 0
  4060  	}
  4061  	size += 4 // m.Retval
  4062  	return size
  4063  }
  4064  func (m *SetIPFlowHashReply) Marshal(b []byte) ([]byte, error) {
  4065  	if b == nil {
  4066  		b = make([]byte, m.Size())
  4067  	}
  4068  	buf := codec.NewBuffer(b)
  4069  	buf.EncodeInt32(m.Retval)
  4070  	return buf.Bytes(), nil
  4071  }
  4072  func (m *SetIPFlowHashReply) Unmarshal(b []byte) error {
  4073  	buf := codec.NewBuffer(b)
  4074  	m.Retval = buf.DecodeInt32()
  4075  	return nil
  4076  }
  4077  
  4078  // SetIPFlowHashRouterID defines message 'set_ip_flow_hash_router_id'.
  4079  type SetIPFlowHashRouterID struct {
  4080  	RouterID uint32 `binapi:"u32,name=router_id" json:"router_id,omitempty"`
  4081  }
  4082  
  4083  func (m *SetIPFlowHashRouterID) Reset()               { *m = SetIPFlowHashRouterID{} }
  4084  func (*SetIPFlowHashRouterID) GetMessageName() string { return "set_ip_flow_hash_router_id" }
  4085  func (*SetIPFlowHashRouterID) GetCrcString() string   { return "03e4f48e" }
  4086  func (*SetIPFlowHashRouterID) GetMessageType() api.MessageType {
  4087  	return api.RequestMessage
  4088  }
  4089  
  4090  func (m *SetIPFlowHashRouterID) Size() (size int) {
  4091  	if m == nil {
  4092  		return 0
  4093  	}
  4094  	size += 4 // m.RouterID
  4095  	return size
  4096  }
  4097  func (m *SetIPFlowHashRouterID) Marshal(b []byte) ([]byte, error) {
  4098  	if b == nil {
  4099  		b = make([]byte, m.Size())
  4100  	}
  4101  	buf := codec.NewBuffer(b)
  4102  	buf.EncodeUint32(m.RouterID)
  4103  	return buf.Bytes(), nil
  4104  }
  4105  func (m *SetIPFlowHashRouterID) Unmarshal(b []byte) error {
  4106  	buf := codec.NewBuffer(b)
  4107  	m.RouterID = buf.DecodeUint32()
  4108  	return nil
  4109  }
  4110  
  4111  // SetIPFlowHashRouterIDReply defines message 'set_ip_flow_hash_router_id_reply'.
  4112  type SetIPFlowHashRouterIDReply struct {
  4113  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  4114  }
  4115  
  4116  func (m *SetIPFlowHashRouterIDReply) Reset()               { *m = SetIPFlowHashRouterIDReply{} }
  4117  func (*SetIPFlowHashRouterIDReply) GetMessageName() string { return "set_ip_flow_hash_router_id_reply" }
  4118  func (*SetIPFlowHashRouterIDReply) GetCrcString() string   { return "e8d4e804" }
  4119  func (*SetIPFlowHashRouterIDReply) GetMessageType() api.MessageType {
  4120  	return api.ReplyMessage
  4121  }
  4122  
  4123  func (m *SetIPFlowHashRouterIDReply) Size() (size int) {
  4124  	if m == nil {
  4125  		return 0
  4126  	}
  4127  	size += 4 // m.Retval
  4128  	return size
  4129  }
  4130  func (m *SetIPFlowHashRouterIDReply) Marshal(b []byte) ([]byte, error) {
  4131  	if b == nil {
  4132  		b = make([]byte, m.Size())
  4133  	}
  4134  	buf := codec.NewBuffer(b)
  4135  	buf.EncodeInt32(m.Retval)
  4136  	return buf.Bytes(), nil
  4137  }
  4138  func (m *SetIPFlowHashRouterIDReply) Unmarshal(b []byte) error {
  4139  	buf := codec.NewBuffer(b)
  4140  	m.Retval = buf.DecodeInt32()
  4141  	return nil
  4142  }
  4143  
  4144  // SetIPFlowHashV2 defines message 'set_ip_flow_hash_v2'.
  4145  type SetIPFlowHashV2 struct {
  4146  	TableID        uint32                 `binapi:"u32,name=table_id" json:"table_id,omitempty"`
  4147  	Af             ip_types.AddressFamily `binapi:"address_family,name=af" json:"af,omitempty"`
  4148  	FlowHashConfig IPFlowHashConfig       `binapi:"ip_flow_hash_config,name=flow_hash_config" json:"flow_hash_config,omitempty"`
  4149  }
  4150  
  4151  func (m *SetIPFlowHashV2) Reset()               { *m = SetIPFlowHashV2{} }
  4152  func (*SetIPFlowHashV2) GetMessageName() string { return "set_ip_flow_hash_v2" }
  4153  func (*SetIPFlowHashV2) GetCrcString() string   { return "6d132100" }
  4154  func (*SetIPFlowHashV2) GetMessageType() api.MessageType {
  4155  	return api.RequestMessage
  4156  }
  4157  
  4158  func (m *SetIPFlowHashV2) Size() (size int) {
  4159  	if m == nil {
  4160  		return 0
  4161  	}
  4162  	size += 4 // m.TableID
  4163  	size += 1 // m.Af
  4164  	size += 4 // m.FlowHashConfig
  4165  	return size
  4166  }
  4167  func (m *SetIPFlowHashV2) Marshal(b []byte) ([]byte, error) {
  4168  	if b == nil {
  4169  		b = make([]byte, m.Size())
  4170  	}
  4171  	buf := codec.NewBuffer(b)
  4172  	buf.EncodeUint32(m.TableID)
  4173  	buf.EncodeUint8(uint8(m.Af))
  4174  	buf.EncodeUint32(uint32(m.FlowHashConfig))
  4175  	return buf.Bytes(), nil
  4176  }
  4177  func (m *SetIPFlowHashV2) Unmarshal(b []byte) error {
  4178  	buf := codec.NewBuffer(b)
  4179  	m.TableID = buf.DecodeUint32()
  4180  	m.Af = ip_types.AddressFamily(buf.DecodeUint8())
  4181  	m.FlowHashConfig = IPFlowHashConfig(buf.DecodeUint32())
  4182  	return nil
  4183  }
  4184  
  4185  // SetIPFlowHashV2Reply defines message 'set_ip_flow_hash_v2_reply'.
  4186  type SetIPFlowHashV2Reply struct {
  4187  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  4188  }
  4189  
  4190  func (m *SetIPFlowHashV2Reply) Reset()               { *m = SetIPFlowHashV2Reply{} }
  4191  func (*SetIPFlowHashV2Reply) GetMessageName() string { return "set_ip_flow_hash_v2_reply" }
  4192  func (*SetIPFlowHashV2Reply) GetCrcString() string   { return "e8d4e804" }
  4193  func (*SetIPFlowHashV2Reply) GetMessageType() api.MessageType {
  4194  	return api.ReplyMessage
  4195  }
  4196  
  4197  func (m *SetIPFlowHashV2Reply) Size() (size int) {
  4198  	if m == nil {
  4199  		return 0
  4200  	}
  4201  	size += 4 // m.Retval
  4202  	return size
  4203  }
  4204  func (m *SetIPFlowHashV2Reply) Marshal(b []byte) ([]byte, error) {
  4205  	if b == nil {
  4206  		b = make([]byte, m.Size())
  4207  	}
  4208  	buf := codec.NewBuffer(b)
  4209  	buf.EncodeInt32(m.Retval)
  4210  	return buf.Bytes(), nil
  4211  }
  4212  func (m *SetIPFlowHashV2Reply) Unmarshal(b []byte) error {
  4213  	buf := codec.NewBuffer(b)
  4214  	m.Retval = buf.DecodeInt32()
  4215  	return nil
  4216  }
  4217  
  4218  // SwInterfaceIP6EnableDisable defines message 'sw_interface_ip6_enable_disable'.
  4219  type SwInterfaceIP6EnableDisable struct {
  4220  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  4221  	Enable    bool                           `binapi:"bool,name=enable" json:"enable,omitempty"`
  4222  }
  4223  
  4224  func (m *SwInterfaceIP6EnableDisable) Reset()               { *m = SwInterfaceIP6EnableDisable{} }
  4225  func (*SwInterfaceIP6EnableDisable) GetMessageName() string { return "sw_interface_ip6_enable_disable" }
  4226  func (*SwInterfaceIP6EnableDisable) GetCrcString() string   { return "ae6cfcfb" }
  4227  func (*SwInterfaceIP6EnableDisable) GetMessageType() api.MessageType {
  4228  	return api.RequestMessage
  4229  }
  4230  
  4231  func (m *SwInterfaceIP6EnableDisable) Size() (size int) {
  4232  	if m == nil {
  4233  		return 0
  4234  	}
  4235  	size += 4 // m.SwIfIndex
  4236  	size += 1 // m.Enable
  4237  	return size
  4238  }
  4239  func (m *SwInterfaceIP6EnableDisable) Marshal(b []byte) ([]byte, error) {
  4240  	if b == nil {
  4241  		b = make([]byte, m.Size())
  4242  	}
  4243  	buf := codec.NewBuffer(b)
  4244  	buf.EncodeUint32(uint32(m.SwIfIndex))
  4245  	buf.EncodeBool(m.Enable)
  4246  	return buf.Bytes(), nil
  4247  }
  4248  func (m *SwInterfaceIP6EnableDisable) Unmarshal(b []byte) error {
  4249  	buf := codec.NewBuffer(b)
  4250  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  4251  	m.Enable = buf.DecodeBool()
  4252  	return nil
  4253  }
  4254  
  4255  // SwInterfaceIP6EnableDisableReply defines message 'sw_interface_ip6_enable_disable_reply'.
  4256  type SwInterfaceIP6EnableDisableReply struct {
  4257  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  4258  }
  4259  
  4260  func (m *SwInterfaceIP6EnableDisableReply) Reset() { *m = SwInterfaceIP6EnableDisableReply{} }
  4261  func (*SwInterfaceIP6EnableDisableReply) GetMessageName() string {
  4262  	return "sw_interface_ip6_enable_disable_reply"
  4263  }
  4264  func (*SwInterfaceIP6EnableDisableReply) GetCrcString() string { return "e8d4e804" }
  4265  func (*SwInterfaceIP6EnableDisableReply) GetMessageType() api.MessageType {
  4266  	return api.ReplyMessage
  4267  }
  4268  
  4269  func (m *SwInterfaceIP6EnableDisableReply) Size() (size int) {
  4270  	if m == nil {
  4271  		return 0
  4272  	}
  4273  	size += 4 // m.Retval
  4274  	return size
  4275  }
  4276  func (m *SwInterfaceIP6EnableDisableReply) Marshal(b []byte) ([]byte, error) {
  4277  	if b == nil {
  4278  		b = make([]byte, m.Size())
  4279  	}
  4280  	buf := codec.NewBuffer(b)
  4281  	buf.EncodeInt32(m.Retval)
  4282  	return buf.Bytes(), nil
  4283  }
  4284  func (m *SwInterfaceIP6EnableDisableReply) Unmarshal(b []byte) error {
  4285  	buf := codec.NewBuffer(b)
  4286  	m.Retval = buf.DecodeInt32()
  4287  	return nil
  4288  }
  4289  
  4290  // SwInterfaceIP6GetLinkLocalAddress defines message 'sw_interface_ip6_get_link_local_address'.
  4291  type SwInterfaceIP6GetLinkLocalAddress struct {
  4292  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  4293  }
  4294  
  4295  func (m *SwInterfaceIP6GetLinkLocalAddress) Reset() { *m = SwInterfaceIP6GetLinkLocalAddress{} }
  4296  func (*SwInterfaceIP6GetLinkLocalAddress) GetMessageName() string {
  4297  	return "sw_interface_ip6_get_link_local_address"
  4298  }
  4299  func (*SwInterfaceIP6GetLinkLocalAddress) GetCrcString() string { return "f9e6675e" }
  4300  func (*SwInterfaceIP6GetLinkLocalAddress) GetMessageType() api.MessageType {
  4301  	return api.RequestMessage
  4302  }
  4303  
  4304  func (m *SwInterfaceIP6GetLinkLocalAddress) Size() (size int) {
  4305  	if m == nil {
  4306  		return 0
  4307  	}
  4308  	size += 4 // m.SwIfIndex
  4309  	return size
  4310  }
  4311  func (m *SwInterfaceIP6GetLinkLocalAddress) Marshal(b []byte) ([]byte, error) {
  4312  	if b == nil {
  4313  		b = make([]byte, m.Size())
  4314  	}
  4315  	buf := codec.NewBuffer(b)
  4316  	buf.EncodeUint32(uint32(m.SwIfIndex))
  4317  	return buf.Bytes(), nil
  4318  }
  4319  func (m *SwInterfaceIP6GetLinkLocalAddress) Unmarshal(b []byte) error {
  4320  	buf := codec.NewBuffer(b)
  4321  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  4322  	return nil
  4323  }
  4324  
  4325  // SwInterfaceIP6GetLinkLocalAddressReply defines message 'sw_interface_ip6_get_link_local_address_reply'.
  4326  type SwInterfaceIP6GetLinkLocalAddressReply struct {
  4327  	Retval int32               `binapi:"i32,name=retval" json:"retval,omitempty"`
  4328  	IP     ip_types.IP6Address `binapi:"ip6_address,name=ip" json:"ip,omitempty"`
  4329  }
  4330  
  4331  func (m *SwInterfaceIP6GetLinkLocalAddressReply) Reset() {
  4332  	*m = SwInterfaceIP6GetLinkLocalAddressReply{}
  4333  }
  4334  func (*SwInterfaceIP6GetLinkLocalAddressReply) GetMessageName() string {
  4335  	return "sw_interface_ip6_get_link_local_address_reply"
  4336  }
  4337  func (*SwInterfaceIP6GetLinkLocalAddressReply) GetCrcString() string { return "d16b7130" }
  4338  func (*SwInterfaceIP6GetLinkLocalAddressReply) GetMessageType() api.MessageType {
  4339  	return api.ReplyMessage
  4340  }
  4341  
  4342  func (m *SwInterfaceIP6GetLinkLocalAddressReply) Size() (size int) {
  4343  	if m == nil {
  4344  		return 0
  4345  	}
  4346  	size += 4      // m.Retval
  4347  	size += 1 * 16 // m.IP
  4348  	return size
  4349  }
  4350  func (m *SwInterfaceIP6GetLinkLocalAddressReply) Marshal(b []byte) ([]byte, error) {
  4351  	if b == nil {
  4352  		b = make([]byte, m.Size())
  4353  	}
  4354  	buf := codec.NewBuffer(b)
  4355  	buf.EncodeInt32(m.Retval)
  4356  	buf.EncodeBytes(m.IP[:], 16)
  4357  	return buf.Bytes(), nil
  4358  }
  4359  func (m *SwInterfaceIP6GetLinkLocalAddressReply) Unmarshal(b []byte) error {
  4360  	buf := codec.NewBuffer(b)
  4361  	m.Retval = buf.DecodeInt32()
  4362  	copy(m.IP[:], buf.DecodeBytes(16))
  4363  	return nil
  4364  }
  4365  
  4366  // SwInterfaceIP6SetLinkLocalAddress defines message 'sw_interface_ip6_set_link_local_address'.
  4367  type SwInterfaceIP6SetLinkLocalAddress struct {
  4368  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
  4369  	IP        ip_types.IP6Address            `binapi:"ip6_address,name=ip" json:"ip,omitempty"`
  4370  }
  4371  
  4372  func (m *SwInterfaceIP6SetLinkLocalAddress) Reset() { *m = SwInterfaceIP6SetLinkLocalAddress{} }
  4373  func (*SwInterfaceIP6SetLinkLocalAddress) GetMessageName() string {
  4374  	return "sw_interface_ip6_set_link_local_address"
  4375  }
  4376  func (*SwInterfaceIP6SetLinkLocalAddress) GetCrcString() string { return "1c10f15f" }
  4377  func (*SwInterfaceIP6SetLinkLocalAddress) GetMessageType() api.MessageType {
  4378  	return api.RequestMessage
  4379  }
  4380  
  4381  func (m *SwInterfaceIP6SetLinkLocalAddress) Size() (size int) {
  4382  	if m == nil {
  4383  		return 0
  4384  	}
  4385  	size += 4      // m.SwIfIndex
  4386  	size += 1 * 16 // m.IP
  4387  	return size
  4388  }
  4389  func (m *SwInterfaceIP6SetLinkLocalAddress) Marshal(b []byte) ([]byte, error) {
  4390  	if b == nil {
  4391  		b = make([]byte, m.Size())
  4392  	}
  4393  	buf := codec.NewBuffer(b)
  4394  	buf.EncodeUint32(uint32(m.SwIfIndex))
  4395  	buf.EncodeBytes(m.IP[:], 16)
  4396  	return buf.Bytes(), nil
  4397  }
  4398  func (m *SwInterfaceIP6SetLinkLocalAddress) Unmarshal(b []byte) error {
  4399  	buf := codec.NewBuffer(b)
  4400  	m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
  4401  	copy(m.IP[:], buf.DecodeBytes(16))
  4402  	return nil
  4403  }
  4404  
  4405  // SwInterfaceIP6SetLinkLocalAddressReply defines message 'sw_interface_ip6_set_link_local_address_reply'.
  4406  type SwInterfaceIP6SetLinkLocalAddressReply struct {
  4407  	Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
  4408  }
  4409  
  4410  func (m *SwInterfaceIP6SetLinkLocalAddressReply) Reset() {
  4411  	*m = SwInterfaceIP6SetLinkLocalAddressReply{}
  4412  }
  4413  func (*SwInterfaceIP6SetLinkLocalAddressReply) GetMessageName() string {
  4414  	return "sw_interface_ip6_set_link_local_address_reply"
  4415  }
  4416  func (*SwInterfaceIP6SetLinkLocalAddressReply) GetCrcString() string { return "e8d4e804" }
  4417  func (*SwInterfaceIP6SetLinkLocalAddressReply) GetMessageType() api.MessageType {
  4418  	return api.ReplyMessage
  4419  }
  4420  
  4421  func (m *SwInterfaceIP6SetLinkLocalAddressReply) Size() (size int) {
  4422  	if m == nil {
  4423  		return 0
  4424  	}
  4425  	size += 4 // m.Retval
  4426  	return size
  4427  }
  4428  func (m *SwInterfaceIP6SetLinkLocalAddressReply) Marshal(b []byte) ([]byte, error) {
  4429  	if b == nil {
  4430  		b = make([]byte, m.Size())
  4431  	}
  4432  	buf := codec.NewBuffer(b)
  4433  	buf.EncodeInt32(m.Retval)
  4434  	return buf.Bytes(), nil
  4435  }
  4436  func (m *SwInterfaceIP6SetLinkLocalAddressReply) Unmarshal(b []byte) error {
  4437  	buf := codec.NewBuffer(b)
  4438  	m.Retval = buf.DecodeInt32()
  4439  	return nil
  4440  }
  4441  
  4442  func init() { file_ip_binapi_init() }
  4443  func file_ip_binapi_init() {
  4444  	api.RegisterMessage((*AddDelIPPuntRedirectV2)(nil), "add_del_ip_punt_redirect_v2_9e804227")
  4445  	api.RegisterMessage((*AddDelIPPuntRedirectV2Reply)(nil), "add_del_ip_punt_redirect_v2_reply_e8d4e804")
  4446  	api.RegisterMessage((*IoamDisable)(nil), "ioam_disable_6b16a45e")
  4447  	api.RegisterMessage((*IoamDisableReply)(nil), "ioam_disable_reply_e8d4e804")
  4448  	api.RegisterMessage((*IoamEnable)(nil), "ioam_enable_51ccd868")
  4449  	api.RegisterMessage((*IoamEnableReply)(nil), "ioam_enable_reply_e8d4e804")
  4450  	api.RegisterMessage((*IPAddressDetails)(nil), "ip_address_details_ee29b797")
  4451  	api.RegisterMessage((*IPAddressDump)(nil), "ip_address_dump_2d033de4")
  4452  	api.RegisterMessage((*IPContainerProxyAddDel)(nil), "ip_container_proxy_add_del_7df1dff1")
  4453  	api.RegisterMessage((*IPContainerProxyAddDelReply)(nil), "ip_container_proxy_add_del_reply_e8d4e804")
  4454  	api.RegisterMessage((*IPContainerProxyDetails)(nil), "ip_container_proxy_details_a8085523")
  4455  	api.RegisterMessage((*IPContainerProxyDump)(nil), "ip_container_proxy_dump_51077d14")
  4456  	api.RegisterMessage((*IPDetails)(nil), "ip_details_eb152d07")
  4457  	api.RegisterMessage((*IPDump)(nil), "ip_dump_98d231ca")
  4458  	api.RegisterMessage((*IPMrouteAddDel)(nil), "ip_mroute_add_del_0dd7e790")
  4459  	api.RegisterMessage((*IPMrouteAddDelReply)(nil), "ip_mroute_add_del_reply_1992deab")
  4460  	api.RegisterMessage((*IPMrouteDetails)(nil), "ip_mroute_details_c5cb23fc")
  4461  	api.RegisterMessage((*IPMrouteDump)(nil), "ip_mroute_dump_b9d2e09e")
  4462  	api.RegisterMessage((*IPMtableDetails)(nil), "ip_mtable_details_b9d2e09e")
  4463  	api.RegisterMessage((*IPMtableDump)(nil), "ip_mtable_dump_51077d14")
  4464  	api.RegisterMessage((*IPPathMtuDetails)(nil), "ip_path_mtu_details_ac9539a7")
  4465  	api.RegisterMessage((*IPPathMtuGet)(nil), "ip_path_mtu_get_f75ba505")
  4466  	api.RegisterMessage((*IPPathMtuGetReply)(nil), "ip_path_mtu_get_reply_53b48f5d")
  4467  	api.RegisterMessage((*IPPathMtuReplaceBegin)(nil), "ip_path_mtu_replace_begin_51077d14")
  4468  	api.RegisterMessage((*IPPathMtuReplaceBeginReply)(nil), "ip_path_mtu_replace_begin_reply_e8d4e804")
  4469  	api.RegisterMessage((*IPPathMtuReplaceEnd)(nil), "ip_path_mtu_replace_end_51077d14")
  4470  	api.RegisterMessage((*IPPathMtuReplaceEndReply)(nil), "ip_path_mtu_replace_end_reply_e8d4e804")
  4471  	api.RegisterMessage((*IPPathMtuUpdate)(nil), "ip_path_mtu_update_10bbe5cb")
  4472  	api.RegisterMessage((*IPPathMtuUpdateReply)(nil), "ip_path_mtu_update_reply_e8d4e804")
  4473  	api.RegisterMessage((*IPPuntPolice)(nil), "ip_punt_police_db867cea")
  4474  	api.RegisterMessage((*IPPuntPoliceReply)(nil), "ip_punt_police_reply_e8d4e804")
  4475  	api.RegisterMessage((*IPPuntRedirect)(nil), "ip_punt_redirect_6580f635")
  4476  	api.RegisterMessage((*IPPuntRedirectDetails)(nil), "ip_punt_redirect_details_2cef63e7")
  4477  	api.RegisterMessage((*IPPuntRedirectDump)(nil), "ip_punt_redirect_dump_2d033de4")
  4478  	api.RegisterMessage((*IPPuntRedirectReply)(nil), "ip_punt_redirect_reply_e8d4e804")
  4479  	api.RegisterMessage((*IPPuntRedirectV2Details)(nil), "ip_punt_redirect_v2_details_7ba42e1d")
  4480  	api.RegisterMessage((*IPPuntRedirectV2Dump)(nil), "ip_punt_redirect_v2_dump_d817a484")
  4481  	api.RegisterMessage((*IPReassemblyEnableDisable)(nil), "ip_reassembly_enable_disable_eb77968d")
  4482  	api.RegisterMessage((*IPReassemblyEnableDisableReply)(nil), "ip_reassembly_enable_disable_reply_e8d4e804")
  4483  	api.RegisterMessage((*IPReassemblyGet)(nil), "ip_reassembly_get_ea13ff63")
  4484  	api.RegisterMessage((*IPReassemblyGetReply)(nil), "ip_reassembly_get_reply_d5eb8d34")
  4485  	api.RegisterMessage((*IPReassemblySet)(nil), "ip_reassembly_set_16467d25")
  4486  	api.RegisterMessage((*IPReassemblySetReply)(nil), "ip_reassembly_set_reply_e8d4e804")
  4487  	api.RegisterMessage((*IPRouteAddDel)(nil), "ip_route_add_del_b8ecfe0d")
  4488  	api.RegisterMessage((*IPRouteAddDelReply)(nil), "ip_route_add_del_reply_1992deab")
  4489  	api.RegisterMessage((*IPRouteAddDelV2)(nil), "ip_route_add_del_v2_521ef330")
  4490  	api.RegisterMessage((*IPRouteAddDelV2Reply)(nil), "ip_route_add_del_v2_reply_1992deab")
  4491  	api.RegisterMessage((*IPRouteDetails)(nil), "ip_route_details_bda8f315")
  4492  	api.RegisterMessage((*IPRouteDump)(nil), "ip_route_dump_b9d2e09e")
  4493  	api.RegisterMessage((*IPRouteLookup)(nil), "ip_route_lookup_710d6471")
  4494  	api.RegisterMessage((*IPRouteLookupReply)(nil), "ip_route_lookup_reply_5d8febcb")
  4495  	api.RegisterMessage((*IPRouteLookupV2)(nil), "ip_route_lookup_v2_710d6471")
  4496  	api.RegisterMessage((*IPRouteLookupV2Reply)(nil), "ip_route_lookup_v2_reply_84cc9e03")
  4497  	api.RegisterMessage((*IPRouteV2Details)(nil), "ip_route_v2_details_b09aa6c0")
  4498  	api.RegisterMessage((*IPRouteV2Dump)(nil), "ip_route_v2_dump_d16f72e6")
  4499  	api.RegisterMessage((*IPSourceAndPortRangeCheckAddDel)(nil), "ip_source_and_port_range_check_add_del_92a067e3")
  4500  	api.RegisterMessage((*IPSourceAndPortRangeCheckAddDelReply)(nil), "ip_source_and_port_range_check_add_del_reply_e8d4e804")
  4501  	api.RegisterMessage((*IPSourceAndPortRangeCheckInterfaceAddDel)(nil), "ip_source_and_port_range_check_interface_add_del_e1ba8987")
  4502  	api.RegisterMessage((*IPSourceAndPortRangeCheckInterfaceAddDelReply)(nil), "ip_source_and_port_range_check_interface_add_del_reply_e8d4e804")
  4503  	api.RegisterMessage((*IPTableAddDel)(nil), "ip_table_add_del_0ffdaec0")
  4504  	api.RegisterMessage((*IPTableAddDelReply)(nil), "ip_table_add_del_reply_e8d4e804")
  4505  	api.RegisterMessage((*IPTableAllocate)(nil), "ip_table_allocate_b9d2e09e")
  4506  	api.RegisterMessage((*IPTableAllocateReply)(nil), "ip_table_allocate_reply_1728303a")
  4507  	api.RegisterMessage((*IPTableDetails)(nil), "ip_table_details_c79fca0f")
  4508  	api.RegisterMessage((*IPTableDump)(nil), "ip_table_dump_51077d14")
  4509  	api.RegisterMessage((*IPTableFlush)(nil), "ip_table_flush_b9d2e09e")
  4510  	api.RegisterMessage((*IPTableFlushReply)(nil), "ip_table_flush_reply_e8d4e804")
  4511  	api.RegisterMessage((*IPTableReplaceBegin)(nil), "ip_table_replace_begin_b9d2e09e")
  4512  	api.RegisterMessage((*IPTableReplaceBeginReply)(nil), "ip_table_replace_begin_reply_e8d4e804")
  4513  	api.RegisterMessage((*IPTableReplaceEnd)(nil), "ip_table_replace_end_b9d2e09e")
  4514  	api.RegisterMessage((*IPTableReplaceEndReply)(nil), "ip_table_replace_end_reply_e8d4e804")
  4515  	api.RegisterMessage((*IPUnnumberedDetails)(nil), "ip_unnumbered_details_cc59bd42")
  4516  	api.RegisterMessage((*IPUnnumberedDump)(nil), "ip_unnumbered_dump_f9e6675e")
  4517  	api.RegisterMessage((*MfibSignalDetails)(nil), "mfib_signal_details_6f4a4cfb")
  4518  	api.RegisterMessage((*MfibSignalDump)(nil), "mfib_signal_dump_51077d14")
  4519  	api.RegisterMessage((*SetIPFlowHash)(nil), "set_ip_flow_hash_084ee09e")
  4520  	api.RegisterMessage((*SetIPFlowHashReply)(nil), "set_ip_flow_hash_reply_e8d4e804")
  4521  	api.RegisterMessage((*SetIPFlowHashRouterID)(nil), "set_ip_flow_hash_router_id_03e4f48e")
  4522  	api.RegisterMessage((*SetIPFlowHashRouterIDReply)(nil), "set_ip_flow_hash_router_id_reply_e8d4e804")
  4523  	api.RegisterMessage((*SetIPFlowHashV2)(nil), "set_ip_flow_hash_v2_6d132100")
  4524  	api.RegisterMessage((*SetIPFlowHashV2Reply)(nil), "set_ip_flow_hash_v2_reply_e8d4e804")
  4525  	api.RegisterMessage((*SwInterfaceIP6EnableDisable)(nil), "sw_interface_ip6_enable_disable_ae6cfcfb")
  4526  	api.RegisterMessage((*SwInterfaceIP6EnableDisableReply)(nil), "sw_interface_ip6_enable_disable_reply_e8d4e804")
  4527  	api.RegisterMessage((*SwInterfaceIP6GetLinkLocalAddress)(nil), "sw_interface_ip6_get_link_local_address_f9e6675e")
  4528  	api.RegisterMessage((*SwInterfaceIP6GetLinkLocalAddressReply)(nil), "sw_interface_ip6_get_link_local_address_reply_d16b7130")
  4529  	api.RegisterMessage((*SwInterfaceIP6SetLinkLocalAddress)(nil), "sw_interface_ip6_set_link_local_address_1c10f15f")
  4530  	api.RegisterMessage((*SwInterfaceIP6SetLinkLocalAddressReply)(nil), "sw_interface_ip6_set_link_local_address_reply_e8d4e804")
  4531  }
  4532  
  4533  // Messages returns list of all messages in this module.
  4534  func AllMessages() []api.Message {
  4535  	return []api.Message{
  4536  		(*AddDelIPPuntRedirectV2)(nil),
  4537  		(*AddDelIPPuntRedirectV2Reply)(nil),
  4538  		(*IoamDisable)(nil),
  4539  		(*IoamDisableReply)(nil),
  4540  		(*IoamEnable)(nil),
  4541  		(*IoamEnableReply)(nil),
  4542  		(*IPAddressDetails)(nil),
  4543  		(*IPAddressDump)(nil),
  4544  		(*IPContainerProxyAddDel)(nil),
  4545  		(*IPContainerProxyAddDelReply)(nil),
  4546  		(*IPContainerProxyDetails)(nil),
  4547  		(*IPContainerProxyDump)(nil),
  4548  		(*IPDetails)(nil),
  4549  		(*IPDump)(nil),
  4550  		(*IPMrouteAddDel)(nil),
  4551  		(*IPMrouteAddDelReply)(nil),
  4552  		(*IPMrouteDetails)(nil),
  4553  		(*IPMrouteDump)(nil),
  4554  		(*IPMtableDetails)(nil),
  4555  		(*IPMtableDump)(nil),
  4556  		(*IPPathMtuDetails)(nil),
  4557  		(*IPPathMtuGet)(nil),
  4558  		(*IPPathMtuGetReply)(nil),
  4559  		(*IPPathMtuReplaceBegin)(nil),
  4560  		(*IPPathMtuReplaceBeginReply)(nil),
  4561  		(*IPPathMtuReplaceEnd)(nil),
  4562  		(*IPPathMtuReplaceEndReply)(nil),
  4563  		(*IPPathMtuUpdate)(nil),
  4564  		(*IPPathMtuUpdateReply)(nil),
  4565  		(*IPPuntPolice)(nil),
  4566  		(*IPPuntPoliceReply)(nil),
  4567  		(*IPPuntRedirect)(nil),
  4568  		(*IPPuntRedirectDetails)(nil),
  4569  		(*IPPuntRedirectDump)(nil),
  4570  		(*IPPuntRedirectReply)(nil),
  4571  		(*IPPuntRedirectV2Details)(nil),
  4572  		(*IPPuntRedirectV2Dump)(nil),
  4573  		(*IPReassemblyEnableDisable)(nil),
  4574  		(*IPReassemblyEnableDisableReply)(nil),
  4575  		(*IPReassemblyGet)(nil),
  4576  		(*IPReassemblyGetReply)(nil),
  4577  		(*IPReassemblySet)(nil),
  4578  		(*IPReassemblySetReply)(nil),
  4579  		(*IPRouteAddDel)(nil),
  4580  		(*IPRouteAddDelReply)(nil),
  4581  		(*IPRouteAddDelV2)(nil),
  4582  		(*IPRouteAddDelV2Reply)(nil),
  4583  		(*IPRouteDetails)(nil),
  4584  		(*IPRouteDump)(nil),
  4585  		(*IPRouteLookup)(nil),
  4586  		(*IPRouteLookupReply)(nil),
  4587  		(*IPRouteLookupV2)(nil),
  4588  		(*IPRouteLookupV2Reply)(nil),
  4589  		(*IPRouteV2Details)(nil),
  4590  		(*IPRouteV2Dump)(nil),
  4591  		(*IPSourceAndPortRangeCheckAddDel)(nil),
  4592  		(*IPSourceAndPortRangeCheckAddDelReply)(nil),
  4593  		(*IPSourceAndPortRangeCheckInterfaceAddDel)(nil),
  4594  		(*IPSourceAndPortRangeCheckInterfaceAddDelReply)(nil),
  4595  		(*IPTableAddDel)(nil),
  4596  		(*IPTableAddDelReply)(nil),
  4597  		(*IPTableAllocate)(nil),
  4598  		(*IPTableAllocateReply)(nil),
  4599  		(*IPTableDetails)(nil),
  4600  		(*IPTableDump)(nil),
  4601  		(*IPTableFlush)(nil),
  4602  		(*IPTableFlushReply)(nil),
  4603  		(*IPTableReplaceBegin)(nil),
  4604  		(*IPTableReplaceBeginReply)(nil),
  4605  		(*IPTableReplaceEnd)(nil),
  4606  		(*IPTableReplaceEndReply)(nil),
  4607  		(*IPUnnumberedDetails)(nil),
  4608  		(*IPUnnumberedDump)(nil),
  4609  		(*MfibSignalDetails)(nil),
  4610  		(*MfibSignalDump)(nil),
  4611  		(*SetIPFlowHash)(nil),
  4612  		(*SetIPFlowHashReply)(nil),
  4613  		(*SetIPFlowHashRouterID)(nil),
  4614  		(*SetIPFlowHashRouterIDReply)(nil),
  4615  		(*SetIPFlowHashV2)(nil),
  4616  		(*SetIPFlowHashV2Reply)(nil),
  4617  		(*SwInterfaceIP6EnableDisable)(nil),
  4618  		(*SwInterfaceIP6EnableDisableReply)(nil),
  4619  		(*SwInterfaceIP6GetLinkLocalAddress)(nil),
  4620  		(*SwInterfaceIP6GetLinkLocalAddressReply)(nil),
  4621  		(*SwInterfaceIP6SetLinkLocalAddress)(nil),
  4622  		(*SwInterfaceIP6SetLinkLocalAddressReply)(nil),
  4623  	}
  4624  }