github.com/networkservicemesh/govpp@v0.0.0-20240328101142-8a444680fbba/binapi/dhcp/dhcp.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/dhcp.api.json 6 7 // Package dhcp contains generated bindings for API file dhcp.api. 8 // 9 // Contents: 10 // - 3 enums 11 // - 6 structs 12 // - 29 messages 13 package dhcp 14 15 import ( 16 "strconv" 17 18 ethernet_types "github.com/networkservicemesh/govpp/binapi/ethernet_types" 19 interface_types "github.com/networkservicemesh/govpp/binapi/interface_types" 20 ip_types "github.com/networkservicemesh/govpp/binapi/ip_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 = "dhcp" 33 APIVersion = "3.0.1" 34 VersionCrc = 0xaee239f2 35 ) 36 37 // DHCPClientState defines enum 'dhcp_client_state'. 38 type DHCPClientState uint32 39 40 const ( 41 DHCP_CLIENT_STATE_API_DISCOVER DHCPClientState = 0 42 DHCP_CLIENT_STATE_API_REQUEST DHCPClientState = 1 43 DHCP_CLIENT_STATE_API_BOUND DHCPClientState = 2 44 ) 45 46 var ( 47 DHCPClientState_name = map[uint32]string{ 48 0: "DHCP_CLIENT_STATE_API_DISCOVER", 49 1: "DHCP_CLIENT_STATE_API_REQUEST", 50 2: "DHCP_CLIENT_STATE_API_BOUND", 51 } 52 DHCPClientState_value = map[string]uint32{ 53 "DHCP_CLIENT_STATE_API_DISCOVER": 0, 54 "DHCP_CLIENT_STATE_API_REQUEST": 1, 55 "DHCP_CLIENT_STATE_API_BOUND": 2, 56 } 57 ) 58 59 func (x DHCPClientState) String() string { 60 s, ok := DHCPClientState_name[uint32(x)] 61 if ok { 62 return s 63 } 64 return "DHCPClientState(" + strconv.Itoa(int(x)) + ")" 65 } 66 67 // Dhcpv6MsgType defines enum 'dhcpv6_msg_type'. 68 type Dhcpv6MsgType uint32 69 70 const ( 71 DHCPV6_MSG_API_SOLICIT Dhcpv6MsgType = 1 72 DHCPV6_MSG_API_ADVERTISE Dhcpv6MsgType = 2 73 DHCPV6_MSG_API_REQUEST Dhcpv6MsgType = 3 74 DHCPV6_MSG_API_CONFIRM Dhcpv6MsgType = 4 75 DHCPV6_MSG_API_RENEW Dhcpv6MsgType = 5 76 DHCPV6_MSG_API_REBIND Dhcpv6MsgType = 6 77 DHCPV6_MSG_API_REPLY Dhcpv6MsgType = 7 78 DHCPV6_MSG_API_RELEASE Dhcpv6MsgType = 8 79 DHCPV6_MSG_API_DECLINE Dhcpv6MsgType = 9 80 DHCPV6_MSG_API_RECONFIGURE Dhcpv6MsgType = 10 81 DHCPV6_MSG_API_INFORMATION_REQUEST Dhcpv6MsgType = 11 82 DHCPV6_MSG_API_RELAY_FORW Dhcpv6MsgType = 12 83 DHCPV6_MSG_API_RELAY_REPL Dhcpv6MsgType = 13 84 ) 85 86 var ( 87 Dhcpv6MsgType_name = map[uint32]string{ 88 1: "DHCPV6_MSG_API_SOLICIT", 89 2: "DHCPV6_MSG_API_ADVERTISE", 90 3: "DHCPV6_MSG_API_REQUEST", 91 4: "DHCPV6_MSG_API_CONFIRM", 92 5: "DHCPV6_MSG_API_RENEW", 93 6: "DHCPV6_MSG_API_REBIND", 94 7: "DHCPV6_MSG_API_REPLY", 95 8: "DHCPV6_MSG_API_RELEASE", 96 9: "DHCPV6_MSG_API_DECLINE", 97 10: "DHCPV6_MSG_API_RECONFIGURE", 98 11: "DHCPV6_MSG_API_INFORMATION_REQUEST", 99 12: "DHCPV6_MSG_API_RELAY_FORW", 100 13: "DHCPV6_MSG_API_RELAY_REPL", 101 } 102 Dhcpv6MsgType_value = map[string]uint32{ 103 "DHCPV6_MSG_API_SOLICIT": 1, 104 "DHCPV6_MSG_API_ADVERTISE": 2, 105 "DHCPV6_MSG_API_REQUEST": 3, 106 "DHCPV6_MSG_API_CONFIRM": 4, 107 "DHCPV6_MSG_API_RENEW": 5, 108 "DHCPV6_MSG_API_REBIND": 6, 109 "DHCPV6_MSG_API_REPLY": 7, 110 "DHCPV6_MSG_API_RELEASE": 8, 111 "DHCPV6_MSG_API_DECLINE": 9, 112 "DHCPV6_MSG_API_RECONFIGURE": 10, 113 "DHCPV6_MSG_API_INFORMATION_REQUEST": 11, 114 "DHCPV6_MSG_API_RELAY_FORW": 12, 115 "DHCPV6_MSG_API_RELAY_REPL": 13, 116 } 117 ) 118 119 func (x Dhcpv6MsgType) String() string { 120 s, ok := Dhcpv6MsgType_name[uint32(x)] 121 if ok { 122 return s 123 } 124 return "Dhcpv6MsgType(" + strconv.Itoa(int(x)) + ")" 125 } 126 127 // VssType defines enum 'vss_type'. 128 type VssType uint32 129 130 const ( 131 VSS_TYPE_API_ASCII VssType = 0 132 VSS_TYPE_API_VPN_ID VssType = 1 133 VSS_TYPE_API_INVALID VssType = 123 134 VSS_TYPE_API_DEFAULT VssType = 255 135 ) 136 137 var ( 138 VssType_name = map[uint32]string{ 139 0: "VSS_TYPE_API_ASCII", 140 1: "VSS_TYPE_API_VPN_ID", 141 123: "VSS_TYPE_API_INVALID", 142 255: "VSS_TYPE_API_DEFAULT", 143 } 144 VssType_value = map[string]uint32{ 145 "VSS_TYPE_API_ASCII": 0, 146 "VSS_TYPE_API_VPN_ID": 1, 147 "VSS_TYPE_API_INVALID": 123, 148 "VSS_TYPE_API_DEFAULT": 255, 149 } 150 ) 151 152 func (x VssType) String() string { 153 s, ok := VssType_name[uint32(x)] 154 if ok { 155 return s 156 } 157 return "VssType(" + strconv.Itoa(int(x)) + ")" 158 } 159 160 // DHCP6AddressInfo defines type 'dhcp6_address_info'. 161 type DHCP6AddressInfo struct { 162 Address ip_types.IP6Address `binapi:"ip6_address,name=address" json:"address,omitempty"` 163 ValidTime uint32 `binapi:"u32,name=valid_time" json:"valid_time,omitempty"` 164 PreferredTime uint32 `binapi:"u32,name=preferred_time" json:"preferred_time,omitempty"` 165 } 166 167 // DHCP6PdPrefixInfo defines type 'dhcp6_pd_prefix_info'. 168 type DHCP6PdPrefixInfo struct { 169 Prefix ip_types.IP6Prefix `binapi:"ip6_prefix,name=prefix" json:"prefix,omitempty"` 170 ValidTime uint32 `binapi:"u32,name=valid_time" json:"valid_time,omitempty"` 171 PreferredTime uint32 `binapi:"u32,name=preferred_time" json:"preferred_time,omitempty"` 172 } 173 174 // DHCPClient defines type 'dhcp_client'. 175 type DHCPClient struct { 176 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 177 Hostname string `binapi:"string[64],name=hostname" json:"hostname,omitempty"` 178 ID []byte `binapi:"u8[64],name=id" json:"id,omitempty"` 179 WantDHCPEvent bool `binapi:"bool,name=want_dhcp_event" json:"want_dhcp_event,omitempty"` 180 SetBroadcastFlag bool `binapi:"bool,name=set_broadcast_flag" json:"set_broadcast_flag,omitempty"` 181 Dscp ip_types.IPDscp `binapi:"ip_dscp,name=dscp" json:"dscp,omitempty"` 182 PID uint32 `binapi:"u32,name=pid" json:"pid,omitempty"` 183 } 184 185 // DHCPLease defines type 'dhcp_lease'. 186 type DHCPLease struct { 187 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 188 State DHCPClientState `binapi:"dhcp_client_state,name=state" json:"state,omitempty"` 189 IsIPv6 bool `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"` 190 Hostname string `binapi:"string[64],name=hostname" json:"hostname,omitempty"` 191 MaskWidth uint8 `binapi:"u8,name=mask_width" json:"mask_width,omitempty"` 192 HostAddress ip_types.Address `binapi:"address,name=host_address" json:"host_address,omitempty"` 193 RouterAddress ip_types.Address `binapi:"address,name=router_address" json:"router_address,omitempty"` 194 HostMac ethernet_types.MacAddress `binapi:"mac_address,name=host_mac" json:"host_mac,omitempty"` 195 Count uint8 `binapi:"u8,name=count" json:"-"` 196 DomainServer []DomainServer `binapi:"domain_server[count],name=domain_server" json:"domain_server,omitempty"` 197 } 198 199 // DHCPServer defines type 'dhcp_server'. 200 type DHCPServer struct { 201 ServerVrfID uint32 `binapi:"u32,name=server_vrf_id" json:"server_vrf_id,omitempty"` 202 DHCPServer ip_types.Address `binapi:"address,name=dhcp_server" json:"dhcp_server,omitempty"` 203 } 204 205 // DomainServer defines type 'domain_server'. 206 type DomainServer struct { 207 Address ip_types.Address `binapi:"address,name=address" json:"address,omitempty"` 208 } 209 210 // Enable/disable listening on DHCPv6 client port 211 // DHCP6ClientsEnableDisable defines message 'dhcp6_clients_enable_disable'. 212 type DHCP6ClientsEnableDisable struct { 213 Enable bool `binapi:"bool,name=enable" json:"enable,omitempty"` 214 } 215 216 func (m *DHCP6ClientsEnableDisable) Reset() { *m = DHCP6ClientsEnableDisable{} } 217 func (*DHCP6ClientsEnableDisable) GetMessageName() string { return "dhcp6_clients_enable_disable" } 218 func (*DHCP6ClientsEnableDisable) GetCrcString() string { return "b3e225d2" } 219 func (*DHCP6ClientsEnableDisable) GetMessageType() api.MessageType { 220 return api.RequestMessage 221 } 222 223 func (m *DHCP6ClientsEnableDisable) Size() (size int) { 224 if m == nil { 225 return 0 226 } 227 size += 1 // m.Enable 228 return size 229 } 230 func (m *DHCP6ClientsEnableDisable) Marshal(b []byte) ([]byte, error) { 231 if b == nil { 232 b = make([]byte, m.Size()) 233 } 234 buf := codec.NewBuffer(b) 235 buf.EncodeBool(m.Enable) 236 return buf.Bytes(), nil 237 } 238 func (m *DHCP6ClientsEnableDisable) Unmarshal(b []byte) error { 239 buf := codec.NewBuffer(b) 240 m.Enable = buf.DecodeBool() 241 return nil 242 } 243 244 // DHCP6ClientsEnableDisableReply defines message 'dhcp6_clients_enable_disable_reply'. 245 type DHCP6ClientsEnableDisableReply struct { 246 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 247 } 248 249 func (m *DHCP6ClientsEnableDisableReply) Reset() { *m = DHCP6ClientsEnableDisableReply{} } 250 func (*DHCP6ClientsEnableDisableReply) GetMessageName() string { 251 return "dhcp6_clients_enable_disable_reply" 252 } 253 func (*DHCP6ClientsEnableDisableReply) GetCrcString() string { return "e8d4e804" } 254 func (*DHCP6ClientsEnableDisableReply) GetMessageType() api.MessageType { 255 return api.ReplyMessage 256 } 257 258 func (m *DHCP6ClientsEnableDisableReply) Size() (size int) { 259 if m == nil { 260 return 0 261 } 262 size += 4 // m.Retval 263 return size 264 } 265 func (m *DHCP6ClientsEnableDisableReply) Marshal(b []byte) ([]byte, error) { 266 if b == nil { 267 b = make([]byte, m.Size()) 268 } 269 buf := codec.NewBuffer(b) 270 buf.EncodeInt32(m.Retval) 271 return buf.Bytes(), nil 272 } 273 func (m *DHCP6ClientsEnableDisableReply) Unmarshal(b []byte) error { 274 buf := codec.NewBuffer(b) 275 m.Retval = buf.DecodeInt32() 276 return nil 277 } 278 279 // Set DHCPv6 DUID-LL 280 // - duid_ll - DUID-LL binary string 281 // 282 // DHCP6DuidLlSet defines message 'dhcp6_duid_ll_set'. 283 type DHCP6DuidLlSet struct { 284 DuidLl []byte `binapi:"u8[10],name=duid_ll" json:"duid_ll,omitempty"` 285 } 286 287 func (m *DHCP6DuidLlSet) Reset() { *m = DHCP6DuidLlSet{} } 288 func (*DHCP6DuidLlSet) GetMessageName() string { return "dhcp6_duid_ll_set" } 289 func (*DHCP6DuidLlSet) GetCrcString() string { return "0f6ca323" } 290 func (*DHCP6DuidLlSet) GetMessageType() api.MessageType { 291 return api.RequestMessage 292 } 293 294 func (m *DHCP6DuidLlSet) Size() (size int) { 295 if m == nil { 296 return 0 297 } 298 size += 1 * 10 // m.DuidLl 299 return size 300 } 301 func (m *DHCP6DuidLlSet) Marshal(b []byte) ([]byte, error) { 302 if b == nil { 303 b = make([]byte, m.Size()) 304 } 305 buf := codec.NewBuffer(b) 306 buf.EncodeBytes(m.DuidLl, 10) 307 return buf.Bytes(), nil 308 } 309 func (m *DHCP6DuidLlSet) Unmarshal(b []byte) error { 310 buf := codec.NewBuffer(b) 311 m.DuidLl = make([]byte, 10) 312 copy(m.DuidLl, buf.DecodeBytes(len(m.DuidLl))) 313 return nil 314 } 315 316 // DHCP6DuidLlSetReply defines message 'dhcp6_duid_ll_set_reply'. 317 type DHCP6DuidLlSetReply struct { 318 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 319 } 320 321 func (m *DHCP6DuidLlSetReply) Reset() { *m = DHCP6DuidLlSetReply{} } 322 func (*DHCP6DuidLlSetReply) GetMessageName() string { return "dhcp6_duid_ll_set_reply" } 323 func (*DHCP6DuidLlSetReply) GetCrcString() string { return "e8d4e804" } 324 func (*DHCP6DuidLlSetReply) GetMessageType() api.MessageType { 325 return api.ReplyMessage 326 } 327 328 func (m *DHCP6DuidLlSetReply) Size() (size int) { 329 if m == nil { 330 return 0 331 } 332 size += 4 // m.Retval 333 return size 334 } 335 func (m *DHCP6DuidLlSetReply) Marshal(b []byte) ([]byte, error) { 336 if b == nil { 337 b = make([]byte, m.Size()) 338 } 339 buf := codec.NewBuffer(b) 340 buf.EncodeInt32(m.Retval) 341 return buf.Bytes(), nil 342 } 343 func (m *DHCP6DuidLlSetReply) Unmarshal(b []byte) error { 344 buf := codec.NewBuffer(b) 345 m.Retval = buf.DecodeInt32() 346 return nil 347 } 348 349 // Tell client about a DHCPv6 PD server reply event 350 // - pid - client pid registered to receive notification 351 // - sw_if_index - index of RX interface 352 // - server_index - used to dentify DHCPv6 server, 353 // unique for each DHCPv6 server on the link 354 // - msg_type - message type 355 // - T1 - value of T1 in IA_PD option 356 // - T2 - value of T2 in IA_PD option 357 // - inner_status_code - value of status code inside IA_PD option 358 // - status_code - value of the main status code of DHCPv6 message 359 // - preference - value of preference option in reply message 360 // - n_prefixes - number of prefixes in IA_PD option 361 // - prefixes - list of prefixes in IA_PD option 362 // 363 // DHCP6PdReplyEvent defines message 'dhcp6_pd_reply_event'. 364 type DHCP6PdReplyEvent struct { 365 PID uint32 `binapi:"u32,name=pid" json:"pid,omitempty"` 366 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 367 ServerIndex uint32 `binapi:"u32,name=server_index" json:"server_index,omitempty"` 368 MsgType Dhcpv6MsgType `binapi:"dhcpv6_msg_type,name=msg_type" json:"msg_type,omitempty"` 369 T1 uint32 `binapi:"u32,name=T1" json:"T1,omitempty"` 370 T2 uint32 `binapi:"u32,name=T2" json:"T2,omitempty"` 371 InnerStatusCode uint16 `binapi:"u16,name=inner_status_code" json:"inner_status_code,omitempty"` 372 StatusCode uint16 `binapi:"u16,name=status_code" json:"status_code,omitempty"` 373 Preference uint8 `binapi:"u8,name=preference" json:"preference,omitempty"` 374 NPrefixes uint32 `binapi:"u32,name=n_prefixes" json:"-"` 375 Prefixes []DHCP6PdPrefixInfo `binapi:"dhcp6_pd_prefix_info[n_prefixes],name=prefixes" json:"prefixes,omitempty"` 376 } 377 378 func (m *DHCP6PdReplyEvent) Reset() { *m = DHCP6PdReplyEvent{} } 379 func (*DHCP6PdReplyEvent) GetMessageName() string { return "dhcp6_pd_reply_event" } 380 func (*DHCP6PdReplyEvent) GetCrcString() string { return "5e878029" } 381 func (*DHCP6PdReplyEvent) GetMessageType() api.MessageType { 382 return api.EventMessage 383 } 384 385 func (m *DHCP6PdReplyEvent) Size() (size int) { 386 if m == nil { 387 return 0 388 } 389 size += 4 // m.PID 390 size += 4 // m.SwIfIndex 391 size += 4 // m.ServerIndex 392 size += 4 // m.MsgType 393 size += 4 // m.T1 394 size += 4 // m.T2 395 size += 2 // m.InnerStatusCode 396 size += 2 // m.StatusCode 397 size += 1 // m.Preference 398 size += 4 // m.NPrefixes 399 for j1 := 0; j1 < len(m.Prefixes); j1++ { 400 var s1 DHCP6PdPrefixInfo 401 _ = s1 402 if j1 < len(m.Prefixes) { 403 s1 = m.Prefixes[j1] 404 } 405 size += 1 * 16 // s1.Prefix.Address 406 size += 1 // s1.Prefix.Len 407 size += 4 // s1.ValidTime 408 size += 4 // s1.PreferredTime 409 } 410 return size 411 } 412 func (m *DHCP6PdReplyEvent) Marshal(b []byte) ([]byte, error) { 413 if b == nil { 414 b = make([]byte, m.Size()) 415 } 416 buf := codec.NewBuffer(b) 417 buf.EncodeUint32(m.PID) 418 buf.EncodeUint32(uint32(m.SwIfIndex)) 419 buf.EncodeUint32(m.ServerIndex) 420 buf.EncodeUint32(uint32(m.MsgType)) 421 buf.EncodeUint32(m.T1) 422 buf.EncodeUint32(m.T2) 423 buf.EncodeUint16(m.InnerStatusCode) 424 buf.EncodeUint16(m.StatusCode) 425 buf.EncodeUint8(m.Preference) 426 buf.EncodeUint32(uint32(len(m.Prefixes))) 427 for j0 := 0; j0 < len(m.Prefixes); j0++ { 428 var v0 DHCP6PdPrefixInfo // Prefixes 429 if j0 < len(m.Prefixes) { 430 v0 = m.Prefixes[j0] 431 } 432 buf.EncodeBytes(v0.Prefix.Address[:], 16) 433 buf.EncodeUint8(v0.Prefix.Len) 434 buf.EncodeUint32(v0.ValidTime) 435 buf.EncodeUint32(v0.PreferredTime) 436 } 437 return buf.Bytes(), nil 438 } 439 func (m *DHCP6PdReplyEvent) Unmarshal(b []byte) error { 440 buf := codec.NewBuffer(b) 441 m.PID = buf.DecodeUint32() 442 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 443 m.ServerIndex = buf.DecodeUint32() 444 m.MsgType = Dhcpv6MsgType(buf.DecodeUint32()) 445 m.T1 = buf.DecodeUint32() 446 m.T2 = buf.DecodeUint32() 447 m.InnerStatusCode = buf.DecodeUint16() 448 m.StatusCode = buf.DecodeUint16() 449 m.Preference = buf.DecodeUint8() 450 m.NPrefixes = buf.DecodeUint32() 451 m.Prefixes = make([]DHCP6PdPrefixInfo, m.NPrefixes) 452 for j0 := 0; j0 < len(m.Prefixes); j0++ { 453 copy(m.Prefixes[j0].Prefix.Address[:], buf.DecodeBytes(16)) 454 m.Prefixes[j0].Prefix.Len = buf.DecodeUint8() 455 m.Prefixes[j0].ValidTime = buf.DecodeUint32() 456 m.Prefixes[j0].PreferredTime = buf.DecodeUint32() 457 } 458 return nil 459 } 460 461 // Send DHCPv6 PD client message of specified type 462 // - sw_if_index - index of TX interface 463 // - server_index - used to dentify DHCPv6 server, 464 // unique for each DHCPv6 server on the link, 465 // value obrtained from dhcp6_pd_reply_event API message, 466 // use ~0 to send message to all DHCPv6 servers 467 // - irt - initial retransmission time 468 // - mrt - maximum retransmission time 469 // - mrc - maximum retransmission count 470 // - mrd - maximum retransmission duration 471 // for sending the message 472 // - stop - if non-zero then stop resending the message, 473 // otherwise start sending the message 474 // - msg_type - message type 475 // - T1 - value of T1 in IA_PD option 476 // - T2 - value of T2 in IA_PD option 477 // - n_prefixes - number of addresses in IA_PD option 478 // - prefixes - list of prefixes in IA_PD option 479 // 480 // DHCP6PdSendClientMessage defines message 'dhcp6_pd_send_client_message'. 481 type DHCP6PdSendClientMessage struct { 482 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 483 ServerIndex uint32 `binapi:"u32,name=server_index" json:"server_index,omitempty"` 484 Irt uint32 `binapi:"u32,name=irt" json:"irt,omitempty"` 485 Mrt uint32 `binapi:"u32,name=mrt" json:"mrt,omitempty"` 486 Mrc uint32 `binapi:"u32,name=mrc" json:"mrc,omitempty"` 487 Mrd uint32 `binapi:"u32,name=mrd" json:"mrd,omitempty"` 488 Stop bool `binapi:"bool,name=stop" json:"stop,omitempty"` 489 MsgType Dhcpv6MsgType `binapi:"dhcpv6_msg_type,name=msg_type" json:"msg_type,omitempty"` 490 T1 uint32 `binapi:"u32,name=T1" json:"T1,omitempty"` 491 T2 uint32 `binapi:"u32,name=T2" json:"T2,omitempty"` 492 NPrefixes uint32 `binapi:"u32,name=n_prefixes" json:"-"` 493 Prefixes []DHCP6PdPrefixInfo `binapi:"dhcp6_pd_prefix_info[n_prefixes],name=prefixes" json:"prefixes,omitempty"` 494 } 495 496 func (m *DHCP6PdSendClientMessage) Reset() { *m = DHCP6PdSendClientMessage{} } 497 func (*DHCP6PdSendClientMessage) GetMessageName() string { return "dhcp6_pd_send_client_message" } 498 func (*DHCP6PdSendClientMessage) GetCrcString() string { return "3739fd8d" } 499 func (*DHCP6PdSendClientMessage) GetMessageType() api.MessageType { 500 return api.RequestMessage 501 } 502 503 func (m *DHCP6PdSendClientMessage) Size() (size int) { 504 if m == nil { 505 return 0 506 } 507 size += 4 // m.SwIfIndex 508 size += 4 // m.ServerIndex 509 size += 4 // m.Irt 510 size += 4 // m.Mrt 511 size += 4 // m.Mrc 512 size += 4 // m.Mrd 513 size += 1 // m.Stop 514 size += 4 // m.MsgType 515 size += 4 // m.T1 516 size += 4 // m.T2 517 size += 4 // m.NPrefixes 518 for j1 := 0; j1 < len(m.Prefixes); j1++ { 519 var s1 DHCP6PdPrefixInfo 520 _ = s1 521 if j1 < len(m.Prefixes) { 522 s1 = m.Prefixes[j1] 523 } 524 size += 1 * 16 // s1.Prefix.Address 525 size += 1 // s1.Prefix.Len 526 size += 4 // s1.ValidTime 527 size += 4 // s1.PreferredTime 528 } 529 return size 530 } 531 func (m *DHCP6PdSendClientMessage) Marshal(b []byte) ([]byte, error) { 532 if b == nil { 533 b = make([]byte, m.Size()) 534 } 535 buf := codec.NewBuffer(b) 536 buf.EncodeUint32(uint32(m.SwIfIndex)) 537 buf.EncodeUint32(m.ServerIndex) 538 buf.EncodeUint32(m.Irt) 539 buf.EncodeUint32(m.Mrt) 540 buf.EncodeUint32(m.Mrc) 541 buf.EncodeUint32(m.Mrd) 542 buf.EncodeBool(m.Stop) 543 buf.EncodeUint32(uint32(m.MsgType)) 544 buf.EncodeUint32(m.T1) 545 buf.EncodeUint32(m.T2) 546 buf.EncodeUint32(uint32(len(m.Prefixes))) 547 for j0 := 0; j0 < len(m.Prefixes); j0++ { 548 var v0 DHCP6PdPrefixInfo // Prefixes 549 if j0 < len(m.Prefixes) { 550 v0 = m.Prefixes[j0] 551 } 552 buf.EncodeBytes(v0.Prefix.Address[:], 16) 553 buf.EncodeUint8(v0.Prefix.Len) 554 buf.EncodeUint32(v0.ValidTime) 555 buf.EncodeUint32(v0.PreferredTime) 556 } 557 return buf.Bytes(), nil 558 } 559 func (m *DHCP6PdSendClientMessage) Unmarshal(b []byte) error { 560 buf := codec.NewBuffer(b) 561 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 562 m.ServerIndex = buf.DecodeUint32() 563 m.Irt = buf.DecodeUint32() 564 m.Mrt = buf.DecodeUint32() 565 m.Mrc = buf.DecodeUint32() 566 m.Mrd = buf.DecodeUint32() 567 m.Stop = buf.DecodeBool() 568 m.MsgType = Dhcpv6MsgType(buf.DecodeUint32()) 569 m.T1 = buf.DecodeUint32() 570 m.T2 = buf.DecodeUint32() 571 m.NPrefixes = buf.DecodeUint32() 572 m.Prefixes = make([]DHCP6PdPrefixInfo, m.NPrefixes) 573 for j0 := 0; j0 < len(m.Prefixes); j0++ { 574 copy(m.Prefixes[j0].Prefix.Address[:], buf.DecodeBytes(16)) 575 m.Prefixes[j0].Prefix.Len = buf.DecodeUint8() 576 m.Prefixes[j0].ValidTime = buf.DecodeUint32() 577 m.Prefixes[j0].PreferredTime = buf.DecodeUint32() 578 } 579 return nil 580 } 581 582 // DHCP6PdSendClientMessageReply defines message 'dhcp6_pd_send_client_message_reply'. 583 type DHCP6PdSendClientMessageReply struct { 584 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 585 } 586 587 func (m *DHCP6PdSendClientMessageReply) Reset() { *m = DHCP6PdSendClientMessageReply{} } 588 func (*DHCP6PdSendClientMessageReply) GetMessageName() string { 589 return "dhcp6_pd_send_client_message_reply" 590 } 591 func (*DHCP6PdSendClientMessageReply) GetCrcString() string { return "e8d4e804" } 592 func (*DHCP6PdSendClientMessageReply) GetMessageType() api.MessageType { 593 return api.ReplyMessage 594 } 595 596 func (m *DHCP6PdSendClientMessageReply) Size() (size int) { 597 if m == nil { 598 return 0 599 } 600 size += 4 // m.Retval 601 return size 602 } 603 func (m *DHCP6PdSendClientMessageReply) Marshal(b []byte) ([]byte, error) { 604 if b == nil { 605 b = make([]byte, m.Size()) 606 } 607 buf := codec.NewBuffer(b) 608 buf.EncodeInt32(m.Retval) 609 return buf.Bytes(), nil 610 } 611 func (m *DHCP6PdSendClientMessageReply) Unmarshal(b []byte) error { 612 buf := codec.NewBuffer(b) 613 m.Retval = buf.DecodeInt32() 614 return nil 615 } 616 617 // Tell client about a DHCPv6 server reply event 618 // - pid - client pid registered to receive notification 619 // - sw_if_index - index of RX interface, also identifies IAID 620 // - server_index - used to dentify DHCPv6 server, 621 // unique for each DHCPv6 server on the link 622 // - msg_type - message type 623 // - T1 - value of T1 in IA_NA option 624 // - T2 - value of T2 in IA_NA option 625 // - inner_status_code - value of status code inside IA_NA option 626 // - status_code - value of status code 627 // - preference - value of preference option in reply message 628 // - n_addresses - number of addresses in IA_NA option 629 // - addresses - list of addresses in IA_NA option 630 // 631 // DHCP6ReplyEvent defines message 'dhcp6_reply_event'. 632 type DHCP6ReplyEvent struct { 633 PID uint32 `binapi:"u32,name=pid" json:"pid,omitempty"` 634 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 635 ServerIndex uint32 `binapi:"u32,name=server_index" json:"server_index,omitempty"` 636 MsgType Dhcpv6MsgType `binapi:"dhcpv6_msg_type,name=msg_type" json:"msg_type,omitempty"` 637 T1 uint32 `binapi:"u32,name=T1" json:"T1,omitempty"` 638 T2 uint32 `binapi:"u32,name=T2" json:"T2,omitempty"` 639 InnerStatusCode uint16 `binapi:"u16,name=inner_status_code" json:"inner_status_code,omitempty"` 640 StatusCode uint16 `binapi:"u16,name=status_code" json:"status_code,omitempty"` 641 Preference uint8 `binapi:"u8,name=preference" json:"preference,omitempty"` 642 NAddresses uint32 `binapi:"u32,name=n_addresses" json:"-"` 643 Addresses []DHCP6AddressInfo `binapi:"dhcp6_address_info[n_addresses],name=addresses" json:"addresses,omitempty"` 644 } 645 646 func (m *DHCP6ReplyEvent) Reset() { *m = DHCP6ReplyEvent{} } 647 func (*DHCP6ReplyEvent) GetMessageName() string { return "dhcp6_reply_event" } 648 func (*DHCP6ReplyEvent) GetCrcString() string { return "85b7b17e" } 649 func (*DHCP6ReplyEvent) GetMessageType() api.MessageType { 650 return api.EventMessage 651 } 652 653 func (m *DHCP6ReplyEvent) Size() (size int) { 654 if m == nil { 655 return 0 656 } 657 size += 4 // m.PID 658 size += 4 // m.SwIfIndex 659 size += 4 // m.ServerIndex 660 size += 4 // m.MsgType 661 size += 4 // m.T1 662 size += 4 // m.T2 663 size += 2 // m.InnerStatusCode 664 size += 2 // m.StatusCode 665 size += 1 // m.Preference 666 size += 4 // m.NAddresses 667 for j1 := 0; j1 < len(m.Addresses); j1++ { 668 var s1 DHCP6AddressInfo 669 _ = s1 670 if j1 < len(m.Addresses) { 671 s1 = m.Addresses[j1] 672 } 673 size += 1 * 16 // s1.Address 674 size += 4 // s1.ValidTime 675 size += 4 // s1.PreferredTime 676 } 677 return size 678 } 679 func (m *DHCP6ReplyEvent) Marshal(b []byte) ([]byte, error) { 680 if b == nil { 681 b = make([]byte, m.Size()) 682 } 683 buf := codec.NewBuffer(b) 684 buf.EncodeUint32(m.PID) 685 buf.EncodeUint32(uint32(m.SwIfIndex)) 686 buf.EncodeUint32(m.ServerIndex) 687 buf.EncodeUint32(uint32(m.MsgType)) 688 buf.EncodeUint32(m.T1) 689 buf.EncodeUint32(m.T2) 690 buf.EncodeUint16(m.InnerStatusCode) 691 buf.EncodeUint16(m.StatusCode) 692 buf.EncodeUint8(m.Preference) 693 buf.EncodeUint32(uint32(len(m.Addresses))) 694 for j0 := 0; j0 < len(m.Addresses); j0++ { 695 var v0 DHCP6AddressInfo // Addresses 696 if j0 < len(m.Addresses) { 697 v0 = m.Addresses[j0] 698 } 699 buf.EncodeBytes(v0.Address[:], 16) 700 buf.EncodeUint32(v0.ValidTime) 701 buf.EncodeUint32(v0.PreferredTime) 702 } 703 return buf.Bytes(), nil 704 } 705 func (m *DHCP6ReplyEvent) Unmarshal(b []byte) error { 706 buf := codec.NewBuffer(b) 707 m.PID = buf.DecodeUint32() 708 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 709 m.ServerIndex = buf.DecodeUint32() 710 m.MsgType = Dhcpv6MsgType(buf.DecodeUint32()) 711 m.T1 = buf.DecodeUint32() 712 m.T2 = buf.DecodeUint32() 713 m.InnerStatusCode = buf.DecodeUint16() 714 m.StatusCode = buf.DecodeUint16() 715 m.Preference = buf.DecodeUint8() 716 m.NAddresses = buf.DecodeUint32() 717 m.Addresses = make([]DHCP6AddressInfo, m.NAddresses) 718 for j0 := 0; j0 < len(m.Addresses); j0++ { 719 copy(m.Addresses[j0].Address[:], buf.DecodeBytes(16)) 720 m.Addresses[j0].ValidTime = buf.DecodeUint32() 721 m.Addresses[j0].PreferredTime = buf.DecodeUint32() 722 } 723 return nil 724 } 725 726 // Send DHCPv6 client message of specified type 727 // - sw_if_index - index of TX interface, also identifies IAID 728 // - server_index - used to dentify DHCPv6 server, 729 // unique for each DHCPv6 server on the link, 730 // value obrtained from dhcp6_reply_event API message, 731 // use ~0 to send message to all DHCPv6 servers 732 // - irt - initial retransmission time 733 // - mrt - maximum retransmission time 734 // - mrc - maximum retransmission count 735 // - mrd - maximum retransmission duration 736 // for sending the message 737 // - stop - if non-zero then stop resending the message, 738 // otherwise start sending the message 739 // - msg_type - message type 740 // - T1 - value of T1 in IA_NA option 741 // - T2 - value of T2 in IA_NA option 742 // - n_addresses - number of addresses in IA_NA option 743 // - addresses - list of addresses in IA_NA option 744 // 745 // DHCP6SendClientMessage defines message 'dhcp6_send_client_message'. 746 type DHCP6SendClientMessage struct { 747 SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` 748 ServerIndex uint32 `binapi:"u32,name=server_index" json:"server_index,omitempty"` 749 Irt uint32 `binapi:"u32,name=irt" json:"irt,omitempty"` 750 Mrt uint32 `binapi:"u32,name=mrt" json:"mrt,omitempty"` 751 Mrc uint32 `binapi:"u32,name=mrc" json:"mrc,omitempty"` 752 Mrd uint32 `binapi:"u32,name=mrd" json:"mrd,omitempty"` 753 Stop bool `binapi:"bool,name=stop" json:"stop,omitempty"` 754 MsgType Dhcpv6MsgType `binapi:"dhcpv6_msg_type,name=msg_type" json:"msg_type,omitempty"` 755 T1 uint32 `binapi:"u32,name=T1" json:"T1,omitempty"` 756 T2 uint32 `binapi:"u32,name=T2" json:"T2,omitempty"` 757 NAddresses uint32 `binapi:"u32,name=n_addresses" json:"-"` 758 Addresses []DHCP6AddressInfo `binapi:"dhcp6_address_info[n_addresses],name=addresses" json:"addresses,omitempty"` 759 } 760 761 func (m *DHCP6SendClientMessage) Reset() { *m = DHCP6SendClientMessage{} } 762 func (*DHCP6SendClientMessage) GetMessageName() string { return "dhcp6_send_client_message" } 763 func (*DHCP6SendClientMessage) GetCrcString() string { return "f8222476" } 764 func (*DHCP6SendClientMessage) GetMessageType() api.MessageType { 765 return api.RequestMessage 766 } 767 768 func (m *DHCP6SendClientMessage) Size() (size int) { 769 if m == nil { 770 return 0 771 } 772 size += 4 // m.SwIfIndex 773 size += 4 // m.ServerIndex 774 size += 4 // m.Irt 775 size += 4 // m.Mrt 776 size += 4 // m.Mrc 777 size += 4 // m.Mrd 778 size += 1 // m.Stop 779 size += 4 // m.MsgType 780 size += 4 // m.T1 781 size += 4 // m.T2 782 size += 4 // m.NAddresses 783 for j1 := 0; j1 < len(m.Addresses); j1++ { 784 var s1 DHCP6AddressInfo 785 _ = s1 786 if j1 < len(m.Addresses) { 787 s1 = m.Addresses[j1] 788 } 789 size += 1 * 16 // s1.Address 790 size += 4 // s1.ValidTime 791 size += 4 // s1.PreferredTime 792 } 793 return size 794 } 795 func (m *DHCP6SendClientMessage) Marshal(b []byte) ([]byte, error) { 796 if b == nil { 797 b = make([]byte, m.Size()) 798 } 799 buf := codec.NewBuffer(b) 800 buf.EncodeUint32(uint32(m.SwIfIndex)) 801 buf.EncodeUint32(m.ServerIndex) 802 buf.EncodeUint32(m.Irt) 803 buf.EncodeUint32(m.Mrt) 804 buf.EncodeUint32(m.Mrc) 805 buf.EncodeUint32(m.Mrd) 806 buf.EncodeBool(m.Stop) 807 buf.EncodeUint32(uint32(m.MsgType)) 808 buf.EncodeUint32(m.T1) 809 buf.EncodeUint32(m.T2) 810 buf.EncodeUint32(uint32(len(m.Addresses))) 811 for j0 := 0; j0 < len(m.Addresses); j0++ { 812 var v0 DHCP6AddressInfo // Addresses 813 if j0 < len(m.Addresses) { 814 v0 = m.Addresses[j0] 815 } 816 buf.EncodeBytes(v0.Address[:], 16) 817 buf.EncodeUint32(v0.ValidTime) 818 buf.EncodeUint32(v0.PreferredTime) 819 } 820 return buf.Bytes(), nil 821 } 822 func (m *DHCP6SendClientMessage) Unmarshal(b []byte) error { 823 buf := codec.NewBuffer(b) 824 m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 825 m.ServerIndex = buf.DecodeUint32() 826 m.Irt = buf.DecodeUint32() 827 m.Mrt = buf.DecodeUint32() 828 m.Mrc = buf.DecodeUint32() 829 m.Mrd = buf.DecodeUint32() 830 m.Stop = buf.DecodeBool() 831 m.MsgType = Dhcpv6MsgType(buf.DecodeUint32()) 832 m.T1 = buf.DecodeUint32() 833 m.T2 = buf.DecodeUint32() 834 m.NAddresses = buf.DecodeUint32() 835 m.Addresses = make([]DHCP6AddressInfo, m.NAddresses) 836 for j0 := 0; j0 < len(m.Addresses); j0++ { 837 copy(m.Addresses[j0].Address[:], buf.DecodeBytes(16)) 838 m.Addresses[j0].ValidTime = buf.DecodeUint32() 839 m.Addresses[j0].PreferredTime = buf.DecodeUint32() 840 } 841 return nil 842 } 843 844 // DHCP6SendClientMessageReply defines message 'dhcp6_send_client_message_reply'. 845 type DHCP6SendClientMessageReply struct { 846 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 847 } 848 849 func (m *DHCP6SendClientMessageReply) Reset() { *m = DHCP6SendClientMessageReply{} } 850 func (*DHCP6SendClientMessageReply) GetMessageName() string { return "dhcp6_send_client_message_reply" } 851 func (*DHCP6SendClientMessageReply) GetCrcString() string { return "e8d4e804" } 852 func (*DHCP6SendClientMessageReply) GetMessageType() api.MessageType { 853 return api.ReplyMessage 854 } 855 856 func (m *DHCP6SendClientMessageReply) Size() (size int) { 857 if m == nil { 858 return 0 859 } 860 size += 4 // m.Retval 861 return size 862 } 863 func (m *DHCP6SendClientMessageReply) Marshal(b []byte) ([]byte, error) { 864 if b == nil { 865 b = make([]byte, m.Size()) 866 } 867 buf := codec.NewBuffer(b) 868 buf.EncodeInt32(m.Retval) 869 return buf.Bytes(), nil 870 } 871 func (m *DHCP6SendClientMessageReply) Unmarshal(b []byte) error { 872 buf := codec.NewBuffer(b) 873 m.Retval = buf.DecodeInt32() 874 return nil 875 } 876 877 // DHCP Client config add / del request 878 // - is_add - add the config if non-zero, else delete 879 // - client - client configuration data 880 // 881 // DHCPClientConfig defines message 'dhcp_client_config'. 882 type DHCPClientConfig struct { 883 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 884 Client DHCPClient `binapi:"dhcp_client,name=client" json:"client,omitempty"` 885 } 886 887 func (m *DHCPClientConfig) Reset() { *m = DHCPClientConfig{} } 888 func (*DHCPClientConfig) GetMessageName() string { return "dhcp_client_config" } 889 func (*DHCPClientConfig) GetCrcString() string { return "1af013ea" } 890 func (*DHCPClientConfig) GetMessageType() api.MessageType { 891 return api.RequestMessage 892 } 893 894 func (m *DHCPClientConfig) Size() (size int) { 895 if m == nil { 896 return 0 897 } 898 size += 1 // m.IsAdd 899 size += 4 // m.Client.SwIfIndex 900 size += 64 // m.Client.Hostname 901 size += 1 * 64 // m.Client.ID 902 size += 1 // m.Client.WantDHCPEvent 903 size += 1 // m.Client.SetBroadcastFlag 904 size += 1 // m.Client.Dscp 905 size += 4 // m.Client.PID 906 return size 907 } 908 func (m *DHCPClientConfig) Marshal(b []byte) ([]byte, error) { 909 if b == nil { 910 b = make([]byte, m.Size()) 911 } 912 buf := codec.NewBuffer(b) 913 buf.EncodeBool(m.IsAdd) 914 buf.EncodeUint32(uint32(m.Client.SwIfIndex)) 915 buf.EncodeString(m.Client.Hostname, 64) 916 buf.EncodeBytes(m.Client.ID, 64) 917 buf.EncodeBool(m.Client.WantDHCPEvent) 918 buf.EncodeBool(m.Client.SetBroadcastFlag) 919 buf.EncodeUint8(uint8(m.Client.Dscp)) 920 buf.EncodeUint32(m.Client.PID) 921 return buf.Bytes(), nil 922 } 923 func (m *DHCPClientConfig) Unmarshal(b []byte) error { 924 buf := codec.NewBuffer(b) 925 m.IsAdd = buf.DecodeBool() 926 m.Client.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 927 m.Client.Hostname = buf.DecodeString(64) 928 m.Client.ID = make([]byte, 64) 929 copy(m.Client.ID, buf.DecodeBytes(len(m.Client.ID))) 930 m.Client.WantDHCPEvent = buf.DecodeBool() 931 m.Client.SetBroadcastFlag = buf.DecodeBool() 932 m.Client.Dscp = ip_types.IPDscp(buf.DecodeUint8()) 933 m.Client.PID = buf.DecodeUint32() 934 return nil 935 } 936 937 // DHCPClientConfigReply defines message 'dhcp_client_config_reply'. 938 type DHCPClientConfigReply struct { 939 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 940 } 941 942 func (m *DHCPClientConfigReply) Reset() { *m = DHCPClientConfigReply{} } 943 func (*DHCPClientConfigReply) GetMessageName() string { return "dhcp_client_config_reply" } 944 func (*DHCPClientConfigReply) GetCrcString() string { return "e8d4e804" } 945 func (*DHCPClientConfigReply) GetMessageType() api.MessageType { 946 return api.ReplyMessage 947 } 948 949 func (m *DHCPClientConfigReply) Size() (size int) { 950 if m == nil { 951 return 0 952 } 953 size += 4 // m.Retval 954 return size 955 } 956 func (m *DHCPClientConfigReply) Marshal(b []byte) ([]byte, error) { 957 if b == nil { 958 b = make([]byte, m.Size()) 959 } 960 buf := codec.NewBuffer(b) 961 buf.EncodeInt32(m.Retval) 962 return buf.Bytes(), nil 963 } 964 func (m *DHCPClientConfigReply) Unmarshal(b []byte) error { 965 buf := codec.NewBuffer(b) 966 m.Retval = buf.DecodeInt32() 967 return nil 968 } 969 970 // DHCP Client details returned from dump 971 // - - client - The configured client 972 // - - lease - The learned lease data 973 // 974 // DHCPClientDetails defines message 'dhcp_client_details'. 975 type DHCPClientDetails struct { 976 Client DHCPClient `binapi:"dhcp_client,name=client" json:"client,omitempty"` 977 Lease DHCPLease `binapi:"dhcp_lease,name=lease" json:"lease,omitempty"` 978 } 979 980 func (m *DHCPClientDetails) Reset() { *m = DHCPClientDetails{} } 981 func (*DHCPClientDetails) GetMessageName() string { return "dhcp_client_details" } 982 func (*DHCPClientDetails) GetCrcString() string { return "8897b2d8" } 983 func (*DHCPClientDetails) GetMessageType() api.MessageType { 984 return api.ReplyMessage 985 } 986 987 func (m *DHCPClientDetails) Size() (size int) { 988 if m == nil { 989 return 0 990 } 991 size += 4 // m.Client.SwIfIndex 992 size += 64 // m.Client.Hostname 993 size += 1 * 64 // m.Client.ID 994 size += 1 // m.Client.WantDHCPEvent 995 size += 1 // m.Client.SetBroadcastFlag 996 size += 1 // m.Client.Dscp 997 size += 4 // m.Client.PID 998 size += 4 // m.Lease.SwIfIndex 999 size += 4 // m.Lease.State 1000 size += 1 // m.Lease.IsIPv6 1001 size += 64 // m.Lease.Hostname 1002 size += 1 // m.Lease.MaskWidth 1003 size += 1 // m.Lease.HostAddress.Af 1004 size += 1 * 16 // m.Lease.HostAddress.Un 1005 size += 1 // m.Lease.RouterAddress.Af 1006 size += 1 * 16 // m.Lease.RouterAddress.Un 1007 size += 1 * 6 // m.Lease.HostMac 1008 size += 1 // m.Lease.Count 1009 for j2 := 0; j2 < len(m.Lease.DomainServer); j2++ { 1010 var s2 DomainServer 1011 _ = s2 1012 if j2 < len(m.Lease.DomainServer) { 1013 s2 = m.Lease.DomainServer[j2] 1014 } 1015 size += 1 // s2.Address.Af 1016 size += 1 * 16 // s2.Address.Un 1017 } 1018 return size 1019 } 1020 func (m *DHCPClientDetails) Marshal(b []byte) ([]byte, error) { 1021 if b == nil { 1022 b = make([]byte, m.Size()) 1023 } 1024 buf := codec.NewBuffer(b) 1025 buf.EncodeUint32(uint32(m.Client.SwIfIndex)) 1026 buf.EncodeString(m.Client.Hostname, 64) 1027 buf.EncodeBytes(m.Client.ID, 64) 1028 buf.EncodeBool(m.Client.WantDHCPEvent) 1029 buf.EncodeBool(m.Client.SetBroadcastFlag) 1030 buf.EncodeUint8(uint8(m.Client.Dscp)) 1031 buf.EncodeUint32(m.Client.PID) 1032 buf.EncodeUint32(uint32(m.Lease.SwIfIndex)) 1033 buf.EncodeUint32(uint32(m.Lease.State)) 1034 buf.EncodeBool(m.Lease.IsIPv6) 1035 buf.EncodeString(m.Lease.Hostname, 64) 1036 buf.EncodeUint8(m.Lease.MaskWidth) 1037 buf.EncodeUint8(uint8(m.Lease.HostAddress.Af)) 1038 buf.EncodeBytes(m.Lease.HostAddress.Un.XXX_UnionData[:], 16) 1039 buf.EncodeUint8(uint8(m.Lease.RouterAddress.Af)) 1040 buf.EncodeBytes(m.Lease.RouterAddress.Un.XXX_UnionData[:], 16) 1041 buf.EncodeBytes(m.Lease.HostMac[:], 6) 1042 buf.EncodeUint8(uint8(len(m.Lease.DomainServer))) 1043 for j1 := 0; j1 < len(m.Lease.DomainServer); j1++ { 1044 var v1 DomainServer // DomainServer 1045 if j1 < len(m.Lease.DomainServer) { 1046 v1 = m.Lease.DomainServer[j1] 1047 } 1048 buf.EncodeUint8(uint8(v1.Address.Af)) 1049 buf.EncodeBytes(v1.Address.Un.XXX_UnionData[:], 16) 1050 } 1051 return buf.Bytes(), nil 1052 } 1053 func (m *DHCPClientDetails) Unmarshal(b []byte) error { 1054 buf := codec.NewBuffer(b) 1055 m.Client.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 1056 m.Client.Hostname = buf.DecodeString(64) 1057 m.Client.ID = make([]byte, 64) 1058 copy(m.Client.ID, buf.DecodeBytes(len(m.Client.ID))) 1059 m.Client.WantDHCPEvent = buf.DecodeBool() 1060 m.Client.SetBroadcastFlag = buf.DecodeBool() 1061 m.Client.Dscp = ip_types.IPDscp(buf.DecodeUint8()) 1062 m.Client.PID = buf.DecodeUint32() 1063 m.Lease.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 1064 m.Lease.State = DHCPClientState(buf.DecodeUint32()) 1065 m.Lease.IsIPv6 = buf.DecodeBool() 1066 m.Lease.Hostname = buf.DecodeString(64) 1067 m.Lease.MaskWidth = buf.DecodeUint8() 1068 m.Lease.HostAddress.Af = ip_types.AddressFamily(buf.DecodeUint8()) 1069 copy(m.Lease.HostAddress.Un.XXX_UnionData[:], buf.DecodeBytes(16)) 1070 m.Lease.RouterAddress.Af = ip_types.AddressFamily(buf.DecodeUint8()) 1071 copy(m.Lease.RouterAddress.Un.XXX_UnionData[:], buf.DecodeBytes(16)) 1072 copy(m.Lease.HostMac[:], buf.DecodeBytes(6)) 1073 m.Lease.Count = buf.DecodeUint8() 1074 m.Lease.DomainServer = make([]DomainServer, m.Lease.Count) 1075 for j1 := 0; j1 < len(m.Lease.DomainServer); j1++ { 1076 m.Lease.DomainServer[j1].Address.Af = ip_types.AddressFamily(buf.DecodeUint8()) 1077 copy(m.Lease.DomainServer[j1].Address.Un.XXX_UnionData[:], buf.DecodeBytes(16)) 1078 } 1079 return nil 1080 } 1081 1082 // Dump the DHCP client configurations 1083 // DHCPClientDump defines message 'dhcp_client_dump'. 1084 type DHCPClientDump struct{} 1085 1086 func (m *DHCPClientDump) Reset() { *m = DHCPClientDump{} } 1087 func (*DHCPClientDump) GetMessageName() string { return "dhcp_client_dump" } 1088 func (*DHCPClientDump) GetCrcString() string { return "51077d14" } 1089 func (*DHCPClientDump) GetMessageType() api.MessageType { 1090 return api.RequestMessage 1091 } 1092 1093 func (m *DHCPClientDump) Size() (size int) { 1094 if m == nil { 1095 return 0 1096 } 1097 return size 1098 } 1099 func (m *DHCPClientDump) Marshal(b []byte) ([]byte, error) { 1100 if b == nil { 1101 b = make([]byte, m.Size()) 1102 } 1103 buf := codec.NewBuffer(b) 1104 return buf.Bytes(), nil 1105 } 1106 func (m *DHCPClientDump) Unmarshal(b []byte) error { 1107 return nil 1108 } 1109 1110 // Tell client about a DHCP completion event 1111 // - pid - client pid registered to receive notification 1112 // - lease - Data learned during the DHCP process; 1113 // 1114 // DHCPComplEvent defines message 'dhcp_compl_event'. 1115 type DHCPComplEvent struct { 1116 PID uint32 `binapi:"u32,name=pid" json:"pid,omitempty"` 1117 Lease DHCPLease `binapi:"dhcp_lease,name=lease" json:"lease,omitempty"` 1118 } 1119 1120 func (m *DHCPComplEvent) Reset() { *m = DHCPComplEvent{} } 1121 func (*DHCPComplEvent) GetMessageName() string { return "dhcp_compl_event" } 1122 func (*DHCPComplEvent) GetCrcString() string { return "e18124b7" } 1123 func (*DHCPComplEvent) GetMessageType() api.MessageType { 1124 return api.EventMessage 1125 } 1126 1127 func (m *DHCPComplEvent) Size() (size int) { 1128 if m == nil { 1129 return 0 1130 } 1131 size += 4 // m.PID 1132 size += 4 // m.Lease.SwIfIndex 1133 size += 4 // m.Lease.State 1134 size += 1 // m.Lease.IsIPv6 1135 size += 64 // m.Lease.Hostname 1136 size += 1 // m.Lease.MaskWidth 1137 size += 1 // m.Lease.HostAddress.Af 1138 size += 1 * 16 // m.Lease.HostAddress.Un 1139 size += 1 // m.Lease.RouterAddress.Af 1140 size += 1 * 16 // m.Lease.RouterAddress.Un 1141 size += 1 * 6 // m.Lease.HostMac 1142 size += 1 // m.Lease.Count 1143 for j2 := 0; j2 < len(m.Lease.DomainServer); j2++ { 1144 var s2 DomainServer 1145 _ = s2 1146 if j2 < len(m.Lease.DomainServer) { 1147 s2 = m.Lease.DomainServer[j2] 1148 } 1149 size += 1 // s2.Address.Af 1150 size += 1 * 16 // s2.Address.Un 1151 } 1152 return size 1153 } 1154 func (m *DHCPComplEvent) Marshal(b []byte) ([]byte, error) { 1155 if b == nil { 1156 b = make([]byte, m.Size()) 1157 } 1158 buf := codec.NewBuffer(b) 1159 buf.EncodeUint32(m.PID) 1160 buf.EncodeUint32(uint32(m.Lease.SwIfIndex)) 1161 buf.EncodeUint32(uint32(m.Lease.State)) 1162 buf.EncodeBool(m.Lease.IsIPv6) 1163 buf.EncodeString(m.Lease.Hostname, 64) 1164 buf.EncodeUint8(m.Lease.MaskWidth) 1165 buf.EncodeUint8(uint8(m.Lease.HostAddress.Af)) 1166 buf.EncodeBytes(m.Lease.HostAddress.Un.XXX_UnionData[:], 16) 1167 buf.EncodeUint8(uint8(m.Lease.RouterAddress.Af)) 1168 buf.EncodeBytes(m.Lease.RouterAddress.Un.XXX_UnionData[:], 16) 1169 buf.EncodeBytes(m.Lease.HostMac[:], 6) 1170 buf.EncodeUint8(uint8(len(m.Lease.DomainServer))) 1171 for j1 := 0; j1 < len(m.Lease.DomainServer); j1++ { 1172 var v1 DomainServer // DomainServer 1173 if j1 < len(m.Lease.DomainServer) { 1174 v1 = m.Lease.DomainServer[j1] 1175 } 1176 buf.EncodeUint8(uint8(v1.Address.Af)) 1177 buf.EncodeBytes(v1.Address.Un.XXX_UnionData[:], 16) 1178 } 1179 return buf.Bytes(), nil 1180 } 1181 func (m *DHCPComplEvent) Unmarshal(b []byte) error { 1182 buf := codec.NewBuffer(b) 1183 m.PID = buf.DecodeUint32() 1184 m.Lease.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) 1185 m.Lease.State = DHCPClientState(buf.DecodeUint32()) 1186 m.Lease.IsIPv6 = buf.DecodeBool() 1187 m.Lease.Hostname = buf.DecodeString(64) 1188 m.Lease.MaskWidth = buf.DecodeUint8() 1189 m.Lease.HostAddress.Af = ip_types.AddressFamily(buf.DecodeUint8()) 1190 copy(m.Lease.HostAddress.Un.XXX_UnionData[:], buf.DecodeBytes(16)) 1191 m.Lease.RouterAddress.Af = ip_types.AddressFamily(buf.DecodeUint8()) 1192 copy(m.Lease.RouterAddress.Un.XXX_UnionData[:], buf.DecodeBytes(16)) 1193 copy(m.Lease.HostMac[:], buf.DecodeBytes(6)) 1194 m.Lease.Count = buf.DecodeUint8() 1195 m.Lease.DomainServer = make([]DomainServer, m.Lease.Count) 1196 for j1 := 0; j1 < len(m.Lease.DomainServer); j1++ { 1197 m.Lease.DomainServer[j1].Address.Af = ip_types.AddressFamily(buf.DecodeUint8()) 1198 copy(m.Lease.DomainServer[j1].Address.Un.XXX_UnionData[:], buf.DecodeBytes(16)) 1199 } 1200 return nil 1201 } 1202 1203 // Control ping from client to api server request 1204 // DHCPPluginControlPing defines message 'dhcp_plugin_control_ping'. 1205 type DHCPPluginControlPing struct{} 1206 1207 func (m *DHCPPluginControlPing) Reset() { *m = DHCPPluginControlPing{} } 1208 func (*DHCPPluginControlPing) GetMessageName() string { return "dhcp_plugin_control_ping" } 1209 func (*DHCPPluginControlPing) GetCrcString() string { return "51077d14" } 1210 func (*DHCPPluginControlPing) GetMessageType() api.MessageType { 1211 return api.RequestMessage 1212 } 1213 1214 func (m *DHCPPluginControlPing) Size() (size int) { 1215 if m == nil { 1216 return 0 1217 } 1218 return size 1219 } 1220 func (m *DHCPPluginControlPing) Marshal(b []byte) ([]byte, error) { 1221 if b == nil { 1222 b = make([]byte, m.Size()) 1223 } 1224 buf := codec.NewBuffer(b) 1225 return buf.Bytes(), nil 1226 } 1227 func (m *DHCPPluginControlPing) Unmarshal(b []byte) error { 1228 return nil 1229 } 1230 1231 // Control ping from the client to the server response 1232 // - retval - return code for the request 1233 // - vpe_pid - the pid of the vpe, returned by the server 1234 // 1235 // DHCPPluginControlPingReply defines message 'dhcp_plugin_control_ping_reply'. 1236 type DHCPPluginControlPingReply struct { 1237 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1238 ClientIndex uint32 `binapi:"u32,name=client_index" json:"client_index,omitempty"` 1239 VpePID uint32 `binapi:"u32,name=vpe_pid" json:"vpe_pid,omitempty"` 1240 } 1241 1242 func (m *DHCPPluginControlPingReply) Reset() { *m = DHCPPluginControlPingReply{} } 1243 func (*DHCPPluginControlPingReply) GetMessageName() string { return "dhcp_plugin_control_ping_reply" } 1244 func (*DHCPPluginControlPingReply) GetCrcString() string { return "f6b0b8ca" } 1245 func (*DHCPPluginControlPingReply) GetMessageType() api.MessageType { 1246 return api.ReplyMessage 1247 } 1248 1249 func (m *DHCPPluginControlPingReply) Size() (size int) { 1250 if m == nil { 1251 return 0 1252 } 1253 size += 4 // m.Retval 1254 size += 4 // m.ClientIndex 1255 size += 4 // m.VpePID 1256 return size 1257 } 1258 func (m *DHCPPluginControlPingReply) Marshal(b []byte) ([]byte, error) { 1259 if b == nil { 1260 b = make([]byte, m.Size()) 1261 } 1262 buf := codec.NewBuffer(b) 1263 buf.EncodeInt32(m.Retval) 1264 buf.EncodeUint32(m.ClientIndex) 1265 buf.EncodeUint32(m.VpePID) 1266 return buf.Bytes(), nil 1267 } 1268 func (m *DHCPPluginControlPingReply) Unmarshal(b []byte) error { 1269 buf := codec.NewBuffer(b) 1270 m.Retval = buf.DecodeInt32() 1271 m.ClientIndex = buf.DecodeUint32() 1272 m.VpePID = buf.DecodeUint32() 1273 return nil 1274 } 1275 1276 // Get the plugin version 1277 // DHCPPluginGetVersion defines message 'dhcp_plugin_get_version'. 1278 type DHCPPluginGetVersion struct{} 1279 1280 func (m *DHCPPluginGetVersion) Reset() { *m = DHCPPluginGetVersion{} } 1281 func (*DHCPPluginGetVersion) GetMessageName() string { return "dhcp_plugin_get_version" } 1282 func (*DHCPPluginGetVersion) GetCrcString() string { return "51077d14" } 1283 func (*DHCPPluginGetVersion) GetMessageType() api.MessageType { 1284 return api.RequestMessage 1285 } 1286 1287 func (m *DHCPPluginGetVersion) Size() (size int) { 1288 if m == nil { 1289 return 0 1290 } 1291 return size 1292 } 1293 func (m *DHCPPluginGetVersion) Marshal(b []byte) ([]byte, error) { 1294 if b == nil { 1295 b = make([]byte, m.Size()) 1296 } 1297 buf := codec.NewBuffer(b) 1298 return buf.Bytes(), nil 1299 } 1300 func (m *DHCPPluginGetVersion) Unmarshal(b []byte) error { 1301 return nil 1302 } 1303 1304 // Reply to get the plugin version 1305 // - major - Incremented every time a known breaking behavior change is introduced 1306 // - minor - Incremented with small changes, may be used to avoid buggy versions 1307 // 1308 // DHCPPluginGetVersionReply defines message 'dhcp_plugin_get_version_reply'. 1309 type DHCPPluginGetVersionReply struct { 1310 Major uint32 `binapi:"u32,name=major" json:"major,omitempty"` 1311 Minor uint32 `binapi:"u32,name=minor" json:"minor,omitempty"` 1312 } 1313 1314 func (m *DHCPPluginGetVersionReply) Reset() { *m = DHCPPluginGetVersionReply{} } 1315 func (*DHCPPluginGetVersionReply) GetMessageName() string { return "dhcp_plugin_get_version_reply" } 1316 func (*DHCPPluginGetVersionReply) GetCrcString() string { return "9b32cf86" } 1317 func (*DHCPPluginGetVersionReply) GetMessageType() api.MessageType { 1318 return api.ReplyMessage 1319 } 1320 1321 func (m *DHCPPluginGetVersionReply) Size() (size int) { 1322 if m == nil { 1323 return 0 1324 } 1325 size += 4 // m.Major 1326 size += 4 // m.Minor 1327 return size 1328 } 1329 func (m *DHCPPluginGetVersionReply) Marshal(b []byte) ([]byte, error) { 1330 if b == nil { 1331 b = make([]byte, m.Size()) 1332 } 1333 buf := codec.NewBuffer(b) 1334 buf.EncodeUint32(m.Major) 1335 buf.EncodeUint32(m.Minor) 1336 return buf.Bytes(), nil 1337 } 1338 func (m *DHCPPluginGetVersionReply) Unmarshal(b []byte) error { 1339 buf := codec.NewBuffer(b) 1340 m.Major = buf.DecodeUint32() 1341 m.Minor = buf.DecodeUint32() 1342 return nil 1343 } 1344 1345 // DHCP Proxy config add / del request 1346 // - rx_vrf_id - Rx/interface vrf id 1347 // - server_vrf_id - server vrf id 1348 // - is_add - add the config if non-zero, else delete 1349 // - insert_circuit_id - option82 suboption 1 fib number 1350 // - dhcp_server[] - server address 1351 // - dhcp_src_address[] - sc address for packets sent to the server 1352 // 1353 // DHCPProxyConfig defines message 'dhcp_proxy_config'. 1354 type DHCPProxyConfig struct { 1355 RxVrfID uint32 `binapi:"u32,name=rx_vrf_id" json:"rx_vrf_id,omitempty"` 1356 ServerVrfID uint32 `binapi:"u32,name=server_vrf_id" json:"server_vrf_id,omitempty"` 1357 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 1358 DHCPServer ip_types.Address `binapi:"address,name=dhcp_server" json:"dhcp_server,omitempty"` 1359 DHCPSrcAddress ip_types.Address `binapi:"address,name=dhcp_src_address" json:"dhcp_src_address,omitempty"` 1360 } 1361 1362 func (m *DHCPProxyConfig) Reset() { *m = DHCPProxyConfig{} } 1363 func (*DHCPProxyConfig) GetMessageName() string { return "dhcp_proxy_config" } 1364 func (*DHCPProxyConfig) GetCrcString() string { return "4058a689" } 1365 func (*DHCPProxyConfig) GetMessageType() api.MessageType { 1366 return api.RequestMessage 1367 } 1368 1369 func (m *DHCPProxyConfig) Size() (size int) { 1370 if m == nil { 1371 return 0 1372 } 1373 size += 4 // m.RxVrfID 1374 size += 4 // m.ServerVrfID 1375 size += 1 // m.IsAdd 1376 size += 1 // m.DHCPServer.Af 1377 size += 1 * 16 // m.DHCPServer.Un 1378 size += 1 // m.DHCPSrcAddress.Af 1379 size += 1 * 16 // m.DHCPSrcAddress.Un 1380 return size 1381 } 1382 func (m *DHCPProxyConfig) Marshal(b []byte) ([]byte, error) { 1383 if b == nil { 1384 b = make([]byte, m.Size()) 1385 } 1386 buf := codec.NewBuffer(b) 1387 buf.EncodeUint32(m.RxVrfID) 1388 buf.EncodeUint32(m.ServerVrfID) 1389 buf.EncodeBool(m.IsAdd) 1390 buf.EncodeUint8(uint8(m.DHCPServer.Af)) 1391 buf.EncodeBytes(m.DHCPServer.Un.XXX_UnionData[:], 16) 1392 buf.EncodeUint8(uint8(m.DHCPSrcAddress.Af)) 1393 buf.EncodeBytes(m.DHCPSrcAddress.Un.XXX_UnionData[:], 16) 1394 return buf.Bytes(), nil 1395 } 1396 func (m *DHCPProxyConfig) Unmarshal(b []byte) error { 1397 buf := codec.NewBuffer(b) 1398 m.RxVrfID = buf.DecodeUint32() 1399 m.ServerVrfID = buf.DecodeUint32() 1400 m.IsAdd = buf.DecodeBool() 1401 m.DHCPServer.Af = ip_types.AddressFamily(buf.DecodeUint8()) 1402 copy(m.DHCPServer.Un.XXX_UnionData[:], buf.DecodeBytes(16)) 1403 m.DHCPSrcAddress.Af = ip_types.AddressFamily(buf.DecodeUint8()) 1404 copy(m.DHCPSrcAddress.Un.XXX_UnionData[:], buf.DecodeBytes(16)) 1405 return nil 1406 } 1407 1408 // DHCPProxyConfigReply defines message 'dhcp_proxy_config_reply'. 1409 type DHCPProxyConfigReply struct { 1410 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1411 } 1412 1413 func (m *DHCPProxyConfigReply) Reset() { *m = DHCPProxyConfigReply{} } 1414 func (*DHCPProxyConfigReply) GetMessageName() string { return "dhcp_proxy_config_reply" } 1415 func (*DHCPProxyConfigReply) GetCrcString() string { return "e8d4e804" } 1416 func (*DHCPProxyConfigReply) GetMessageType() api.MessageType { 1417 return api.ReplyMessage 1418 } 1419 1420 func (m *DHCPProxyConfigReply) Size() (size int) { 1421 if m == nil { 1422 return 0 1423 } 1424 size += 4 // m.Retval 1425 return size 1426 } 1427 func (m *DHCPProxyConfigReply) Marshal(b []byte) ([]byte, error) { 1428 if b == nil { 1429 b = make([]byte, m.Size()) 1430 } 1431 buf := codec.NewBuffer(b) 1432 buf.EncodeInt32(m.Retval) 1433 return buf.Bytes(), nil 1434 } 1435 func (m *DHCPProxyConfigReply) Unmarshal(b []byte) error { 1436 buf := codec.NewBuffer(b) 1437 m.Retval = buf.DecodeInt32() 1438 return nil 1439 } 1440 1441 // Tell client about a DHCP completion event 1442 // DHCPProxyDetails defines message 'dhcp_proxy_details'. 1443 type DHCPProxyDetails struct { 1444 RxVrfID uint32 `binapi:"u32,name=rx_vrf_id" json:"rx_vrf_id,omitempty"` 1445 VssOui uint32 `binapi:"u32,name=vss_oui" json:"vss_oui,omitempty"` 1446 VssFibID uint32 `binapi:"u32,name=vss_fib_id" json:"vss_fib_id,omitempty"` 1447 VssType VssType `binapi:"vss_type,name=vss_type" json:"vss_type,omitempty"` 1448 IsIPv6 bool `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"` 1449 VssVPNAsciiID string `binapi:"string[129],name=vss_vpn_ascii_id" json:"vss_vpn_ascii_id,omitempty"` 1450 DHCPSrcAddress ip_types.Address `binapi:"address,name=dhcp_src_address" json:"dhcp_src_address,omitempty"` 1451 Count uint8 `binapi:"u8,name=count" json:"-"` 1452 Servers []DHCPServer `binapi:"dhcp_server[count],name=servers" json:"servers,omitempty"` 1453 } 1454 1455 func (m *DHCPProxyDetails) Reset() { *m = DHCPProxyDetails{} } 1456 func (*DHCPProxyDetails) GetMessageName() string { return "dhcp_proxy_details" } 1457 func (*DHCPProxyDetails) GetCrcString() string { return "dcbaf540" } 1458 func (*DHCPProxyDetails) GetMessageType() api.MessageType { 1459 return api.ReplyMessage 1460 } 1461 1462 func (m *DHCPProxyDetails) Size() (size int) { 1463 if m == nil { 1464 return 0 1465 } 1466 size += 4 // m.RxVrfID 1467 size += 4 // m.VssOui 1468 size += 4 // m.VssFibID 1469 size += 4 // m.VssType 1470 size += 1 // m.IsIPv6 1471 size += 129 // m.VssVPNAsciiID 1472 size += 1 // m.DHCPSrcAddress.Af 1473 size += 1 * 16 // m.DHCPSrcAddress.Un 1474 size += 1 // m.Count 1475 for j1 := 0; j1 < len(m.Servers); j1++ { 1476 var s1 DHCPServer 1477 _ = s1 1478 if j1 < len(m.Servers) { 1479 s1 = m.Servers[j1] 1480 } 1481 size += 4 // s1.ServerVrfID 1482 size += 1 // s1.DHCPServer.Af 1483 size += 1 * 16 // s1.DHCPServer.Un 1484 } 1485 return size 1486 } 1487 func (m *DHCPProxyDetails) Marshal(b []byte) ([]byte, error) { 1488 if b == nil { 1489 b = make([]byte, m.Size()) 1490 } 1491 buf := codec.NewBuffer(b) 1492 buf.EncodeUint32(m.RxVrfID) 1493 buf.EncodeUint32(m.VssOui) 1494 buf.EncodeUint32(m.VssFibID) 1495 buf.EncodeUint32(uint32(m.VssType)) 1496 buf.EncodeBool(m.IsIPv6) 1497 buf.EncodeString(m.VssVPNAsciiID, 129) 1498 buf.EncodeUint8(uint8(m.DHCPSrcAddress.Af)) 1499 buf.EncodeBytes(m.DHCPSrcAddress.Un.XXX_UnionData[:], 16) 1500 buf.EncodeUint8(uint8(len(m.Servers))) 1501 for j0 := 0; j0 < len(m.Servers); j0++ { 1502 var v0 DHCPServer // Servers 1503 if j0 < len(m.Servers) { 1504 v0 = m.Servers[j0] 1505 } 1506 buf.EncodeUint32(v0.ServerVrfID) 1507 buf.EncodeUint8(uint8(v0.DHCPServer.Af)) 1508 buf.EncodeBytes(v0.DHCPServer.Un.XXX_UnionData[:], 16) 1509 } 1510 return buf.Bytes(), nil 1511 } 1512 func (m *DHCPProxyDetails) Unmarshal(b []byte) error { 1513 buf := codec.NewBuffer(b) 1514 m.RxVrfID = buf.DecodeUint32() 1515 m.VssOui = buf.DecodeUint32() 1516 m.VssFibID = buf.DecodeUint32() 1517 m.VssType = VssType(buf.DecodeUint32()) 1518 m.IsIPv6 = buf.DecodeBool() 1519 m.VssVPNAsciiID = buf.DecodeString(129) 1520 m.DHCPSrcAddress.Af = ip_types.AddressFamily(buf.DecodeUint8()) 1521 copy(m.DHCPSrcAddress.Un.XXX_UnionData[:], buf.DecodeBytes(16)) 1522 m.Count = buf.DecodeUint8() 1523 m.Servers = make([]DHCPServer, m.Count) 1524 for j0 := 0; j0 < len(m.Servers); j0++ { 1525 m.Servers[j0].ServerVrfID = buf.DecodeUint32() 1526 m.Servers[j0].DHCPServer.Af = ip_types.AddressFamily(buf.DecodeUint8()) 1527 copy(m.Servers[j0].DHCPServer.Un.XXX_UnionData[:], buf.DecodeBytes(16)) 1528 } 1529 return nil 1530 } 1531 1532 // Dump DHCP proxy table 1533 // - True for IPv6 proxy table 1534 // 1535 // DHCPProxyDump defines message 'dhcp_proxy_dump'. 1536 type DHCPProxyDump struct { 1537 IsIP6 bool `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"` 1538 } 1539 1540 func (m *DHCPProxyDump) Reset() { *m = DHCPProxyDump{} } 1541 func (*DHCPProxyDump) GetMessageName() string { return "dhcp_proxy_dump" } 1542 func (*DHCPProxyDump) GetCrcString() string { return "5c5b063f" } 1543 func (*DHCPProxyDump) GetMessageType() api.MessageType { 1544 return api.RequestMessage 1545 } 1546 1547 func (m *DHCPProxyDump) Size() (size int) { 1548 if m == nil { 1549 return 0 1550 } 1551 size += 1 // m.IsIP6 1552 return size 1553 } 1554 func (m *DHCPProxyDump) Marshal(b []byte) ([]byte, error) { 1555 if b == nil { 1556 b = make([]byte, m.Size()) 1557 } 1558 buf := codec.NewBuffer(b) 1559 buf.EncodeBool(m.IsIP6) 1560 return buf.Bytes(), nil 1561 } 1562 func (m *DHCPProxyDump) Unmarshal(b []byte) error { 1563 buf := codec.NewBuffer(b) 1564 m.IsIP6 = buf.DecodeBool() 1565 return nil 1566 } 1567 1568 // DHCP Proxy set / unset vss request 1569 // - tbl_id - table id 1570 // @vss_type - 0: use ASCI vpn_id; 1: use oui/vpn_index; 255: global vpn 1571 // @vpn_ascii - null terminated ASCII VPN ID up to 128 characters 1572 // - oui - first part of rfc2685 vpn id, 3 bytes oui 1573 // - vpn_index - second part of rfc2685 vpn id, 4 bytes vpn index 1574 // - is_ipv6 - ip6 if non-zero, else ip4 1575 // - is_add - set vss if non-zero, else delete 1576 // 1577 // DHCPProxySetVss defines message 'dhcp_proxy_set_vss'. 1578 type DHCPProxySetVss struct { 1579 TblID uint32 `binapi:"u32,name=tbl_id" json:"tbl_id,omitempty"` 1580 VssType VssType `binapi:"vss_type,name=vss_type" json:"vss_type,omitempty"` 1581 VPNAsciiID string `binapi:"string[129],name=vpn_ascii_id" json:"vpn_ascii_id,omitempty"` 1582 Oui uint32 `binapi:"u32,name=oui" json:"oui,omitempty"` 1583 VPNIndex uint32 `binapi:"u32,name=vpn_index" json:"vpn_index,omitempty"` 1584 IsIPv6 bool `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"` 1585 IsAdd bool `binapi:"bool,name=is_add" json:"is_add,omitempty"` 1586 } 1587 1588 func (m *DHCPProxySetVss) Reset() { *m = DHCPProxySetVss{} } 1589 func (*DHCPProxySetVss) GetMessageName() string { return "dhcp_proxy_set_vss" } 1590 func (*DHCPProxySetVss) GetCrcString() string { return "50537301" } 1591 func (*DHCPProxySetVss) GetMessageType() api.MessageType { 1592 return api.RequestMessage 1593 } 1594 1595 func (m *DHCPProxySetVss) Size() (size int) { 1596 if m == nil { 1597 return 0 1598 } 1599 size += 4 // m.TblID 1600 size += 4 // m.VssType 1601 size += 129 // m.VPNAsciiID 1602 size += 4 // m.Oui 1603 size += 4 // m.VPNIndex 1604 size += 1 // m.IsIPv6 1605 size += 1 // m.IsAdd 1606 return size 1607 } 1608 func (m *DHCPProxySetVss) Marshal(b []byte) ([]byte, error) { 1609 if b == nil { 1610 b = make([]byte, m.Size()) 1611 } 1612 buf := codec.NewBuffer(b) 1613 buf.EncodeUint32(m.TblID) 1614 buf.EncodeUint32(uint32(m.VssType)) 1615 buf.EncodeString(m.VPNAsciiID, 129) 1616 buf.EncodeUint32(m.Oui) 1617 buf.EncodeUint32(m.VPNIndex) 1618 buf.EncodeBool(m.IsIPv6) 1619 buf.EncodeBool(m.IsAdd) 1620 return buf.Bytes(), nil 1621 } 1622 func (m *DHCPProxySetVss) Unmarshal(b []byte) error { 1623 buf := codec.NewBuffer(b) 1624 m.TblID = buf.DecodeUint32() 1625 m.VssType = VssType(buf.DecodeUint32()) 1626 m.VPNAsciiID = buf.DecodeString(129) 1627 m.Oui = buf.DecodeUint32() 1628 m.VPNIndex = buf.DecodeUint32() 1629 m.IsIPv6 = buf.DecodeBool() 1630 m.IsAdd = buf.DecodeBool() 1631 return nil 1632 } 1633 1634 // DHCPProxySetVssReply defines message 'dhcp_proxy_set_vss_reply'. 1635 type DHCPProxySetVssReply struct { 1636 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1637 } 1638 1639 func (m *DHCPProxySetVssReply) Reset() { *m = DHCPProxySetVssReply{} } 1640 func (*DHCPProxySetVssReply) GetMessageName() string { return "dhcp_proxy_set_vss_reply" } 1641 func (*DHCPProxySetVssReply) GetCrcString() string { return "e8d4e804" } 1642 func (*DHCPProxySetVssReply) GetMessageType() api.MessageType { 1643 return api.ReplyMessage 1644 } 1645 1646 func (m *DHCPProxySetVssReply) Size() (size int) { 1647 if m == nil { 1648 return 0 1649 } 1650 size += 4 // m.Retval 1651 return size 1652 } 1653 func (m *DHCPProxySetVssReply) Marshal(b []byte) ([]byte, error) { 1654 if b == nil { 1655 b = make([]byte, m.Size()) 1656 } 1657 buf := codec.NewBuffer(b) 1658 buf.EncodeInt32(m.Retval) 1659 return buf.Bytes(), nil 1660 } 1661 func (m *DHCPProxySetVssReply) Unmarshal(b []byte) error { 1662 buf := codec.NewBuffer(b) 1663 m.Retval = buf.DecodeInt32() 1664 return nil 1665 } 1666 1667 // Register for DHCPv6 PD reply events 1668 // - enable_disable - 1 => register for events, 0 => cancel registration 1669 // - pid - sender's pid 1670 // 1671 // WantDHCP6PdReplyEvents defines message 'want_dhcp6_pd_reply_events'. 1672 type WantDHCP6PdReplyEvents struct { 1673 EnableDisable bool `binapi:"bool,name=enable_disable" json:"enable_disable,omitempty"` 1674 PID uint32 `binapi:"u32,name=pid" json:"pid,omitempty"` 1675 } 1676 1677 func (m *WantDHCP6PdReplyEvents) Reset() { *m = WantDHCP6PdReplyEvents{} } 1678 func (*WantDHCP6PdReplyEvents) GetMessageName() string { return "want_dhcp6_pd_reply_events" } 1679 func (*WantDHCP6PdReplyEvents) GetCrcString() string { return "c5e2af94" } 1680 func (*WantDHCP6PdReplyEvents) GetMessageType() api.MessageType { 1681 return api.RequestMessage 1682 } 1683 1684 func (m *WantDHCP6PdReplyEvents) Size() (size int) { 1685 if m == nil { 1686 return 0 1687 } 1688 size += 1 // m.EnableDisable 1689 size += 4 // m.PID 1690 return size 1691 } 1692 func (m *WantDHCP6PdReplyEvents) Marshal(b []byte) ([]byte, error) { 1693 if b == nil { 1694 b = make([]byte, m.Size()) 1695 } 1696 buf := codec.NewBuffer(b) 1697 buf.EncodeBool(m.EnableDisable) 1698 buf.EncodeUint32(m.PID) 1699 return buf.Bytes(), nil 1700 } 1701 func (m *WantDHCP6PdReplyEvents) Unmarshal(b []byte) error { 1702 buf := codec.NewBuffer(b) 1703 m.EnableDisable = buf.DecodeBool() 1704 m.PID = buf.DecodeUint32() 1705 return nil 1706 } 1707 1708 // WantDHCP6PdReplyEventsReply defines message 'want_dhcp6_pd_reply_events_reply'. 1709 type WantDHCP6PdReplyEventsReply struct { 1710 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1711 } 1712 1713 func (m *WantDHCP6PdReplyEventsReply) Reset() { *m = WantDHCP6PdReplyEventsReply{} } 1714 func (*WantDHCP6PdReplyEventsReply) GetMessageName() string { 1715 return "want_dhcp6_pd_reply_events_reply" 1716 } 1717 func (*WantDHCP6PdReplyEventsReply) GetCrcString() string { return "e8d4e804" } 1718 func (*WantDHCP6PdReplyEventsReply) GetMessageType() api.MessageType { 1719 return api.ReplyMessage 1720 } 1721 1722 func (m *WantDHCP6PdReplyEventsReply) Size() (size int) { 1723 if m == nil { 1724 return 0 1725 } 1726 size += 4 // m.Retval 1727 return size 1728 } 1729 func (m *WantDHCP6PdReplyEventsReply) Marshal(b []byte) ([]byte, error) { 1730 if b == nil { 1731 b = make([]byte, m.Size()) 1732 } 1733 buf := codec.NewBuffer(b) 1734 buf.EncodeInt32(m.Retval) 1735 return buf.Bytes(), nil 1736 } 1737 func (m *WantDHCP6PdReplyEventsReply) Unmarshal(b []byte) error { 1738 buf := codec.NewBuffer(b) 1739 m.Retval = buf.DecodeInt32() 1740 return nil 1741 } 1742 1743 // Register for DHCPv6 reply events 1744 // - enable_disable - 1 => register for events, 0 => cancel registration 1745 // - pid - sender's pid 1746 // 1747 // WantDHCP6ReplyEvents defines message 'want_dhcp6_reply_events'. 1748 type WantDHCP6ReplyEvents struct { 1749 EnableDisable uint8 `binapi:"u8,name=enable_disable" json:"enable_disable,omitempty"` 1750 PID uint32 `binapi:"u32,name=pid" json:"pid,omitempty"` 1751 } 1752 1753 func (m *WantDHCP6ReplyEvents) Reset() { *m = WantDHCP6ReplyEvents{} } 1754 func (*WantDHCP6ReplyEvents) GetMessageName() string { return "want_dhcp6_reply_events" } 1755 func (*WantDHCP6ReplyEvents) GetCrcString() string { return "05b454b5" } 1756 func (*WantDHCP6ReplyEvents) GetMessageType() api.MessageType { 1757 return api.RequestMessage 1758 } 1759 1760 func (m *WantDHCP6ReplyEvents) Size() (size int) { 1761 if m == nil { 1762 return 0 1763 } 1764 size += 1 // m.EnableDisable 1765 size += 4 // m.PID 1766 return size 1767 } 1768 func (m *WantDHCP6ReplyEvents) Marshal(b []byte) ([]byte, error) { 1769 if b == nil { 1770 b = make([]byte, m.Size()) 1771 } 1772 buf := codec.NewBuffer(b) 1773 buf.EncodeUint8(m.EnableDisable) 1774 buf.EncodeUint32(m.PID) 1775 return buf.Bytes(), nil 1776 } 1777 func (m *WantDHCP6ReplyEvents) Unmarshal(b []byte) error { 1778 buf := codec.NewBuffer(b) 1779 m.EnableDisable = buf.DecodeUint8() 1780 m.PID = buf.DecodeUint32() 1781 return nil 1782 } 1783 1784 // WantDHCP6ReplyEventsReply defines message 'want_dhcp6_reply_events_reply'. 1785 type WantDHCP6ReplyEventsReply struct { 1786 Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` 1787 } 1788 1789 func (m *WantDHCP6ReplyEventsReply) Reset() { *m = WantDHCP6ReplyEventsReply{} } 1790 func (*WantDHCP6ReplyEventsReply) GetMessageName() string { return "want_dhcp6_reply_events_reply" } 1791 func (*WantDHCP6ReplyEventsReply) GetCrcString() string { return "e8d4e804" } 1792 func (*WantDHCP6ReplyEventsReply) GetMessageType() api.MessageType { 1793 return api.ReplyMessage 1794 } 1795 1796 func (m *WantDHCP6ReplyEventsReply) Size() (size int) { 1797 if m == nil { 1798 return 0 1799 } 1800 size += 4 // m.Retval 1801 return size 1802 } 1803 func (m *WantDHCP6ReplyEventsReply) Marshal(b []byte) ([]byte, error) { 1804 if b == nil { 1805 b = make([]byte, m.Size()) 1806 } 1807 buf := codec.NewBuffer(b) 1808 buf.EncodeInt32(m.Retval) 1809 return buf.Bytes(), nil 1810 } 1811 func (m *WantDHCP6ReplyEventsReply) Unmarshal(b []byte) error { 1812 buf := codec.NewBuffer(b) 1813 m.Retval = buf.DecodeInt32() 1814 return nil 1815 } 1816 1817 func init() { file_dhcp_binapi_init() } 1818 func file_dhcp_binapi_init() { 1819 api.RegisterMessage((*DHCP6ClientsEnableDisable)(nil), "dhcp6_clients_enable_disable_b3e225d2") 1820 api.RegisterMessage((*DHCP6ClientsEnableDisableReply)(nil), "dhcp6_clients_enable_disable_reply_e8d4e804") 1821 api.RegisterMessage((*DHCP6DuidLlSet)(nil), "dhcp6_duid_ll_set_0f6ca323") 1822 api.RegisterMessage((*DHCP6DuidLlSetReply)(nil), "dhcp6_duid_ll_set_reply_e8d4e804") 1823 api.RegisterMessage((*DHCP6PdReplyEvent)(nil), "dhcp6_pd_reply_event_5e878029") 1824 api.RegisterMessage((*DHCP6PdSendClientMessage)(nil), "dhcp6_pd_send_client_message_3739fd8d") 1825 api.RegisterMessage((*DHCP6PdSendClientMessageReply)(nil), "dhcp6_pd_send_client_message_reply_e8d4e804") 1826 api.RegisterMessage((*DHCP6ReplyEvent)(nil), "dhcp6_reply_event_85b7b17e") 1827 api.RegisterMessage((*DHCP6SendClientMessage)(nil), "dhcp6_send_client_message_f8222476") 1828 api.RegisterMessage((*DHCP6SendClientMessageReply)(nil), "dhcp6_send_client_message_reply_e8d4e804") 1829 api.RegisterMessage((*DHCPClientConfig)(nil), "dhcp_client_config_1af013ea") 1830 api.RegisterMessage((*DHCPClientConfigReply)(nil), "dhcp_client_config_reply_e8d4e804") 1831 api.RegisterMessage((*DHCPClientDetails)(nil), "dhcp_client_details_8897b2d8") 1832 api.RegisterMessage((*DHCPClientDump)(nil), "dhcp_client_dump_51077d14") 1833 api.RegisterMessage((*DHCPComplEvent)(nil), "dhcp_compl_event_e18124b7") 1834 api.RegisterMessage((*DHCPPluginControlPing)(nil), "dhcp_plugin_control_ping_51077d14") 1835 api.RegisterMessage((*DHCPPluginControlPingReply)(nil), "dhcp_plugin_control_ping_reply_f6b0b8ca") 1836 api.RegisterMessage((*DHCPPluginGetVersion)(nil), "dhcp_plugin_get_version_51077d14") 1837 api.RegisterMessage((*DHCPPluginGetVersionReply)(nil), "dhcp_plugin_get_version_reply_9b32cf86") 1838 api.RegisterMessage((*DHCPProxyConfig)(nil), "dhcp_proxy_config_4058a689") 1839 api.RegisterMessage((*DHCPProxyConfigReply)(nil), "dhcp_proxy_config_reply_e8d4e804") 1840 api.RegisterMessage((*DHCPProxyDetails)(nil), "dhcp_proxy_details_dcbaf540") 1841 api.RegisterMessage((*DHCPProxyDump)(nil), "dhcp_proxy_dump_5c5b063f") 1842 api.RegisterMessage((*DHCPProxySetVss)(nil), "dhcp_proxy_set_vss_50537301") 1843 api.RegisterMessage((*DHCPProxySetVssReply)(nil), "dhcp_proxy_set_vss_reply_e8d4e804") 1844 api.RegisterMessage((*WantDHCP6PdReplyEvents)(nil), "want_dhcp6_pd_reply_events_c5e2af94") 1845 api.RegisterMessage((*WantDHCP6PdReplyEventsReply)(nil), "want_dhcp6_pd_reply_events_reply_e8d4e804") 1846 api.RegisterMessage((*WantDHCP6ReplyEvents)(nil), "want_dhcp6_reply_events_05b454b5") 1847 api.RegisterMessage((*WantDHCP6ReplyEventsReply)(nil), "want_dhcp6_reply_events_reply_e8d4e804") 1848 } 1849 1850 // Messages returns list of all messages in this module. 1851 func AllMessages() []api.Message { 1852 return []api.Message{ 1853 (*DHCP6ClientsEnableDisable)(nil), 1854 (*DHCP6ClientsEnableDisableReply)(nil), 1855 (*DHCP6DuidLlSet)(nil), 1856 (*DHCP6DuidLlSetReply)(nil), 1857 (*DHCP6PdReplyEvent)(nil), 1858 (*DHCP6PdSendClientMessage)(nil), 1859 (*DHCP6PdSendClientMessageReply)(nil), 1860 (*DHCP6ReplyEvent)(nil), 1861 (*DHCP6SendClientMessage)(nil), 1862 (*DHCP6SendClientMessageReply)(nil), 1863 (*DHCPClientConfig)(nil), 1864 (*DHCPClientConfigReply)(nil), 1865 (*DHCPClientDetails)(nil), 1866 (*DHCPClientDump)(nil), 1867 (*DHCPComplEvent)(nil), 1868 (*DHCPPluginControlPing)(nil), 1869 (*DHCPPluginControlPingReply)(nil), 1870 (*DHCPPluginGetVersion)(nil), 1871 (*DHCPPluginGetVersionReply)(nil), 1872 (*DHCPProxyConfig)(nil), 1873 (*DHCPProxyConfigReply)(nil), 1874 (*DHCPProxyDetails)(nil), 1875 (*DHCPProxyDump)(nil), 1876 (*DHCPProxySetVss)(nil), 1877 (*DHCPProxySetVssReply)(nil), 1878 (*WantDHCP6PdReplyEvents)(nil), 1879 (*WantDHCP6PdReplyEventsReply)(nil), 1880 (*WantDHCP6ReplyEvents)(nil), 1881 (*WantDHCP6ReplyEventsReply)(nil), 1882 } 1883 }