github.com/networkservicemesh/govpp@v0.0.0-20240328101142-8a444680fbba/binapi/l3xc/l3xc.ba.go (about) 1 // Code generated by GoVPP's binapi-generator. DO NOT EDIT. 2 // versions: 3 // binapi-generator: v0.10.0-dev 4 // VPP: 23.10-rc0~170-g6f1548434 5 // source: plugins/l3xc.api.json 6 7 // Package l3xc contains generated bindings for API file l3xc.api. 8 // 9 // Contents: 10 // - 1 struct 11 // - 8 messages 12 package l3xc 13 14 import ( 15 fib_types "github.com/networkservicemesh/govpp/binapi/fib_types" 16 interface_types "github.com/networkservicemesh/govpp/binapi/interface_types" 17 _ "github.com/networkservicemesh/govpp/binapi/ip_types" 18 api "go.fd.io/govpp/api" 19 codec "go.fd.io/govpp/codec" 20 ) 21 22 // This is a compile-time assertion to ensure that this generated file 23 // is compatible with the GoVPP api package it is being compiled against. 24 // A compilation error at this line likely means your copy of the 25 // GoVPP api package needs to be updated. 26 const _ = api.GoVppAPIPackageIsVersion2 27 28 const ( 29 APIFile = "l3xc" 30 APIVersion = "1.0.1" 31 VersionCrc = 0x520bfc6e 32 ) 33 34 // L3xc defines type 'l3xc'. 35 type L3xc struct { 36 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 37 IsIP6 bool `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"` 38 NPaths uint8 `binapi:"u8,name=n_paths" json:"-"` 39 Paths []fib_types.FibPath `binapi:"fib_path[n_paths],name=paths" json:"paths,omitempty"` 40 } 41 42 // L3xcDel defines message 'l3xc_del'. 43 type L3xcDel struct { 44 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 45 IsIP6 bool `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"` 46 } 47 48 func (m *L3xcDel) Reset() { *m = L3xcDel{} } 49 func (*L3xcDel) GetMessageName() string { return "l3xc_del" } 50 func (*L3xcDel) GetCrcString() string { return "e7dbef91" } 51 func (*L3xcDel) GetMessageType() api.MessageType { 52 return api.RequestMessage 53 } 54 55 func (m *L3xcDel) Size() (size int) { 56 if m == nil { 57 return 0 58 } 59 size += 4 // m.SwIfIndex 60 size += 1 // m.IsIP6 61 return size 62 } 63 func (m *L3xcDel) Marshal(b []byte) ([]byte, error) { 64 if b == nil { 65 b = make([]byte, m.Size()) 66 } 67 buf := codec.NewBuffer(b) 68 buf.EncodeUint32(uint32(m.SwIfIndex)) 69 buf.EncodeBool(m.IsIP6) 70 return buf.Bytes(), nil 71 } 72 func (m *L3xcDel) Unmarshal(b []byte) error { 73 buf := codec.NewBuffer(b) 74 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 75 m.IsIP6 = buf.DecodeBool() 76 return nil 77 } 78 79 // L3xcDelReply defines message 'l3xc_del_reply'. 80 type L3xcDelReply struct { 81 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 82 } 83 84 func (m *L3xcDelReply) Reset() { *m = L3xcDelReply{} } 85 func (*L3xcDelReply) GetMessageName() string { return "l3xc_del_reply" } 86 func (*L3xcDelReply) GetCrcString() string { return "e8d4e804" } 87 func (*L3xcDelReply) GetMessageType() api.MessageType { 88 return api.ReplyMessage 89 } 90 91 func (m *L3xcDelReply) Size() (size int) { 92 if m == nil { 93 return 0 94 } 95 size += 4 // m.Retval 96 return size 97 } 98 func (m *L3xcDelReply) Marshal(b []byte) ([]byte, error) { 99 if b == nil { 100 b = make([]byte, m.Size()) 101 } 102 buf := codec.NewBuffer(b) 103 buf.EncodeInt32(m.Retval) 104 return buf.Bytes(), nil 105 } 106 func (m *L3xcDelReply) Unmarshal(b []byte) error { 107 buf := codec.NewBuffer(b) 108 m.Retval = buf.DecodeInt32() 109 return nil 110 } 111 112 // description returned in the dump 113 // L3xcDetails defines message 'l3xc_details'. 114 type L3xcDetails struct { 115 L3xc L3xc `binapi:"l3xc,name=l3xc" json:"l3xc,omitempty"` 116 } 117 118 func (m *L3xcDetails) Reset() { *m = L3xcDetails{} } 119 func (*L3xcDetails) GetMessageName() string { return "l3xc_details" } 120 func (*L3xcDetails) GetCrcString() string { return "bc5bf852" } 121 func (*L3xcDetails) GetMessageType() api.MessageType { 122 return api.ReplyMessage 123 } 124 125 func (m *L3xcDetails) Size() (size int) { 126 if m == nil { 127 return 0 128 } 129 size += 4 // m.L3xc.SwIfIndex 130 size += 1 // m.L3xc.IsIP6 131 size += 1 // m.L3xc.NPaths 132 for j2 := 0; j2 < len(m.L3xc.Paths); j2++ { 133 var s2 fib_types.FibPath 134 _ = s2 135 if j2 < len(m.L3xc.Paths) { 136 s2 = m.L3xc.Paths[j2] 137 } 138 size += 4 // s2.SwIfIndex 139 size += 4 // s2.TableID 140 size += 4 // s2.RpfID 141 size += 1 // s2.Weight 142 size += 1 // s2.Preference 143 size += 4 // s2.Type 144 size += 4 // s2.Flags 145 size += 4 // s2.Proto 146 size += 1 * 16 // s2.Nh.Address 147 size += 4 // s2.Nh.ViaLabel 148 size += 4 // s2.Nh.ObjID 149 size += 4 // s2.Nh.ClassifyTableIndex 150 size += 1 // s2.NLabels 151 for j3 := 0; j3 < 16; j3++ { 152 size += 1 // s2.LabelStack[j3].IsUniform 153 size += 4 // s2.LabelStack[j3].Label 154 size += 1 // s2.LabelStack[j3].TTL 155 size += 1 // s2.LabelStack[j3].Exp 156 } 157 } 158 return size 159 } 160 func (m *L3xcDetails) Marshal(b []byte) ([]byte, error) { 161 if b == nil { 162 b = make([]byte, m.Size()) 163 } 164 buf := codec.NewBuffer(b) 165 buf.EncodeUint32(uint32(m.L3xc.SwIfIndex)) 166 buf.EncodeBool(m.L3xc.IsIP6) 167 buf.EncodeUint8(uint8(len(m.L3xc.Paths))) 168 for j1 := 0; j1 < len(m.L3xc.Paths); j1++ { 169 var v1 fib_types.FibPath // Paths 170 if j1 < len(m.L3xc.Paths) { 171 v1 = m.L3xc.Paths[j1] 172 } 173 buf.EncodeUint32(v1.SwIfIndex) 174 buf.EncodeUint32(v1.TableID) 175 buf.EncodeUint32(v1.RpfID) 176 buf.EncodeUint8(v1.Weight) 177 buf.EncodeUint8(v1.Preference) 178 buf.EncodeUint32(uint32(v1.Type)) 179 buf.EncodeUint32(uint32(v1.Flags)) 180 buf.EncodeUint32(uint32(v1.Proto)) 181 buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 16) 182 buf.EncodeUint32(v1.Nh.ViaLabel) 183 buf.EncodeUint32(v1.Nh.ObjID) 184 buf.EncodeUint32(v1.Nh.ClassifyTableIndex) 185 buf.EncodeUint8(v1.NLabels) 186 for j2 := 0; j2 < 16; j2++ { 187 buf.EncodeUint8(v1.LabelStack[j2].IsUniform) 188 buf.EncodeUint32(v1.LabelStack[j2].Label) 189 buf.EncodeUint8(v1.LabelStack[j2].TTL) 190 buf.EncodeUint8(v1.LabelStack[j2].Exp) 191 } 192 } 193 return buf.Bytes(), nil 194 } 195 func (m *L3xcDetails) Unmarshal(b []byte) error { 196 buf := codec.NewBuffer(b) 197 m.L3xc.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 198 m.L3xc.IsIP6 = buf.DecodeBool() 199 m.L3xc.NPaths = buf.DecodeUint8() 200 m.L3xc.Paths = make([]fib_types.FibPath, m.L3xc.NPaths) 201 for j1 := 0; j1 < len(m.L3xc.Paths); j1++ { 202 m.L3xc.Paths[j1].SwIfIndex = buf.DecodeUint32() 203 m.L3xc.Paths[j1].TableID = buf.DecodeUint32() 204 m.L3xc.Paths[j1].RpfID = buf.DecodeUint32() 205 m.L3xc.Paths[j1].Weight = buf.DecodeUint8() 206 m.L3xc.Paths[j1].Preference = buf.DecodeUint8() 207 m.L3xc.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32()) 208 m.L3xc.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32()) 209 m.L3xc.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32()) 210 copy(m.L3xc.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16)) 211 m.L3xc.Paths[j1].Nh.ViaLabel = buf.DecodeUint32() 212 m.L3xc.Paths[j1].Nh.ObjID = buf.DecodeUint32() 213 m.L3xc.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32() 214 m.L3xc.Paths[j1].NLabels = buf.DecodeUint8() 215 for j2 := 0; j2 < 16; j2++ { 216 m.L3xc.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8() 217 m.L3xc.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32() 218 m.L3xc.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8() 219 m.L3xc.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8() 220 } 221 } 222 return nil 223 } 224 225 // Dump all L3XC policies 226 // L3xcDump defines message 'l3xc_dump'. 227 type L3xcDump struct { 228 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 229 } 230 231 func (m *L3xcDump) Reset() { *m = L3xcDump{} } 232 func (*L3xcDump) GetMessageName() string { return "l3xc_dump" } 233 func (*L3xcDump) GetCrcString() string { return "f9e6675e" } 234 func (*L3xcDump) GetMessageType() api.MessageType { 235 return api.RequestMessage 236 } 237 238 func (m *L3xcDump) Size() (size int) { 239 if m == nil { 240 return 0 241 } 242 size += 4 // m.SwIfIndex 243 return size 244 } 245 func (m *L3xcDump) Marshal(b []byte) ([]byte, error) { 246 if b == nil { 247 b = make([]byte, m.Size()) 248 } 249 buf := codec.NewBuffer(b) 250 buf.EncodeUint32(uint32(m.SwIfIndex)) 251 return buf.Bytes(), nil 252 } 253 func (m *L3xcDump) Unmarshal(b []byte) error { 254 buf := codec.NewBuffer(b) 255 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 256 return nil 257 } 258 259 // Get the plugin version 260 // L3xcPluginGetVersion defines message 'l3xc_plugin_get_version'. 261 type L3xcPluginGetVersion struct{} 262 263 func (m *L3xcPluginGetVersion) Reset() { *m = L3xcPluginGetVersion{} } 264 func (*L3xcPluginGetVersion) GetMessageName() string { return "l3xc_plugin_get_version" } 265 func (*L3xcPluginGetVersion) GetCrcString() string { return "51077d14" } 266 func (*L3xcPluginGetVersion) GetMessageType() api.MessageType { 267 return api.RequestMessage 268 } 269 270 func (m *L3xcPluginGetVersion) Size() (size int) { 271 if m == nil { 272 return 0 273 } 274 return size 275 } 276 func (m *L3xcPluginGetVersion) Marshal(b []byte) ([]byte, error) { 277 if b == nil { 278 b = make([]byte, m.Size()) 279 } 280 buf := codec.NewBuffer(b) 281 return buf.Bytes(), nil 282 } 283 func (m *L3xcPluginGetVersion) Unmarshal(b []byte) error { 284 return nil 285 } 286 287 // Reply to get the plugin version 288 // - major - Incremented every time a known breaking behavior change is introduced 289 // - minor - Incremented with small changes, may be used to avoid buggy versions 290 // 291 // L3xcPluginGetVersionReply defines message 'l3xc_plugin_get_version_reply'. 292 type L3xcPluginGetVersionReply struct { 293 Major uint32 `binapi:"u32,name=major" json:"major,omitempty"` 294 Minor uint32 `binapi:"u32,name=minor" json:"minor,omitempty"` 295 } 296 297 func (m *L3xcPluginGetVersionReply) Reset() { *m = L3xcPluginGetVersionReply{} } 298 func (*L3xcPluginGetVersionReply) GetMessageName() string { return "l3xc_plugin_get_version_reply" } 299 func (*L3xcPluginGetVersionReply) GetCrcString() string { return "9b32cf86" } 300 func (*L3xcPluginGetVersionReply) GetMessageType() api.MessageType { 301 return api.ReplyMessage 302 } 303 304 func (m *L3xcPluginGetVersionReply) Size() (size int) { 305 if m == nil { 306 return 0 307 } 308 size += 4 // m.Major 309 size += 4 // m.Minor 310 return size 311 } 312 func (m *L3xcPluginGetVersionReply) Marshal(b []byte) ([]byte, error) { 313 if b == nil { 314 b = make([]byte, m.Size()) 315 } 316 buf := codec.NewBuffer(b) 317 buf.EncodeUint32(m.Major) 318 buf.EncodeUint32(m.Minor) 319 return buf.Bytes(), nil 320 } 321 func (m *L3xcPluginGetVersionReply) Unmarshal(b []byte) error { 322 buf := codec.NewBuffer(b) 323 m.Major = buf.DecodeUint32() 324 m.Minor = buf.DecodeUint32() 325 return nil 326 } 327 328 // A description of an L3XC policy 329 // - input interface of the x-connect 330 // - n_paths Number of paths 331 // - paths The set of forwarding paths. 332 // 333 // L3xcUpdate defines message 'l3xc_update'. 334 type L3xcUpdate struct { 335 L3xc L3xc `binapi:"l3xc,name=l3xc" json:"l3xc,omitempty"` 336 } 337 338 func (m *L3xcUpdate) Reset() { *m = L3xcUpdate{} } 339 func (*L3xcUpdate) GetMessageName() string { return "l3xc_update" } 340 func (*L3xcUpdate) GetCrcString() string { return "e96aabdf" } 341 func (*L3xcUpdate) GetMessageType() api.MessageType { 342 return api.RequestMessage 343 } 344 345 func (m *L3xcUpdate) Size() (size int) { 346 if m == nil { 347 return 0 348 } 349 size += 4 // m.L3xc.SwIfIndex 350 size += 1 // m.L3xc.IsIP6 351 size += 1 // m.L3xc.NPaths 352 for j2 := 0; j2 < len(m.L3xc.Paths); j2++ { 353 var s2 fib_types.FibPath 354 _ = s2 355 if j2 < len(m.L3xc.Paths) { 356 s2 = m.L3xc.Paths[j2] 357 } 358 size += 4 // s2.SwIfIndex 359 size += 4 // s2.TableID 360 size += 4 // s2.RpfID 361 size += 1 // s2.Weight 362 size += 1 // s2.Preference 363 size += 4 // s2.Type 364 size += 4 // s2.Flags 365 size += 4 // s2.Proto 366 size += 1 * 16 // s2.Nh.Address 367 size += 4 // s2.Nh.ViaLabel 368 size += 4 // s2.Nh.ObjID 369 size += 4 // s2.Nh.ClassifyTableIndex 370 size += 1 // s2.NLabels 371 for j3 := 0; j3 < 16; j3++ { 372 size += 1 // s2.LabelStack[j3].IsUniform 373 size += 4 // s2.LabelStack[j3].Label 374 size += 1 // s2.LabelStack[j3].TTL 375 size += 1 // s2.LabelStack[j3].Exp 376 } 377 } 378 return size 379 } 380 func (m *L3xcUpdate) Marshal(b []byte) ([]byte, error) { 381 if b == nil { 382 b = make([]byte, m.Size()) 383 } 384 buf := codec.NewBuffer(b) 385 buf.EncodeUint32(uint32(m.L3xc.SwIfIndex)) 386 buf.EncodeBool(m.L3xc.IsIP6) 387 buf.EncodeUint8(uint8(len(m.L3xc.Paths))) 388 for j1 := 0; j1 < len(m.L3xc.Paths); j1++ { 389 var v1 fib_types.FibPath // Paths 390 if j1 < len(m.L3xc.Paths) { 391 v1 = m.L3xc.Paths[j1] 392 } 393 buf.EncodeUint32(v1.SwIfIndex) 394 buf.EncodeUint32(v1.TableID) 395 buf.EncodeUint32(v1.RpfID) 396 buf.EncodeUint8(v1.Weight) 397 buf.EncodeUint8(v1.Preference) 398 buf.EncodeUint32(uint32(v1.Type)) 399 buf.EncodeUint32(uint32(v1.Flags)) 400 buf.EncodeUint32(uint32(v1.Proto)) 401 buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 16) 402 buf.EncodeUint32(v1.Nh.ViaLabel) 403 buf.EncodeUint32(v1.Nh.ObjID) 404 buf.EncodeUint32(v1.Nh.ClassifyTableIndex) 405 buf.EncodeUint8(v1.NLabels) 406 for j2 := 0; j2 < 16; j2++ { 407 buf.EncodeUint8(v1.LabelStack[j2].IsUniform) 408 buf.EncodeUint32(v1.LabelStack[j2].Label) 409 buf.EncodeUint8(v1.LabelStack[j2].TTL) 410 buf.EncodeUint8(v1.LabelStack[j2].Exp) 411 } 412 } 413 return buf.Bytes(), nil 414 } 415 func (m *L3xcUpdate) Unmarshal(b []byte) error { 416 buf := codec.NewBuffer(b) 417 m.L3xc.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 418 m.L3xc.IsIP6 = buf.DecodeBool() 419 m.L3xc.NPaths = buf.DecodeUint8() 420 m.L3xc.Paths = make([]fib_types.FibPath, m.L3xc.NPaths) 421 for j1 := 0; j1 < len(m.L3xc.Paths); j1++ { 422 m.L3xc.Paths[j1].SwIfIndex = buf.DecodeUint32() 423 m.L3xc.Paths[j1].TableID = buf.DecodeUint32() 424 m.L3xc.Paths[j1].RpfID = buf.DecodeUint32() 425 m.L3xc.Paths[j1].Weight = buf.DecodeUint8() 426 m.L3xc.Paths[j1].Preference = buf.DecodeUint8() 427 m.L3xc.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32()) 428 m.L3xc.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32()) 429 m.L3xc.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32()) 430 copy(m.L3xc.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16)) 431 m.L3xc.Paths[j1].Nh.ViaLabel = buf.DecodeUint32() 432 m.L3xc.Paths[j1].Nh.ObjID = buf.DecodeUint32() 433 m.L3xc.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32() 434 m.L3xc.Paths[j1].NLabels = buf.DecodeUint8() 435 for j2 := 0; j2 < 16; j2++ { 436 m.L3xc.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8() 437 m.L3xc.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32() 438 m.L3xc.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8() 439 m.L3xc.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8() 440 } 441 } 442 return nil 443 } 444 445 // L3xcUpdateReply defines message 'l3xc_update_reply'. 446 type L3xcUpdateReply struct { 447 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 448 StatsIndex uint32 `binapi:"u32,name=stats_index" json:"stats_index,omitempty"` 449 } 450 451 func (m *L3xcUpdateReply) Reset() { *m = L3xcUpdateReply{} } 452 func (*L3xcUpdateReply) GetMessageName() string { return "l3xc_update_reply" } 453 func (*L3xcUpdateReply) GetCrcString() string { return "1992deab" } 454 func (*L3xcUpdateReply) GetMessageType() api.MessageType { 455 return api.ReplyMessage 456 } 457 458 func (m *L3xcUpdateReply) Size() (size int) { 459 if m == nil { 460 return 0 461 } 462 size += 4 // m.Retval 463 size += 4 // m.StatsIndex 464 return size 465 } 466 func (m *L3xcUpdateReply) Marshal(b []byte) ([]byte, error) { 467 if b == nil { 468 b = make([]byte, m.Size()) 469 } 470 buf := codec.NewBuffer(b) 471 buf.EncodeInt32(m.Retval) 472 buf.EncodeUint32(m.StatsIndex) 473 return buf.Bytes(), nil 474 } 475 func (m *L3xcUpdateReply) Unmarshal(b []byte) error { 476 buf := codec.NewBuffer(b) 477 m.Retval = buf.DecodeInt32() 478 m.StatsIndex = buf.DecodeUint32() 479 return nil 480 } 481 482 func init() { file_l3xc_binapi_init() } 483 func file_l3xc_binapi_init() { 484 api.RegisterMessage((*L3xcDel)(nil), "l3xc_del_e7dbef91") 485 api.RegisterMessage((*L3xcDelReply)(nil), "l3xc_del_reply_e8d4e804") 486 api.RegisterMessage((*L3xcDetails)(nil), "l3xc_details_bc5bf852") 487 api.RegisterMessage((*L3xcDump)(nil), "l3xc_dump_f9e6675e") 488 api.RegisterMessage((*L3xcPluginGetVersion)(nil), "l3xc_plugin_get_version_51077d14") 489 api.RegisterMessage((*L3xcPluginGetVersionReply)(nil), "l3xc_plugin_get_version_reply_9b32cf86") 490 api.RegisterMessage((*L3xcUpdate)(nil), "l3xc_update_e96aabdf") 491 api.RegisterMessage((*L3xcUpdateReply)(nil), "l3xc_update_reply_1992deab") 492 } 493 494 // Messages returns list of all messages in this module. 495 func AllMessages() []api.Message { 496 return []api.Message{ 497 (*L3xcDel)(nil), 498 (*L3xcDelReply)(nil), 499 (*L3xcDetails)(nil), 500 (*L3xcDump)(nil), 501 (*L3xcPluginGetVersion)(nil), 502 (*L3xcPluginGetVersionReply)(nil), 503 (*L3xcUpdate)(nil), 504 (*L3xcUpdateReply)(nil), 505 } 506 }