github.com/networkservicemesh/govpp@v0.0.0-20240328101142-8a444680fbba/binapi/nat44_ed/nat44_ed.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/nat44_ed.api.json 6 7 // Package nat44_ed contains generated bindings for API file nat44_ed.api. 8 // 9 // Contents: 10 // - 1 enum 11 // - 1 struct 12 // - 75 messages 13 package nat44_ed 14 15 import ( 16 "strconv" 17 18 interface_types "github.com/networkservicemesh/govpp/binapi/interface_types" 19 ip_types "github.com/networkservicemesh/govpp/binapi/ip_types" 20 nat_types "github.com/networkservicemesh/govpp/binapi/nat_types" 21 api "go.fd.io/govpp/api" 22 codec "go.fd.io/govpp/codec" 23 ) 24 25 // This is a compile-time assertion to ensure that this generated file 26 // is compatible with the GoVPP api package it is being compiled against. 27 // A compilation error at this line likely means your copy of the 28 // GoVPP api package needs to be updated. 29 const _ = api.GoVppAPIPackageIsVersion2 30 31 const ( 32 APIFile = "nat44_ed" 33 APIVersion = "5.5.0" 34 VersionCrc = 0x6f9bc302 35 ) 36 37 // Nat44ConfigFlags defines enum 'nat44_config_flags'. 38 type Nat44ConfigFlags uint8 39 40 const ( 41 NAT44_IS_ENDPOINT_INDEPENDENT Nat44ConfigFlags = 0 42 NAT44_IS_ENDPOINT_DEPENDENT Nat44ConfigFlags = 1 43 NAT44_IS_STATIC_MAPPING_ONLY Nat44ConfigFlags = 2 44 NAT44_IS_CONNECTION_TRACKING Nat44ConfigFlags = 4 45 NAT44_IS_OUT2IN_DPO Nat44ConfigFlags = 8 46 ) 47 48 var ( 49 Nat44ConfigFlags_name = map[uint8]string{ 50 0: "NAT44_IS_ENDPOINT_INDEPENDENT", 51 1: "NAT44_IS_ENDPOINT_DEPENDENT", 52 2: "NAT44_IS_STATIC_MAPPING_ONLY", 53 4: "NAT44_IS_CONNECTION_TRACKING", 54 8: "NAT44_IS_OUT2IN_DPO", 55 } 56 Nat44ConfigFlags_value = map[string]uint8{ 57 "NAT44_IS_ENDPOINT_INDEPENDENT": 0, 58 "NAT44_IS_ENDPOINT_DEPENDENT": 1, 59 "NAT44_IS_STATIC_MAPPING_ONLY": 2, 60 "NAT44_IS_CONNECTION_TRACKING": 4, 61 "NAT44_IS_OUT2IN_DPO": 8, 62 } 63 ) 64 65 func (x Nat44ConfigFlags) String() string { 66 s, ok := Nat44ConfigFlags_name[uint8(x)] 67 if ok { 68 return s 69 } 70 str := func(n uint8) string { 71 s, ok := Nat44ConfigFlags_name[uint8(n)] 72 if ok { 73 return s 74 } 75 return "Nat44ConfigFlags(" + strconv.Itoa(int(n)) + ")" 76 } 77 for i := uint8(0); i <= 8; i++ { 78 val := uint8(x) 79 if val&(1<<i) != 0 { 80 if s != "" { 81 s += "|" 82 } 83 s += str(1 << i) 84 } 85 } 86 if s == "" { 87 return str(uint8(x)) 88 } 89 return s 90 } 91 92 // Nat44LbAddrPort defines type 'nat44_lb_addr_port'. 93 type Nat44LbAddrPort struct { 94 Addr ip_types.IP4Address `binapi:"ip4_address,name=addr" json:"addr,omitempty"` 95 Port uint16 `binapi:"u16,name=port" json:"port,omitempty"` 96 Probability uint8 `binapi:"u8,name=probability" json:"probability,omitempty"` 97 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 98 } 99 100 // Add/del NAT44 address range 101 // - first_ip_address - first IPv4 address 102 // - last_ip_address - last IPv4 address 103 // - vrf_id - VRF id of tenant, ~0 means independent of VRF 104 // - is_add - true if add, false if delete 105 // - flags - flag NAT_IS_TWICE_NAT if NAT address range for external hosts 106 // 107 // Nat44AddDelAddressRange defines message 'nat44_add_del_address_range'. 108 type Nat44AddDelAddressRange struct { 109 FirstIPAddress ip_types.IP4Address `binapi:"ip4_address,name=first_ip_address" json:"first_ip_address,omitempty"` 110 LastIPAddress ip_types.IP4Address `binapi:"ip4_address,name=last_ip_address" json:"last_ip_address,omitempty"` 111 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 112 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 113 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 114 } 115 116 func (m *Nat44AddDelAddressRange) Reset() { *m = Nat44AddDelAddressRange{} } 117 func (*Nat44AddDelAddressRange) GetMessageName() string { return "nat44_add_del_address_range" } 118 func (*Nat44AddDelAddressRange) GetCrcString() string { return "6f2b8055" } 119 func (*Nat44AddDelAddressRange) GetMessageType() api.MessageType { 120 return api.RequestMessage 121 } 122 123 func (m *Nat44AddDelAddressRange) Size() (size int) { 124 if m == nil { 125 return 0 126 } 127 size += 1 * 4 // m.FirstIPAddress 128 size += 1 * 4 // m.LastIPAddress 129 size += 4 // m.VrfID 130 size += 1 // m.IsAdd 131 size += 1 // m.Flags 132 return size 133 } 134 func (m *Nat44AddDelAddressRange) Marshal(b []byte) ([]byte, error) { 135 if b == nil { 136 b = make([]byte, m.Size()) 137 } 138 buf := codec.NewBuffer(b) 139 buf.EncodeBytes(m.FirstIPAddress[:], 4) 140 buf.EncodeBytes(m.LastIPAddress[:], 4) 141 buf.EncodeUint32(m.VrfID) 142 buf.EncodeBool(m.IsAdd) 143 buf.EncodeUint8(uint8(m.Flags)) 144 return buf.Bytes(), nil 145 } 146 func (m *Nat44AddDelAddressRange) Unmarshal(b []byte) error { 147 buf := codec.NewBuffer(b) 148 copy(m.FirstIPAddress[:], buf.DecodeBytes(4)) 149 copy(m.LastIPAddress[:], buf.DecodeBytes(4)) 150 m.VrfID = buf.DecodeUint32() 151 m.IsAdd = buf.DecodeBool() 152 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 153 return nil 154 } 155 156 // Nat44AddDelAddressRangeReply defines message 'nat44_add_del_address_range_reply'. 157 type Nat44AddDelAddressRangeReply struct { 158 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 159 } 160 161 func (m *Nat44AddDelAddressRangeReply) Reset() { *m = Nat44AddDelAddressRangeReply{} } 162 func (*Nat44AddDelAddressRangeReply) GetMessageName() string { 163 return "nat44_add_del_address_range_reply" 164 } 165 func (*Nat44AddDelAddressRangeReply) GetCrcString() string { return "e8d4e804" } 166 func (*Nat44AddDelAddressRangeReply) GetMessageType() api.MessageType { 167 return api.ReplyMessage 168 } 169 170 func (m *Nat44AddDelAddressRangeReply) Size() (size int) { 171 if m == nil { 172 return 0 173 } 174 size += 4 // m.Retval 175 return size 176 } 177 func (m *Nat44AddDelAddressRangeReply) Marshal(b []byte) ([]byte, error) { 178 if b == nil { 179 b = make([]byte, m.Size()) 180 } 181 buf := codec.NewBuffer(b) 182 buf.EncodeInt32(m.Retval) 183 return buf.Bytes(), nil 184 } 185 func (m *Nat44AddDelAddressRangeReply) Unmarshal(b []byte) error { 186 buf := codec.NewBuffer(b) 187 m.Retval = buf.DecodeInt32() 188 return nil 189 } 190 191 // Add/delete NAT44 identity mapping 192 // - is_add - true if add, false if delete 193 // - flags - flag NAT_ADDR_ONLY if address only mapping 194 // - ip_address - IPv4 address 195 // - protocol - IP protocol 196 // - port - port number 197 // - sw_if_index - interface (if set ip_address is ignored, ~0 means not 198 // used) 199 // - vfr_id - VRF ID (if ~0 use default VRF) 200 // - tag - opaque string tag 201 // 202 // Nat44AddDelIdentityMapping defines message 'nat44_add_del_identity_mapping'. 203 type Nat44AddDelIdentityMapping struct { 204 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 205 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 206 IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"` 207 Protocol uint8 `binapi:"u8,name=protocol" json:"protocol,omitempty"` 208 Port uint16 `binapi:"u16,name=port" json:"port,omitempty"` 209 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 210 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 211 Tag string `binapi:"string[64],name=tag" json:"tag,omitempty"` 212 } 213 214 func (m *Nat44AddDelIdentityMapping) Reset() { *m = Nat44AddDelIdentityMapping{} } 215 func (*Nat44AddDelIdentityMapping) GetMessageName() string { return "nat44_add_del_identity_mapping" } 216 func (*Nat44AddDelIdentityMapping) GetCrcString() string { return "02faaa22" } 217 func (*Nat44AddDelIdentityMapping) GetMessageType() api.MessageType { 218 return api.RequestMessage 219 } 220 221 func (m *Nat44AddDelIdentityMapping) Size() (size int) { 222 if m == nil { 223 return 0 224 } 225 size += 1 // m.IsAdd 226 size += 1 // m.Flags 227 size += 1 * 4 // m.IPAddress 228 size += 1 // m.Protocol 229 size += 2 // m.Port 230 size += 4 // m.SwIfIndex 231 size += 4 // m.VrfID 232 size += 64 // m.Tag 233 return size 234 } 235 func (m *Nat44AddDelIdentityMapping) 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.EncodeUint8(uint8(m.Flags)) 242 buf.EncodeBytes(m.IPAddress[:], 4) 243 buf.EncodeUint8(m.Protocol) 244 buf.EncodeUint16(m.Port) 245 buf.EncodeUint32(uint32(m.SwIfIndex)) 246 buf.EncodeUint32(m.VrfID) 247 buf.EncodeString(m.Tag, 64) 248 return buf.Bytes(), nil 249 } 250 func (m *Nat44AddDelIdentityMapping) Unmarshal(b []byte) error { 251 buf := codec.NewBuffer(b) 252 m.IsAdd = buf.DecodeBool() 253 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 254 copy(m.IPAddress[:], buf.DecodeBytes(4)) 255 m.Protocol = buf.DecodeUint8() 256 m.Port = buf.DecodeUint16() 257 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 258 m.VrfID = buf.DecodeUint32() 259 m.Tag = buf.DecodeString(64) 260 return nil 261 } 262 263 // Nat44AddDelIdentityMappingReply defines message 'nat44_add_del_identity_mapping_reply'. 264 type Nat44AddDelIdentityMappingReply struct { 265 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 266 } 267 268 func (m *Nat44AddDelIdentityMappingReply) Reset() { *m = Nat44AddDelIdentityMappingReply{} } 269 func (*Nat44AddDelIdentityMappingReply) GetMessageName() string { 270 return "nat44_add_del_identity_mapping_reply" 271 } 272 func (*Nat44AddDelIdentityMappingReply) GetCrcString() string { return "e8d4e804" } 273 func (*Nat44AddDelIdentityMappingReply) GetMessageType() api.MessageType { 274 return api.ReplyMessage 275 } 276 277 func (m *Nat44AddDelIdentityMappingReply) Size() (size int) { 278 if m == nil { 279 return 0 280 } 281 size += 4 // m.Retval 282 return size 283 } 284 func (m *Nat44AddDelIdentityMappingReply) Marshal(b []byte) ([]byte, error) { 285 if b == nil { 286 b = make([]byte, m.Size()) 287 } 288 buf := codec.NewBuffer(b) 289 buf.EncodeInt32(m.Retval) 290 return buf.Bytes(), nil 291 } 292 func (m *Nat44AddDelIdentityMappingReply) Unmarshal(b []byte) error { 293 buf := codec.NewBuffer(b) 294 m.Retval = buf.DecodeInt32() 295 return nil 296 } 297 298 // Add/delete NAT44 pool address from specific interfce 299 // - is_add - true if add, false if delete 300 // - sw_if_index - software index of the interface 301 // - flags - flag NAT_TWICE_NAT if NAT address range for external hosts 302 // 303 // Nat44AddDelInterfaceAddr defines message 'nat44_add_del_interface_addr'. 304 type Nat44AddDelInterfaceAddr struct { 305 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 306 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 307 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 308 } 309 310 func (m *Nat44AddDelInterfaceAddr) Reset() { *m = Nat44AddDelInterfaceAddr{} } 311 func (*Nat44AddDelInterfaceAddr) GetMessageName() string { return "nat44_add_del_interface_addr" } 312 func (*Nat44AddDelInterfaceAddr) GetCrcString() string { return "4aed50c0" } 313 func (*Nat44AddDelInterfaceAddr) GetMessageType() api.MessageType { 314 return api.RequestMessage 315 } 316 317 func (m *Nat44AddDelInterfaceAddr) Size() (size int) { 318 if m == nil { 319 return 0 320 } 321 size += 1 // m.IsAdd 322 size += 4 // m.SwIfIndex 323 size += 1 // m.Flags 324 return size 325 } 326 func (m *Nat44AddDelInterfaceAddr) Marshal(b []byte) ([]byte, error) { 327 if b == nil { 328 b = make([]byte, m.Size()) 329 } 330 buf := codec.NewBuffer(b) 331 buf.EncodeBool(m.IsAdd) 332 buf.EncodeUint32(uint32(m.SwIfIndex)) 333 buf.EncodeUint8(uint8(m.Flags)) 334 return buf.Bytes(), nil 335 } 336 func (m *Nat44AddDelInterfaceAddr) Unmarshal(b []byte) error { 337 buf := codec.NewBuffer(b) 338 m.IsAdd = buf.DecodeBool() 339 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 340 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 341 return nil 342 } 343 344 // Nat44AddDelInterfaceAddrReply defines message 'nat44_add_del_interface_addr_reply'. 345 type Nat44AddDelInterfaceAddrReply struct { 346 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 347 } 348 349 func (m *Nat44AddDelInterfaceAddrReply) Reset() { *m = Nat44AddDelInterfaceAddrReply{} } 350 func (*Nat44AddDelInterfaceAddrReply) GetMessageName() string { 351 return "nat44_add_del_interface_addr_reply" 352 } 353 func (*Nat44AddDelInterfaceAddrReply) GetCrcString() string { return "e8d4e804" } 354 func (*Nat44AddDelInterfaceAddrReply) GetMessageType() api.MessageType { 355 return api.ReplyMessage 356 } 357 358 func (m *Nat44AddDelInterfaceAddrReply) Size() (size int) { 359 if m == nil { 360 return 0 361 } 362 size += 4 // m.Retval 363 return size 364 } 365 func (m *Nat44AddDelInterfaceAddrReply) Marshal(b []byte) ([]byte, error) { 366 if b == nil { 367 b = make([]byte, m.Size()) 368 } 369 buf := codec.NewBuffer(b) 370 buf.EncodeInt32(m.Retval) 371 return buf.Bytes(), nil 372 } 373 func (m *Nat44AddDelInterfaceAddrReply) Unmarshal(b []byte) error { 374 buf := codec.NewBuffer(b) 375 m.Retval = buf.DecodeInt32() 376 return nil 377 } 378 379 // Add/delete NAT44 load-balancing static mapping rule 380 // - is_add - true if add, false if delete 381 // - flags - flag NAT_TWICE_NAT if NAT address range for external hosts, 382 // flag NAT_SELF_TWICE_NAT if translate external host address 383 // and port whenever external host address equals local 384 // address of internal host, 385 // flag NAT_OUT2IN_ONLY if rule match only out2in direction 386 // - external_addr - external IPv4 address of the service 387 // - external_port - external L4 port number of the service 388 // - protocol - IP protocol number of the service 389 // - affinity - if 0 disabled, otherwise client IP affinity sticky time 390 // in seconds 391 // - local_num - number of local network nodes 392 // - locals - local network nodes 393 // - tag - opaque string tag 394 // 395 // Nat44AddDelLbStaticMapping defines message 'nat44_add_del_lb_static_mapping'. 396 type Nat44AddDelLbStaticMapping struct { 397 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 398 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 399 ExternalAddr ip_types.IP4Address `binapi:"ip4_address,name=external_addr" json:"external_addr,omitempty"` 400 ExternalPort uint16 `binapi:"u16,name=external_port" json:"external_port,omitempty"` 401 Protocol uint8 `binapi:"u8,name=protocol" json:"protocol,omitempty"` 402 Affinity uint32 `binapi:"u32,name=affinity" json:"affinity,omitempty"` 403 Tag string `binapi:"string[64],name=tag" json:"tag,omitempty"` 404 LocalNum uint32 `binapi:"u32,name=local_num" json:"-"` 405 Locals []Nat44LbAddrPort `binapi:"nat44_lb_addr_port[local_num],name=locals" json:"locals,omitempty"` 406 } 407 408 func (m *Nat44AddDelLbStaticMapping) Reset() { *m = Nat44AddDelLbStaticMapping{} } 409 func (*Nat44AddDelLbStaticMapping) GetMessageName() string { return "nat44_add_del_lb_static_mapping" } 410 func (*Nat44AddDelLbStaticMapping) GetCrcString() string { return "4f68ee9d" } 411 func (*Nat44AddDelLbStaticMapping) GetMessageType() api.MessageType { 412 return api.RequestMessage 413 } 414 415 func (m *Nat44AddDelLbStaticMapping) Size() (size int) { 416 if m == nil { 417 return 0 418 } 419 size += 1 // m.IsAdd 420 size += 1 // m.Flags 421 size += 1 * 4 // m.ExternalAddr 422 size += 2 // m.ExternalPort 423 size += 1 // m.Protocol 424 size += 4 // m.Affinity 425 size += 64 // m.Tag 426 size += 4 // m.LocalNum 427 for j1 := 0; j1 < len(m.Locals); j1++ { 428 var s1 Nat44LbAddrPort 429 _ = s1 430 if j1 < len(m.Locals) { 431 s1 = m.Locals[j1] 432 } 433 size += 1 * 4 // s1.Addr 434 size += 2 // s1.Port 435 size += 1 // s1.Probability 436 size += 4 // s1.VrfID 437 } 438 return size 439 } 440 func (m *Nat44AddDelLbStaticMapping) Marshal(b []byte) ([]byte, error) { 441 if b == nil { 442 b = make([]byte, m.Size()) 443 } 444 buf := codec.NewBuffer(b) 445 buf.EncodeBool(m.IsAdd) 446 buf.EncodeUint8(uint8(m.Flags)) 447 buf.EncodeBytes(m.ExternalAddr[:], 4) 448 buf.EncodeUint16(m.ExternalPort) 449 buf.EncodeUint8(m.Protocol) 450 buf.EncodeUint32(m.Affinity) 451 buf.EncodeString(m.Tag, 64) 452 buf.EncodeUint32(uint32(len(m.Locals))) 453 for j0 := 0; j0 < len(m.Locals); j0++ { 454 var v0 Nat44LbAddrPort // Locals 455 if j0 < len(m.Locals) { 456 v0 = m.Locals[j0] 457 } 458 buf.EncodeBytes(v0.Addr[:], 4) 459 buf.EncodeUint16(v0.Port) 460 buf.EncodeUint8(v0.Probability) 461 buf.EncodeUint32(v0.VrfID) 462 } 463 return buf.Bytes(), nil 464 } 465 func (m *Nat44AddDelLbStaticMapping) Unmarshal(b []byte) error { 466 buf := codec.NewBuffer(b) 467 m.IsAdd = buf.DecodeBool() 468 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 469 copy(m.ExternalAddr[:], buf.DecodeBytes(4)) 470 m.ExternalPort = buf.DecodeUint16() 471 m.Protocol = buf.DecodeUint8() 472 m.Affinity = buf.DecodeUint32() 473 m.Tag = buf.DecodeString(64) 474 m.LocalNum = buf.DecodeUint32() 475 m.Locals = make([]Nat44LbAddrPort, m.LocalNum) 476 for j0 := 0; j0 < len(m.Locals); j0++ { 477 copy(m.Locals[j0].Addr[:], buf.DecodeBytes(4)) 478 m.Locals[j0].Port = buf.DecodeUint16() 479 m.Locals[j0].Probability = buf.DecodeUint8() 480 m.Locals[j0].VrfID = buf.DecodeUint32() 481 } 482 return nil 483 } 484 485 // Nat44AddDelLbStaticMappingReply defines message 'nat44_add_del_lb_static_mapping_reply'. 486 type Nat44AddDelLbStaticMappingReply struct { 487 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 488 } 489 490 func (m *Nat44AddDelLbStaticMappingReply) Reset() { *m = Nat44AddDelLbStaticMappingReply{} } 491 func (*Nat44AddDelLbStaticMappingReply) GetMessageName() string { 492 return "nat44_add_del_lb_static_mapping_reply" 493 } 494 func (*Nat44AddDelLbStaticMappingReply) GetCrcString() string { return "e8d4e804" } 495 func (*Nat44AddDelLbStaticMappingReply) GetMessageType() api.MessageType { 496 return api.ReplyMessage 497 } 498 499 func (m *Nat44AddDelLbStaticMappingReply) Size() (size int) { 500 if m == nil { 501 return 0 502 } 503 size += 4 // m.Retval 504 return size 505 } 506 func (m *Nat44AddDelLbStaticMappingReply) Marshal(b []byte) ([]byte, error) { 507 if b == nil { 508 b = make([]byte, m.Size()) 509 } 510 buf := codec.NewBuffer(b) 511 buf.EncodeInt32(m.Retval) 512 return buf.Bytes(), nil 513 } 514 func (m *Nat44AddDelLbStaticMappingReply) Unmarshal(b []byte) error { 515 buf := codec.NewBuffer(b) 516 m.Retval = buf.DecodeInt32() 517 return nil 518 } 519 520 // Add/delete NAT44 static mapping 521 // - is_add - true if add, false if delete 522 // - flags - flag NAT_IS_ADDR_ONLY if address only mapping, 523 // flag nat_is_twice_nat if nat address range for external hosts, 524 // flag NAT_IS_SELF_TWICE_NAT if translate external host address 525 // and port whenever external host address equals local 526 // address of internal host, 527 // flag NAT_IS_OUT2IN_ONLY if rule match only out2in direction 528 // - local_ip_address - local IPv4 address 529 // - external_ip_address - external IPv4 address 530 // - protocol - IP protocol, used only if addr_only=0 531 // - local_port - local port number, used only if addr_only=0 532 // - external_port - external port number, used only if addr_only=0 533 // - external_sw_if_index - external interface (if set 534 // external_ip_address is ignored, ~0 means not 535 // used) 536 // - vfr_id - VRF ID 537 // - tag - opaque string tag 538 // 539 // Nat44AddDelStaticMapping defines message 'nat44_add_del_static_mapping'. 540 // Deprecated: the message will be removed in the future versions 541 type Nat44AddDelStaticMapping struct { 542 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 543 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 544 LocalIPAddress ip_types.IP4Address `binapi:"ip4_address,name=local_ip_address" json:"local_ip_address,omitempty"` 545 ExternalIPAddress ip_types.IP4Address `binapi:"ip4_address,name=external_ip_address" json:"external_ip_address,omitempty"` 546 Protocol uint8 `binapi:"u8,name=protocol" json:"protocol,omitempty"` 547 LocalPort uint16 `binapi:"u16,name=local_port" json:"local_port,omitempty"` 548 ExternalPort uint16 `binapi:"u16,name=external_port" json:"external_port,omitempty"` 549 ExternalSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=external_sw_if_index" json:"external_sw_if_index,omitempty"` 550 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 551 Tag string `binapi:"string[64],name=tag" json:"tag,omitempty"` 552 } 553 554 func (m *Nat44AddDelStaticMapping) Reset() { *m = Nat44AddDelStaticMapping{} } 555 func (*Nat44AddDelStaticMapping) GetMessageName() string { return "nat44_add_del_static_mapping" } 556 func (*Nat44AddDelStaticMapping) GetCrcString() string { return "5ae5f03e" } 557 func (*Nat44AddDelStaticMapping) GetMessageType() api.MessageType { 558 return api.RequestMessage 559 } 560 561 func (m *Nat44AddDelStaticMapping) Size() (size int) { 562 if m == nil { 563 return 0 564 } 565 size += 1 // m.IsAdd 566 size += 1 // m.Flags 567 size += 1 * 4 // m.LocalIPAddress 568 size += 1 * 4 // m.ExternalIPAddress 569 size += 1 // m.Protocol 570 size += 2 // m.LocalPort 571 size += 2 // m.ExternalPort 572 size += 4 // m.ExternalSwIfIndex 573 size += 4 // m.VrfID 574 size += 64 // m.Tag 575 return size 576 } 577 func (m *Nat44AddDelStaticMapping) Marshal(b []byte) ([]byte, error) { 578 if b == nil { 579 b = make([]byte, m.Size()) 580 } 581 buf := codec.NewBuffer(b) 582 buf.EncodeBool(m.IsAdd) 583 buf.EncodeUint8(uint8(m.Flags)) 584 buf.EncodeBytes(m.LocalIPAddress[:], 4) 585 buf.EncodeBytes(m.ExternalIPAddress[:], 4) 586 buf.EncodeUint8(m.Protocol) 587 buf.EncodeUint16(m.LocalPort) 588 buf.EncodeUint16(m.ExternalPort) 589 buf.EncodeUint32(uint32(m.ExternalSwIfIndex)) 590 buf.EncodeUint32(m.VrfID) 591 buf.EncodeString(m.Tag, 64) 592 return buf.Bytes(), nil 593 } 594 func (m *Nat44AddDelStaticMapping) Unmarshal(b []byte) error { 595 buf := codec.NewBuffer(b) 596 m.IsAdd = buf.DecodeBool() 597 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 598 copy(m.LocalIPAddress[:], buf.DecodeBytes(4)) 599 copy(m.ExternalIPAddress[:], buf.DecodeBytes(4)) 600 m.Protocol = buf.DecodeUint8() 601 m.LocalPort = buf.DecodeUint16() 602 m.ExternalPort = buf.DecodeUint16() 603 m.ExternalSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 604 m.VrfID = buf.DecodeUint32() 605 m.Tag = buf.DecodeString(64) 606 return nil 607 } 608 609 // Nat44AddDelStaticMappingReply defines message 'nat44_add_del_static_mapping_reply'. 610 // Deprecated: the message will be removed in the future versions 611 type Nat44AddDelStaticMappingReply struct { 612 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 613 } 614 615 func (m *Nat44AddDelStaticMappingReply) Reset() { *m = Nat44AddDelStaticMappingReply{} } 616 func (*Nat44AddDelStaticMappingReply) GetMessageName() string { 617 return "nat44_add_del_static_mapping_reply" 618 } 619 func (*Nat44AddDelStaticMappingReply) GetCrcString() string { return "e8d4e804" } 620 func (*Nat44AddDelStaticMappingReply) GetMessageType() api.MessageType { 621 return api.ReplyMessage 622 } 623 624 func (m *Nat44AddDelStaticMappingReply) Size() (size int) { 625 if m == nil { 626 return 0 627 } 628 size += 4 // m.Retval 629 return size 630 } 631 func (m *Nat44AddDelStaticMappingReply) Marshal(b []byte) ([]byte, error) { 632 if b == nil { 633 b = make([]byte, m.Size()) 634 } 635 buf := codec.NewBuffer(b) 636 buf.EncodeInt32(m.Retval) 637 return buf.Bytes(), nil 638 } 639 func (m *Nat44AddDelStaticMappingReply) Unmarshal(b []byte) error { 640 buf := codec.NewBuffer(b) 641 m.Retval = buf.DecodeInt32() 642 return nil 643 } 644 645 // Add/delete NAT44 static mapping 646 // - is_add - true if add, false if delete 647 // - match_pool - true if use specific pool_ip_address 648 // - flags - flag NAT_IS_ADDR_ONLY if address only mapping, 649 // flag nat_is_twice_nat if nat address range for external hosts, 650 // flag NAT_IS_SELF_TWICE_NAT if translate external host address 651 // and port whenever external host address equals local 652 // address of internal host, 653 // flag NAT_IS_OUT2IN_ONLY if rule match only out2in direction 654 // - pool_ip_address - pool IPv4 address to match with pool 655 // - local_ip_address - local IPv4 address 656 // - external_ip_address - external IPv4 address 657 // - protocol - IP protocol, used only if addr_only=0 658 // - local_port - local port number, used only if addr_only=0 659 // - external_port - external port number, used only if addr_only=0 660 // - external_sw_if_index - external interface (if set 661 // external_ip_address is ignored, ~0 means not 662 // used) 663 // - vfr_id - VRF ID 664 // - tag - opaque string tag 665 // 666 // Nat44AddDelStaticMappingV2 defines message 'nat44_add_del_static_mapping_v2'. 667 type Nat44AddDelStaticMappingV2 struct { 668 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 669 MatchPool bool `binapi:"bool,name=match_pool" json:"match_pool,omitempty"` 670 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 671 PoolIPAddress ip_types.IP4Address `binapi:"ip4_address,name=pool_ip_address" json:"pool_ip_address,omitempty"` 672 LocalIPAddress ip_types.IP4Address `binapi:"ip4_address,name=local_ip_address" json:"local_ip_address,omitempty"` 673 ExternalIPAddress ip_types.IP4Address `binapi:"ip4_address,name=external_ip_address" json:"external_ip_address,omitempty"` 674 Protocol uint8 `binapi:"u8,name=protocol" json:"protocol,omitempty"` 675 LocalPort uint16 `binapi:"u16,name=local_port" json:"local_port,omitempty"` 676 ExternalPort uint16 `binapi:"u16,name=external_port" json:"external_port,omitempty"` 677 ExternalSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=external_sw_if_index" json:"external_sw_if_index,omitempty"` 678 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 679 Tag string `binapi:"string[64],name=tag" json:"tag,omitempty"` 680 } 681 682 func (m *Nat44AddDelStaticMappingV2) Reset() { *m = Nat44AddDelStaticMappingV2{} } 683 func (*Nat44AddDelStaticMappingV2) GetMessageName() string { return "nat44_add_del_static_mapping_v2" } 684 func (*Nat44AddDelStaticMappingV2) GetCrcString() string { return "5e205f1a" } 685 func (*Nat44AddDelStaticMappingV2) GetMessageType() api.MessageType { 686 return api.RequestMessage 687 } 688 689 func (m *Nat44AddDelStaticMappingV2) Size() (size int) { 690 if m == nil { 691 return 0 692 } 693 size += 1 // m.IsAdd 694 size += 1 // m.MatchPool 695 size += 1 // m.Flags 696 size += 1 * 4 // m.PoolIPAddress 697 size += 1 * 4 // m.LocalIPAddress 698 size += 1 * 4 // m.ExternalIPAddress 699 size += 1 // m.Protocol 700 size += 2 // m.LocalPort 701 size += 2 // m.ExternalPort 702 size += 4 // m.ExternalSwIfIndex 703 size += 4 // m.VrfID 704 size += 64 // m.Tag 705 return size 706 } 707 func (m *Nat44AddDelStaticMappingV2) Marshal(b []byte) ([]byte, error) { 708 if b == nil { 709 b = make([]byte, m.Size()) 710 } 711 buf := codec.NewBuffer(b) 712 buf.EncodeBool(m.IsAdd) 713 buf.EncodeBool(m.MatchPool) 714 buf.EncodeUint8(uint8(m.Flags)) 715 buf.EncodeBytes(m.PoolIPAddress[:], 4) 716 buf.EncodeBytes(m.LocalIPAddress[:], 4) 717 buf.EncodeBytes(m.ExternalIPAddress[:], 4) 718 buf.EncodeUint8(m.Protocol) 719 buf.EncodeUint16(m.LocalPort) 720 buf.EncodeUint16(m.ExternalPort) 721 buf.EncodeUint32(uint32(m.ExternalSwIfIndex)) 722 buf.EncodeUint32(m.VrfID) 723 buf.EncodeString(m.Tag, 64) 724 return buf.Bytes(), nil 725 } 726 func (m *Nat44AddDelStaticMappingV2) Unmarshal(b []byte) error { 727 buf := codec.NewBuffer(b) 728 m.IsAdd = buf.DecodeBool() 729 m.MatchPool = buf.DecodeBool() 730 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 731 copy(m.PoolIPAddress[:], buf.DecodeBytes(4)) 732 copy(m.LocalIPAddress[:], buf.DecodeBytes(4)) 733 copy(m.ExternalIPAddress[:], buf.DecodeBytes(4)) 734 m.Protocol = buf.DecodeUint8() 735 m.LocalPort = buf.DecodeUint16() 736 m.ExternalPort = buf.DecodeUint16() 737 m.ExternalSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 738 m.VrfID = buf.DecodeUint32() 739 m.Tag = buf.DecodeString(64) 740 return nil 741 } 742 743 // Nat44AddDelStaticMappingV2Reply defines message 'nat44_add_del_static_mapping_v2_reply'. 744 type Nat44AddDelStaticMappingV2Reply struct { 745 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 746 } 747 748 func (m *Nat44AddDelStaticMappingV2Reply) Reset() { *m = Nat44AddDelStaticMappingV2Reply{} } 749 func (*Nat44AddDelStaticMappingV2Reply) GetMessageName() string { 750 return "nat44_add_del_static_mapping_v2_reply" 751 } 752 func (*Nat44AddDelStaticMappingV2Reply) GetCrcString() string { return "e8d4e804" } 753 func (*Nat44AddDelStaticMappingV2Reply) GetMessageType() api.MessageType { 754 return api.ReplyMessage 755 } 756 757 func (m *Nat44AddDelStaticMappingV2Reply) Size() (size int) { 758 if m == nil { 759 return 0 760 } 761 size += 4 // m.Retval 762 return size 763 } 764 func (m *Nat44AddDelStaticMappingV2Reply) Marshal(b []byte) ([]byte, error) { 765 if b == nil { 766 b = make([]byte, m.Size()) 767 } 768 buf := codec.NewBuffer(b) 769 buf.EncodeInt32(m.Retval) 770 return buf.Bytes(), nil 771 } 772 func (m *Nat44AddDelStaticMappingV2Reply) Unmarshal(b []byte) error { 773 buf := codec.NewBuffer(b) 774 m.Retval = buf.DecodeInt32() 775 return nil 776 } 777 778 // NAT44 address details response 779 // - ip_address - IPv4 address 780 // - flags - flag NAT_IS_TWICE_NAT if NAT address range for external hosts 781 // - vrf_id - VRF id of tenant, ~0 means independent of VRF 782 // 783 // Nat44AddressDetails defines message 'nat44_address_details'. 784 type Nat44AddressDetails struct { 785 IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"` 786 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 787 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 788 } 789 790 func (m *Nat44AddressDetails) Reset() { *m = Nat44AddressDetails{} } 791 func (*Nat44AddressDetails) GetMessageName() string { return "nat44_address_details" } 792 func (*Nat44AddressDetails) GetCrcString() string { return "0d1beac1" } 793 func (*Nat44AddressDetails) GetMessageType() api.MessageType { 794 return api.ReplyMessage 795 } 796 797 func (m *Nat44AddressDetails) Size() (size int) { 798 if m == nil { 799 return 0 800 } 801 size += 1 * 4 // m.IPAddress 802 size += 1 // m.Flags 803 size += 4 // m.VrfID 804 return size 805 } 806 func (m *Nat44AddressDetails) Marshal(b []byte) ([]byte, error) { 807 if b == nil { 808 b = make([]byte, m.Size()) 809 } 810 buf := codec.NewBuffer(b) 811 buf.EncodeBytes(m.IPAddress[:], 4) 812 buf.EncodeUint8(uint8(m.Flags)) 813 buf.EncodeUint32(m.VrfID) 814 return buf.Bytes(), nil 815 } 816 func (m *Nat44AddressDetails) Unmarshal(b []byte) error { 817 buf := codec.NewBuffer(b) 818 copy(m.IPAddress[:], buf.DecodeBytes(4)) 819 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 820 m.VrfID = buf.DecodeUint32() 821 return nil 822 } 823 824 // Dump NAT44 addresses 825 // Nat44AddressDump defines message 'nat44_address_dump'. 826 type Nat44AddressDump struct{} 827 828 func (m *Nat44AddressDump) Reset() { *m = Nat44AddressDump{} } 829 func (*Nat44AddressDump) GetMessageName() string { return "nat44_address_dump" } 830 func (*Nat44AddressDump) GetCrcString() string { return "51077d14" } 831 func (*Nat44AddressDump) GetMessageType() api.MessageType { 832 return api.RequestMessage 833 } 834 835 func (m *Nat44AddressDump) Size() (size int) { 836 if m == nil { 837 return 0 838 } 839 return size 840 } 841 func (m *Nat44AddressDump) Marshal(b []byte) ([]byte, error) { 842 if b == nil { 843 b = make([]byte, m.Size()) 844 } 845 buf := codec.NewBuffer(b) 846 return buf.Bytes(), nil 847 } 848 func (m *Nat44AddressDump) Unmarshal(b []byte) error { 849 return nil 850 } 851 852 // Delete NAT44 session 853 // - ip_address - IPv4 address 854 // - protocol - IP protocol 855 // - port - port number 856 // - vfr_id - VRF ID 857 // - flags - flag NAT_IS_INSIDE if interface is inside or 858 // interface is outside, 859 // flag NAT_IS_EXT_HOST_VALID if external host address and 860 // port are valid 861 // - ext_host_address - external host IPv4 address 862 // - ext_host_port - external host port 863 // 864 // Nat44DelSession defines message 'nat44_del_session'. 865 type Nat44DelSession struct { 866 Address ip_types.IP4Address `binapi:"ip4_address,name=address" json:"address,omitempty"` 867 Protocol uint8 `binapi:"u8,name=protocol" json:"protocol,omitempty"` 868 Port uint16 `binapi:"u16,name=port" json:"port,omitempty"` 869 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 870 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 871 ExtHostAddress ip_types.IP4Address `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"` 872 ExtHostPort uint16 `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"` 873 } 874 875 func (m *Nat44DelSession) Reset() { *m = Nat44DelSession{} } 876 func (*Nat44DelSession) GetMessageName() string { return "nat44_del_session" } 877 func (*Nat44DelSession) GetCrcString() string { return "15a5bf8c" } 878 func (*Nat44DelSession) GetMessageType() api.MessageType { 879 return api.RequestMessage 880 } 881 882 func (m *Nat44DelSession) Size() (size int) { 883 if m == nil { 884 return 0 885 } 886 size += 1 * 4 // m.Address 887 size += 1 // m.Protocol 888 size += 2 // m.Port 889 size += 4 // m.VrfID 890 size += 1 // m.Flags 891 size += 1 * 4 // m.ExtHostAddress 892 size += 2 // m.ExtHostPort 893 return size 894 } 895 func (m *Nat44DelSession) Marshal(b []byte) ([]byte, error) { 896 if b == nil { 897 b = make([]byte, m.Size()) 898 } 899 buf := codec.NewBuffer(b) 900 buf.EncodeBytes(m.Address[:], 4) 901 buf.EncodeUint8(m.Protocol) 902 buf.EncodeUint16(m.Port) 903 buf.EncodeUint32(m.VrfID) 904 buf.EncodeUint8(uint8(m.Flags)) 905 buf.EncodeBytes(m.ExtHostAddress[:], 4) 906 buf.EncodeUint16(m.ExtHostPort) 907 return buf.Bytes(), nil 908 } 909 func (m *Nat44DelSession) Unmarshal(b []byte) error { 910 buf := codec.NewBuffer(b) 911 copy(m.Address[:], buf.DecodeBytes(4)) 912 m.Protocol = buf.DecodeUint8() 913 m.Port = buf.DecodeUint16() 914 m.VrfID = buf.DecodeUint32() 915 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 916 copy(m.ExtHostAddress[:], buf.DecodeBytes(4)) 917 m.ExtHostPort = buf.DecodeUint16() 918 return nil 919 } 920 921 // Nat44DelSessionReply defines message 'nat44_del_session_reply'. 922 type Nat44DelSessionReply struct { 923 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 924 } 925 926 func (m *Nat44DelSessionReply) Reset() { *m = Nat44DelSessionReply{} } 927 func (*Nat44DelSessionReply) GetMessageName() string { return "nat44_del_session_reply" } 928 func (*Nat44DelSessionReply) GetCrcString() string { return "e8d4e804" } 929 func (*Nat44DelSessionReply) GetMessageType() api.MessageType { 930 return api.ReplyMessage 931 } 932 933 func (m *Nat44DelSessionReply) Size() (size int) { 934 if m == nil { 935 return 0 936 } 937 size += 4 // m.Retval 938 return size 939 } 940 func (m *Nat44DelSessionReply) Marshal(b []byte) ([]byte, error) { 941 if b == nil { 942 b = make([]byte, m.Size()) 943 } 944 buf := codec.NewBuffer(b) 945 buf.EncodeInt32(m.Retval) 946 return buf.Bytes(), nil 947 } 948 func (m *Nat44DelSessionReply) Unmarshal(b []byte) error { 949 buf := codec.NewBuffer(b) 950 m.Retval = buf.DecodeInt32() 951 return nil 952 } 953 954 // add/del NAT output interface (postrouting 955 // 956 // in2out translation) 957 // - is_add - true if add, false if delete 958 // - sw_if_index - software index of the interface 959 // 960 // Nat44EdAddDelOutputInterface defines message 'nat44_ed_add_del_output_interface'. 961 type Nat44EdAddDelOutputInterface struct { 962 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 963 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 964 } 965 966 func (m *Nat44EdAddDelOutputInterface) Reset() { *m = Nat44EdAddDelOutputInterface{} } 967 func (*Nat44EdAddDelOutputInterface) GetMessageName() string { 968 return "nat44_ed_add_del_output_interface" 969 } 970 func (*Nat44EdAddDelOutputInterface) GetCrcString() string { return "47d6e753" } 971 func (*Nat44EdAddDelOutputInterface) GetMessageType() api.MessageType { 972 return api.RequestMessage 973 } 974 975 func (m *Nat44EdAddDelOutputInterface) Size() (size int) { 976 if m == nil { 977 return 0 978 } 979 size += 1 // m.IsAdd 980 size += 4 // m.SwIfIndex 981 return size 982 } 983 func (m *Nat44EdAddDelOutputInterface) Marshal(b []byte) ([]byte, error) { 984 if b == nil { 985 b = make([]byte, m.Size()) 986 } 987 buf := codec.NewBuffer(b) 988 buf.EncodeBool(m.IsAdd) 989 buf.EncodeUint32(uint32(m.SwIfIndex)) 990 return buf.Bytes(), nil 991 } 992 func (m *Nat44EdAddDelOutputInterface) Unmarshal(b []byte) error { 993 buf := codec.NewBuffer(b) 994 m.IsAdd = buf.DecodeBool() 995 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 996 return nil 997 } 998 999 // Nat44EdAddDelOutputInterfaceReply defines message 'nat44_ed_add_del_output_interface_reply'. 1000 type Nat44EdAddDelOutputInterfaceReply struct { 1001 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1002 } 1003 1004 func (m *Nat44EdAddDelOutputInterfaceReply) Reset() { *m = Nat44EdAddDelOutputInterfaceReply{} } 1005 func (*Nat44EdAddDelOutputInterfaceReply) GetMessageName() string { 1006 return "nat44_ed_add_del_output_interface_reply" 1007 } 1008 func (*Nat44EdAddDelOutputInterfaceReply) GetCrcString() string { return "e8d4e804" } 1009 func (*Nat44EdAddDelOutputInterfaceReply) GetMessageType() api.MessageType { 1010 return api.ReplyMessage 1011 } 1012 1013 func (m *Nat44EdAddDelOutputInterfaceReply) Size() (size int) { 1014 if m == nil { 1015 return 0 1016 } 1017 size += 4 // m.Retval 1018 return size 1019 } 1020 func (m *Nat44EdAddDelOutputInterfaceReply) Marshal(b []byte) ([]byte, error) { 1021 if b == nil { 1022 b = make([]byte, m.Size()) 1023 } 1024 buf := codec.NewBuffer(b) 1025 buf.EncodeInt32(m.Retval) 1026 return buf.Bytes(), nil 1027 } 1028 func (m *Nat44EdAddDelOutputInterfaceReply) Unmarshal(b []byte) error { 1029 buf := codec.NewBuffer(b) 1030 m.Retval = buf.DecodeInt32() 1031 return nil 1032 } 1033 1034 // Add/del inter VRF NAT44-ED route record 1035 // - table_vrf_id - id of the VRF NAT routing table 1036 // - vrf_id - id of resolving destination (tx) VRF table 1037 // - is_add - if true add else del 1038 // 1039 // Nat44EdAddDelVrfRoute defines message 'nat44_ed_add_del_vrf_route'. 1040 type Nat44EdAddDelVrfRoute struct { 1041 TableVrfID uint32 `binapi:"u32,name=table_vrf_id" json:"table_vrf_id,omitempty"` 1042 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 1043 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 1044 } 1045 1046 func (m *Nat44EdAddDelVrfRoute) Reset() { *m = Nat44EdAddDelVrfRoute{} } 1047 func (*Nat44EdAddDelVrfRoute) GetMessageName() string { return "nat44_ed_add_del_vrf_route" } 1048 func (*Nat44EdAddDelVrfRoute) GetCrcString() string { return "59187407" } 1049 func (*Nat44EdAddDelVrfRoute) GetMessageType() api.MessageType { 1050 return api.RequestMessage 1051 } 1052 1053 func (m *Nat44EdAddDelVrfRoute) Size() (size int) { 1054 if m == nil { 1055 return 0 1056 } 1057 size += 4 // m.TableVrfID 1058 size += 4 // m.VrfID 1059 size += 1 // m.IsAdd 1060 return size 1061 } 1062 func (m *Nat44EdAddDelVrfRoute) Marshal(b []byte) ([]byte, error) { 1063 if b == nil { 1064 b = make([]byte, m.Size()) 1065 } 1066 buf := codec.NewBuffer(b) 1067 buf.EncodeUint32(m.TableVrfID) 1068 buf.EncodeUint32(m.VrfID) 1069 buf.EncodeBool(m.IsAdd) 1070 return buf.Bytes(), nil 1071 } 1072 func (m *Nat44EdAddDelVrfRoute) Unmarshal(b []byte) error { 1073 buf := codec.NewBuffer(b) 1074 m.TableVrfID = buf.DecodeUint32() 1075 m.VrfID = buf.DecodeUint32() 1076 m.IsAdd = buf.DecodeBool() 1077 return nil 1078 } 1079 1080 // Nat44EdAddDelVrfRouteReply defines message 'nat44_ed_add_del_vrf_route_reply'. 1081 type Nat44EdAddDelVrfRouteReply struct { 1082 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1083 } 1084 1085 func (m *Nat44EdAddDelVrfRouteReply) Reset() { *m = Nat44EdAddDelVrfRouteReply{} } 1086 func (*Nat44EdAddDelVrfRouteReply) GetMessageName() string { return "nat44_ed_add_del_vrf_route_reply" } 1087 func (*Nat44EdAddDelVrfRouteReply) GetCrcString() string { return "e8d4e804" } 1088 func (*Nat44EdAddDelVrfRouteReply) GetMessageType() api.MessageType { 1089 return api.ReplyMessage 1090 } 1091 1092 func (m *Nat44EdAddDelVrfRouteReply) Size() (size int) { 1093 if m == nil { 1094 return 0 1095 } 1096 size += 4 // m.Retval 1097 return size 1098 } 1099 func (m *Nat44EdAddDelVrfRouteReply) Marshal(b []byte) ([]byte, error) { 1100 if b == nil { 1101 b = make([]byte, m.Size()) 1102 } 1103 buf := codec.NewBuffer(b) 1104 buf.EncodeInt32(m.Retval) 1105 return buf.Bytes(), nil 1106 } 1107 func (m *Nat44EdAddDelVrfRouteReply) Unmarshal(b []byte) error { 1108 buf := codec.NewBuffer(b) 1109 m.Retval = buf.DecodeInt32() 1110 return nil 1111 } 1112 1113 // Add/delete inter VRF NAT44-ED routing table 1114 // - table_vrf_id - id of (rx) VRF used for resolving 1115 // destination (tx) VRF during dynamic 1116 // session creation 1117 // - is_add - if true add else del 1118 // 1119 // Nat44EdAddDelVrfTable defines message 'nat44_ed_add_del_vrf_table'. 1120 type Nat44EdAddDelVrfTable struct { 1121 TableVrfID uint32 `binapi:"u32,name=table_vrf_id" json:"table_vrf_id,omitempty"` 1122 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 1123 } 1124 1125 func (m *Nat44EdAddDelVrfTable) Reset() { *m = Nat44EdAddDelVrfTable{} } 1126 func (*Nat44EdAddDelVrfTable) GetMessageName() string { return "nat44_ed_add_del_vrf_table" } 1127 func (*Nat44EdAddDelVrfTable) GetCrcString() string { return "08330904" } 1128 func (*Nat44EdAddDelVrfTable) GetMessageType() api.MessageType { 1129 return api.RequestMessage 1130 } 1131 1132 func (m *Nat44EdAddDelVrfTable) Size() (size int) { 1133 if m == nil { 1134 return 0 1135 } 1136 size += 4 // m.TableVrfID 1137 size += 1 // m.IsAdd 1138 return size 1139 } 1140 func (m *Nat44EdAddDelVrfTable) Marshal(b []byte) ([]byte, error) { 1141 if b == nil { 1142 b = make([]byte, m.Size()) 1143 } 1144 buf := codec.NewBuffer(b) 1145 buf.EncodeUint32(m.TableVrfID) 1146 buf.EncodeBool(m.IsAdd) 1147 return buf.Bytes(), nil 1148 } 1149 func (m *Nat44EdAddDelVrfTable) Unmarshal(b []byte) error { 1150 buf := codec.NewBuffer(b) 1151 m.TableVrfID = buf.DecodeUint32() 1152 m.IsAdd = buf.DecodeBool() 1153 return nil 1154 } 1155 1156 // Nat44EdAddDelVrfTableReply defines message 'nat44_ed_add_del_vrf_table_reply'. 1157 type Nat44EdAddDelVrfTableReply struct { 1158 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1159 } 1160 1161 func (m *Nat44EdAddDelVrfTableReply) Reset() { *m = Nat44EdAddDelVrfTableReply{} } 1162 func (*Nat44EdAddDelVrfTableReply) GetMessageName() string { return "nat44_ed_add_del_vrf_table_reply" } 1163 func (*Nat44EdAddDelVrfTableReply) GetCrcString() string { return "e8d4e804" } 1164 func (*Nat44EdAddDelVrfTableReply) GetMessageType() api.MessageType { 1165 return api.ReplyMessage 1166 } 1167 1168 func (m *Nat44EdAddDelVrfTableReply) Size() (size int) { 1169 if m == nil { 1170 return 0 1171 } 1172 size += 4 // m.Retval 1173 return size 1174 } 1175 func (m *Nat44EdAddDelVrfTableReply) Marshal(b []byte) ([]byte, error) { 1176 if b == nil { 1177 b = make([]byte, m.Size()) 1178 } 1179 buf := codec.NewBuffer(b) 1180 buf.EncodeInt32(m.Retval) 1181 return buf.Bytes(), nil 1182 } 1183 func (m *Nat44EdAddDelVrfTableReply) Unmarshal(b []byte) error { 1184 buf := codec.NewBuffer(b) 1185 m.Retval = buf.DecodeInt32() 1186 return nil 1187 } 1188 1189 // Nat44EdOutputInterfaceDetails defines message 'nat44_ed_output_interface_details'. 1190 type Nat44EdOutputInterfaceDetails struct { 1191 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 1192 } 1193 1194 func (m *Nat44EdOutputInterfaceDetails) Reset() { *m = Nat44EdOutputInterfaceDetails{} } 1195 func (*Nat44EdOutputInterfaceDetails) GetMessageName() string { 1196 return "nat44_ed_output_interface_details" 1197 } 1198 func (*Nat44EdOutputInterfaceDetails) GetCrcString() string { return "0b45011c" } 1199 func (*Nat44EdOutputInterfaceDetails) GetMessageType() api.MessageType { 1200 return api.ReplyMessage 1201 } 1202 1203 func (m *Nat44EdOutputInterfaceDetails) Size() (size int) { 1204 if m == nil { 1205 return 0 1206 } 1207 size += 4 // m.SwIfIndex 1208 return size 1209 } 1210 func (m *Nat44EdOutputInterfaceDetails) Marshal(b []byte) ([]byte, error) { 1211 if b == nil { 1212 b = make([]byte, m.Size()) 1213 } 1214 buf := codec.NewBuffer(b) 1215 buf.EncodeUint32(uint32(m.SwIfIndex)) 1216 return buf.Bytes(), nil 1217 } 1218 func (m *Nat44EdOutputInterfaceDetails) Unmarshal(b []byte) error { 1219 buf := codec.NewBuffer(b) 1220 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 1221 return nil 1222 } 1223 1224 // Nat44EdOutputInterfaceGet defines message 'nat44_ed_output_interface_get'. 1225 type Nat44EdOutputInterfaceGet struct { 1226 Cursor uint32 `binapi:"u32,name=cursor" json:"cursor,omitempty"` 1227 } 1228 1229 func (m *Nat44EdOutputInterfaceGet) Reset() { *m = Nat44EdOutputInterfaceGet{} } 1230 func (*Nat44EdOutputInterfaceGet) GetMessageName() string { return "nat44_ed_output_interface_get" } 1231 func (*Nat44EdOutputInterfaceGet) GetCrcString() string { return "f75ba505" } 1232 func (*Nat44EdOutputInterfaceGet) GetMessageType() api.MessageType { 1233 return api.RequestMessage 1234 } 1235 1236 func (m *Nat44EdOutputInterfaceGet) Size() (size int) { 1237 if m == nil { 1238 return 0 1239 } 1240 size += 4 // m.Cursor 1241 return size 1242 } 1243 func (m *Nat44EdOutputInterfaceGet) Marshal(b []byte) ([]byte, error) { 1244 if b == nil { 1245 b = make([]byte, m.Size()) 1246 } 1247 buf := codec.NewBuffer(b) 1248 buf.EncodeUint32(m.Cursor) 1249 return buf.Bytes(), nil 1250 } 1251 func (m *Nat44EdOutputInterfaceGet) Unmarshal(b []byte) error { 1252 buf := codec.NewBuffer(b) 1253 m.Cursor = buf.DecodeUint32() 1254 return nil 1255 } 1256 1257 // Nat44EdOutputInterfaceGetReply defines message 'nat44_ed_output_interface_get_reply'. 1258 type Nat44EdOutputInterfaceGetReply struct { 1259 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1260 Cursor uint32 `binapi:"u32,name=cursor" json:"cursor,omitempty"` 1261 } 1262 1263 func (m *Nat44EdOutputInterfaceGetReply) Reset() { *m = Nat44EdOutputInterfaceGetReply{} } 1264 func (*Nat44EdOutputInterfaceGetReply) GetMessageName() string { 1265 return "nat44_ed_output_interface_get_reply" 1266 } 1267 func (*Nat44EdOutputInterfaceGetReply) GetCrcString() string { return "53b48f5d" } 1268 func (*Nat44EdOutputInterfaceGetReply) GetMessageType() api.MessageType { 1269 return api.ReplyMessage 1270 } 1271 1272 func (m *Nat44EdOutputInterfaceGetReply) Size() (size int) { 1273 if m == nil { 1274 return 0 1275 } 1276 size += 4 // m.Retval 1277 size += 4 // m.Cursor 1278 return size 1279 } 1280 func (m *Nat44EdOutputInterfaceGetReply) Marshal(b []byte) ([]byte, error) { 1281 if b == nil { 1282 b = make([]byte, m.Size()) 1283 } 1284 buf := codec.NewBuffer(b) 1285 buf.EncodeInt32(m.Retval) 1286 buf.EncodeUint32(m.Cursor) 1287 return buf.Bytes(), nil 1288 } 1289 func (m *Nat44EdOutputInterfaceGetReply) Unmarshal(b []byte) error { 1290 buf := codec.NewBuffer(b) 1291 m.Retval = buf.DecodeInt32() 1292 m.Cursor = buf.DecodeUint32() 1293 return nil 1294 } 1295 1296 // Enable/disable NAT44ED plugin 1297 // - inside_vrf - inside vrf id 1298 // - outside_vrf - outside vrf id 1299 // - sessions - maximum number of sessions per thread 1300 // - session_memory - overwrite hash allocation parameter 1301 // - enable - true if enable, false if disable 1302 // - flags - flag NAT44_IS_STATIC_MAPPING_ONLY, 1303 // NAT44_IS_CONNECTION_TRACKING 1304 // 1305 // Nat44EdPluginEnableDisable defines message 'nat44_ed_plugin_enable_disable'. 1306 type Nat44EdPluginEnableDisable struct { 1307 InsideVrf uint32 `binapi:"u32,name=inside_vrf" json:"inside_vrf,omitempty"` 1308 OutsideVrf uint32 `binapi:"u32,name=outside_vrf" json:"outside_vrf,omitempty"` 1309 Sessions uint32 `binapi:"u32,name=sessions" json:"sessions,omitempty"` 1310 SessionMemory uint32 `binapi:"u32,name=session_memory" json:"session_memory,omitempty"` 1311 Enable bool `binapi:"bool,name=enable" json:"enable,omitempty"` 1312 Flags Nat44ConfigFlags `binapi:"nat44_config_flags,name=flags" json:"flags,omitempty"` 1313 } 1314 1315 func (m *Nat44EdPluginEnableDisable) Reset() { *m = Nat44EdPluginEnableDisable{} } 1316 func (*Nat44EdPluginEnableDisable) GetMessageName() string { return "nat44_ed_plugin_enable_disable" } 1317 func (*Nat44EdPluginEnableDisable) GetCrcString() string { return "be17f8dd" } 1318 func (*Nat44EdPluginEnableDisable) GetMessageType() api.MessageType { 1319 return api.RequestMessage 1320 } 1321 1322 func (m *Nat44EdPluginEnableDisable) Size() (size int) { 1323 if m == nil { 1324 return 0 1325 } 1326 size += 4 // m.InsideVrf 1327 size += 4 // m.OutsideVrf 1328 size += 4 // m.Sessions 1329 size += 4 // m.SessionMemory 1330 size += 1 // m.Enable 1331 size += 1 // m.Flags 1332 return size 1333 } 1334 func (m *Nat44EdPluginEnableDisable) Marshal(b []byte) ([]byte, error) { 1335 if b == nil { 1336 b = make([]byte, m.Size()) 1337 } 1338 buf := codec.NewBuffer(b) 1339 buf.EncodeUint32(m.InsideVrf) 1340 buf.EncodeUint32(m.OutsideVrf) 1341 buf.EncodeUint32(m.Sessions) 1342 buf.EncodeUint32(m.SessionMemory) 1343 buf.EncodeBool(m.Enable) 1344 buf.EncodeUint8(uint8(m.Flags)) 1345 return buf.Bytes(), nil 1346 } 1347 func (m *Nat44EdPluginEnableDisable) Unmarshal(b []byte) error { 1348 buf := codec.NewBuffer(b) 1349 m.InsideVrf = buf.DecodeUint32() 1350 m.OutsideVrf = buf.DecodeUint32() 1351 m.Sessions = buf.DecodeUint32() 1352 m.SessionMemory = buf.DecodeUint32() 1353 m.Enable = buf.DecodeBool() 1354 m.Flags = Nat44ConfigFlags(buf.DecodeUint8()) 1355 return nil 1356 } 1357 1358 // Nat44EdPluginEnableDisableReply defines message 'nat44_ed_plugin_enable_disable_reply'. 1359 type Nat44EdPluginEnableDisableReply struct { 1360 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1361 } 1362 1363 func (m *Nat44EdPluginEnableDisableReply) Reset() { *m = Nat44EdPluginEnableDisableReply{} } 1364 func (*Nat44EdPluginEnableDisableReply) GetMessageName() string { 1365 return "nat44_ed_plugin_enable_disable_reply" 1366 } 1367 func (*Nat44EdPluginEnableDisableReply) GetCrcString() string { return "e8d4e804" } 1368 func (*Nat44EdPluginEnableDisableReply) GetMessageType() api.MessageType { 1369 return api.ReplyMessage 1370 } 1371 1372 func (m *Nat44EdPluginEnableDisableReply) Size() (size int) { 1373 if m == nil { 1374 return 0 1375 } 1376 size += 4 // m.Retval 1377 return size 1378 } 1379 func (m *Nat44EdPluginEnableDisableReply) Marshal(b []byte) ([]byte, error) { 1380 if b == nil { 1381 b = make([]byte, m.Size()) 1382 } 1383 buf := codec.NewBuffer(b) 1384 buf.EncodeInt32(m.Retval) 1385 return buf.Bytes(), nil 1386 } 1387 func (m *Nat44EdPluginEnableDisableReply) Unmarshal(b []byte) error { 1388 buf := codec.NewBuffer(b) 1389 m.Retval = buf.DecodeInt32() 1390 return nil 1391 } 1392 1393 // Set NAT handoff frame queue options 1394 // - frame_queue_nelts - number of worker handoff frame queue elements 1395 // 1396 // Nat44EdSetFqOptions defines message 'nat44_ed_set_fq_options'. 1397 type Nat44EdSetFqOptions struct { 1398 FrameQueueNelts uint32 `binapi:"u32,name=frame_queue_nelts" json:"frame_queue_nelts,omitempty"` 1399 } 1400 1401 func (m *Nat44EdSetFqOptions) Reset() { *m = Nat44EdSetFqOptions{} } 1402 func (*Nat44EdSetFqOptions) GetMessageName() string { return "nat44_ed_set_fq_options" } 1403 func (*Nat44EdSetFqOptions) GetCrcString() string { return "2399bd71" } 1404 func (*Nat44EdSetFqOptions) GetMessageType() api.MessageType { 1405 return api.RequestMessage 1406 } 1407 1408 func (m *Nat44EdSetFqOptions) Size() (size int) { 1409 if m == nil { 1410 return 0 1411 } 1412 size += 4 // m.FrameQueueNelts 1413 return size 1414 } 1415 func (m *Nat44EdSetFqOptions) Marshal(b []byte) ([]byte, error) { 1416 if b == nil { 1417 b = make([]byte, m.Size()) 1418 } 1419 buf := codec.NewBuffer(b) 1420 buf.EncodeUint32(m.FrameQueueNelts) 1421 return buf.Bytes(), nil 1422 } 1423 func (m *Nat44EdSetFqOptions) Unmarshal(b []byte) error { 1424 buf := codec.NewBuffer(b) 1425 m.FrameQueueNelts = buf.DecodeUint32() 1426 return nil 1427 } 1428 1429 // Nat44EdSetFqOptionsReply defines message 'nat44_ed_set_fq_options_reply'. 1430 type Nat44EdSetFqOptionsReply struct { 1431 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1432 } 1433 1434 func (m *Nat44EdSetFqOptionsReply) Reset() { *m = Nat44EdSetFqOptionsReply{} } 1435 func (*Nat44EdSetFqOptionsReply) GetMessageName() string { return "nat44_ed_set_fq_options_reply" } 1436 func (*Nat44EdSetFqOptionsReply) GetCrcString() string { return "e8d4e804" } 1437 func (*Nat44EdSetFqOptionsReply) GetMessageType() api.MessageType { 1438 return api.ReplyMessage 1439 } 1440 1441 func (m *Nat44EdSetFqOptionsReply) Size() (size int) { 1442 if m == nil { 1443 return 0 1444 } 1445 size += 4 // m.Retval 1446 return size 1447 } 1448 func (m *Nat44EdSetFqOptionsReply) Marshal(b []byte) ([]byte, error) { 1449 if b == nil { 1450 b = make([]byte, m.Size()) 1451 } 1452 buf := codec.NewBuffer(b) 1453 buf.EncodeInt32(m.Retval) 1454 return buf.Bytes(), nil 1455 } 1456 func (m *Nat44EdSetFqOptionsReply) Unmarshal(b []byte) error { 1457 buf := codec.NewBuffer(b) 1458 m.Retval = buf.DecodeInt32() 1459 return nil 1460 } 1461 1462 // Show NAT handoff frame queue options 1463 // Nat44EdShowFqOptions defines message 'nat44_ed_show_fq_options'. 1464 type Nat44EdShowFqOptions struct{} 1465 1466 func (m *Nat44EdShowFqOptions) Reset() { *m = Nat44EdShowFqOptions{} } 1467 func (*Nat44EdShowFqOptions) GetMessageName() string { return "nat44_ed_show_fq_options" } 1468 func (*Nat44EdShowFqOptions) GetCrcString() string { return "51077d14" } 1469 func (*Nat44EdShowFqOptions) GetMessageType() api.MessageType { 1470 return api.RequestMessage 1471 } 1472 1473 func (m *Nat44EdShowFqOptions) Size() (size int) { 1474 if m == nil { 1475 return 0 1476 } 1477 return size 1478 } 1479 func (m *Nat44EdShowFqOptions) Marshal(b []byte) ([]byte, error) { 1480 if b == nil { 1481 b = make([]byte, m.Size()) 1482 } 1483 buf := codec.NewBuffer(b) 1484 return buf.Bytes(), nil 1485 } 1486 func (m *Nat44EdShowFqOptions) Unmarshal(b []byte) error { 1487 return nil 1488 } 1489 1490 // Show NAT handoff frame queue options reply 1491 // - retval - return code for the request 1492 // - frame_queue_nelts - number of worker handoff frame queue elements 1493 // 1494 // Nat44EdShowFqOptionsReply defines message 'nat44_ed_show_fq_options_reply'. 1495 type Nat44EdShowFqOptionsReply struct { 1496 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1497 FrameQueueNelts uint32 `binapi:"u32,name=frame_queue_nelts" json:"frame_queue_nelts,omitempty"` 1498 } 1499 1500 func (m *Nat44EdShowFqOptionsReply) Reset() { *m = Nat44EdShowFqOptionsReply{} } 1501 func (*Nat44EdShowFqOptionsReply) GetMessageName() string { return "nat44_ed_show_fq_options_reply" } 1502 func (*Nat44EdShowFqOptionsReply) GetCrcString() string { return "7213b545" } 1503 func (*Nat44EdShowFqOptionsReply) GetMessageType() api.MessageType { 1504 return api.ReplyMessage 1505 } 1506 1507 func (m *Nat44EdShowFqOptionsReply) Size() (size int) { 1508 if m == nil { 1509 return 0 1510 } 1511 size += 4 // m.Retval 1512 size += 4 // m.FrameQueueNelts 1513 return size 1514 } 1515 func (m *Nat44EdShowFqOptionsReply) Marshal(b []byte) ([]byte, error) { 1516 if b == nil { 1517 b = make([]byte, m.Size()) 1518 } 1519 buf := codec.NewBuffer(b) 1520 buf.EncodeInt32(m.Retval) 1521 buf.EncodeUint32(m.FrameQueueNelts) 1522 return buf.Bytes(), nil 1523 } 1524 func (m *Nat44EdShowFqOptionsReply) Unmarshal(b []byte) error { 1525 buf := codec.NewBuffer(b) 1526 m.Retval = buf.DecodeInt32() 1527 m.FrameQueueNelts = buf.DecodeUint32() 1528 return nil 1529 } 1530 1531 // NAT44-ED inter VRF NAT routing table details response 1532 // - table_vrf_id - id of the VRF NAT routing table 1533 // - n_vrf_ids - number of vrf_ids 1534 // - vrf_ids - ids of resolving destination (tx) VRFs 1535 // 1536 // Nat44EdVrfTablesDetails defines message 'nat44_ed_vrf_tables_details'. 1537 // Deprecated: the message will be removed in the future versions 1538 type Nat44EdVrfTablesDetails struct { 1539 TableVrfID uint32 `binapi:"u32,name=table_vrf_id" json:"table_vrf_id,omitempty"` 1540 NVrfIds uint32 `binapi:"u32,name=n_vrf_ids" json:"-"` 1541 VrfIds []uint32 `binapi:"u32[n_vrf_ids],name=vrf_ids" json:"vrf_ids,omitempty"` 1542 } 1543 1544 func (m *Nat44EdVrfTablesDetails) Reset() { *m = Nat44EdVrfTablesDetails{} } 1545 func (*Nat44EdVrfTablesDetails) GetMessageName() string { return "nat44_ed_vrf_tables_details" } 1546 func (*Nat44EdVrfTablesDetails) GetCrcString() string { return "7b264e4f" } 1547 func (*Nat44EdVrfTablesDetails) GetMessageType() api.MessageType { 1548 return api.ReplyMessage 1549 } 1550 1551 func (m *Nat44EdVrfTablesDetails) Size() (size int) { 1552 if m == nil { 1553 return 0 1554 } 1555 size += 4 // m.TableVrfID 1556 size += 4 // m.NVrfIds 1557 size += 4 * len(m.VrfIds) // m.VrfIds 1558 return size 1559 } 1560 func (m *Nat44EdVrfTablesDetails) Marshal(b []byte) ([]byte, error) { 1561 if b == nil { 1562 b = make([]byte, m.Size()) 1563 } 1564 buf := codec.NewBuffer(b) 1565 buf.EncodeUint32(m.TableVrfID) 1566 buf.EncodeUint32(uint32(len(m.VrfIds))) 1567 for i := 0; i < len(m.VrfIds); i++ { 1568 var x uint32 1569 if i < len(m.VrfIds) { 1570 x = uint32(m.VrfIds[i]) 1571 } 1572 buf.EncodeUint32(x) 1573 } 1574 return buf.Bytes(), nil 1575 } 1576 func (m *Nat44EdVrfTablesDetails) Unmarshal(b []byte) error { 1577 buf := codec.NewBuffer(b) 1578 m.TableVrfID = buf.DecodeUint32() 1579 m.NVrfIds = buf.DecodeUint32() 1580 m.VrfIds = make([]uint32, m.NVrfIds) 1581 for i := 0; i < len(m.VrfIds); i++ { 1582 m.VrfIds[i] = buf.DecodeUint32() 1583 } 1584 return nil 1585 } 1586 1587 // Dump NAT44-ED inter VRF NAT routing tables 1588 // Nat44EdVrfTablesDump defines message 'nat44_ed_vrf_tables_dump'. 1589 // Deprecated: the message will be removed in the future versions 1590 type Nat44EdVrfTablesDump struct{} 1591 1592 func (m *Nat44EdVrfTablesDump) Reset() { *m = Nat44EdVrfTablesDump{} } 1593 func (*Nat44EdVrfTablesDump) GetMessageName() string { return "nat44_ed_vrf_tables_dump" } 1594 func (*Nat44EdVrfTablesDump) GetCrcString() string { return "51077d14" } 1595 func (*Nat44EdVrfTablesDump) GetMessageType() api.MessageType { 1596 return api.RequestMessage 1597 } 1598 1599 func (m *Nat44EdVrfTablesDump) Size() (size int) { 1600 if m == nil { 1601 return 0 1602 } 1603 return size 1604 } 1605 func (m *Nat44EdVrfTablesDump) Marshal(b []byte) ([]byte, error) { 1606 if b == nil { 1607 b = make([]byte, m.Size()) 1608 } 1609 buf := codec.NewBuffer(b) 1610 return buf.Bytes(), nil 1611 } 1612 func (m *Nat44EdVrfTablesDump) Unmarshal(b []byte) error { 1613 return nil 1614 } 1615 1616 // NAT44-ED inter VRF NAT routing table details response 1617 // - table_vrf_id - id of the VRF NAT routing table 1618 // - n_vrf_ids - number of vrf_ids 1619 // - vrf_ids - ids of resolving destination (tx) VRFs 1620 // 1621 // Nat44EdVrfTablesV2Details defines message 'nat44_ed_vrf_tables_v2_details'. 1622 // InProgress: the message form may change in the future versions 1623 type Nat44EdVrfTablesV2Details struct { 1624 TableVrfID uint32 `binapi:"u32,name=table_vrf_id" json:"table_vrf_id,omitempty"` 1625 NVrfIds uint32 `binapi:"u32,name=n_vrf_ids" json:"-"` 1626 VrfIds []uint32 `binapi:"u32[n_vrf_ids],name=vrf_ids" json:"vrf_ids,omitempty"` 1627 } 1628 1629 func (m *Nat44EdVrfTablesV2Details) Reset() { *m = Nat44EdVrfTablesV2Details{} } 1630 func (*Nat44EdVrfTablesV2Details) GetMessageName() string { return "nat44_ed_vrf_tables_v2_details" } 1631 func (*Nat44EdVrfTablesV2Details) GetCrcString() string { return "7b264e4f" } 1632 func (*Nat44EdVrfTablesV2Details) GetMessageType() api.MessageType { 1633 return api.ReplyMessage 1634 } 1635 1636 func (m *Nat44EdVrfTablesV2Details) Size() (size int) { 1637 if m == nil { 1638 return 0 1639 } 1640 size += 4 // m.TableVrfID 1641 size += 4 // m.NVrfIds 1642 size += 4 * len(m.VrfIds) // m.VrfIds 1643 return size 1644 } 1645 func (m *Nat44EdVrfTablesV2Details) Marshal(b []byte) ([]byte, error) { 1646 if b == nil { 1647 b = make([]byte, m.Size()) 1648 } 1649 buf := codec.NewBuffer(b) 1650 buf.EncodeUint32(m.TableVrfID) 1651 buf.EncodeUint32(uint32(len(m.VrfIds))) 1652 for i := 0; i < len(m.VrfIds); i++ { 1653 var x uint32 1654 if i < len(m.VrfIds) { 1655 x = uint32(m.VrfIds[i]) 1656 } 1657 buf.EncodeUint32(x) 1658 } 1659 return buf.Bytes(), nil 1660 } 1661 func (m *Nat44EdVrfTablesV2Details) Unmarshal(b []byte) error { 1662 buf := codec.NewBuffer(b) 1663 m.TableVrfID = buf.DecodeUint32() 1664 m.NVrfIds = buf.DecodeUint32() 1665 m.VrfIds = make([]uint32, m.NVrfIds) 1666 for i := 0; i < len(m.VrfIds); i++ { 1667 m.VrfIds[i] = buf.DecodeUint32() 1668 } 1669 return nil 1670 } 1671 1672 // Dump NAT44-ED inter VRF NAT routing tables 1673 // Nat44EdVrfTablesV2Dump defines message 'nat44_ed_vrf_tables_v2_dump'. 1674 // InProgress: the message form may change in the future versions 1675 type Nat44EdVrfTablesV2Dump struct{} 1676 1677 func (m *Nat44EdVrfTablesV2Dump) Reset() { *m = Nat44EdVrfTablesV2Dump{} } 1678 func (*Nat44EdVrfTablesV2Dump) GetMessageName() string { return "nat44_ed_vrf_tables_v2_dump" } 1679 func (*Nat44EdVrfTablesV2Dump) GetCrcString() string { return "51077d14" } 1680 func (*Nat44EdVrfTablesV2Dump) GetMessageType() api.MessageType { 1681 return api.RequestMessage 1682 } 1683 1684 func (m *Nat44EdVrfTablesV2Dump) Size() (size int) { 1685 if m == nil { 1686 return 0 1687 } 1688 return size 1689 } 1690 func (m *Nat44EdVrfTablesV2Dump) Marshal(b []byte) ([]byte, error) { 1691 if b == nil { 1692 b = make([]byte, m.Size()) 1693 } 1694 buf := codec.NewBuffer(b) 1695 return buf.Bytes(), nil 1696 } 1697 func (m *Nat44EdVrfTablesV2Dump) Unmarshal(b []byte) error { 1698 return nil 1699 } 1700 1701 // Enable/disable forwarding for NAT44 1702 // 1703 // Forward packets which don't match existing translation 1704 // or static mapping instead of dropping them. 1705 // - enable - true for enable, false for disable 1706 // 1707 // Nat44ForwardingEnableDisable defines message 'nat44_forwarding_enable_disable'. 1708 // Deprecated: the message will be removed in the future versions 1709 type Nat44ForwardingEnableDisable struct { 1710 Enable bool `binapi:"bool,name=enable" json:"enable,omitempty"` 1711 } 1712 1713 func (m *Nat44ForwardingEnableDisable) Reset() { *m = Nat44ForwardingEnableDisable{} } 1714 func (*Nat44ForwardingEnableDisable) GetMessageName() string { 1715 return "nat44_forwarding_enable_disable" 1716 } 1717 func (*Nat44ForwardingEnableDisable) GetCrcString() string { return "b3e225d2" } 1718 func (*Nat44ForwardingEnableDisable) GetMessageType() api.MessageType { 1719 return api.RequestMessage 1720 } 1721 1722 func (m *Nat44ForwardingEnableDisable) Size() (size int) { 1723 if m == nil { 1724 return 0 1725 } 1726 size += 1 // m.Enable 1727 return size 1728 } 1729 func (m *Nat44ForwardingEnableDisable) Marshal(b []byte) ([]byte, error) { 1730 if b == nil { 1731 b = make([]byte, m.Size()) 1732 } 1733 buf := codec.NewBuffer(b) 1734 buf.EncodeBool(m.Enable) 1735 return buf.Bytes(), nil 1736 } 1737 func (m *Nat44ForwardingEnableDisable) Unmarshal(b []byte) error { 1738 buf := codec.NewBuffer(b) 1739 m.Enable = buf.DecodeBool() 1740 return nil 1741 } 1742 1743 // Nat44ForwardingEnableDisableReply defines message 'nat44_forwarding_enable_disable_reply'. 1744 // Deprecated: the message will be removed in the future versions 1745 type Nat44ForwardingEnableDisableReply struct { 1746 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1747 } 1748 1749 func (m *Nat44ForwardingEnableDisableReply) Reset() { *m = Nat44ForwardingEnableDisableReply{} } 1750 func (*Nat44ForwardingEnableDisableReply) GetMessageName() string { 1751 return "nat44_forwarding_enable_disable_reply" 1752 } 1753 func (*Nat44ForwardingEnableDisableReply) GetCrcString() string { return "e8d4e804" } 1754 func (*Nat44ForwardingEnableDisableReply) GetMessageType() api.MessageType { 1755 return api.ReplyMessage 1756 } 1757 1758 func (m *Nat44ForwardingEnableDisableReply) Size() (size int) { 1759 if m == nil { 1760 return 0 1761 } 1762 size += 4 // m.Retval 1763 return size 1764 } 1765 func (m *Nat44ForwardingEnableDisableReply) Marshal(b []byte) ([]byte, error) { 1766 if b == nil { 1767 b = make([]byte, m.Size()) 1768 } 1769 buf := codec.NewBuffer(b) 1770 buf.EncodeInt32(m.Retval) 1771 return buf.Bytes(), nil 1772 } 1773 func (m *Nat44ForwardingEnableDisableReply) Unmarshal(b []byte) error { 1774 buf := codec.NewBuffer(b) 1775 m.Retval = buf.DecodeInt32() 1776 return nil 1777 } 1778 1779 // NAT44 identity mapping details response 1780 // - flags - flag NAT_ADDR_ONLY if address only mapping 1781 // - ip_address - IPv4 address 1782 // - protocol - IP protocol 1783 // - port - port number 1784 // - sw_if_index - interface 1785 // - vfr_id - VRF ID 1786 // - tag - opaque string tag 1787 // 1788 // Nat44IdentityMappingDetails defines message 'nat44_identity_mapping_details'. 1789 type Nat44IdentityMappingDetails struct { 1790 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 1791 IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"` 1792 Protocol uint8 `binapi:"u8,name=protocol" json:"protocol,omitempty"` 1793 Port uint16 `binapi:"u16,name=port" json:"port,omitempty"` 1794 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 1795 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 1796 Tag string `binapi:"string[64],name=tag" json:"tag,omitempty"` 1797 } 1798 1799 func (m *Nat44IdentityMappingDetails) Reset() { *m = Nat44IdentityMappingDetails{} } 1800 func (*Nat44IdentityMappingDetails) GetMessageName() string { return "nat44_identity_mapping_details" } 1801 func (*Nat44IdentityMappingDetails) GetCrcString() string { return "2a52a030" } 1802 func (*Nat44IdentityMappingDetails) GetMessageType() api.MessageType { 1803 return api.ReplyMessage 1804 } 1805 1806 func (m *Nat44IdentityMappingDetails) Size() (size int) { 1807 if m == nil { 1808 return 0 1809 } 1810 size += 1 // m.Flags 1811 size += 1 * 4 // m.IPAddress 1812 size += 1 // m.Protocol 1813 size += 2 // m.Port 1814 size += 4 // m.SwIfIndex 1815 size += 4 // m.VrfID 1816 size += 64 // m.Tag 1817 return size 1818 } 1819 func (m *Nat44IdentityMappingDetails) Marshal(b []byte) ([]byte, error) { 1820 if b == nil { 1821 b = make([]byte, m.Size()) 1822 } 1823 buf := codec.NewBuffer(b) 1824 buf.EncodeUint8(uint8(m.Flags)) 1825 buf.EncodeBytes(m.IPAddress[:], 4) 1826 buf.EncodeUint8(m.Protocol) 1827 buf.EncodeUint16(m.Port) 1828 buf.EncodeUint32(uint32(m.SwIfIndex)) 1829 buf.EncodeUint32(m.VrfID) 1830 buf.EncodeString(m.Tag, 64) 1831 return buf.Bytes(), nil 1832 } 1833 func (m *Nat44IdentityMappingDetails) Unmarshal(b []byte) error { 1834 buf := codec.NewBuffer(b) 1835 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 1836 copy(m.IPAddress[:], buf.DecodeBytes(4)) 1837 m.Protocol = buf.DecodeUint8() 1838 m.Port = buf.DecodeUint16() 1839 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 1840 m.VrfID = buf.DecodeUint32() 1841 m.Tag = buf.DecodeString(64) 1842 return nil 1843 } 1844 1845 // Dump NAT44 identity mappings 1846 // Nat44IdentityMappingDump defines message 'nat44_identity_mapping_dump'. 1847 type Nat44IdentityMappingDump struct{} 1848 1849 func (m *Nat44IdentityMappingDump) Reset() { *m = Nat44IdentityMappingDump{} } 1850 func (*Nat44IdentityMappingDump) GetMessageName() string { return "nat44_identity_mapping_dump" } 1851 func (*Nat44IdentityMappingDump) GetCrcString() string { return "51077d14" } 1852 func (*Nat44IdentityMappingDump) GetMessageType() api.MessageType { 1853 return api.RequestMessage 1854 } 1855 1856 func (m *Nat44IdentityMappingDump) Size() (size int) { 1857 if m == nil { 1858 return 0 1859 } 1860 return size 1861 } 1862 func (m *Nat44IdentityMappingDump) Marshal(b []byte) ([]byte, error) { 1863 if b == nil { 1864 b = make([]byte, m.Size()) 1865 } 1866 buf := codec.NewBuffer(b) 1867 return buf.Bytes(), nil 1868 } 1869 func (m *Nat44IdentityMappingDump) Unmarshal(b []byte) error { 1870 return nil 1871 } 1872 1873 // Enable/disable NAT44 feature on the interface 1874 // - is_add - true if add, false if delete 1875 // - flags - flag NAT_IS_INSIDE if interface is inside else 1876 // interface is outside 1877 // - sw_if_index - software index of the interface 1878 // 1879 // Nat44InterfaceAddDelFeature defines message 'nat44_interface_add_del_feature'. 1880 type Nat44InterfaceAddDelFeature struct { 1881 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 1882 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 1883 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 1884 } 1885 1886 func (m *Nat44InterfaceAddDelFeature) Reset() { *m = Nat44InterfaceAddDelFeature{} } 1887 func (*Nat44InterfaceAddDelFeature) GetMessageName() string { return "nat44_interface_add_del_feature" } 1888 func (*Nat44InterfaceAddDelFeature) GetCrcString() string { return "f3699b83" } 1889 func (*Nat44InterfaceAddDelFeature) GetMessageType() api.MessageType { 1890 return api.RequestMessage 1891 } 1892 1893 func (m *Nat44InterfaceAddDelFeature) Size() (size int) { 1894 if m == nil { 1895 return 0 1896 } 1897 size += 1 // m.IsAdd 1898 size += 1 // m.Flags 1899 size += 4 // m.SwIfIndex 1900 return size 1901 } 1902 func (m *Nat44InterfaceAddDelFeature) Marshal(b []byte) ([]byte, error) { 1903 if b == nil { 1904 b = make([]byte, m.Size()) 1905 } 1906 buf := codec.NewBuffer(b) 1907 buf.EncodeBool(m.IsAdd) 1908 buf.EncodeUint8(uint8(m.Flags)) 1909 buf.EncodeUint32(uint32(m.SwIfIndex)) 1910 return buf.Bytes(), nil 1911 } 1912 func (m *Nat44InterfaceAddDelFeature) Unmarshal(b []byte) error { 1913 buf := codec.NewBuffer(b) 1914 m.IsAdd = buf.DecodeBool() 1915 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 1916 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 1917 return nil 1918 } 1919 1920 // Nat44InterfaceAddDelFeatureReply defines message 'nat44_interface_add_del_feature_reply'. 1921 type Nat44InterfaceAddDelFeatureReply struct { 1922 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1923 } 1924 1925 func (m *Nat44InterfaceAddDelFeatureReply) Reset() { *m = Nat44InterfaceAddDelFeatureReply{} } 1926 func (*Nat44InterfaceAddDelFeatureReply) GetMessageName() string { 1927 return "nat44_interface_add_del_feature_reply" 1928 } 1929 func (*Nat44InterfaceAddDelFeatureReply) GetCrcString() string { return "e8d4e804" } 1930 func (*Nat44InterfaceAddDelFeatureReply) GetMessageType() api.MessageType { 1931 return api.ReplyMessage 1932 } 1933 1934 func (m *Nat44InterfaceAddDelFeatureReply) Size() (size int) { 1935 if m == nil { 1936 return 0 1937 } 1938 size += 4 // m.Retval 1939 return size 1940 } 1941 func (m *Nat44InterfaceAddDelFeatureReply) Marshal(b []byte) ([]byte, error) { 1942 if b == nil { 1943 b = make([]byte, m.Size()) 1944 } 1945 buf := codec.NewBuffer(b) 1946 buf.EncodeInt32(m.Retval) 1947 return buf.Bytes(), nil 1948 } 1949 func (m *Nat44InterfaceAddDelFeatureReply) Unmarshal(b []byte) error { 1950 buf := codec.NewBuffer(b) 1951 m.Retval = buf.DecodeInt32() 1952 return nil 1953 } 1954 1955 // NAT44 pool addresses interfaces details response 1956 // - sw_if_index - software index of the interface 1957 // - flags - flag NAT_TWICE_NAT if NAT address range for external hosts 1958 // 1959 // Nat44InterfaceAddrDetails defines message 'nat44_interface_addr_details'. 1960 type Nat44InterfaceAddrDetails struct { 1961 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 1962 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 1963 } 1964 1965 func (m *Nat44InterfaceAddrDetails) Reset() { *m = Nat44InterfaceAddrDetails{} } 1966 func (*Nat44InterfaceAddrDetails) GetMessageName() string { return "nat44_interface_addr_details" } 1967 func (*Nat44InterfaceAddrDetails) GetCrcString() string { return "e4aca9ca" } 1968 func (*Nat44InterfaceAddrDetails) GetMessageType() api.MessageType { 1969 return api.ReplyMessage 1970 } 1971 1972 func (m *Nat44InterfaceAddrDetails) Size() (size int) { 1973 if m == nil { 1974 return 0 1975 } 1976 size += 4 // m.SwIfIndex 1977 size += 1 // m.Flags 1978 return size 1979 } 1980 func (m *Nat44InterfaceAddrDetails) Marshal(b []byte) ([]byte, error) { 1981 if b == nil { 1982 b = make([]byte, m.Size()) 1983 } 1984 buf := codec.NewBuffer(b) 1985 buf.EncodeUint32(uint32(m.SwIfIndex)) 1986 buf.EncodeUint8(uint8(m.Flags)) 1987 return buf.Bytes(), nil 1988 } 1989 func (m *Nat44InterfaceAddrDetails) Unmarshal(b []byte) error { 1990 buf := codec.NewBuffer(b) 1991 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 1992 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 1993 return nil 1994 } 1995 1996 // Dump NAT44 pool addresses interfaces 1997 // Nat44InterfaceAddrDump defines message 'nat44_interface_addr_dump'. 1998 type Nat44InterfaceAddrDump struct{} 1999 2000 func (m *Nat44InterfaceAddrDump) Reset() { *m = Nat44InterfaceAddrDump{} } 2001 func (*Nat44InterfaceAddrDump) GetMessageName() string { return "nat44_interface_addr_dump" } 2002 func (*Nat44InterfaceAddrDump) GetCrcString() string { return "51077d14" } 2003 func (*Nat44InterfaceAddrDump) GetMessageType() api.MessageType { 2004 return api.RequestMessage 2005 } 2006 2007 func (m *Nat44InterfaceAddrDump) Size() (size int) { 2008 if m == nil { 2009 return 0 2010 } 2011 return size 2012 } 2013 func (m *Nat44InterfaceAddrDump) Marshal(b []byte) ([]byte, error) { 2014 if b == nil { 2015 b = make([]byte, m.Size()) 2016 } 2017 buf := codec.NewBuffer(b) 2018 return buf.Bytes(), nil 2019 } 2020 func (m *Nat44InterfaceAddrDump) Unmarshal(b []byte) error { 2021 return nil 2022 } 2023 2024 // NAT44 interface details response 2025 // - sw_if_index - software index of the interface 2026 // - flags - flag NAT_IS_INSIDE if interface is inside, 2027 // flag NAT_IS_OUTSIDE if interface is outside 2028 // and if both flags are set the interface is 2029 // both inside and outside 2030 // 2031 // Nat44InterfaceDetails defines message 'nat44_interface_details'. 2032 type Nat44InterfaceDetails struct { 2033 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 2034 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 2035 } 2036 2037 func (m *Nat44InterfaceDetails) Reset() { *m = Nat44InterfaceDetails{} } 2038 func (*Nat44InterfaceDetails) GetMessageName() string { return "nat44_interface_details" } 2039 func (*Nat44InterfaceDetails) GetCrcString() string { return "5d286289" } 2040 func (*Nat44InterfaceDetails) GetMessageType() api.MessageType { 2041 return api.ReplyMessage 2042 } 2043 2044 func (m *Nat44InterfaceDetails) Size() (size int) { 2045 if m == nil { 2046 return 0 2047 } 2048 size += 1 // m.Flags 2049 size += 4 // m.SwIfIndex 2050 return size 2051 } 2052 func (m *Nat44InterfaceDetails) Marshal(b []byte) ([]byte, error) { 2053 if b == nil { 2054 b = make([]byte, m.Size()) 2055 } 2056 buf := codec.NewBuffer(b) 2057 buf.EncodeUint8(uint8(m.Flags)) 2058 buf.EncodeUint32(uint32(m.SwIfIndex)) 2059 return buf.Bytes(), nil 2060 } 2061 func (m *Nat44InterfaceDetails) Unmarshal(b []byte) error { 2062 buf := codec.NewBuffer(b) 2063 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 2064 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 2065 return nil 2066 } 2067 2068 // Dump interfaces with NAT44 feature 2069 // Nat44InterfaceDump defines message 'nat44_interface_dump'. 2070 type Nat44InterfaceDump struct{} 2071 2072 func (m *Nat44InterfaceDump) Reset() { *m = Nat44InterfaceDump{} } 2073 func (*Nat44InterfaceDump) GetMessageName() string { return "nat44_interface_dump" } 2074 func (*Nat44InterfaceDump) GetCrcString() string { return "51077d14" } 2075 func (*Nat44InterfaceDump) GetMessageType() api.MessageType { 2076 return api.RequestMessage 2077 } 2078 2079 func (m *Nat44InterfaceDump) Size() (size int) { 2080 if m == nil { 2081 return 0 2082 } 2083 return size 2084 } 2085 func (m *Nat44InterfaceDump) Marshal(b []byte) ([]byte, error) { 2086 if b == nil { 2087 b = make([]byte, m.Size()) 2088 } 2089 buf := codec.NewBuffer(b) 2090 return buf.Bytes(), nil 2091 } 2092 func (m *Nat44InterfaceDump) Unmarshal(b []byte) error { 2093 return nil 2094 } 2095 2096 // Add/delete NAT44 load-balancing static mapping rule backend 2097 // - is_add - true if add, false if delete 2098 // - external_addr - external IPv4 address of the service 2099 // - external_port - external L4 port number of the service 2100 // - protocol - IP protocol number of the service 2101 // - local - local network node 2102 // 2103 // Nat44LbStaticMappingAddDelLocal defines message 'nat44_lb_static_mapping_add_del_local'. 2104 type Nat44LbStaticMappingAddDelLocal struct { 2105 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 2106 ExternalAddr ip_types.IP4Address `binapi:"ip4_address,name=external_addr" json:"external_addr,omitempty"` 2107 ExternalPort uint16 `binapi:"u16,name=external_port" json:"external_port,omitempty"` 2108 Protocol uint8 `binapi:"u8,name=protocol" json:"protocol,omitempty"` 2109 Local Nat44LbAddrPort `binapi:"nat44_lb_addr_port,name=local" json:"local,omitempty"` 2110 } 2111 2112 func (m *Nat44LbStaticMappingAddDelLocal) Reset() { *m = Nat44LbStaticMappingAddDelLocal{} } 2113 func (*Nat44LbStaticMappingAddDelLocal) GetMessageName() string { 2114 return "nat44_lb_static_mapping_add_del_local" 2115 } 2116 func (*Nat44LbStaticMappingAddDelLocal) GetCrcString() string { return "7ca47547" } 2117 func (*Nat44LbStaticMappingAddDelLocal) GetMessageType() api.MessageType { 2118 return api.RequestMessage 2119 } 2120 2121 func (m *Nat44LbStaticMappingAddDelLocal) Size() (size int) { 2122 if m == nil { 2123 return 0 2124 } 2125 size += 1 // m.IsAdd 2126 size += 1 * 4 // m.ExternalAddr 2127 size += 2 // m.ExternalPort 2128 size += 1 // m.Protocol 2129 size += 1 * 4 // m.Local.Addr 2130 size += 2 // m.Local.Port 2131 size += 1 // m.Local.Probability 2132 size += 4 // m.Local.VrfID 2133 return size 2134 } 2135 func (m *Nat44LbStaticMappingAddDelLocal) Marshal(b []byte) ([]byte, error) { 2136 if b == nil { 2137 b = make([]byte, m.Size()) 2138 } 2139 buf := codec.NewBuffer(b) 2140 buf.EncodeBool(m.IsAdd) 2141 buf.EncodeBytes(m.ExternalAddr[:], 4) 2142 buf.EncodeUint16(m.ExternalPort) 2143 buf.EncodeUint8(m.Protocol) 2144 buf.EncodeBytes(m.Local.Addr[:], 4) 2145 buf.EncodeUint16(m.Local.Port) 2146 buf.EncodeUint8(m.Local.Probability) 2147 buf.EncodeUint32(m.Local.VrfID) 2148 return buf.Bytes(), nil 2149 } 2150 func (m *Nat44LbStaticMappingAddDelLocal) Unmarshal(b []byte) error { 2151 buf := codec.NewBuffer(b) 2152 m.IsAdd = buf.DecodeBool() 2153 copy(m.ExternalAddr[:], buf.DecodeBytes(4)) 2154 m.ExternalPort = buf.DecodeUint16() 2155 m.Protocol = buf.DecodeUint8() 2156 copy(m.Local.Addr[:], buf.DecodeBytes(4)) 2157 m.Local.Port = buf.DecodeUint16() 2158 m.Local.Probability = buf.DecodeUint8() 2159 m.Local.VrfID = buf.DecodeUint32() 2160 return nil 2161 } 2162 2163 // Nat44LbStaticMappingAddDelLocalReply defines message 'nat44_lb_static_mapping_add_del_local_reply'. 2164 type Nat44LbStaticMappingAddDelLocalReply struct { 2165 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 2166 } 2167 2168 func (m *Nat44LbStaticMappingAddDelLocalReply) Reset() { *m = Nat44LbStaticMappingAddDelLocalReply{} } 2169 func (*Nat44LbStaticMappingAddDelLocalReply) GetMessageName() string { 2170 return "nat44_lb_static_mapping_add_del_local_reply" 2171 } 2172 func (*Nat44LbStaticMappingAddDelLocalReply) GetCrcString() string { return "e8d4e804" } 2173 func (*Nat44LbStaticMappingAddDelLocalReply) GetMessageType() api.MessageType { 2174 return api.ReplyMessage 2175 } 2176 2177 func (m *Nat44LbStaticMappingAddDelLocalReply) Size() (size int) { 2178 if m == nil { 2179 return 0 2180 } 2181 size += 4 // m.Retval 2182 return size 2183 } 2184 func (m *Nat44LbStaticMappingAddDelLocalReply) Marshal(b []byte) ([]byte, error) { 2185 if b == nil { 2186 b = make([]byte, m.Size()) 2187 } 2188 buf := codec.NewBuffer(b) 2189 buf.EncodeInt32(m.Retval) 2190 return buf.Bytes(), nil 2191 } 2192 func (m *Nat44LbStaticMappingAddDelLocalReply) Unmarshal(b []byte) error { 2193 buf := codec.NewBuffer(b) 2194 m.Retval = buf.DecodeInt32() 2195 return nil 2196 } 2197 2198 // NAT44 load-balancing static mapping rule details response 2199 // - external_addr - external IPv4 address of the service 2200 // - external_port - external L4 port number of the service 2201 // - protocol - IP protocol number of the service 2202 // - flags - flag NAT_TWICE_NAT if NAT address range for external hosts, 2203 // flag NAT_SELF_TWICE_NAT if translate external host address 2204 // and port whenever external host address equals local 2205 // address of internal host, 2206 // flag NAT_OUT2IN_ONLY if rule match only out2in direction 2207 // - affinity - if 0 disabled, otherwise client IP affinity sticky time 2208 // in seconds 2209 // - local_num - number of local network nodes 2210 // - locals - local network nodes 2211 // - tag - opaque string tag 2212 // 2213 // Nat44LbStaticMappingDetails defines message 'nat44_lb_static_mapping_details'. 2214 type Nat44LbStaticMappingDetails struct { 2215 ExternalAddr ip_types.IP4Address `binapi:"ip4_address,name=external_addr" json:"external_addr,omitempty"` 2216 ExternalPort uint16 `binapi:"u16,name=external_port" json:"external_port,omitempty"` 2217 Protocol uint8 `binapi:"u8,name=protocol" json:"protocol,omitempty"` 2218 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 2219 Affinity uint32 `binapi:"u32,name=affinity" json:"affinity,omitempty"` 2220 Tag string `binapi:"string[64],name=tag" json:"tag,omitempty"` 2221 LocalNum uint32 `binapi:"u32,name=local_num" json:"-"` 2222 Locals []Nat44LbAddrPort `binapi:"nat44_lb_addr_port[local_num],name=locals" json:"locals,omitempty"` 2223 } 2224 2225 func (m *Nat44LbStaticMappingDetails) Reset() { *m = Nat44LbStaticMappingDetails{} } 2226 func (*Nat44LbStaticMappingDetails) GetMessageName() string { return "nat44_lb_static_mapping_details" } 2227 func (*Nat44LbStaticMappingDetails) GetCrcString() string { return "ed5ce876" } 2228 func (*Nat44LbStaticMappingDetails) GetMessageType() api.MessageType { 2229 return api.ReplyMessage 2230 } 2231 2232 func (m *Nat44LbStaticMappingDetails) Size() (size int) { 2233 if m == nil { 2234 return 0 2235 } 2236 size += 1 * 4 // m.ExternalAddr 2237 size += 2 // m.ExternalPort 2238 size += 1 // m.Protocol 2239 size += 1 // m.Flags 2240 size += 4 // m.Affinity 2241 size += 64 // m.Tag 2242 size += 4 // m.LocalNum 2243 for j1 := 0; j1 < len(m.Locals); j1++ { 2244 var s1 Nat44LbAddrPort 2245 _ = s1 2246 if j1 < len(m.Locals) { 2247 s1 = m.Locals[j1] 2248 } 2249 size += 1 * 4 // s1.Addr 2250 size += 2 // s1.Port 2251 size += 1 // s1.Probability 2252 size += 4 // s1.VrfID 2253 } 2254 return size 2255 } 2256 func (m *Nat44LbStaticMappingDetails) Marshal(b []byte) ([]byte, error) { 2257 if b == nil { 2258 b = make([]byte, m.Size()) 2259 } 2260 buf := codec.NewBuffer(b) 2261 buf.EncodeBytes(m.ExternalAddr[:], 4) 2262 buf.EncodeUint16(m.ExternalPort) 2263 buf.EncodeUint8(m.Protocol) 2264 buf.EncodeUint8(uint8(m.Flags)) 2265 buf.EncodeUint32(m.Affinity) 2266 buf.EncodeString(m.Tag, 64) 2267 buf.EncodeUint32(uint32(len(m.Locals))) 2268 for j0 := 0; j0 < len(m.Locals); j0++ { 2269 var v0 Nat44LbAddrPort // Locals 2270 if j0 < len(m.Locals) { 2271 v0 = m.Locals[j0] 2272 } 2273 buf.EncodeBytes(v0.Addr[:], 4) 2274 buf.EncodeUint16(v0.Port) 2275 buf.EncodeUint8(v0.Probability) 2276 buf.EncodeUint32(v0.VrfID) 2277 } 2278 return buf.Bytes(), nil 2279 } 2280 func (m *Nat44LbStaticMappingDetails) Unmarshal(b []byte) error { 2281 buf := codec.NewBuffer(b) 2282 copy(m.ExternalAddr[:], buf.DecodeBytes(4)) 2283 m.ExternalPort = buf.DecodeUint16() 2284 m.Protocol = buf.DecodeUint8() 2285 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 2286 m.Affinity = buf.DecodeUint32() 2287 m.Tag = buf.DecodeString(64) 2288 m.LocalNum = buf.DecodeUint32() 2289 m.Locals = make([]Nat44LbAddrPort, m.LocalNum) 2290 for j0 := 0; j0 < len(m.Locals); j0++ { 2291 copy(m.Locals[j0].Addr[:], buf.DecodeBytes(4)) 2292 m.Locals[j0].Port = buf.DecodeUint16() 2293 m.Locals[j0].Probability = buf.DecodeUint8() 2294 m.Locals[j0].VrfID = buf.DecodeUint32() 2295 } 2296 return nil 2297 } 2298 2299 // Dump NAT44 load-balancing static mapping rules 2300 // Nat44LbStaticMappingDump defines message 'nat44_lb_static_mapping_dump'. 2301 type Nat44LbStaticMappingDump struct{} 2302 2303 func (m *Nat44LbStaticMappingDump) Reset() { *m = Nat44LbStaticMappingDump{} } 2304 func (*Nat44LbStaticMappingDump) GetMessageName() string { return "nat44_lb_static_mapping_dump" } 2305 func (*Nat44LbStaticMappingDump) GetCrcString() string { return "51077d14" } 2306 func (*Nat44LbStaticMappingDump) GetMessageType() api.MessageType { 2307 return api.RequestMessage 2308 } 2309 2310 func (m *Nat44LbStaticMappingDump) Size() (size int) { 2311 if m == nil { 2312 return 0 2313 } 2314 return size 2315 } 2316 func (m *Nat44LbStaticMappingDump) Marshal(b []byte) ([]byte, error) { 2317 if b == nil { 2318 b = make([]byte, m.Size()) 2319 } 2320 buf := codec.NewBuffer(b) 2321 return buf.Bytes(), nil 2322 } 2323 func (m *Nat44LbStaticMappingDump) Unmarshal(b []byte) error { 2324 return nil 2325 } 2326 2327 // NAT44 set session limit 2328 // - session_limit - session limit 2329 // - vrf_id - vrf id 2330 // 2331 // Nat44SetSessionLimit defines message 'nat44_set_session_limit'. 2332 type Nat44SetSessionLimit struct { 2333 SessionLimit uint32 `binapi:"u32,name=session_limit" json:"session_limit,omitempty"` 2334 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 2335 } 2336 2337 func (m *Nat44SetSessionLimit) Reset() { *m = Nat44SetSessionLimit{} } 2338 func (*Nat44SetSessionLimit) GetMessageName() string { return "nat44_set_session_limit" } 2339 func (*Nat44SetSessionLimit) GetCrcString() string { return "8899bbb1" } 2340 func (*Nat44SetSessionLimit) GetMessageType() api.MessageType { 2341 return api.RequestMessage 2342 } 2343 2344 func (m *Nat44SetSessionLimit) Size() (size int) { 2345 if m == nil { 2346 return 0 2347 } 2348 size += 4 // m.SessionLimit 2349 size += 4 // m.VrfID 2350 return size 2351 } 2352 func (m *Nat44SetSessionLimit) Marshal(b []byte) ([]byte, error) { 2353 if b == nil { 2354 b = make([]byte, m.Size()) 2355 } 2356 buf := codec.NewBuffer(b) 2357 buf.EncodeUint32(m.SessionLimit) 2358 buf.EncodeUint32(m.VrfID) 2359 return buf.Bytes(), nil 2360 } 2361 func (m *Nat44SetSessionLimit) Unmarshal(b []byte) error { 2362 buf := codec.NewBuffer(b) 2363 m.SessionLimit = buf.DecodeUint32() 2364 m.VrfID = buf.DecodeUint32() 2365 return nil 2366 } 2367 2368 // Nat44SetSessionLimitReply defines message 'nat44_set_session_limit_reply'. 2369 type Nat44SetSessionLimitReply struct { 2370 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 2371 } 2372 2373 func (m *Nat44SetSessionLimitReply) Reset() { *m = Nat44SetSessionLimitReply{} } 2374 func (*Nat44SetSessionLimitReply) GetMessageName() string { return "nat44_set_session_limit_reply" } 2375 func (*Nat44SetSessionLimitReply) GetCrcString() string { return "e8d4e804" } 2376 func (*Nat44SetSessionLimitReply) GetMessageType() api.MessageType { 2377 return api.ReplyMessage 2378 } 2379 2380 func (m *Nat44SetSessionLimitReply) Size() (size int) { 2381 if m == nil { 2382 return 0 2383 } 2384 size += 4 // m.Retval 2385 return size 2386 } 2387 func (m *Nat44SetSessionLimitReply) Marshal(b []byte) ([]byte, error) { 2388 if b == nil { 2389 b = make([]byte, m.Size()) 2390 } 2391 buf := codec.NewBuffer(b) 2392 buf.EncodeInt32(m.Retval) 2393 return buf.Bytes(), nil 2394 } 2395 func (m *Nat44SetSessionLimitReply) Unmarshal(b []byte) error { 2396 buf := codec.NewBuffer(b) 2397 m.Retval = buf.DecodeInt32() 2398 return nil 2399 } 2400 2401 // Show NAT44 plugin running config 2402 // Nat44ShowRunningConfig defines message 'nat44_show_running_config'. 2403 type Nat44ShowRunningConfig struct{} 2404 2405 func (m *Nat44ShowRunningConfig) Reset() { *m = Nat44ShowRunningConfig{} } 2406 func (*Nat44ShowRunningConfig) GetMessageName() string { return "nat44_show_running_config" } 2407 func (*Nat44ShowRunningConfig) GetCrcString() string { return "51077d14" } 2408 func (*Nat44ShowRunningConfig) GetMessageType() api.MessageType { 2409 return api.RequestMessage 2410 } 2411 2412 func (m *Nat44ShowRunningConfig) Size() (size int) { 2413 if m == nil { 2414 return 0 2415 } 2416 return size 2417 } 2418 func (m *Nat44ShowRunningConfig) Marshal(b []byte) ([]byte, error) { 2419 if b == nil { 2420 b = make([]byte, m.Size()) 2421 } 2422 buf := codec.NewBuffer(b) 2423 return buf.Bytes(), nil 2424 } 2425 func (m *Nat44ShowRunningConfig) Unmarshal(b []byte) error { 2426 return nil 2427 } 2428 2429 // Show NAT44 plugin running config reply 2430 // - retval - return code for the request 2431 // - inside_vrf - default inside VRF id 2432 // - outside_vrf - outside VRF id 2433 // - users - maximum number of users per worker thread 2434 // (NAT44_IS_ENDPOINT_INDEPENDENT) 2435 // - sessions - maximum number of sessions per worker thread 2436 // - user_sessions - maximum number of sessions per user 2437 // (NAT44_IS_ENDPOINT_INDEPENDENT) 2438 // - user_buckets - number of user hash buckets 2439 // (NAT44_IS_ENDPOINT_INDEPENDENT) 2440 // - translation_buckets - number of translation hash buckets 2441 // - flags - flag NAT44_IS_ENDPOINT_INDEPENDENT, 2442 // NAT44_IS_ENDPOINT_DEPENDENT, 2443 // NAT44_IS_STATIC_MAPPING_ONLY, 2444 // NAT44_IS_CONNECTION_TRACKING, 2445 // NAT44_IS_OUT2IN_DPO 2446 // 2447 // Nat44ShowRunningConfigReply defines message 'nat44_show_running_config_reply'. 2448 type Nat44ShowRunningConfigReply struct { 2449 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 2450 InsideVrf uint32 `binapi:"u32,name=inside_vrf" json:"inside_vrf,omitempty"` 2451 OutsideVrf uint32 `binapi:"u32,name=outside_vrf" json:"outside_vrf,omitempty"` 2452 Users uint32 `binapi:"u32,name=users" json:"users,omitempty"` 2453 Sessions uint32 `binapi:"u32,name=sessions" json:"sessions,omitempty"` 2454 UserSessions uint32 `binapi:"u32,name=user_sessions" json:"user_sessions,omitempty"` 2455 UserBuckets uint32 `binapi:"u32,name=user_buckets" json:"user_buckets,omitempty"` 2456 TranslationBuckets uint32 `binapi:"u32,name=translation_buckets" json:"translation_buckets,omitempty"` 2457 ForwardingEnabled bool `binapi:"bool,name=forwarding_enabled" json:"forwarding_enabled,omitempty"` 2458 IpfixLoggingEnabled bool `binapi:"bool,name=ipfix_logging_enabled" json:"ipfix_logging_enabled,omitempty"` 2459 Timeouts nat_types.NatTimeouts `binapi:"nat_timeouts,name=timeouts" json:"timeouts,omitempty"` 2460 LogLevel nat_types.NatLogLevel `binapi:"nat_log_level,name=log_level" json:"log_level,omitempty"` 2461 Flags Nat44ConfigFlags `binapi:"nat44_config_flags,name=flags" json:"flags,omitempty"` 2462 } 2463 2464 func (m *Nat44ShowRunningConfigReply) Reset() { *m = Nat44ShowRunningConfigReply{} } 2465 func (*Nat44ShowRunningConfigReply) GetMessageName() string { return "nat44_show_running_config_reply" } 2466 func (*Nat44ShowRunningConfigReply) GetCrcString() string { return "93d8e267" } 2467 func (*Nat44ShowRunningConfigReply) GetMessageType() api.MessageType { 2468 return api.ReplyMessage 2469 } 2470 2471 func (m *Nat44ShowRunningConfigReply) Size() (size int) { 2472 if m == nil { 2473 return 0 2474 } 2475 size += 4 // m.Retval 2476 size += 4 // m.InsideVrf 2477 size += 4 // m.OutsideVrf 2478 size += 4 // m.Users 2479 size += 4 // m.Sessions 2480 size += 4 // m.UserSessions 2481 size += 4 // m.UserBuckets 2482 size += 4 // m.TranslationBuckets 2483 size += 1 // m.ForwardingEnabled 2484 size += 1 // m.IpfixLoggingEnabled 2485 size += 4 // m.Timeouts.UDP 2486 size += 4 // m.Timeouts.TCPEstablished 2487 size += 4 // m.Timeouts.TCPTransitory 2488 size += 4 // m.Timeouts.ICMP 2489 size += 1 // m.LogLevel 2490 size += 1 // m.Flags 2491 return size 2492 } 2493 func (m *Nat44ShowRunningConfigReply) Marshal(b []byte) ([]byte, error) { 2494 if b == nil { 2495 b = make([]byte, m.Size()) 2496 } 2497 buf := codec.NewBuffer(b) 2498 buf.EncodeInt32(m.Retval) 2499 buf.EncodeUint32(m.InsideVrf) 2500 buf.EncodeUint32(m.OutsideVrf) 2501 buf.EncodeUint32(m.Users) 2502 buf.EncodeUint32(m.Sessions) 2503 buf.EncodeUint32(m.UserSessions) 2504 buf.EncodeUint32(m.UserBuckets) 2505 buf.EncodeUint32(m.TranslationBuckets) 2506 buf.EncodeBool(m.ForwardingEnabled) 2507 buf.EncodeBool(m.IpfixLoggingEnabled) 2508 buf.EncodeUint32(m.Timeouts.UDP) 2509 buf.EncodeUint32(m.Timeouts.TCPEstablished) 2510 buf.EncodeUint32(m.Timeouts.TCPTransitory) 2511 buf.EncodeUint32(m.Timeouts.ICMP) 2512 buf.EncodeUint8(uint8(m.LogLevel)) 2513 buf.EncodeUint8(uint8(m.Flags)) 2514 return buf.Bytes(), nil 2515 } 2516 func (m *Nat44ShowRunningConfigReply) Unmarshal(b []byte) error { 2517 buf := codec.NewBuffer(b) 2518 m.Retval = buf.DecodeInt32() 2519 m.InsideVrf = buf.DecodeUint32() 2520 m.OutsideVrf = buf.DecodeUint32() 2521 m.Users = buf.DecodeUint32() 2522 m.Sessions = buf.DecodeUint32() 2523 m.UserSessions = buf.DecodeUint32() 2524 m.UserBuckets = buf.DecodeUint32() 2525 m.TranslationBuckets = buf.DecodeUint32() 2526 m.ForwardingEnabled = buf.DecodeBool() 2527 m.IpfixLoggingEnabled = buf.DecodeBool() 2528 m.Timeouts.UDP = buf.DecodeUint32() 2529 m.Timeouts.TCPEstablished = buf.DecodeUint32() 2530 m.Timeouts.TCPTransitory = buf.DecodeUint32() 2531 m.Timeouts.ICMP = buf.DecodeUint32() 2532 m.LogLevel = nat_types.NatLogLevel(buf.DecodeUint8()) 2533 m.Flags = Nat44ConfigFlags(buf.DecodeUint8()) 2534 return nil 2535 } 2536 2537 // NAT44 static mapping details response 2538 // - flags - flag NAT_ADDR_ONLY if address only mapping, 2539 // flag NAT_TWICE_NAT if NAT address range for external hosts, 2540 // flag NAT_SELF_TWICE_NAT if translate external host address 2541 // and port whenever external host address equals local 2542 // address of internal host, 2543 // flag NAT_OUT2IN_ONLY if rule match only out2in direction 2544 // - local_ip_address - local IPv4 address 2545 // - external_ip_address - external IPv4 address 2546 // - protocol - IP protocol, valid only if no NAT_ADDR_ONLY flag 2547 // - local_port - local port number, valid only if no NAT_ADDR_ONLY flag 2548 // - external_port - external port number, valid only if no NAT_ADDR_ONLY flag 2549 // - external_sw_if_index - external interface 2550 // - vfr_id - VRF ID 2551 // - tag - opaque string tag 2552 // 2553 // Nat44StaticMappingDetails defines message 'nat44_static_mapping_details'. 2554 type Nat44StaticMappingDetails struct { 2555 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 2556 LocalIPAddress ip_types.IP4Address `binapi:"ip4_address,name=local_ip_address" json:"local_ip_address,omitempty"` 2557 ExternalIPAddress ip_types.IP4Address `binapi:"ip4_address,name=external_ip_address" json:"external_ip_address,omitempty"` 2558 Protocol uint8 `binapi:"u8,name=protocol" json:"protocol,omitempty"` 2559 LocalPort uint16 `binapi:"u16,name=local_port" json:"local_port,omitempty"` 2560 ExternalPort uint16 `binapi:"u16,name=external_port" json:"external_port,omitempty"` 2561 ExternalSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=external_sw_if_index" json:"external_sw_if_index,omitempty"` 2562 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 2563 Tag string `binapi:"string[64],name=tag" json:"tag,omitempty"` 2564 } 2565 2566 func (m *Nat44StaticMappingDetails) Reset() { *m = Nat44StaticMappingDetails{} } 2567 func (*Nat44StaticMappingDetails) GetMessageName() string { return "nat44_static_mapping_details" } 2568 func (*Nat44StaticMappingDetails) GetCrcString() string { return "06cb40b2" } 2569 func (*Nat44StaticMappingDetails) GetMessageType() api.MessageType { 2570 return api.ReplyMessage 2571 } 2572 2573 func (m *Nat44StaticMappingDetails) Size() (size int) { 2574 if m == nil { 2575 return 0 2576 } 2577 size += 1 // m.Flags 2578 size += 1 * 4 // m.LocalIPAddress 2579 size += 1 * 4 // m.ExternalIPAddress 2580 size += 1 // m.Protocol 2581 size += 2 // m.LocalPort 2582 size += 2 // m.ExternalPort 2583 size += 4 // m.ExternalSwIfIndex 2584 size += 4 // m.VrfID 2585 size += 64 // m.Tag 2586 return size 2587 } 2588 func (m *Nat44StaticMappingDetails) Marshal(b []byte) ([]byte, error) { 2589 if b == nil { 2590 b = make([]byte, m.Size()) 2591 } 2592 buf := codec.NewBuffer(b) 2593 buf.EncodeUint8(uint8(m.Flags)) 2594 buf.EncodeBytes(m.LocalIPAddress[:], 4) 2595 buf.EncodeBytes(m.ExternalIPAddress[:], 4) 2596 buf.EncodeUint8(m.Protocol) 2597 buf.EncodeUint16(m.LocalPort) 2598 buf.EncodeUint16(m.ExternalPort) 2599 buf.EncodeUint32(uint32(m.ExternalSwIfIndex)) 2600 buf.EncodeUint32(m.VrfID) 2601 buf.EncodeString(m.Tag, 64) 2602 return buf.Bytes(), nil 2603 } 2604 func (m *Nat44StaticMappingDetails) Unmarshal(b []byte) error { 2605 buf := codec.NewBuffer(b) 2606 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 2607 copy(m.LocalIPAddress[:], buf.DecodeBytes(4)) 2608 copy(m.ExternalIPAddress[:], buf.DecodeBytes(4)) 2609 m.Protocol = buf.DecodeUint8() 2610 m.LocalPort = buf.DecodeUint16() 2611 m.ExternalPort = buf.DecodeUint16() 2612 m.ExternalSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 2613 m.VrfID = buf.DecodeUint32() 2614 m.Tag = buf.DecodeString(64) 2615 return nil 2616 } 2617 2618 // Dump NAT44 static mappings 2619 // Nat44StaticMappingDump defines message 'nat44_static_mapping_dump'. 2620 type Nat44StaticMappingDump struct{} 2621 2622 func (m *Nat44StaticMappingDump) Reset() { *m = Nat44StaticMappingDump{} } 2623 func (*Nat44StaticMappingDump) GetMessageName() string { return "nat44_static_mapping_dump" } 2624 func (*Nat44StaticMappingDump) GetCrcString() string { return "51077d14" } 2625 func (*Nat44StaticMappingDump) GetMessageType() api.MessageType { 2626 return api.RequestMessage 2627 } 2628 2629 func (m *Nat44StaticMappingDump) Size() (size int) { 2630 if m == nil { 2631 return 0 2632 } 2633 return size 2634 } 2635 func (m *Nat44StaticMappingDump) Marshal(b []byte) ([]byte, error) { 2636 if b == nil { 2637 b = make([]byte, m.Size()) 2638 } 2639 buf := codec.NewBuffer(b) 2640 return buf.Bytes(), nil 2641 } 2642 func (m *Nat44StaticMappingDump) Unmarshal(b []byte) error { 2643 return nil 2644 } 2645 2646 // NAT44 users response 2647 // 2648 // @vrf_id - VRF ID 2649 // - ip_address - IPv4 address 2650 // - nsessions - number of dynamic sessions 2651 // - nstaticsessions - number of static sessions 2652 // 2653 // Nat44UserDetails defines message 'nat44_user_details'. 2654 type Nat44UserDetails struct { 2655 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 2656 IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"` 2657 Nsessions uint32 `binapi:"u32,name=nsessions" json:"nsessions,omitempty"` 2658 Nstaticsessions uint32 `binapi:"u32,name=nstaticsessions" json:"nstaticsessions,omitempty"` 2659 } 2660 2661 func (m *Nat44UserDetails) Reset() { *m = Nat44UserDetails{} } 2662 func (*Nat44UserDetails) GetMessageName() string { return "nat44_user_details" } 2663 func (*Nat44UserDetails) GetCrcString() string { return "355896c2" } 2664 func (*Nat44UserDetails) GetMessageType() api.MessageType { 2665 return api.ReplyMessage 2666 } 2667 2668 func (m *Nat44UserDetails) Size() (size int) { 2669 if m == nil { 2670 return 0 2671 } 2672 size += 4 // m.VrfID 2673 size += 1 * 4 // m.IPAddress 2674 size += 4 // m.Nsessions 2675 size += 4 // m.Nstaticsessions 2676 return size 2677 } 2678 func (m *Nat44UserDetails) Marshal(b []byte) ([]byte, error) { 2679 if b == nil { 2680 b = make([]byte, m.Size()) 2681 } 2682 buf := codec.NewBuffer(b) 2683 buf.EncodeUint32(m.VrfID) 2684 buf.EncodeBytes(m.IPAddress[:], 4) 2685 buf.EncodeUint32(m.Nsessions) 2686 buf.EncodeUint32(m.Nstaticsessions) 2687 return buf.Bytes(), nil 2688 } 2689 func (m *Nat44UserDetails) Unmarshal(b []byte) error { 2690 buf := codec.NewBuffer(b) 2691 m.VrfID = buf.DecodeUint32() 2692 copy(m.IPAddress[:], buf.DecodeBytes(4)) 2693 m.Nsessions = buf.DecodeUint32() 2694 m.Nstaticsessions = buf.DecodeUint32() 2695 return nil 2696 } 2697 2698 // Dump NAT44 users 2699 // Nat44UserDump defines message 'nat44_user_dump'. 2700 type Nat44UserDump struct{} 2701 2702 func (m *Nat44UserDump) Reset() { *m = Nat44UserDump{} } 2703 func (*Nat44UserDump) GetMessageName() string { return "nat44_user_dump" } 2704 func (*Nat44UserDump) GetCrcString() string { return "51077d14" } 2705 func (*Nat44UserDump) GetMessageType() api.MessageType { 2706 return api.RequestMessage 2707 } 2708 2709 func (m *Nat44UserDump) Size() (size int) { 2710 if m == nil { 2711 return 0 2712 } 2713 return size 2714 } 2715 func (m *Nat44UserDump) Marshal(b []byte) ([]byte, error) { 2716 if b == nil { 2717 b = make([]byte, m.Size()) 2718 } 2719 buf := codec.NewBuffer(b) 2720 return buf.Bytes(), nil 2721 } 2722 func (m *Nat44UserDump) Unmarshal(b []byte) error { 2723 return nil 2724 } 2725 2726 // NAT44 user's sessions response 2727 // - outside_ip_address - outside IPv4 address 2728 // - outside_port - outside port 2729 // - inside_ip_address - inside IPv4 address 2730 // - inside_port - inside port 2731 // - protocol - protocol 2732 // - flags - flag NAT_IS_STATIC if session is static, 2733 // flag NAT_IS_TWICE_NAT if session is twice-nat, 2734 // flag NAT_IS_EXT_HOST_VALID if external host address 2735 // and port are valid 2736 // - last_heard - last heard timer 2737 // - total_bytes - count of bytes sent through session 2738 // - total_pkts - count of pakets sent through session 2739 // - ext_host_address - external host IPv4 address 2740 // - ext_host_port - external host port 2741 // - ext_host_nat_address - post-NAT external host IPv4 address (valid 2742 // only if twice-nat session) 2743 // - ext_host_nat_port - post-NAT external host port (valid only if 2744 // twice-nat session) 2745 // 2746 // Nat44UserSessionDetails defines message 'nat44_user_session_details'. 2747 // Deprecated: the message will be removed in the future versions 2748 type Nat44UserSessionDetails struct { 2749 OutsideIPAddress ip_types.IP4Address `binapi:"ip4_address,name=outside_ip_address" json:"outside_ip_address,omitempty"` 2750 OutsidePort uint16 `binapi:"u16,name=outside_port" json:"outside_port,omitempty"` 2751 InsideIPAddress ip_types.IP4Address `binapi:"ip4_address,name=inside_ip_address" json:"inside_ip_address,omitempty"` 2752 InsidePort uint16 `binapi:"u16,name=inside_port" json:"inside_port,omitempty"` 2753 Protocol uint16 `binapi:"u16,name=protocol" json:"protocol,omitempty"` 2754 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 2755 LastHeard uint64 `binapi:"u64,name=last_heard" json:"last_heard,omitempty"` 2756 TotalBytes uint64 `binapi:"u64,name=total_bytes" json:"total_bytes,omitempty"` 2757 TotalPkts uint32 `binapi:"u32,name=total_pkts" json:"total_pkts,omitempty"` 2758 ExtHostAddress ip_types.IP4Address `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"` 2759 ExtHostPort uint16 `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"` 2760 ExtHostNatAddress ip_types.IP4Address `binapi:"ip4_address,name=ext_host_nat_address" json:"ext_host_nat_address,omitempty"` 2761 ExtHostNatPort uint16 `binapi:"u16,name=ext_host_nat_port" json:"ext_host_nat_port,omitempty"` 2762 } 2763 2764 func (m *Nat44UserSessionDetails) Reset() { *m = Nat44UserSessionDetails{} } 2765 func (*Nat44UserSessionDetails) GetMessageName() string { return "nat44_user_session_details" } 2766 func (*Nat44UserSessionDetails) GetCrcString() string { return "2cf6e16d" } 2767 func (*Nat44UserSessionDetails) GetMessageType() api.MessageType { 2768 return api.ReplyMessage 2769 } 2770 2771 func (m *Nat44UserSessionDetails) Size() (size int) { 2772 if m == nil { 2773 return 0 2774 } 2775 size += 1 * 4 // m.OutsideIPAddress 2776 size += 2 // m.OutsidePort 2777 size += 1 * 4 // m.InsideIPAddress 2778 size += 2 // m.InsidePort 2779 size += 2 // m.Protocol 2780 size += 1 // m.Flags 2781 size += 8 // m.LastHeard 2782 size += 8 // m.TotalBytes 2783 size += 4 // m.TotalPkts 2784 size += 1 * 4 // m.ExtHostAddress 2785 size += 2 // m.ExtHostPort 2786 size += 1 * 4 // m.ExtHostNatAddress 2787 size += 2 // m.ExtHostNatPort 2788 return size 2789 } 2790 func (m *Nat44UserSessionDetails) Marshal(b []byte) ([]byte, error) { 2791 if b == nil { 2792 b = make([]byte, m.Size()) 2793 } 2794 buf := codec.NewBuffer(b) 2795 buf.EncodeBytes(m.OutsideIPAddress[:], 4) 2796 buf.EncodeUint16(m.OutsidePort) 2797 buf.EncodeBytes(m.InsideIPAddress[:], 4) 2798 buf.EncodeUint16(m.InsidePort) 2799 buf.EncodeUint16(m.Protocol) 2800 buf.EncodeUint8(uint8(m.Flags)) 2801 buf.EncodeUint64(m.LastHeard) 2802 buf.EncodeUint64(m.TotalBytes) 2803 buf.EncodeUint32(m.TotalPkts) 2804 buf.EncodeBytes(m.ExtHostAddress[:], 4) 2805 buf.EncodeUint16(m.ExtHostPort) 2806 buf.EncodeBytes(m.ExtHostNatAddress[:], 4) 2807 buf.EncodeUint16(m.ExtHostNatPort) 2808 return buf.Bytes(), nil 2809 } 2810 func (m *Nat44UserSessionDetails) Unmarshal(b []byte) error { 2811 buf := codec.NewBuffer(b) 2812 copy(m.OutsideIPAddress[:], buf.DecodeBytes(4)) 2813 m.OutsidePort = buf.DecodeUint16() 2814 copy(m.InsideIPAddress[:], buf.DecodeBytes(4)) 2815 m.InsidePort = buf.DecodeUint16() 2816 m.Protocol = buf.DecodeUint16() 2817 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 2818 m.LastHeard = buf.DecodeUint64() 2819 m.TotalBytes = buf.DecodeUint64() 2820 m.TotalPkts = buf.DecodeUint32() 2821 copy(m.ExtHostAddress[:], buf.DecodeBytes(4)) 2822 m.ExtHostPort = buf.DecodeUint16() 2823 copy(m.ExtHostNatAddress[:], buf.DecodeBytes(4)) 2824 m.ExtHostNatPort = buf.DecodeUint16() 2825 return nil 2826 } 2827 2828 // NAT44 user's sessions 2829 // - ip_address - IPv4 address of the user to dump 2830 // - vrf_id - VRF_ID 2831 // 2832 // Nat44UserSessionDump defines message 'nat44_user_session_dump'. 2833 // Deprecated: the message will be removed in the future versions 2834 type Nat44UserSessionDump struct { 2835 IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"` 2836 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 2837 } 2838 2839 func (m *Nat44UserSessionDump) Reset() { *m = Nat44UserSessionDump{} } 2840 func (*Nat44UserSessionDump) GetMessageName() string { return "nat44_user_session_dump" } 2841 func (*Nat44UserSessionDump) GetCrcString() string { return "e1899c98" } 2842 func (*Nat44UserSessionDump) GetMessageType() api.MessageType { 2843 return api.RequestMessage 2844 } 2845 2846 func (m *Nat44UserSessionDump) Size() (size int) { 2847 if m == nil { 2848 return 0 2849 } 2850 size += 1 * 4 // m.IPAddress 2851 size += 4 // m.VrfID 2852 return size 2853 } 2854 func (m *Nat44UserSessionDump) Marshal(b []byte) ([]byte, error) { 2855 if b == nil { 2856 b = make([]byte, m.Size()) 2857 } 2858 buf := codec.NewBuffer(b) 2859 buf.EncodeBytes(m.IPAddress[:], 4) 2860 buf.EncodeUint32(m.VrfID) 2861 return buf.Bytes(), nil 2862 } 2863 func (m *Nat44UserSessionDump) Unmarshal(b []byte) error { 2864 buf := codec.NewBuffer(b) 2865 copy(m.IPAddress[:], buf.DecodeBytes(4)) 2866 m.VrfID = buf.DecodeUint32() 2867 return nil 2868 } 2869 2870 // NAT44 user's sessions response 2871 // - outside_ip_address - outside IPv4 address 2872 // - outside_port - outside port 2873 // - inside_ip_address - inside IPv4 address 2874 // - inside_port - inside port 2875 // - protocol - protocol 2876 // - flags - flag NAT_IS_STATIC if session is static, 2877 // flag NAT_IS_TWICE_NAT if session is twice-nat, 2878 // flag NAT_IS_EXT_HOST_VALID if external host address 2879 // and port are valid 2880 // - last_heard - last heard timer 2881 // - total_bytes - count of bytes sent through session 2882 // - total_pkts - count of pakets sent through session 2883 // - ext_host_address - external host IPv4 address 2884 // - ext_host_port - external host port 2885 // - ext_host_nat_address - post-NAT external host IPv4 address (valid 2886 // only if twice-nat session) 2887 // - ext_host_nat_port - post-NAT external host port (valid only if 2888 // twice-nat session) 2889 // - is_timed_out - true, if session is timed out, and false, if session 2890 // is active 2891 // 2892 // Nat44UserSessionV2Details defines message 'nat44_user_session_v2_details'. 2893 // Deprecated: the message will be removed in the future versions 2894 type Nat44UserSessionV2Details struct { 2895 OutsideIPAddress ip_types.IP4Address `binapi:"ip4_address,name=outside_ip_address" json:"outside_ip_address,omitempty"` 2896 OutsidePort uint16 `binapi:"u16,name=outside_port" json:"outside_port,omitempty"` 2897 InsideIPAddress ip_types.IP4Address `binapi:"ip4_address,name=inside_ip_address" json:"inside_ip_address,omitempty"` 2898 InsidePort uint16 `binapi:"u16,name=inside_port" json:"inside_port,omitempty"` 2899 Protocol uint16 `binapi:"u16,name=protocol" json:"protocol,omitempty"` 2900 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 2901 LastHeard uint64 `binapi:"u64,name=last_heard" json:"last_heard,omitempty"` 2902 TotalBytes uint64 `binapi:"u64,name=total_bytes" json:"total_bytes,omitempty"` 2903 TotalPkts uint32 `binapi:"u32,name=total_pkts" json:"total_pkts,omitempty"` 2904 ExtHostAddress ip_types.IP4Address `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"` 2905 ExtHostPort uint16 `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"` 2906 ExtHostNatAddress ip_types.IP4Address `binapi:"ip4_address,name=ext_host_nat_address" json:"ext_host_nat_address,omitempty"` 2907 ExtHostNatPort uint16 `binapi:"u16,name=ext_host_nat_port" json:"ext_host_nat_port,omitempty"` 2908 IsTimedOut bool `binapi:"bool,name=is_timed_out" json:"is_timed_out,omitempty"` 2909 } 2910 2911 func (m *Nat44UserSessionV2Details) Reset() { *m = Nat44UserSessionV2Details{} } 2912 func (*Nat44UserSessionV2Details) GetMessageName() string { return "nat44_user_session_v2_details" } 2913 func (*Nat44UserSessionV2Details) GetCrcString() string { return "fd42b729" } 2914 func (*Nat44UserSessionV2Details) GetMessageType() api.MessageType { 2915 return api.ReplyMessage 2916 } 2917 2918 func (m *Nat44UserSessionV2Details) Size() (size int) { 2919 if m == nil { 2920 return 0 2921 } 2922 size += 1 * 4 // m.OutsideIPAddress 2923 size += 2 // m.OutsidePort 2924 size += 1 * 4 // m.InsideIPAddress 2925 size += 2 // m.InsidePort 2926 size += 2 // m.Protocol 2927 size += 1 // m.Flags 2928 size += 8 // m.LastHeard 2929 size += 8 // m.TotalBytes 2930 size += 4 // m.TotalPkts 2931 size += 1 * 4 // m.ExtHostAddress 2932 size += 2 // m.ExtHostPort 2933 size += 1 * 4 // m.ExtHostNatAddress 2934 size += 2 // m.ExtHostNatPort 2935 size += 1 // m.IsTimedOut 2936 return size 2937 } 2938 func (m *Nat44UserSessionV2Details) Marshal(b []byte) ([]byte, error) { 2939 if b == nil { 2940 b = make([]byte, m.Size()) 2941 } 2942 buf := codec.NewBuffer(b) 2943 buf.EncodeBytes(m.OutsideIPAddress[:], 4) 2944 buf.EncodeUint16(m.OutsidePort) 2945 buf.EncodeBytes(m.InsideIPAddress[:], 4) 2946 buf.EncodeUint16(m.InsidePort) 2947 buf.EncodeUint16(m.Protocol) 2948 buf.EncodeUint8(uint8(m.Flags)) 2949 buf.EncodeUint64(m.LastHeard) 2950 buf.EncodeUint64(m.TotalBytes) 2951 buf.EncodeUint32(m.TotalPkts) 2952 buf.EncodeBytes(m.ExtHostAddress[:], 4) 2953 buf.EncodeUint16(m.ExtHostPort) 2954 buf.EncodeBytes(m.ExtHostNatAddress[:], 4) 2955 buf.EncodeUint16(m.ExtHostNatPort) 2956 buf.EncodeBool(m.IsTimedOut) 2957 return buf.Bytes(), nil 2958 } 2959 func (m *Nat44UserSessionV2Details) Unmarshal(b []byte) error { 2960 buf := codec.NewBuffer(b) 2961 copy(m.OutsideIPAddress[:], buf.DecodeBytes(4)) 2962 m.OutsidePort = buf.DecodeUint16() 2963 copy(m.InsideIPAddress[:], buf.DecodeBytes(4)) 2964 m.InsidePort = buf.DecodeUint16() 2965 m.Protocol = buf.DecodeUint16() 2966 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 2967 m.LastHeard = buf.DecodeUint64() 2968 m.TotalBytes = buf.DecodeUint64() 2969 m.TotalPkts = buf.DecodeUint32() 2970 copy(m.ExtHostAddress[:], buf.DecodeBytes(4)) 2971 m.ExtHostPort = buf.DecodeUint16() 2972 copy(m.ExtHostNatAddress[:], buf.DecodeBytes(4)) 2973 m.ExtHostNatPort = buf.DecodeUint16() 2974 m.IsTimedOut = buf.DecodeBool() 2975 return nil 2976 } 2977 2978 // NAT44 user's sessions 2979 // - ip_address - IPv4 address of the user to dump 2980 // - vrf_id - VRF_ID 2981 // 2982 // Nat44UserSessionV2Dump defines message 'nat44_user_session_v2_dump'. 2983 // Deprecated: the message will be removed in the future versions 2984 type Nat44UserSessionV2Dump struct { 2985 IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"` 2986 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 2987 } 2988 2989 func (m *Nat44UserSessionV2Dump) Reset() { *m = Nat44UserSessionV2Dump{} } 2990 func (*Nat44UserSessionV2Dump) GetMessageName() string { return "nat44_user_session_v2_dump" } 2991 func (*Nat44UserSessionV2Dump) GetCrcString() string { return "e1899c98" } 2992 func (*Nat44UserSessionV2Dump) GetMessageType() api.MessageType { 2993 return api.RequestMessage 2994 } 2995 2996 func (m *Nat44UserSessionV2Dump) Size() (size int) { 2997 if m == nil { 2998 return 0 2999 } 3000 size += 1 * 4 // m.IPAddress 3001 size += 4 // m.VrfID 3002 return size 3003 } 3004 func (m *Nat44UserSessionV2Dump) Marshal(b []byte) ([]byte, error) { 3005 if b == nil { 3006 b = make([]byte, m.Size()) 3007 } 3008 buf := codec.NewBuffer(b) 3009 buf.EncodeBytes(m.IPAddress[:], 4) 3010 buf.EncodeUint32(m.VrfID) 3011 return buf.Bytes(), nil 3012 } 3013 func (m *Nat44UserSessionV2Dump) Unmarshal(b []byte) error { 3014 buf := codec.NewBuffer(b) 3015 copy(m.IPAddress[:], buf.DecodeBytes(4)) 3016 m.VrfID = buf.DecodeUint32() 3017 return nil 3018 } 3019 3020 // NAT44 user's sessions response 3021 // - outside_ip_address - outside IPv4 address 3022 // - outside_port - outside port 3023 // - inside_ip_address - inside IPv4 address 3024 // - inside_port - inside port 3025 // - protocol - protocol 3026 // - flags - flag NAT_IS_STATIC if session is static, 3027 // flag NAT_IS_TWICE_NAT if session is twice-nat, 3028 // flag NAT_IS_EXT_HOST_VALID if external host address 3029 // and port are valid 3030 // - last_heard - last heard timer since VPP start 3031 // - time_since_last_heard - difference between current vpp time and last_heard value 3032 // - total_bytes - count of bytes sent through session 3033 // - total_pkts - count of pakets sent through session 3034 // - ext_host_address - external host IPv4 address 3035 // - ext_host_port - external host port 3036 // - ext_host_nat_address - post-NAT external host IPv4 address (valid 3037 // only if twice-nat session) 3038 // - ext_host_nat_port - post-NAT external host port (valid only if 3039 // twice-nat session) 3040 // - is_timed_out - true, if session is timed out, and false, if session 3041 // is active 3042 // 3043 // Nat44UserSessionV3Details defines message 'nat44_user_session_v3_details'. 3044 type Nat44UserSessionV3Details struct { 3045 OutsideIPAddress ip_types.IP4Address `binapi:"ip4_address,name=outside_ip_address" json:"outside_ip_address,omitempty"` 3046 OutsidePort uint16 `binapi:"u16,name=outside_port" json:"outside_port,omitempty"` 3047 InsideIPAddress ip_types.IP4Address `binapi:"ip4_address,name=inside_ip_address" json:"inside_ip_address,omitempty"` 3048 InsidePort uint16 `binapi:"u16,name=inside_port" json:"inside_port,omitempty"` 3049 Protocol uint16 `binapi:"u16,name=protocol" json:"protocol,omitempty"` 3050 Flags nat_types.NatConfigFlags `binapi:"nat_config_flags,name=flags" json:"flags,omitempty"` 3051 LastHeard uint64 `binapi:"u64,name=last_heard" json:"last_heard,omitempty"` 3052 TimeSinceLastHeard uint64 `binapi:"u64,name=time_since_last_heard" json:"time_since_last_heard,omitempty"` 3053 TotalBytes uint64 `binapi:"u64,name=total_bytes" json:"total_bytes,omitempty"` 3054 TotalPkts uint32 `binapi:"u32,name=total_pkts" json:"total_pkts,omitempty"` 3055 ExtHostAddress ip_types.IP4Address `binapi:"ip4_address,name=ext_host_address" json:"ext_host_address,omitempty"` 3056 ExtHostPort uint16 `binapi:"u16,name=ext_host_port" json:"ext_host_port,omitempty"` 3057 ExtHostNatAddress ip_types.IP4Address `binapi:"ip4_address,name=ext_host_nat_address" json:"ext_host_nat_address,omitempty"` 3058 ExtHostNatPort uint16 `binapi:"u16,name=ext_host_nat_port" json:"ext_host_nat_port,omitempty"` 3059 IsTimedOut bool `binapi:"bool,name=is_timed_out" json:"is_timed_out,omitempty"` 3060 } 3061 3062 func (m *Nat44UserSessionV3Details) Reset() { *m = Nat44UserSessionV3Details{} } 3063 func (*Nat44UserSessionV3Details) GetMessageName() string { return "nat44_user_session_v3_details" } 3064 func (*Nat44UserSessionV3Details) GetCrcString() string { return "edae926e" } 3065 func (*Nat44UserSessionV3Details) GetMessageType() api.MessageType { 3066 return api.ReplyMessage 3067 } 3068 3069 func (m *Nat44UserSessionV3Details) Size() (size int) { 3070 if m == nil { 3071 return 0 3072 } 3073 size += 1 * 4 // m.OutsideIPAddress 3074 size += 2 // m.OutsidePort 3075 size += 1 * 4 // m.InsideIPAddress 3076 size += 2 // m.InsidePort 3077 size += 2 // m.Protocol 3078 size += 1 // m.Flags 3079 size += 8 // m.LastHeard 3080 size += 8 // m.TimeSinceLastHeard 3081 size += 8 // m.TotalBytes 3082 size += 4 // m.TotalPkts 3083 size += 1 * 4 // m.ExtHostAddress 3084 size += 2 // m.ExtHostPort 3085 size += 1 * 4 // m.ExtHostNatAddress 3086 size += 2 // m.ExtHostNatPort 3087 size += 1 // m.IsTimedOut 3088 return size 3089 } 3090 func (m *Nat44UserSessionV3Details) Marshal(b []byte) ([]byte, error) { 3091 if b == nil { 3092 b = make([]byte, m.Size()) 3093 } 3094 buf := codec.NewBuffer(b) 3095 buf.EncodeBytes(m.OutsideIPAddress[:], 4) 3096 buf.EncodeUint16(m.OutsidePort) 3097 buf.EncodeBytes(m.InsideIPAddress[:], 4) 3098 buf.EncodeUint16(m.InsidePort) 3099 buf.EncodeUint16(m.Protocol) 3100 buf.EncodeUint8(uint8(m.Flags)) 3101 buf.EncodeUint64(m.LastHeard) 3102 buf.EncodeUint64(m.TimeSinceLastHeard) 3103 buf.EncodeUint64(m.TotalBytes) 3104 buf.EncodeUint32(m.TotalPkts) 3105 buf.EncodeBytes(m.ExtHostAddress[:], 4) 3106 buf.EncodeUint16(m.ExtHostPort) 3107 buf.EncodeBytes(m.ExtHostNatAddress[:], 4) 3108 buf.EncodeUint16(m.ExtHostNatPort) 3109 buf.EncodeBool(m.IsTimedOut) 3110 return buf.Bytes(), nil 3111 } 3112 func (m *Nat44UserSessionV3Details) Unmarshal(b []byte) error { 3113 buf := codec.NewBuffer(b) 3114 copy(m.OutsideIPAddress[:], buf.DecodeBytes(4)) 3115 m.OutsidePort = buf.DecodeUint16() 3116 copy(m.InsideIPAddress[:], buf.DecodeBytes(4)) 3117 m.InsidePort = buf.DecodeUint16() 3118 m.Protocol = buf.DecodeUint16() 3119 m.Flags = nat_types.NatConfigFlags(buf.DecodeUint8()) 3120 m.LastHeard = buf.DecodeUint64() 3121 m.TimeSinceLastHeard = buf.DecodeUint64() 3122 m.TotalBytes = buf.DecodeUint64() 3123 m.TotalPkts = buf.DecodeUint32() 3124 copy(m.ExtHostAddress[:], buf.DecodeBytes(4)) 3125 m.ExtHostPort = buf.DecodeUint16() 3126 copy(m.ExtHostNatAddress[:], buf.DecodeBytes(4)) 3127 m.ExtHostNatPort = buf.DecodeUint16() 3128 m.IsTimedOut = buf.DecodeBool() 3129 return nil 3130 } 3131 3132 // NAT44 user's sessions 3133 // - ip_address - IPv4 address of the user to dump 3134 // - vrf_id - VRF_ID 3135 // 3136 // Nat44UserSessionV3Dump defines message 'nat44_user_session_v3_dump'. 3137 type Nat44UserSessionV3Dump struct { 3138 IPAddress ip_types.IP4Address `binapi:"ip4_address,name=ip_address" json:"ip_address,omitempty"` 3139 VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` 3140 } 3141 3142 func (m *Nat44UserSessionV3Dump) Reset() { *m = Nat44UserSessionV3Dump{} } 3143 func (*Nat44UserSessionV3Dump) GetMessageName() string { return "nat44_user_session_v3_dump" } 3144 func (*Nat44UserSessionV3Dump) GetCrcString() string { return "e1899c98" } 3145 func (*Nat44UserSessionV3Dump) GetMessageType() api.MessageType { 3146 return api.RequestMessage 3147 } 3148 3149 func (m *Nat44UserSessionV3Dump) Size() (size int) { 3150 if m == nil { 3151 return 0 3152 } 3153 size += 1 * 4 // m.IPAddress 3154 size += 4 // m.VrfID 3155 return size 3156 } 3157 func (m *Nat44UserSessionV3Dump) Marshal(b []byte) ([]byte, error) { 3158 if b == nil { 3159 b = make([]byte, m.Size()) 3160 } 3161 buf := codec.NewBuffer(b) 3162 buf.EncodeBytes(m.IPAddress[:], 4) 3163 buf.EncodeUint32(m.VrfID) 3164 return buf.Bytes(), nil 3165 } 3166 func (m *Nat44UserSessionV3Dump) Unmarshal(b []byte) error { 3167 buf := codec.NewBuffer(b) 3168 copy(m.IPAddress[:], buf.DecodeBytes(4)) 3169 m.VrfID = buf.DecodeUint32() 3170 return nil 3171 } 3172 3173 // Get TCP MSS rewriting configuration 3174 // NatGetMssClamping defines message 'nat_get_mss_clamping'. 3175 type NatGetMssClamping struct{} 3176 3177 func (m *NatGetMssClamping) Reset() { *m = NatGetMssClamping{} } 3178 func (*NatGetMssClamping) GetMessageName() string { return "nat_get_mss_clamping" } 3179 func (*NatGetMssClamping) GetCrcString() string { return "51077d14" } 3180 func (*NatGetMssClamping) GetMessageType() api.MessageType { 3181 return api.RequestMessage 3182 } 3183 3184 func (m *NatGetMssClamping) Size() (size int) { 3185 if m == nil { 3186 return 0 3187 } 3188 return size 3189 } 3190 func (m *NatGetMssClamping) Marshal(b []byte) ([]byte, error) { 3191 if b == nil { 3192 b = make([]byte, m.Size()) 3193 } 3194 buf := codec.NewBuffer(b) 3195 return buf.Bytes(), nil 3196 } 3197 func (m *NatGetMssClamping) Unmarshal(b []byte) error { 3198 return nil 3199 } 3200 3201 // Get TCP MSS rewriting configuration reply 3202 // - retval - return code 3203 // - mss_value - MSS value to be used for MSS rewriting 3204 // - enable - if true enable MSS rewriting feature else disable 3205 // 3206 // NatGetMssClampingReply defines message 'nat_get_mss_clamping_reply'. 3207 type NatGetMssClampingReply struct { 3208 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 3209 MssValue uint16 `binapi:"u16,name=mss_value" json:"mss_value,omitempty"` 3210 Enable bool `binapi:"bool,name=enable" json:"enable,omitempty"` 3211 } 3212 3213 func (m *NatGetMssClampingReply) Reset() { *m = NatGetMssClampingReply{} } 3214 func (*NatGetMssClampingReply) GetMessageName() string { return "nat_get_mss_clamping_reply" } 3215 func (*NatGetMssClampingReply) GetCrcString() string { return "1c0b2a78" } 3216 func (*NatGetMssClampingReply) GetMessageType() api.MessageType { 3217 return api.ReplyMessage 3218 } 3219 3220 func (m *NatGetMssClampingReply) Size() (size int) { 3221 if m == nil { 3222 return 0 3223 } 3224 size += 4 // m.Retval 3225 size += 2 // m.MssValue 3226 size += 1 // m.Enable 3227 return size 3228 } 3229 func (m *NatGetMssClampingReply) Marshal(b []byte) ([]byte, error) { 3230 if b == nil { 3231 b = make([]byte, m.Size()) 3232 } 3233 buf := codec.NewBuffer(b) 3234 buf.EncodeInt32(m.Retval) 3235 buf.EncodeUint16(m.MssValue) 3236 buf.EncodeBool(m.Enable) 3237 return buf.Bytes(), nil 3238 } 3239 func (m *NatGetMssClampingReply) Unmarshal(b []byte) error { 3240 buf := codec.NewBuffer(b) 3241 m.Retval = buf.DecodeInt32() 3242 m.MssValue = buf.DecodeUint16() 3243 m.Enable = buf.DecodeBool() 3244 return nil 3245 } 3246 3247 // Enable/disable NAT IPFIX logging 3248 // - domain_id - observation domain ID 3249 // - src_port - source port number 3250 // - enable - true if enable, false if disable 3251 // 3252 // NatIpfixEnableDisable defines message 'nat_ipfix_enable_disable'. 3253 // Deprecated: the message will be removed in the future versions 3254 type NatIpfixEnableDisable struct { 3255 DomainID uint32 `binapi:"u32,name=domain_id" json:"domain_id,omitempty"` 3256 SrcPort uint16 `binapi:"u16,name=src_port" json:"src_port,omitempty"` 3257 Enable bool `binapi:"bool,name=enable" json:"enable,omitempty"` 3258 } 3259 3260 func (m *NatIpfixEnableDisable) Reset() { *m = NatIpfixEnableDisable{} } 3261 func (*NatIpfixEnableDisable) GetMessageName() string { return "nat_ipfix_enable_disable" } 3262 func (*NatIpfixEnableDisable) GetCrcString() string { return "9af4a2d2" } 3263 func (*NatIpfixEnableDisable) GetMessageType() api.MessageType { 3264 return api.RequestMessage 3265 } 3266 3267 func (m *NatIpfixEnableDisable) Size() (size int) { 3268 if m == nil { 3269 return 0 3270 } 3271 size += 4 // m.DomainID 3272 size += 2 // m.SrcPort 3273 size += 1 // m.Enable 3274 return size 3275 } 3276 func (m *NatIpfixEnableDisable) Marshal(b []byte) ([]byte, error) { 3277 if b == nil { 3278 b = make([]byte, m.Size()) 3279 } 3280 buf := codec.NewBuffer(b) 3281 buf.EncodeUint32(m.DomainID) 3282 buf.EncodeUint16(m.SrcPort) 3283 buf.EncodeBool(m.Enable) 3284 return buf.Bytes(), nil 3285 } 3286 func (m *NatIpfixEnableDisable) Unmarshal(b []byte) error { 3287 buf := codec.NewBuffer(b) 3288 m.DomainID = buf.DecodeUint32() 3289 m.SrcPort = buf.DecodeUint16() 3290 m.Enable = buf.DecodeBool() 3291 return nil 3292 } 3293 3294 // NatIpfixEnableDisableReply defines message 'nat_ipfix_enable_disable_reply'. 3295 // Deprecated: the message will be removed in the future versions 3296 type NatIpfixEnableDisableReply struct { 3297 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 3298 } 3299 3300 func (m *NatIpfixEnableDisableReply) Reset() { *m = NatIpfixEnableDisableReply{} } 3301 func (*NatIpfixEnableDisableReply) GetMessageName() string { return "nat_ipfix_enable_disable_reply" } 3302 func (*NatIpfixEnableDisableReply) GetCrcString() string { return "e8d4e804" } 3303 func (*NatIpfixEnableDisableReply) GetMessageType() api.MessageType { 3304 return api.ReplyMessage 3305 } 3306 3307 func (m *NatIpfixEnableDisableReply) Size() (size int) { 3308 if m == nil { 3309 return 0 3310 } 3311 size += 4 // m.Retval 3312 return size 3313 } 3314 func (m *NatIpfixEnableDisableReply) Marshal(b []byte) ([]byte, error) { 3315 if b == nil { 3316 b = make([]byte, m.Size()) 3317 } 3318 buf := codec.NewBuffer(b) 3319 buf.EncodeInt32(m.Retval) 3320 return buf.Bytes(), nil 3321 } 3322 func (m *NatIpfixEnableDisableReply) Unmarshal(b []byte) error { 3323 buf := codec.NewBuffer(b) 3324 m.Retval = buf.DecodeInt32() 3325 return nil 3326 } 3327 3328 // Set TCP MSS rewriting configuration 3329 // - mss_value - MSS value to be used for MSS rewriting 3330 // - enable - if true enable MSS rewriting feature else disable 3331 // 3332 // NatSetMssClamping defines message 'nat_set_mss_clamping'. 3333 type NatSetMssClamping struct { 3334 MssValue uint16 `binapi:"u16,name=mss_value" json:"mss_value,omitempty"` 3335 Enable bool `binapi:"bool,name=enable" json:"enable,omitempty"` 3336 } 3337 3338 func (m *NatSetMssClamping) Reset() { *m = NatSetMssClamping{} } 3339 func (*NatSetMssClamping) GetMessageName() string { return "nat_set_mss_clamping" } 3340 func (*NatSetMssClamping) GetCrcString() string { return "25e90abb" } 3341 func (*NatSetMssClamping) GetMessageType() api.MessageType { 3342 return api.RequestMessage 3343 } 3344 3345 func (m *NatSetMssClamping) Size() (size int) { 3346 if m == nil { 3347 return 0 3348 } 3349 size += 2 // m.MssValue 3350 size += 1 // m.Enable 3351 return size 3352 } 3353 func (m *NatSetMssClamping) Marshal(b []byte) ([]byte, error) { 3354 if b == nil { 3355 b = make([]byte, m.Size()) 3356 } 3357 buf := codec.NewBuffer(b) 3358 buf.EncodeUint16(m.MssValue) 3359 buf.EncodeBool(m.Enable) 3360 return buf.Bytes(), nil 3361 } 3362 func (m *NatSetMssClamping) Unmarshal(b []byte) error { 3363 buf := codec.NewBuffer(b) 3364 m.MssValue = buf.DecodeUint16() 3365 m.Enable = buf.DecodeBool() 3366 return nil 3367 } 3368 3369 // NatSetMssClampingReply defines message 'nat_set_mss_clamping_reply'. 3370 type NatSetMssClampingReply struct { 3371 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 3372 } 3373 3374 func (m *NatSetMssClampingReply) Reset() { *m = NatSetMssClampingReply{} } 3375 func (*NatSetMssClampingReply) GetMessageName() string { return "nat_set_mss_clamping_reply" } 3376 func (*NatSetMssClampingReply) GetCrcString() string { return "e8d4e804" } 3377 func (*NatSetMssClampingReply) GetMessageType() api.MessageType { 3378 return api.ReplyMessage 3379 } 3380 3381 func (m *NatSetMssClampingReply) Size() (size int) { 3382 if m == nil { 3383 return 0 3384 } 3385 size += 4 // m.Retval 3386 return size 3387 } 3388 func (m *NatSetMssClampingReply) Marshal(b []byte) ([]byte, error) { 3389 if b == nil { 3390 b = make([]byte, m.Size()) 3391 } 3392 buf := codec.NewBuffer(b) 3393 buf.EncodeInt32(m.Retval) 3394 return buf.Bytes(), nil 3395 } 3396 func (m *NatSetMssClampingReply) Unmarshal(b []byte) error { 3397 buf := codec.NewBuffer(b) 3398 m.Retval = buf.DecodeInt32() 3399 return nil 3400 } 3401 3402 // Set values of timeouts for NAT sessions (seconds) 3403 // - udp - UDP timeout (default 300sec) 3404 // - tcp_established - TCP established timeout (default 7440sec) 3405 // - tcp_transitory - TCP transitory timeout (default 240sec) 3406 // - icmp - ICMP timeout (default 60sec) 3407 // 3408 // NatSetTimeouts defines message 'nat_set_timeouts'. 3409 // Deprecated: the message will be removed in the future versions 3410 type NatSetTimeouts struct { 3411 UDP uint32 `binapi:"u32,name=udp" json:"udp,omitempty"` 3412 TCPEstablished uint32 `binapi:"u32,name=tcp_established" json:"tcp_established,omitempty"` 3413 TCPTransitory uint32 `binapi:"u32,name=tcp_transitory" json:"tcp_transitory,omitempty"` 3414 ICMP uint32 `binapi:"u32,name=icmp" json:"icmp,omitempty"` 3415 } 3416 3417 func (m *NatSetTimeouts) Reset() { *m = NatSetTimeouts{} } 3418 func (*NatSetTimeouts) GetMessageName() string { return "nat_set_timeouts" } 3419 func (*NatSetTimeouts) GetCrcString() string { return "d4746b16" } 3420 func (*NatSetTimeouts) GetMessageType() api.MessageType { 3421 return api.RequestMessage 3422 } 3423 3424 func (m *NatSetTimeouts) Size() (size int) { 3425 if m == nil { 3426 return 0 3427 } 3428 size += 4 // m.UDP 3429 size += 4 // m.TCPEstablished 3430 size += 4 // m.TCPTransitory 3431 size += 4 // m.ICMP 3432 return size 3433 } 3434 func (m *NatSetTimeouts) Marshal(b []byte) ([]byte, error) { 3435 if b == nil { 3436 b = make([]byte, m.Size()) 3437 } 3438 buf := codec.NewBuffer(b) 3439 buf.EncodeUint32(m.UDP) 3440 buf.EncodeUint32(m.TCPEstablished) 3441 buf.EncodeUint32(m.TCPTransitory) 3442 buf.EncodeUint32(m.ICMP) 3443 return buf.Bytes(), nil 3444 } 3445 func (m *NatSetTimeouts) Unmarshal(b []byte) error { 3446 buf := codec.NewBuffer(b) 3447 m.UDP = buf.DecodeUint32() 3448 m.TCPEstablished = buf.DecodeUint32() 3449 m.TCPTransitory = buf.DecodeUint32() 3450 m.ICMP = buf.DecodeUint32() 3451 return nil 3452 } 3453 3454 // NatSetTimeoutsReply defines message 'nat_set_timeouts_reply'. 3455 // Deprecated: the message will be removed in the future versions 3456 type NatSetTimeoutsReply struct { 3457 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 3458 } 3459 3460 func (m *NatSetTimeoutsReply) Reset() { *m = NatSetTimeoutsReply{} } 3461 func (*NatSetTimeoutsReply) GetMessageName() string { return "nat_set_timeouts_reply" } 3462 func (*NatSetTimeoutsReply) GetCrcString() string { return "e8d4e804" } 3463 func (*NatSetTimeoutsReply) GetMessageType() api.MessageType { 3464 return api.ReplyMessage 3465 } 3466 3467 func (m *NatSetTimeoutsReply) Size() (size int) { 3468 if m == nil { 3469 return 0 3470 } 3471 size += 4 // m.Retval 3472 return size 3473 } 3474 func (m *NatSetTimeoutsReply) Marshal(b []byte) ([]byte, error) { 3475 if b == nil { 3476 b = make([]byte, m.Size()) 3477 } 3478 buf := codec.NewBuffer(b) 3479 buf.EncodeInt32(m.Retval) 3480 return buf.Bytes(), nil 3481 } 3482 func (m *NatSetTimeoutsReply) Unmarshal(b []byte) error { 3483 buf := codec.NewBuffer(b) 3484 m.Retval = buf.DecodeInt32() 3485 return nil 3486 } 3487 3488 // Set NAT workers 3489 // - worker_mask - NAT workers mask 3490 // 3491 // NatSetWorkers defines message 'nat_set_workers'. 3492 type NatSetWorkers struct { 3493 WorkerMask uint64 `binapi:"u64,name=worker_mask" json:"worker_mask,omitempty"` 3494 } 3495 3496 func (m *NatSetWorkers) Reset() { *m = NatSetWorkers{} } 3497 func (*NatSetWorkers) GetMessageName() string { return "nat_set_workers" } 3498 func (*NatSetWorkers) GetCrcString() string { return "da926638" } 3499 func (*NatSetWorkers) GetMessageType() api.MessageType { 3500 return api.RequestMessage 3501 } 3502 3503 func (m *NatSetWorkers) Size() (size int) { 3504 if m == nil { 3505 return 0 3506 } 3507 size += 8 // m.WorkerMask 3508 return size 3509 } 3510 func (m *NatSetWorkers) Marshal(b []byte) ([]byte, error) { 3511 if b == nil { 3512 b = make([]byte, m.Size()) 3513 } 3514 buf := codec.NewBuffer(b) 3515 buf.EncodeUint64(m.WorkerMask) 3516 return buf.Bytes(), nil 3517 } 3518 func (m *NatSetWorkers) Unmarshal(b []byte) error { 3519 buf := codec.NewBuffer(b) 3520 m.WorkerMask = buf.DecodeUint64() 3521 return nil 3522 } 3523 3524 // NatSetWorkersReply defines message 'nat_set_workers_reply'. 3525 type NatSetWorkersReply struct { 3526 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 3527 } 3528 3529 func (m *NatSetWorkersReply) Reset() { *m = NatSetWorkersReply{} } 3530 func (*NatSetWorkersReply) GetMessageName() string { return "nat_set_workers_reply" } 3531 func (*NatSetWorkersReply) GetCrcString() string { return "e8d4e804" } 3532 func (*NatSetWorkersReply) GetMessageType() api.MessageType { 3533 return api.ReplyMessage 3534 } 3535 3536 func (m *NatSetWorkersReply) Size() (size int) { 3537 if m == nil { 3538 return 0 3539 } 3540 size += 4 // m.Retval 3541 return size 3542 } 3543 func (m *NatSetWorkersReply) Marshal(b []byte) ([]byte, error) { 3544 if b == nil { 3545 b = make([]byte, m.Size()) 3546 } 3547 buf := codec.NewBuffer(b) 3548 buf.EncodeInt32(m.Retval) 3549 return buf.Bytes(), nil 3550 } 3551 func (m *NatSetWorkersReply) Unmarshal(b []byte) error { 3552 buf := codec.NewBuffer(b) 3553 m.Retval = buf.DecodeInt32() 3554 return nil 3555 } 3556 3557 // NAT workers details response 3558 // - worker_index - worker index 3559 // - lcore_id - lcore ID 3560 // - name - worker name 3561 // 3562 // NatWorkerDetails defines message 'nat_worker_details'. 3563 type NatWorkerDetails struct { 3564 WorkerIndex uint32 `binapi:"u32,name=worker_index" json:"worker_index,omitempty"` 3565 LcoreID uint32 `binapi:"u32,name=lcore_id" json:"lcore_id,omitempty"` 3566 Name string `binapi:"string[64],name=name" json:"name,omitempty"` 3567 } 3568 3569 func (m *NatWorkerDetails) Reset() { *m = NatWorkerDetails{} } 3570 func (*NatWorkerDetails) GetMessageName() string { return "nat_worker_details" } 3571 func (*NatWorkerDetails) GetCrcString() string { return "84bf06fc" } 3572 func (*NatWorkerDetails) GetMessageType() api.MessageType { 3573 return api.ReplyMessage 3574 } 3575 3576 func (m *NatWorkerDetails) Size() (size int) { 3577 if m == nil { 3578 return 0 3579 } 3580 size += 4 // m.WorkerIndex 3581 size += 4 // m.LcoreID 3582 size += 64 // m.Name 3583 return size 3584 } 3585 func (m *NatWorkerDetails) Marshal(b []byte) ([]byte, error) { 3586 if b == nil { 3587 b = make([]byte, m.Size()) 3588 } 3589 buf := codec.NewBuffer(b) 3590 buf.EncodeUint32(m.WorkerIndex) 3591 buf.EncodeUint32(m.LcoreID) 3592 buf.EncodeString(m.Name, 64) 3593 return buf.Bytes(), nil 3594 } 3595 func (m *NatWorkerDetails) Unmarshal(b []byte) error { 3596 buf := codec.NewBuffer(b) 3597 m.WorkerIndex = buf.DecodeUint32() 3598 m.LcoreID = buf.DecodeUint32() 3599 m.Name = buf.DecodeString(64) 3600 return nil 3601 } 3602 3603 // Dump NAT workers 3604 // NatWorkerDump defines message 'nat_worker_dump'. 3605 type NatWorkerDump struct{} 3606 3607 func (m *NatWorkerDump) Reset() { *m = NatWorkerDump{} } 3608 func (*NatWorkerDump) GetMessageName() string { return "nat_worker_dump" } 3609 func (*NatWorkerDump) GetCrcString() string { return "51077d14" } 3610 func (*NatWorkerDump) GetMessageType() api.MessageType { 3611 return api.RequestMessage 3612 } 3613 3614 func (m *NatWorkerDump) Size() (size int) { 3615 if m == nil { 3616 return 0 3617 } 3618 return size 3619 } 3620 func (m *NatWorkerDump) Marshal(b []byte) ([]byte, error) { 3621 if b == nil { 3622 b = make([]byte, m.Size()) 3623 } 3624 buf := codec.NewBuffer(b) 3625 return buf.Bytes(), nil 3626 } 3627 func (m *NatWorkerDump) Unmarshal(b []byte) error { 3628 return nil 3629 } 3630 3631 func init() { file_nat44_ed_binapi_init() } 3632 func file_nat44_ed_binapi_init() { 3633 api.RegisterMessage((*Nat44AddDelAddressRange)(nil), "nat44_add_del_address_range_6f2b8055") 3634 api.RegisterMessage((*Nat44AddDelAddressRangeReply)(nil), "nat44_add_del_address_range_reply_e8d4e804") 3635 api.RegisterMessage((*Nat44AddDelIdentityMapping)(nil), "nat44_add_del_identity_mapping_02faaa22") 3636 api.RegisterMessage((*Nat44AddDelIdentityMappingReply)(nil), "nat44_add_del_identity_mapping_reply_e8d4e804") 3637 api.RegisterMessage((*Nat44AddDelInterfaceAddr)(nil), "nat44_add_del_interface_addr_4aed50c0") 3638 api.RegisterMessage((*Nat44AddDelInterfaceAddrReply)(nil), "nat44_add_del_interface_addr_reply_e8d4e804") 3639 api.RegisterMessage((*Nat44AddDelLbStaticMapping)(nil), "nat44_add_del_lb_static_mapping_4f68ee9d") 3640 api.RegisterMessage((*Nat44AddDelLbStaticMappingReply)(nil), "nat44_add_del_lb_static_mapping_reply_e8d4e804") 3641 api.RegisterMessage((*Nat44AddDelStaticMapping)(nil), "nat44_add_del_static_mapping_5ae5f03e") 3642 api.RegisterMessage((*Nat44AddDelStaticMappingReply)(nil), "nat44_add_del_static_mapping_reply_e8d4e804") 3643 api.RegisterMessage((*Nat44AddDelStaticMappingV2)(nil), "nat44_add_del_static_mapping_v2_5e205f1a") 3644 api.RegisterMessage((*Nat44AddDelStaticMappingV2Reply)(nil), "nat44_add_del_static_mapping_v2_reply_e8d4e804") 3645 api.RegisterMessage((*Nat44AddressDetails)(nil), "nat44_address_details_0d1beac1") 3646 api.RegisterMessage((*Nat44AddressDump)(nil), "nat44_address_dump_51077d14") 3647 api.RegisterMessage((*Nat44DelSession)(nil), "nat44_del_session_15a5bf8c") 3648 api.RegisterMessage((*Nat44DelSessionReply)(nil), "nat44_del_session_reply_e8d4e804") 3649 api.RegisterMessage((*Nat44EdAddDelOutputInterface)(nil), "nat44_ed_add_del_output_interface_47d6e753") 3650 api.RegisterMessage((*Nat44EdAddDelOutputInterfaceReply)(nil), "nat44_ed_add_del_output_interface_reply_e8d4e804") 3651 api.RegisterMessage((*Nat44EdAddDelVrfRoute)(nil), "nat44_ed_add_del_vrf_route_59187407") 3652 api.RegisterMessage((*Nat44EdAddDelVrfRouteReply)(nil), "nat44_ed_add_del_vrf_route_reply_e8d4e804") 3653 api.RegisterMessage((*Nat44EdAddDelVrfTable)(nil), "nat44_ed_add_del_vrf_table_08330904") 3654 api.RegisterMessage((*Nat44EdAddDelVrfTableReply)(nil), "nat44_ed_add_del_vrf_table_reply_e8d4e804") 3655 api.RegisterMessage((*Nat44EdOutputInterfaceDetails)(nil), "nat44_ed_output_interface_details_0b45011c") 3656 api.RegisterMessage((*Nat44EdOutputInterfaceGet)(nil), "nat44_ed_output_interface_get_f75ba505") 3657 api.RegisterMessage((*Nat44EdOutputInterfaceGetReply)(nil), "nat44_ed_output_interface_get_reply_53b48f5d") 3658 api.RegisterMessage((*Nat44EdPluginEnableDisable)(nil), "nat44_ed_plugin_enable_disable_be17f8dd") 3659 api.RegisterMessage((*Nat44EdPluginEnableDisableReply)(nil), "nat44_ed_plugin_enable_disable_reply_e8d4e804") 3660 api.RegisterMessage((*Nat44EdSetFqOptions)(nil), "nat44_ed_set_fq_options_2399bd71") 3661 api.RegisterMessage((*Nat44EdSetFqOptionsReply)(nil), "nat44_ed_set_fq_options_reply_e8d4e804") 3662 api.RegisterMessage((*Nat44EdShowFqOptions)(nil), "nat44_ed_show_fq_options_51077d14") 3663 api.RegisterMessage((*Nat44EdShowFqOptionsReply)(nil), "nat44_ed_show_fq_options_reply_7213b545") 3664 api.RegisterMessage((*Nat44EdVrfTablesDetails)(nil), "nat44_ed_vrf_tables_details_7b264e4f") 3665 api.RegisterMessage((*Nat44EdVrfTablesDump)(nil), "nat44_ed_vrf_tables_dump_51077d14") 3666 api.RegisterMessage((*Nat44EdVrfTablesV2Details)(nil), "nat44_ed_vrf_tables_v2_details_7b264e4f") 3667 api.RegisterMessage((*Nat44EdVrfTablesV2Dump)(nil), "nat44_ed_vrf_tables_v2_dump_51077d14") 3668 api.RegisterMessage((*Nat44ForwardingEnableDisable)(nil), "nat44_forwarding_enable_disable_b3e225d2") 3669 api.RegisterMessage((*Nat44ForwardingEnableDisableReply)(nil), "nat44_forwarding_enable_disable_reply_e8d4e804") 3670 api.RegisterMessage((*Nat44IdentityMappingDetails)(nil), "nat44_identity_mapping_details_2a52a030") 3671 api.RegisterMessage((*Nat44IdentityMappingDump)(nil), "nat44_identity_mapping_dump_51077d14") 3672 api.RegisterMessage((*Nat44InterfaceAddDelFeature)(nil), "nat44_interface_add_del_feature_f3699b83") 3673 api.RegisterMessage((*Nat44InterfaceAddDelFeatureReply)(nil), "nat44_interface_add_del_feature_reply_e8d4e804") 3674 api.RegisterMessage((*Nat44InterfaceAddrDetails)(nil), "nat44_interface_addr_details_e4aca9ca") 3675 api.RegisterMessage((*Nat44InterfaceAddrDump)(nil), "nat44_interface_addr_dump_51077d14") 3676 api.RegisterMessage((*Nat44InterfaceDetails)(nil), "nat44_interface_details_5d286289") 3677 api.RegisterMessage((*Nat44InterfaceDump)(nil), "nat44_interface_dump_51077d14") 3678 api.RegisterMessage((*Nat44LbStaticMappingAddDelLocal)(nil), "nat44_lb_static_mapping_add_del_local_7ca47547") 3679 api.RegisterMessage((*Nat44LbStaticMappingAddDelLocalReply)(nil), "nat44_lb_static_mapping_add_del_local_reply_e8d4e804") 3680 api.RegisterMessage((*Nat44LbStaticMappingDetails)(nil), "nat44_lb_static_mapping_details_ed5ce876") 3681 api.RegisterMessage((*Nat44LbStaticMappingDump)(nil), "nat44_lb_static_mapping_dump_51077d14") 3682 api.RegisterMessage((*Nat44SetSessionLimit)(nil), "nat44_set_session_limit_8899bbb1") 3683 api.RegisterMessage((*Nat44SetSessionLimitReply)(nil), "nat44_set_session_limit_reply_e8d4e804") 3684 api.RegisterMessage((*Nat44ShowRunningConfig)(nil), "nat44_show_running_config_51077d14") 3685 api.RegisterMessage((*Nat44ShowRunningConfigReply)(nil), "nat44_show_running_config_reply_93d8e267") 3686 api.RegisterMessage((*Nat44StaticMappingDetails)(nil), "nat44_static_mapping_details_06cb40b2") 3687 api.RegisterMessage((*Nat44StaticMappingDump)(nil), "nat44_static_mapping_dump_51077d14") 3688 api.RegisterMessage((*Nat44UserDetails)(nil), "nat44_user_details_355896c2") 3689 api.RegisterMessage((*Nat44UserDump)(nil), "nat44_user_dump_51077d14") 3690 api.RegisterMessage((*Nat44UserSessionDetails)(nil), "nat44_user_session_details_2cf6e16d") 3691 api.RegisterMessage((*Nat44UserSessionDump)(nil), "nat44_user_session_dump_e1899c98") 3692 api.RegisterMessage((*Nat44UserSessionV2Details)(nil), "nat44_user_session_v2_details_fd42b729") 3693 api.RegisterMessage((*Nat44UserSessionV2Dump)(nil), "nat44_user_session_v2_dump_e1899c98") 3694 api.RegisterMessage((*Nat44UserSessionV3Details)(nil), "nat44_user_session_v3_details_edae926e") 3695 api.RegisterMessage((*Nat44UserSessionV3Dump)(nil), "nat44_user_session_v3_dump_e1899c98") 3696 api.RegisterMessage((*NatGetMssClamping)(nil), "nat_get_mss_clamping_51077d14") 3697 api.RegisterMessage((*NatGetMssClampingReply)(nil), "nat_get_mss_clamping_reply_1c0b2a78") 3698 api.RegisterMessage((*NatIpfixEnableDisable)(nil), "nat_ipfix_enable_disable_9af4a2d2") 3699 api.RegisterMessage((*NatIpfixEnableDisableReply)(nil), "nat_ipfix_enable_disable_reply_e8d4e804") 3700 api.RegisterMessage((*NatSetMssClamping)(nil), "nat_set_mss_clamping_25e90abb") 3701 api.RegisterMessage((*NatSetMssClampingReply)(nil), "nat_set_mss_clamping_reply_e8d4e804") 3702 api.RegisterMessage((*NatSetTimeouts)(nil), "nat_set_timeouts_d4746b16") 3703 api.RegisterMessage((*NatSetTimeoutsReply)(nil), "nat_set_timeouts_reply_e8d4e804") 3704 api.RegisterMessage((*NatSetWorkers)(nil), "nat_set_workers_da926638") 3705 api.RegisterMessage((*NatSetWorkersReply)(nil), "nat_set_workers_reply_e8d4e804") 3706 api.RegisterMessage((*NatWorkerDetails)(nil), "nat_worker_details_84bf06fc") 3707 api.RegisterMessage((*NatWorkerDump)(nil), "nat_worker_dump_51077d14") 3708 } 3709 3710 // Messages returns list of all messages in this module. 3711 func AllMessages() []api.Message { 3712 return []api.Message{ 3713 (*Nat44AddDelAddressRange)(nil), 3714 (*Nat44AddDelAddressRangeReply)(nil), 3715 (*Nat44AddDelIdentityMapping)(nil), 3716 (*Nat44AddDelIdentityMappingReply)(nil), 3717 (*Nat44AddDelInterfaceAddr)(nil), 3718 (*Nat44AddDelInterfaceAddrReply)(nil), 3719 (*Nat44AddDelLbStaticMapping)(nil), 3720 (*Nat44AddDelLbStaticMappingReply)(nil), 3721 (*Nat44AddDelStaticMapping)(nil), 3722 (*Nat44AddDelStaticMappingReply)(nil), 3723 (*Nat44AddDelStaticMappingV2)(nil), 3724 (*Nat44AddDelStaticMappingV2Reply)(nil), 3725 (*Nat44AddressDetails)(nil), 3726 (*Nat44AddressDump)(nil), 3727 (*Nat44DelSession)(nil), 3728 (*Nat44DelSessionReply)(nil), 3729 (*Nat44EdAddDelOutputInterface)(nil), 3730 (*Nat44EdAddDelOutputInterfaceReply)(nil), 3731 (*Nat44EdAddDelVrfRoute)(nil), 3732 (*Nat44EdAddDelVrfRouteReply)(nil), 3733 (*Nat44EdAddDelVrfTable)(nil), 3734 (*Nat44EdAddDelVrfTableReply)(nil), 3735 (*Nat44EdOutputInterfaceDetails)(nil), 3736 (*Nat44EdOutputInterfaceGet)(nil), 3737 (*Nat44EdOutputInterfaceGetReply)(nil), 3738 (*Nat44EdPluginEnableDisable)(nil), 3739 (*Nat44EdPluginEnableDisableReply)(nil), 3740 (*Nat44EdSetFqOptions)(nil), 3741 (*Nat44EdSetFqOptionsReply)(nil), 3742 (*Nat44EdShowFqOptions)(nil), 3743 (*Nat44EdShowFqOptionsReply)(nil), 3744 (*Nat44EdVrfTablesDetails)(nil), 3745 (*Nat44EdVrfTablesDump)(nil), 3746 (*Nat44EdVrfTablesV2Details)(nil), 3747 (*Nat44EdVrfTablesV2Dump)(nil), 3748 (*Nat44ForwardingEnableDisable)(nil), 3749 (*Nat44ForwardingEnableDisableReply)(nil), 3750 (*Nat44IdentityMappingDetails)(nil), 3751 (*Nat44IdentityMappingDump)(nil), 3752 (*Nat44InterfaceAddDelFeature)(nil), 3753 (*Nat44InterfaceAddDelFeatureReply)(nil), 3754 (*Nat44InterfaceAddrDetails)(nil), 3755 (*Nat44InterfaceAddrDump)(nil), 3756 (*Nat44InterfaceDetails)(nil), 3757 (*Nat44InterfaceDump)(nil), 3758 (*Nat44LbStaticMappingAddDelLocal)(nil), 3759 (*Nat44LbStaticMappingAddDelLocalReply)(nil), 3760 (*Nat44LbStaticMappingDetails)(nil), 3761 (*Nat44LbStaticMappingDump)(nil), 3762 (*Nat44SetSessionLimit)(nil), 3763 (*Nat44SetSessionLimitReply)(nil), 3764 (*Nat44ShowRunningConfig)(nil), 3765 (*Nat44ShowRunningConfigReply)(nil), 3766 (*Nat44StaticMappingDetails)(nil), 3767 (*Nat44StaticMappingDump)(nil), 3768 (*Nat44UserDetails)(nil), 3769 (*Nat44UserDump)(nil), 3770 (*Nat44UserSessionDetails)(nil), 3771 (*Nat44UserSessionDump)(nil), 3772 (*Nat44UserSessionV2Details)(nil), 3773 (*Nat44UserSessionV2Dump)(nil), 3774 (*Nat44UserSessionV3Details)(nil), 3775 (*Nat44UserSessionV3Dump)(nil), 3776 (*NatGetMssClamping)(nil), 3777 (*NatGetMssClampingReply)(nil), 3778 (*NatIpfixEnableDisable)(nil), 3779 (*NatIpfixEnableDisableReply)(nil), 3780 (*NatSetMssClamping)(nil), 3781 (*NatSetMssClampingReply)(nil), 3782 (*NatSetTimeouts)(nil), 3783 (*NatSetTimeoutsReply)(nil), 3784 (*NatSetWorkers)(nil), 3785 (*NatSetWorkersReply)(nil), 3786 (*NatWorkerDetails)(nil), 3787 (*NatWorkerDump)(nil), 3788 } 3789 }