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