290abec01ef1fd3ec9ce9f6d6b8621fe490087f3
[govpp.git] / examples / bin_api / ip / ip.ba.go
1 // Code generated by GoVPP binapi-generator. DO NOT EDIT.
2 //  source: ip.api.json
3
4 /*
5  Package ip is a generated from VPP binary API module 'ip'.
6
7  It contains following objects:
8          44 services
9           1 enum
10           3 aliases
11          11 types
12           1 union
13          91 messages
14 */
15 package ip
16
17 import "git.fd.io/govpp.git/api"
18 import "github.com/lunixbochs/struc"
19 import "bytes"
20
21 // Reference imports to suppress errors if they are not otherwise used.
22 var _ = api.RegisterMessage
23 var _ = struc.Pack
24 var _ = bytes.NewBuffer
25
26 // Services represents VPP binary API services:
27 //
28 //      "services": {
29 //          "ip_container_proxy_dump": {
30 //              "reply": "ip_container_proxy_details",
31 //              "stream": true
32 //          },
33 //          "ip_address_dump": {
34 //              "reply": "ip_address_details",
35 //              "stream": true
36 //          },
37 //          "ip_source_and_port_range_check_add_del": {
38 //              "reply": "ip_source_and_port_range_check_add_del_reply"
39 //          },
40 //          "reset_fib": {
41 //              "reply": "reset_fib_reply"
42 //          },
43 //          "ip_probe_neighbor": {
44 //              "reply": "ip_probe_neighbor_reply"
45 //          },
46 //          "want_ip6_nd_events": {
47 //              "reply": "want_ip6_nd_events_reply",
48 //              "events": [
49 //                  "ip6_nd_event"
50 //              ]
51 //          },
52 //          "ip_punt_police": {
53 //              "reply": "ip_punt_police_reply"
54 //          },
55 //          "ip6nd_proxy_add_del": {
56 //              "reply": "ip6nd_proxy_add_del_reply"
57 //          },
58 //          "set_arp_neighbor_limit": {
59 //              "reply": "set_arp_neighbor_limit_reply"
60 //          },
61 //          "ip_reassembly_enable_disable": {
62 //              "reply": "ip_reassembly_enable_disable_reply"
63 //          },
64 //          "ip6_fib_dump": {
65 //              "reply": "ip6_fib_details",
66 //              "stream": true
67 //          },
68 //          "ip6nd_send_router_solicitation": {
69 //              "reply": "ip6nd_send_router_solicitation_reply"
70 //          },
71 //          "ip_source_check_interface_add_del": {
72 //              "reply": "ip_source_check_interface_add_del_reply"
73 //          },
74 //          "ip_table_add_del": {
75 //              "reply": "ip_table_add_del_reply"
76 //          },
77 //          "ip_neighbor_dump": {
78 //              "reply": "ip_neighbor_details",
79 //              "stream": true
80 //          },
81 //          "ip_punt_redirect": {
82 //              "reply": "ip_punt_redirect_reply"
83 //          },
84 //          "sw_interface_ip6nd_ra_prefix": {
85 //              "reply": "sw_interface_ip6nd_ra_prefix_reply"
86 //          },
87 //          "ip_reassembly_set": {
88 //              "reply": "ip_reassembly_set_reply"
89 //          },
90 //          "ip6_mfib_dump": {
91 //              "reply": "ip6_mfib_details",
92 //              "stream": true
93 //          },
94 //          "sw_interface_ip6nd_ra_config": {
95 //              "reply": "sw_interface_ip6nd_ra_config_reply"
96 //          },
97 //          "proxy_arp_dump": {
98 //              "reply": "proxy_arp_details",
99 //              "stream": true
100 //          },
101 //          "sw_interface_ip6_enable_disable": {
102 //              "reply": "sw_interface_ip6_enable_disable_reply"
103 //          },
104 //          "ip_source_and_port_range_check_interface_add_del": {
105 //              "reply": "ip_source_and_port_range_check_interface_add_del_reply"
106 //          },
107 //          "mfib_signal_dump": {
108 //              "reply": "mfib_signal_details",
109 //              "stream": true
110 //          },
111 //          "ip_punt_redirect_dump": {
112 //              "reply": "ip_punt_redirect_details",
113 //              "stream": true
114 //          },
115 //          "ip_container_proxy_add_del": {
116 //              "reply": "ip_container_proxy_add_del_reply"
117 //          },
118 //          "ip_mfib_dump": {
119 //              "reply": "ip_mfib_details",
120 //              "stream": true
121 //          },
122 //          "ip_unnumbered_dump": {
123 //              "reply": "ip_unnumbered_details",
124 //              "stream": true
125 //          },
126 //          "ip_dump": {
127 //              "reply": "ip_details",
128 //              "stream": true
129 //          },
130 //          "ip_neighbor_add_del": {
131 //              "reply": "ip_neighbor_add_del_reply"
132 //          },
133 //          "proxy_arp_intfc_enable_disable": {
134 //              "reply": "proxy_arp_intfc_enable_disable_reply"
135 //          },
136 //          "proxy_arp_add_del": {
137 //              "reply": "proxy_arp_add_del_reply"
138 //          },
139 //          "ip_add_del_route": {
140 //              "reply": "ip_add_del_route_reply"
141 //          },
142 //          "ip6nd_proxy_dump": {
143 //              "reply": "ip6nd_proxy_details",
144 //              "stream": true
145 //          },
146 //          "want_ip6_ra_events": {
147 //              "reply": "want_ip6_ra_events_reply",
148 //              "events": [
149 //                  "ip6_ra_event"
150 //              ]
151 //          },
152 //          "ip_fib_dump": {
153 //              "reply": "ip_fib_details",
154 //              "stream": true
155 //          },
156 //          "ip_scan_neighbor_enable_disable": {
157 //              "reply": "ip_scan_neighbor_enable_disable_reply"
158 //          },
159 //          "ioam_enable": {
160 //              "reply": "ioam_enable_reply"
161 //          },
162 //          "ip_mroute_add_del": {
163 //              "reply": "ip_mroute_add_del_reply"
164 //          },
165 //          "proxy_arp_intfc_dump": {
166 //              "reply": "proxy_arp_intfc_details",
167 //              "stream": true
168 //          },
169 //          "want_ip4_arp_events": {
170 //              "reply": "want_ip4_arp_events_reply",
171 //              "events": [
172 //                  "ip4_arp_event"
173 //              ]
174 //          },
175 //          "ip_reassembly_get": {
176 //              "reply": "ip_reassembly_get_reply"
177 //          },
178 //          "set_ip_flow_hash": {
179 //              "reply": "set_ip_flow_hash_reply"
180 //          },
181 //          "ioam_disable": {
182 //              "reply": "ioam_disable_reply"
183 //          }
184 //      },
185 //
186 type Services interface {
187         DumpIP6Fib(*IP6FibDump) ([]*IP6FibDetails, error)
188         DumpIP6Mfib(*IP6MfibDump) ([]*IP6MfibDetails, error)
189         DumpIP6ndProxy(*IP6ndProxyDump) ([]*IP6ndProxyDetails, error)
190         DumpIPAddress(*IPAddressDump) ([]*IPAddressDetails, error)
191         DumpIPContainerProxy(*IPContainerProxyDump) ([]*IPContainerProxyDetails, error)
192         DumpIP(*IPDump) ([]*IPDetails, error)
193         DumpIPFib(*IPFibDump) ([]*IPFibDetails, error)
194         DumpIPMfib(*IPMfibDump) ([]*IPMfibDetails, error)
195         DumpIPNeighbor(*IPNeighborDump) ([]*IPNeighborDetails, error)
196         DumpIPPuntRedirect(*IPPuntRedirectDump) ([]*IPPuntRedirectDetails, error)
197         DumpIPUnnumbered(*IPUnnumberedDump) ([]*IPUnnumberedDetails, error)
198         DumpMfibSignal(*MfibSignalDump) ([]*MfibSignalDetails, error)
199         DumpProxyArp(*ProxyArpDump) ([]*ProxyArpDetails, error)
200         DumpProxyArpIntfc(*ProxyArpIntfcDump) ([]*ProxyArpIntfcDetails, error)
201         IoamDisable(*IoamDisable) (*IoamDisableReply, error)
202         IoamEnable(*IoamEnable) (*IoamEnableReply, error)
203         IP6ndProxyAddDel(*IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error)
204         IP6ndSendRouterSolicitation(*IP6ndSendRouterSolicitation) (*IP6ndSendRouterSolicitationReply, error)
205         IPAddDelRoute(*IPAddDelRoute) (*IPAddDelRouteReply, error)
206         IPContainerProxyAddDel(*IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error)
207         IPMrouteAddDel(*IPMrouteAddDel) (*IPMrouteAddDelReply, error)
208         IPNeighborAddDel(*IPNeighborAddDel) (*IPNeighborAddDelReply, error)
209         IPProbeNeighbor(*IPProbeNeighbor) (*IPProbeNeighborReply, error)
210         IPPuntPolice(*IPPuntPolice) (*IPPuntPoliceReply, error)
211         IPPuntRedirect(*IPPuntRedirect) (*IPPuntRedirectReply, error)
212         IPReassemblyEnableDisable(*IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error)
213         IPReassemblyGet(*IPReassemblyGet) (*IPReassemblyGetReply, error)
214         IPReassemblySet(*IPReassemblySet) (*IPReassemblySetReply, error)
215         IPScanNeighborEnableDisable(*IPScanNeighborEnableDisable) (*IPScanNeighborEnableDisableReply, error)
216         IPSourceAndPortRangeCheckAddDel(*IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error)
217         IPSourceAndPortRangeCheckInterfaceAddDel(*IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error)
218         IPSourceCheckInterfaceAddDel(*IPSourceCheckInterfaceAddDel) (*IPSourceCheckInterfaceAddDelReply, error)
219         IPTableAddDel(*IPTableAddDel) (*IPTableAddDelReply, error)
220         ProxyArpAddDel(*ProxyArpAddDel) (*ProxyArpAddDelReply, error)
221         ProxyArpIntfcEnableDisable(*ProxyArpIntfcEnableDisable) (*ProxyArpIntfcEnableDisableReply, error)
222         ResetFib(*ResetFib) (*ResetFibReply, error)
223         SetArpNeighborLimit(*SetArpNeighborLimit) (*SetArpNeighborLimitReply, error)
224         SetIPFlowHash(*SetIPFlowHash) (*SetIPFlowHashReply, error)
225         SwInterfaceIP6EnableDisable(*SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error)
226         SwInterfaceIP6ndRaConfig(*SwInterfaceIP6ndRaConfig) (*SwInterfaceIP6ndRaConfigReply, error)
227         SwInterfaceIP6ndRaPrefix(*SwInterfaceIP6ndRaPrefix) (*SwInterfaceIP6ndRaPrefixReply, error)
228         WantIP4ArpEvents(*WantIP4ArpEvents) (*WantIP4ArpEventsReply, error)
229         WantIP6NdEvents(*WantIP6NdEvents) (*WantIP6NdEventsReply, error)
230         WantIP6RaEvents(*WantIP6RaEvents) (*WantIP6RaEventsReply, error)
231 }
232
233 /* Enums */
234
235 // AddressFamily represents VPP binary API enum 'address_family':
236 //
237 //      "address_family",
238 //      [
239 //          "ADDRESS_IP4",
240 //          0
241 //      ],
242 //      [
243 //          "ADDRESS_IP6",
244 //          1
245 //      ],
246 //      {
247 //          "enumtype": "u32"
248 //      }
249 //
250 type AddressFamily uint32
251
252 const (
253         ADDRESS_IP4 AddressFamily = 0
254         ADDRESS_IP6 AddressFamily = 1
255 )
256
257 /* Aliases */
258
259 // IP4Address represents VPP binary API alias 'ip4_address':
260 //
261 //      "ip4_address": {
262 //          "length": 4,
263 //          "type": "u8"
264 //      },
265 //
266 type IP4Address [4]uint8
267
268 // IP6Address represents VPP binary API alias 'ip6_address':
269 //
270 //      "ip6_address": {
271 //          "length": 16,
272 //          "type": "u8"
273 //      },
274 //
275 type IP6Address [16]uint8
276
277 // MacAddress represents VPP binary API alias 'mac_address':
278 //
279 //      "mac_address": {
280 //          "length": 6,
281 //          "type": "u8"
282 //      }
283 //
284 type MacAddress [6]uint8
285
286 /* Types */
287
288 // Address represents VPP binary API type 'address':
289 //
290 //      "address",
291 //      4
292 //
293 type Address struct {
294         Af AddressFamily
295         Un AddressUnion
296 }
297
298 func (*Address) GetTypeName() string {
299         return "address"
300 }
301 func (*Address) GetCrcString() string {
302         return "09f11671"
303 }
304
305 // FibMplsLabel represents VPP binary API type 'fib_mpls_label':
306 //
307 //      "fib_mpls_label",
308 //      [
309 //          "u8",
310 //          "is_uniform"
311 //      ],
312 //      [
313 //          "u32",
314 //          "label"
315 //      ],
316 //      [
317 //          "u8",
318 //          "ttl"
319 //      ],
320 //      [
321 //          "u8",
322 //          "exp"
323 //      ],
324 //      {
325 //          "crc": "0xc93bf35c"
326 //      }
327 //
328 type FibMplsLabel struct {
329         IsUniform uint8
330         Label     uint32
331         TTL       uint8
332         Exp       uint8
333 }
334
335 func (*FibMplsLabel) GetTypeName() string {
336         return "fib_mpls_label"
337 }
338 func (*FibMplsLabel) GetCrcString() string {
339         return "c93bf35c"
340 }
341
342 // FibPath represents VPP binary API type 'fib_path':
343 //
344 //      "fib_path",
345 //      [
346 //          "u32",
347 //          "sw_if_index"
348 //      ],
349 //      [
350 //          "u32",
351 //          "table_id"
352 //      ],
353 //      [
354 //          "u8",
355 //          "weight"
356 //      ],
357 //      [
358 //          "u8",
359 //          "preference"
360 //      ],
361 //      [
362 //          "u8",
363 //          "is_local"
364 //      ],
365 //      [
366 //          "u8",
367 //          "is_drop"
368 //      ],
369 //      [
370 //          "u8",
371 //          "is_udp_encap"
372 //      ],
373 //      [
374 //          "u8",
375 //          "is_unreach"
376 //      ],
377 //      [
378 //          "u8",
379 //          "is_prohibit"
380 //      ],
381 //      [
382 //          "u8",
383 //          "is_resolve_host"
384 //      ],
385 //      [
386 //          "u8",
387 //          "is_resolve_attached"
388 //      ],
389 //      [
390 //          "u8",
391 //          "is_dvr"
392 //      ],
393 //      [
394 //          "u8",
395 //          "is_source_lookup"
396 //      ],
397 //      [
398 //          "u8",
399 //          "is_interface_rx"
400 //      ],
401 //      [
402 //          "u8",
403 //          "afi"
404 //      ],
405 //      [
406 //          "u8",
407 //          "next_hop",
408 //          16
409 //      ],
410 //      [
411 //          "u32",
412 //          "next_hop_id"
413 //      ],
414 //      [
415 //          "u32",
416 //          "rpf_id"
417 //      ],
418 //      [
419 //          "u32",
420 //          "via_label"
421 //      ],
422 //      [
423 //          "u8",
424 //          "n_labels"
425 //      ],
426 //      [
427 //          "vl_api_fib_mpls_label_t",
428 //          "label_stack",
429 //          16
430 //      ],
431 //      {
432 //          "crc": "0xba7a81f0"
433 //      }
434 //
435 type FibPath struct {
436         SwIfIndex         uint32
437         TableID           uint32
438         Weight            uint8
439         Preference        uint8
440         IsLocal           uint8
441         IsDrop            uint8
442         IsUDPEncap        uint8
443         IsUnreach         uint8
444         IsProhibit        uint8
445         IsResolveHost     uint8
446         IsResolveAttached uint8
447         IsDvr             uint8
448         IsSourceLookup    uint8
449         IsInterfaceRx     uint8
450         Afi               uint8
451         NextHop           []byte `struc:"[16]byte"`
452         NextHopID         uint32
453         RpfID             uint32
454         ViaLabel          uint32
455         NLabels           uint8
456         LabelStack        []FibMplsLabel `struc:"[16]FibMplsLabel"`
457 }
458
459 func (*FibPath) GetTypeName() string {
460         return "fib_path"
461 }
462 func (*FibPath) GetCrcString() string {
463         return "ba7a81f0"
464 }
465
466 // IP4Prefix represents VPP binary API type 'ip4_prefix':
467 //
468 //      "ip4_prefix",
469 //      [
470 //          "vl_api_ip4_address_t",
471 //          "prefix"
472 //      ],
473 //      [
474 //          "u8",
475 //          "len"
476 //      ],
477 //      {
478 //          "crc": "0xea8dc11d"
479 //      }
480 //
481 type IP4Prefix struct {
482         Prefix IP4Address
483         Len    uint8
484 }
485
486 func (*IP4Prefix) GetTypeName() string {
487         return "ip4_prefix"
488 }
489 func (*IP4Prefix) GetCrcString() string {
490         return "ea8dc11d"
491 }
492
493 // IP6Prefix represents VPP binary API type 'ip6_prefix':
494 //
495 //      "ip6_prefix",
496 //      [
497 //          "vl_api_ip6_address_t",
498 //          "prefix"
499 //      ],
500 //      [
501 //          "u8",
502 //          "len"
503 //      ],
504 //      {
505 //          "crc": "0x779fd64f"
506 //      }
507 //
508 type IP6Prefix struct {
509         Prefix IP6Address
510         Len    uint8
511 }
512
513 func (*IP6Prefix) GetTypeName() string {
514         return "ip6_prefix"
515 }
516 func (*IP6Prefix) GetCrcString() string {
517         return "779fd64f"
518 }
519
520 // IP6RaPrefixInfo represents VPP binary API type 'ip6_ra_prefix_info':
521 //
522 //      "ip6_ra_prefix_info",
523 //      [
524 //          "u8",
525 //          "dst_address",
526 //          16
527 //      ],
528 //      [
529 //          "u8",
530 //          "dst_address_length"
531 //      ],
532 //      [
533 //          "u8",
534 //          "flags"
535 //      ],
536 //      [
537 //          "u32",
538 //          "valid_time"
539 //      ],
540 //      [
541 //          "u32",
542 //          "preferred_time"
543 //      ],
544 //      {
545 //          "crc": "0x83d7c6e5"
546 //      }
547 //
548 type IP6RaPrefixInfo struct {
549         DstAddress       []byte `struc:"[16]byte"`
550         DstAddressLength uint8
551         Flags            uint8
552         ValidTime        uint32
553         PreferredTime    uint32
554 }
555
556 func (*IP6RaPrefixInfo) GetTypeName() string {
557         return "ip6_ra_prefix_info"
558 }
559 func (*IP6RaPrefixInfo) GetCrcString() string {
560         return "83d7c6e5"
561 }
562
563 // MfibPath represents VPP binary API type 'mfib_path':
564 //
565 //      "mfib_path",
566 //      [
567 //          "vl_api_fib_path_t",
568 //          "path"
569 //      ],
570 //      [
571 //          "u32",
572 //          "itf_flags"
573 //      ],
574 //      {
575 //          "crc": "0x4ba77d32"
576 //      }
577 //
578 type MfibPath struct {
579         Path     FibPath
580         ItfFlags uint32
581 }
582
583 func (*MfibPath) GetTypeName() string {
584         return "mfib_path"
585 }
586 func (*MfibPath) GetCrcString() string {
587         return "4ba77d32"
588 }
589
590 // Mprefix represents VPP binary API type 'mprefix':
591 //
592 //      "mprefix",
593 //      [
594 //          "vl_api_address_family_t",
595 //          "af"
596 //      ],
597 //      [
598 //          "u16",
599 //          "grp_address_length"
600 //      ],
601 //      [
602 //          "vl_api_address_union_t",
603 //          "grp_address"
604 //      ],
605 //      [
606 //          "vl_api_address_union_t",
607 //          "src_address"
608 //      ],
609 //      {
610 //          "crc": "0x1c4cba05"
611 //      }
612 //
613 type Mprefix struct {
614         Af               AddressFamily
615         GrpAddressLength uint16
616         GrpAddress       AddressUnion
617         SrcAddress       AddressUnion
618 }
619
620 func (*Mprefix) GetTypeName() string {
621         return "mprefix"
622 }
623 func (*Mprefix) GetCrcString() string {
624         return "1c4cba05"
625 }
626
627 // Prefix represents VPP binary API type 'prefix':
628 //
629 //      "prefix",
630 //      [
631 //          "vl_api_address_t",
632 //          "address"
633 //      ],
634 //      [
635 //          "u8",
636 //          "address_length"
637 //      ],
638 //      {
639 //          "crc": "0x0403aebc"
640 //      }
641 //
642 type Prefix struct {
643         Address       Address
644         AddressLength uint8
645 }
646
647 func (*Prefix) GetTypeName() string {
648         return "prefix"
649 }
650 func (*Prefix) GetCrcString() string {
651         return "0403aebc"
652 }
653
654 // ProxyArp represents VPP binary API type 'proxy_arp':
655 //
656 //      "proxy_arp",
657 //      [
658 //          "u32",
659 //          "vrf_id"
660 //      ],
661 //      [
662 //          "u8",
663 //          "low_address",
664 //          4
665 //      ],
666 //      [
667 //          "u8",
668 //          "hi_address",
669 //          4
670 //      ],
671 //      {
672 //          "crc": "0x6d88106e"
673 //      }
674 //
675 type ProxyArp struct {
676         VrfID      uint32
677         LowAddress []byte `struc:"[4]byte"`
678         HiAddress  []byte `struc:"[4]byte"`
679 }
680
681 func (*ProxyArp) GetTypeName() string {
682         return "proxy_arp"
683 }
684 func (*ProxyArp) GetCrcString() string {
685         return "6d88106e"
686 }
687
688 // PuntRedirect represents VPP binary API type 'punt_redirect':
689 //
690 //      "punt_redirect",
691 //      [
692 //          "u32",
693 //          "rx_sw_if_index"
694 //      ],
695 //      [
696 //          "u32",
697 //          "tx_sw_if_index"
698 //      ],
699 //      [
700 //          "vl_api_address_t",
701 //          "nh"
702 //      ],
703 //      {
704 //          "crc": "0x3e7a801f"
705 //      }
706 //
707 type PuntRedirect struct {
708         RxSwIfIndex uint32
709         TxSwIfIndex uint32
710         Nh          Address
711 }
712
713 func (*PuntRedirect) GetTypeName() string {
714         return "punt_redirect"
715 }
716 func (*PuntRedirect) GetCrcString() string {
717         return "3e7a801f"
718 }
719
720 /* Unions */
721
722 // AddressUnion represents VPP binary API union 'address_union':
723 //
724 //      "address_union",
725 //      [
726 //          "vl_api_ip4_address_t",
727 //          "ip4"
728 //      ],
729 //      [
730 //          "vl_api_ip6_address_t",
731 //          "ip6"
732 //      ],
733 //      {
734 //          "crc": "0xd68a2fb4"
735 //      }
736 //
737 type AddressUnion struct {
738         Union_data [16]byte
739 }
740
741 func (*AddressUnion) GetTypeName() string {
742         return "address_union"
743 }
744 func (*AddressUnion) GetCrcString() string {
745         return "d68a2fb4"
746 }
747
748 func AddressUnionIP4(a IP4Address) (u AddressUnion) {
749         u.SetIP4(a)
750         return
751 }
752 func (u *AddressUnion) SetIP4(a IP4Address) {
753         var b = new(bytes.Buffer)
754         if err := struc.Pack(b, &a); err != nil {
755                 return
756         }
757         copy(u.Union_data[:], b.Bytes())
758 }
759 func (u *AddressUnion) GetIP4() (a IP4Address) {
760         var b = bytes.NewReader(u.Union_data[:])
761         struc.Unpack(b, &a)
762         return
763 }
764
765 func AddressUnionIP6(a IP6Address) (u AddressUnion) {
766         u.SetIP6(a)
767         return
768 }
769 func (u *AddressUnion) SetIP6(a IP6Address) {
770         var b = new(bytes.Buffer)
771         if err := struc.Pack(b, &a); err != nil {
772                 return
773         }
774         copy(u.Union_data[:], b.Bytes())
775 }
776 func (u *AddressUnion) GetIP6() (a IP6Address) {
777         var b = bytes.NewReader(u.Union_data[:])
778         struc.Unpack(b, &a)
779         return
780 }
781
782 /* Messages */
783
784 // IoamDisable represents VPP binary API message 'ioam_disable':
785 //
786 //      "ioam_disable",
787 //      [
788 //          "u16",
789 //          "_vl_msg_id"
790 //      ],
791 //      [
792 //          "u32",
793 //          "client_index"
794 //      ],
795 //      [
796 //          "u32",
797 //          "context"
798 //      ],
799 //      [
800 //          "u16",
801 //          "id"
802 //      ],
803 //      {
804 //          "crc": "0x6b16a45e"
805 //      }
806 //
807 type IoamDisable struct {
808         ID uint16
809 }
810
811 func (*IoamDisable) GetMessageName() string {
812         return "ioam_disable"
813 }
814 func (*IoamDisable) GetCrcString() string {
815         return "6b16a45e"
816 }
817 func (*IoamDisable) GetMessageType() api.MessageType {
818         return api.RequestMessage
819 }
820
821 // IoamDisableReply represents VPP binary API message 'ioam_disable_reply':
822 //
823 //      "ioam_disable_reply",
824 //      [
825 //          "u16",
826 //          "_vl_msg_id"
827 //      ],
828 //      [
829 //          "u32",
830 //          "context"
831 //      ],
832 //      [
833 //          "i32",
834 //          "retval"
835 //      ],
836 //      {
837 //          "crc": "0xe8d4e804"
838 //      }
839 //
840 type IoamDisableReply struct {
841         Retval int32
842 }
843
844 func (*IoamDisableReply) GetMessageName() string {
845         return "ioam_disable_reply"
846 }
847 func (*IoamDisableReply) GetCrcString() string {
848         return "e8d4e804"
849 }
850 func (*IoamDisableReply) GetMessageType() api.MessageType {
851         return api.ReplyMessage
852 }
853
854 // IoamEnable represents VPP binary API message 'ioam_enable':
855 //
856 //      "ioam_enable",
857 //      [
858 //          "u16",
859 //          "_vl_msg_id"
860 //      ],
861 //      [
862 //          "u32",
863 //          "client_index"
864 //      ],
865 //      [
866 //          "u32",
867 //          "context"
868 //      ],
869 //      [
870 //          "u16",
871 //          "id"
872 //      ],
873 //      [
874 //          "u8",
875 //          "seqno"
876 //      ],
877 //      [
878 //          "u8",
879 //          "analyse"
880 //      ],
881 //      [
882 //          "u8",
883 //          "pot_enable"
884 //      ],
885 //      [
886 //          "u8",
887 //          "trace_enable"
888 //      ],
889 //      [
890 //          "u32",
891 //          "node_id"
892 //      ],
893 //      {
894 //          "crc": "0x9392e032"
895 //      }
896 //
897 type IoamEnable struct {
898         ID          uint16
899         Seqno       uint8
900         Analyse     uint8
901         PotEnable   uint8
902         TraceEnable uint8
903         NodeID      uint32
904 }
905
906 func (*IoamEnable) GetMessageName() string {
907         return "ioam_enable"
908 }
909 func (*IoamEnable) GetCrcString() string {
910         return "9392e032"
911 }
912 func (*IoamEnable) GetMessageType() api.MessageType {
913         return api.RequestMessage
914 }
915
916 // IoamEnableReply represents VPP binary API message 'ioam_enable_reply':
917 //
918 //      "ioam_enable_reply",
919 //      [
920 //          "u16",
921 //          "_vl_msg_id"
922 //      ],
923 //      [
924 //          "u32",
925 //          "context"
926 //      ],
927 //      [
928 //          "i32",
929 //          "retval"
930 //      ],
931 //      {
932 //          "crc": "0xe8d4e804"
933 //      }
934 //
935 type IoamEnableReply struct {
936         Retval int32
937 }
938
939 func (*IoamEnableReply) GetMessageName() string {
940         return "ioam_enable_reply"
941 }
942 func (*IoamEnableReply) GetCrcString() string {
943         return "e8d4e804"
944 }
945 func (*IoamEnableReply) GetMessageType() api.MessageType {
946         return api.ReplyMessage
947 }
948
949 // IP4ArpEvent represents VPP binary API message 'ip4_arp_event':
950 //
951 //      "ip4_arp_event",
952 //      [
953 //          "u16",
954 //          "_vl_msg_id"
955 //      ],
956 //      [
957 //          "u32",
958 //          "client_index"
959 //      ],
960 //      [
961 //          "u32",
962 //          "address"
963 //      ],
964 //      [
965 //          "u32",
966 //          "pid"
967 //      ],
968 //      [
969 //          "u32",
970 //          "sw_if_index"
971 //      ],
972 //      [
973 //          "u8",
974 //          "new_mac",
975 //          6
976 //      ],
977 //      [
978 //          "u8",
979 //          "mac_ip"
980 //      ],
981 //      {
982 //          "crc": "0xef7235f7"
983 //      }
984 //
985 type IP4ArpEvent struct {
986         Address   uint32
987         PID       uint32
988         SwIfIndex uint32
989         NewMac    []byte `struc:"[6]byte"`
990         MacIP     uint8
991 }
992
993 func (*IP4ArpEvent) GetMessageName() string {
994         return "ip4_arp_event"
995 }
996 func (*IP4ArpEvent) GetCrcString() string {
997         return "ef7235f7"
998 }
999 func (*IP4ArpEvent) GetMessageType() api.MessageType {
1000         return api.EventMessage
1001 }
1002
1003 // IP6FibDetails represents VPP binary API message 'ip6_fib_details':
1004 //
1005 //      "ip6_fib_details",
1006 //      [
1007 //          "u16",
1008 //          "_vl_msg_id"
1009 //      ],
1010 //      [
1011 //          "u32",
1012 //          "context"
1013 //      ],
1014 //      [
1015 //          "u32",
1016 //          "table_id"
1017 //      ],
1018 //      [
1019 //          "u8",
1020 //          "table_name",
1021 //          64
1022 //      ],
1023 //      [
1024 //          "u8",
1025 //          "address_length"
1026 //      ],
1027 //      [
1028 //          "u8",
1029 //          "address",
1030 //          16
1031 //      ],
1032 //      [
1033 //          "u32",
1034 //          "count"
1035 //      ],
1036 //      [
1037 //          "u32",
1038 //          "stats_index"
1039 //      ],
1040 //      [
1041 //          "vl_api_fib_path_t",
1042 //          "path",
1043 //          0,
1044 //          "count"
1045 //      ],
1046 //      {
1047 //          "crc": "0xef11e94d"
1048 //      }
1049 //
1050 type IP6FibDetails struct {
1051         TableID       uint32
1052         TableName     []byte `struc:"[64]byte"`
1053         AddressLength uint8
1054         Address       []byte `struc:"[16]byte"`
1055         Count         uint32 `struc:"sizeof=Path"`
1056         StatsIndex    uint32
1057         Path          []FibPath
1058 }
1059
1060 func (*IP6FibDetails) GetMessageName() string {
1061         return "ip6_fib_details"
1062 }
1063 func (*IP6FibDetails) GetCrcString() string {
1064         return "ef11e94d"
1065 }
1066 func (*IP6FibDetails) GetMessageType() api.MessageType {
1067         return api.ReplyMessage
1068 }
1069
1070 // IP6FibDump represents VPP binary API message 'ip6_fib_dump':
1071 //
1072 //      "ip6_fib_dump",
1073 //      [
1074 //          "u16",
1075 //          "_vl_msg_id"
1076 //      ],
1077 //      [
1078 //          "u32",
1079 //          "client_index"
1080 //      ],
1081 //      [
1082 //          "u32",
1083 //          "context"
1084 //      ],
1085 //      {
1086 //          "crc": "0x51077d14"
1087 //      }
1088 //
1089 type IP6FibDump struct{}
1090
1091 func (*IP6FibDump) GetMessageName() string {
1092         return "ip6_fib_dump"
1093 }
1094 func (*IP6FibDump) GetCrcString() string {
1095         return "51077d14"
1096 }
1097 func (*IP6FibDump) GetMessageType() api.MessageType {
1098         return api.RequestMessage
1099 }
1100
1101 // IP6MfibDetails represents VPP binary API message 'ip6_mfib_details':
1102 //
1103 //      "ip6_mfib_details",
1104 //      [
1105 //          "u16",
1106 //          "_vl_msg_id"
1107 //      ],
1108 //      [
1109 //          "u32",
1110 //          "context"
1111 //      ],
1112 //      [
1113 //          "u32",
1114 //          "table_id"
1115 //      ],
1116 //      [
1117 //          "u8",
1118 //          "address_length"
1119 //      ],
1120 //      [
1121 //          "u8",
1122 //          "grp_address",
1123 //          16
1124 //      ],
1125 //      [
1126 //          "u8",
1127 //          "src_address",
1128 //          16
1129 //      ],
1130 //      [
1131 //          "u32",
1132 //          "count"
1133 //      ],
1134 //      [
1135 //          "vl_api_mfib_path_t",
1136 //          "path",
1137 //          0,
1138 //          "count"
1139 //      ],
1140 //      {
1141 //          "crc": "0x738c546e"
1142 //      }
1143 //
1144 type IP6MfibDetails struct {
1145         TableID       uint32
1146         AddressLength uint8
1147         GrpAddress    []byte `struc:"[16]byte"`
1148         SrcAddress    []byte `struc:"[16]byte"`
1149         Count         uint32 `struc:"sizeof=Path"`
1150         Path          []MfibPath
1151 }
1152
1153 func (*IP6MfibDetails) GetMessageName() string {
1154         return "ip6_mfib_details"
1155 }
1156 func (*IP6MfibDetails) GetCrcString() string {
1157         return "738c546e"
1158 }
1159 func (*IP6MfibDetails) GetMessageType() api.MessageType {
1160         return api.ReplyMessage
1161 }
1162
1163 // IP6MfibDump represents VPP binary API message 'ip6_mfib_dump':
1164 //
1165 //      "ip6_mfib_dump",
1166 //      [
1167 //          "u16",
1168 //          "_vl_msg_id"
1169 //      ],
1170 //      [
1171 //          "u32",
1172 //          "client_index"
1173 //      ],
1174 //      [
1175 //          "u32",
1176 //          "context"
1177 //      ],
1178 //      {
1179 //          "crc": "0x51077d14"
1180 //      }
1181 //
1182 type IP6MfibDump struct{}
1183
1184 func (*IP6MfibDump) GetMessageName() string {
1185         return "ip6_mfib_dump"
1186 }
1187 func (*IP6MfibDump) GetCrcString() string {
1188         return "51077d14"
1189 }
1190 func (*IP6MfibDump) GetMessageType() api.MessageType {
1191         return api.RequestMessage
1192 }
1193
1194 // IP6NdEvent represents VPP binary API message 'ip6_nd_event':
1195 //
1196 //      "ip6_nd_event",
1197 //      [
1198 //          "u16",
1199 //          "_vl_msg_id"
1200 //      ],
1201 //      [
1202 //          "u32",
1203 //          "client_index"
1204 //      ],
1205 //      [
1206 //          "u32",
1207 //          "pid"
1208 //      ],
1209 //      [
1210 //          "u32",
1211 //          "sw_if_index"
1212 //      ],
1213 //      [
1214 //          "u8",
1215 //          "address",
1216 //          16
1217 //      ],
1218 //      [
1219 //          "u8",
1220 //          "new_mac",
1221 //          6
1222 //      ],
1223 //      [
1224 //          "u8",
1225 //          "mac_ip"
1226 //      ],
1227 //      {
1228 //          "crc": "0x96ab2fdd"
1229 //      }
1230 //
1231 type IP6NdEvent struct {
1232         PID       uint32
1233         SwIfIndex uint32
1234         Address   []byte `struc:"[16]byte"`
1235         NewMac    []byte `struc:"[6]byte"`
1236         MacIP     uint8
1237 }
1238
1239 func (*IP6NdEvent) GetMessageName() string {
1240         return "ip6_nd_event"
1241 }
1242 func (*IP6NdEvent) GetCrcString() string {
1243         return "96ab2fdd"
1244 }
1245 func (*IP6NdEvent) GetMessageType() api.MessageType {
1246         return api.EventMessage
1247 }
1248
1249 // IP6RaEvent represents VPP binary API message 'ip6_ra_event':
1250 //
1251 //      "ip6_ra_event",
1252 //      [
1253 //          "u16",
1254 //          "_vl_msg_id"
1255 //      ],
1256 //      [
1257 //          "u32",
1258 //          "client_index"
1259 //      ],
1260 //      [
1261 //          "u32",
1262 //          "pid"
1263 //      ],
1264 //      [
1265 //          "u32",
1266 //          "sw_if_index"
1267 //      ],
1268 //      [
1269 //          "u8",
1270 //          "router_address",
1271 //          16
1272 //      ],
1273 //      [
1274 //          "u8",
1275 //          "current_hop_limit"
1276 //      ],
1277 //      [
1278 //          "u8",
1279 //          "flags"
1280 //      ],
1281 //      [
1282 //          "u16",
1283 //          "router_lifetime_in_sec"
1284 //      ],
1285 //      [
1286 //          "u32",
1287 //          "neighbor_reachable_time_in_msec"
1288 //      ],
1289 //      [
1290 //          "u32",
1291 //          "time_in_msec_between_retransmitted_neighbor_solicitations"
1292 //      ],
1293 //      [
1294 //          "u32",
1295 //          "n_prefixes"
1296 //      ],
1297 //      [
1298 //          "vl_api_ip6_ra_prefix_info_t",
1299 //          "prefixes",
1300 //          0,
1301 //          "n_prefixes"
1302 //      ],
1303 //      {
1304 //          "crc": "0xc5e54257"
1305 //      }
1306 //
1307 type IP6RaEvent struct {
1308         PID                                                 uint32
1309         SwIfIndex                                           uint32
1310         RouterAddress                                       []byte `struc:"[16]byte"`
1311         CurrentHopLimit                                     uint8
1312         Flags                                               uint8
1313         RouterLifetimeInSec                                 uint16
1314         NeighborReachableTimeInMsec                         uint32
1315         TimeInMsecBetweenRetransmittedNeighborSolicitations uint32
1316         NPrefixes                                           uint32 `struc:"sizeof=Prefixes"`
1317         Prefixes                                            []IP6RaPrefixInfo
1318 }
1319
1320 func (*IP6RaEvent) GetMessageName() string {
1321         return "ip6_ra_event"
1322 }
1323 func (*IP6RaEvent) GetCrcString() string {
1324         return "c5e54257"
1325 }
1326 func (*IP6RaEvent) GetMessageType() api.MessageType {
1327         return api.EventMessage
1328 }
1329
1330 // IP6ndProxyAddDel represents VPP binary API message 'ip6nd_proxy_add_del':
1331 //
1332 //      "ip6nd_proxy_add_del",
1333 //      [
1334 //          "u16",
1335 //          "_vl_msg_id"
1336 //      ],
1337 //      [
1338 //          "u32",
1339 //          "client_index"
1340 //      ],
1341 //      [
1342 //          "u32",
1343 //          "context"
1344 //      ],
1345 //      [
1346 //          "u32",
1347 //          "sw_if_index"
1348 //      ],
1349 //      [
1350 //          "u8",
1351 //          "is_del"
1352 //      ],
1353 //      [
1354 //          "u8",
1355 //          "address",
1356 //          16
1357 //      ],
1358 //      {
1359 //          "crc": "0xd95f0fa0"
1360 //      }
1361 //
1362 type IP6ndProxyAddDel struct {
1363         SwIfIndex uint32
1364         IsDel     uint8
1365         Address   []byte `struc:"[16]byte"`
1366 }
1367
1368 func (*IP6ndProxyAddDel) GetMessageName() string {
1369         return "ip6nd_proxy_add_del"
1370 }
1371 func (*IP6ndProxyAddDel) GetCrcString() string {
1372         return "d95f0fa0"
1373 }
1374 func (*IP6ndProxyAddDel) GetMessageType() api.MessageType {
1375         return api.RequestMessage
1376 }
1377
1378 // IP6ndProxyAddDelReply represents VPP binary API message 'ip6nd_proxy_add_del_reply':
1379 //
1380 //      "ip6nd_proxy_add_del_reply",
1381 //      [
1382 //          "u16",
1383 //          "_vl_msg_id"
1384 //      ],
1385 //      [
1386 //          "u32",
1387 //          "context"
1388 //      ],
1389 //      [
1390 //          "i32",
1391 //          "retval"
1392 //      ],
1393 //      {
1394 //          "crc": "0xe8d4e804"
1395 //      }
1396 //
1397 type IP6ndProxyAddDelReply struct {
1398         Retval int32
1399 }
1400
1401 func (*IP6ndProxyAddDelReply) GetMessageName() string {
1402         return "ip6nd_proxy_add_del_reply"
1403 }
1404 func (*IP6ndProxyAddDelReply) GetCrcString() string {
1405         return "e8d4e804"
1406 }
1407 func (*IP6ndProxyAddDelReply) GetMessageType() api.MessageType {
1408         return api.ReplyMessage
1409 }
1410
1411 // IP6ndProxyDetails represents VPP binary API message 'ip6nd_proxy_details':
1412 //
1413 //      "ip6nd_proxy_details",
1414 //      [
1415 //          "u16",
1416 //          "_vl_msg_id"
1417 //      ],
1418 //      [
1419 //          "u32",
1420 //          "context"
1421 //      ],
1422 //      [
1423 //          "u32",
1424 //          "sw_if_index"
1425 //      ],
1426 //      [
1427 //          "u8",
1428 //          "address",
1429 //          16
1430 //      ],
1431 //      {
1432 //          "crc": "0x6a47c974"
1433 //      }
1434 //
1435 type IP6ndProxyDetails struct {
1436         SwIfIndex uint32
1437         Address   []byte `struc:"[16]byte"`
1438 }
1439
1440 func (*IP6ndProxyDetails) GetMessageName() string {
1441         return "ip6nd_proxy_details"
1442 }
1443 func (*IP6ndProxyDetails) GetCrcString() string {
1444         return "6a47c974"
1445 }
1446 func (*IP6ndProxyDetails) GetMessageType() api.MessageType {
1447         return api.ReplyMessage
1448 }
1449
1450 // IP6ndProxyDump represents VPP binary API message 'ip6nd_proxy_dump':
1451 //
1452 //      "ip6nd_proxy_dump",
1453 //      [
1454 //          "u16",
1455 //          "_vl_msg_id"
1456 //      ],
1457 //      [
1458 //          "u32",
1459 //          "client_index"
1460 //      ],
1461 //      [
1462 //          "u32",
1463 //          "context"
1464 //      ],
1465 //      {
1466 //          "crc": "0x51077d14"
1467 //      }
1468 //
1469 type IP6ndProxyDump struct{}
1470
1471 func (*IP6ndProxyDump) GetMessageName() string {
1472         return "ip6nd_proxy_dump"
1473 }
1474 func (*IP6ndProxyDump) GetCrcString() string {
1475         return "51077d14"
1476 }
1477 func (*IP6ndProxyDump) GetMessageType() api.MessageType {
1478         return api.RequestMessage
1479 }
1480
1481 // IP6ndSendRouterSolicitation represents VPP binary API message 'ip6nd_send_router_solicitation':
1482 //
1483 //      "ip6nd_send_router_solicitation",
1484 //      [
1485 //          "u16",
1486 //          "_vl_msg_id"
1487 //      ],
1488 //      [
1489 //          "u32",
1490 //          "client_index"
1491 //      ],
1492 //      [
1493 //          "u32",
1494 //          "context"
1495 //      ],
1496 //      [
1497 //          "u32",
1498 //          "irt"
1499 //      ],
1500 //      [
1501 //          "u32",
1502 //          "mrt"
1503 //      ],
1504 //      [
1505 //          "u32",
1506 //          "mrc"
1507 //      ],
1508 //      [
1509 //          "u32",
1510 //          "mrd"
1511 //      ],
1512 //      [
1513 //          "u32",
1514 //          "sw_if_index"
1515 //      ],
1516 //      [
1517 //          "u8",
1518 //          "stop"
1519 //      ],
1520 //      {
1521 //          "crc": "0xbd968917"
1522 //      }
1523 //
1524 type IP6ndSendRouterSolicitation struct {
1525         Irt       uint32
1526         Mrt       uint32
1527         Mrc       uint32
1528         Mrd       uint32
1529         SwIfIndex uint32
1530         Stop      uint8
1531 }
1532
1533 func (*IP6ndSendRouterSolicitation) GetMessageName() string {
1534         return "ip6nd_send_router_solicitation"
1535 }
1536 func (*IP6ndSendRouterSolicitation) GetCrcString() string {
1537         return "bd968917"
1538 }
1539 func (*IP6ndSendRouterSolicitation) GetMessageType() api.MessageType {
1540         return api.RequestMessage
1541 }
1542
1543 // IP6ndSendRouterSolicitationReply represents VPP binary API message 'ip6nd_send_router_solicitation_reply':
1544 //
1545 //      "ip6nd_send_router_solicitation_reply",
1546 //      [
1547 //          "u16",
1548 //          "_vl_msg_id"
1549 //      ],
1550 //      [
1551 //          "u32",
1552 //          "context"
1553 //      ],
1554 //      [
1555 //          "i32",
1556 //          "retval"
1557 //      ],
1558 //      {
1559 //          "crc": "0xe8d4e804"
1560 //      }
1561 //
1562 type IP6ndSendRouterSolicitationReply struct {
1563         Retval int32
1564 }
1565
1566 func (*IP6ndSendRouterSolicitationReply) GetMessageName() string {
1567         return "ip6nd_send_router_solicitation_reply"
1568 }
1569 func (*IP6ndSendRouterSolicitationReply) GetCrcString() string {
1570         return "e8d4e804"
1571 }
1572 func (*IP6ndSendRouterSolicitationReply) GetMessageType() api.MessageType {
1573         return api.ReplyMessage
1574 }
1575
1576 // IPAddDelRoute represents VPP binary API message 'ip_add_del_route':
1577 //
1578 //      "ip_add_del_route",
1579 //      [
1580 //          "u16",
1581 //          "_vl_msg_id"
1582 //      ],
1583 //      [
1584 //          "u32",
1585 //          "client_index"
1586 //      ],
1587 //      [
1588 //          "u32",
1589 //          "context"
1590 //      ],
1591 //      [
1592 //          "u32",
1593 //          "next_hop_sw_if_index"
1594 //      ],
1595 //      [
1596 //          "u32",
1597 //          "table_id"
1598 //      ],
1599 //      [
1600 //          "u32",
1601 //          "classify_table_index"
1602 //      ],
1603 //      [
1604 //          "u32",
1605 //          "next_hop_table_id"
1606 //      ],
1607 //      [
1608 //          "u32",
1609 //          "next_hop_id"
1610 //      ],
1611 //      [
1612 //          "u8",
1613 //          "is_add"
1614 //      ],
1615 //      [
1616 //          "u8",
1617 //          "is_drop"
1618 //      ],
1619 //      [
1620 //          "u8",
1621 //          "is_unreach"
1622 //      ],
1623 //      [
1624 //          "u8",
1625 //          "is_prohibit"
1626 //      ],
1627 //      [
1628 //          "u8",
1629 //          "is_ipv6"
1630 //      ],
1631 //      [
1632 //          "u8",
1633 //          "is_local"
1634 //      ],
1635 //      [
1636 //          "u8",
1637 //          "is_classify"
1638 //      ],
1639 //      [
1640 //          "u8",
1641 //          "is_multipath"
1642 //      ],
1643 //      [
1644 //          "u8",
1645 //          "is_resolve_host"
1646 //      ],
1647 //      [
1648 //          "u8",
1649 //          "is_resolve_attached"
1650 //      ],
1651 //      [
1652 //          "u8",
1653 //          "is_dvr"
1654 //      ],
1655 //      [
1656 //          "u8",
1657 //          "is_source_lookup"
1658 //      ],
1659 //      [
1660 //          "u8",
1661 //          "is_udp_encap"
1662 //      ],
1663 //      [
1664 //          "u8",
1665 //          "next_hop_weight"
1666 //      ],
1667 //      [
1668 //          "u8",
1669 //          "next_hop_preference"
1670 //      ],
1671 //      [
1672 //          "u8",
1673 //          "next_hop_proto"
1674 //      ],
1675 //      [
1676 //          "u8",
1677 //          "dst_address_length"
1678 //      ],
1679 //      [
1680 //          "u8",
1681 //          "dst_address",
1682 //          16
1683 //      ],
1684 //      [
1685 //          "u8",
1686 //          "next_hop_address",
1687 //          16
1688 //      ],
1689 //      [
1690 //          "u8",
1691 //          "next_hop_n_out_labels"
1692 //      ],
1693 //      [
1694 //          "u32",
1695 //          "next_hop_via_label"
1696 //      ],
1697 //      [
1698 //          "vl_api_fib_mpls_label_t",
1699 //          "next_hop_out_label_stack",
1700 //          0,
1701 //          "next_hop_n_out_labels"
1702 //      ],
1703 //      {
1704 //          "crc": "0x4219d62d"
1705 //      }
1706 //
1707 type IPAddDelRoute struct {
1708         NextHopSwIfIndex     uint32
1709         TableID              uint32
1710         ClassifyTableIndex   uint32
1711         NextHopTableID       uint32
1712         NextHopID            uint32
1713         IsAdd                uint8
1714         IsDrop               uint8
1715         IsUnreach            uint8
1716         IsProhibit           uint8
1717         IsIPv6               uint8
1718         IsLocal              uint8
1719         IsClassify           uint8
1720         IsMultipath          uint8
1721         IsResolveHost        uint8
1722         IsResolveAttached    uint8
1723         IsDvr                uint8
1724         IsSourceLookup       uint8
1725         IsUDPEncap           uint8
1726         NextHopWeight        uint8
1727         NextHopPreference    uint8
1728         NextHopProto         uint8
1729         DstAddressLength     uint8
1730         DstAddress           []byte `struc:"[16]byte"`
1731         NextHopAddress       []byte `struc:"[16]byte"`
1732         NextHopNOutLabels    uint8  `struc:"sizeof=NextHopOutLabelStack"`
1733         NextHopViaLabel      uint32
1734         NextHopOutLabelStack []FibMplsLabel
1735 }
1736
1737 func (*IPAddDelRoute) GetMessageName() string {
1738         return "ip_add_del_route"
1739 }
1740 func (*IPAddDelRoute) GetCrcString() string {
1741         return "4219d62d"
1742 }
1743 func (*IPAddDelRoute) GetMessageType() api.MessageType {
1744         return api.RequestMessage
1745 }
1746
1747 // IPAddDelRouteReply represents VPP binary API message 'ip_add_del_route_reply':
1748 //
1749 //      "ip_add_del_route_reply",
1750 //      [
1751 //          "u16",
1752 //          "_vl_msg_id"
1753 //      ],
1754 //      [
1755 //          "u32",
1756 //          "context"
1757 //      ],
1758 //      [
1759 //          "i32",
1760 //          "retval"
1761 //      ],
1762 //      [
1763 //          "u32",
1764 //          "stats_index"
1765 //      ],
1766 //      {
1767 //          "crc": "0x1992deab"
1768 //      }
1769 //
1770 type IPAddDelRouteReply struct {
1771         Retval     int32
1772         StatsIndex uint32
1773 }
1774
1775 func (*IPAddDelRouteReply) GetMessageName() string {
1776         return "ip_add_del_route_reply"
1777 }
1778 func (*IPAddDelRouteReply) GetCrcString() string {
1779         return "1992deab"
1780 }
1781 func (*IPAddDelRouteReply) GetMessageType() api.MessageType {
1782         return api.ReplyMessage
1783 }
1784
1785 // IPAddressDetails represents VPP binary API message 'ip_address_details':
1786 //
1787 //      "ip_address_details",
1788 //      [
1789 //          "u16",
1790 //          "_vl_msg_id"
1791 //      ],
1792 //      [
1793 //          "u32",
1794 //          "context"
1795 //      ],
1796 //      [
1797 //          "u8",
1798 //          "ip",
1799 //          16
1800 //      ],
1801 //      [
1802 //          "u8",
1803 //          "prefix_length"
1804 //      ],
1805 //      [
1806 //          "u32",
1807 //          "sw_if_index"
1808 //      ],
1809 //      [
1810 //          "u8",
1811 //          "is_ipv6"
1812 //      ],
1813 //      {
1814 //          "crc": "0x9bc25966"
1815 //      }
1816 //
1817 type IPAddressDetails struct {
1818         IP           []byte `struc:"[16]byte"`
1819         PrefixLength uint8
1820         SwIfIndex    uint32
1821         IsIPv6       uint8
1822 }
1823
1824 func (*IPAddressDetails) GetMessageName() string {
1825         return "ip_address_details"
1826 }
1827 func (*IPAddressDetails) GetCrcString() string {
1828         return "9bc25966"
1829 }
1830 func (*IPAddressDetails) GetMessageType() api.MessageType {
1831         return api.ReplyMessage
1832 }
1833
1834 // IPAddressDump represents VPP binary API message 'ip_address_dump':
1835 //
1836 //      "ip_address_dump",
1837 //      [
1838 //          "u16",
1839 //          "_vl_msg_id"
1840 //      ],
1841 //      [
1842 //          "u32",
1843 //          "client_index"
1844 //      ],
1845 //      [
1846 //          "u32",
1847 //          "context"
1848 //      ],
1849 //      [
1850 //          "u32",
1851 //          "sw_if_index"
1852 //      ],
1853 //      [
1854 //          "u8",
1855 //          "is_ipv6"
1856 //      ],
1857 //      {
1858 //          "crc": "0x6b7bcd0a"
1859 //      }
1860 //
1861 type IPAddressDump struct {
1862         SwIfIndex uint32
1863         IsIPv6    uint8
1864 }
1865
1866 func (*IPAddressDump) GetMessageName() string {
1867         return "ip_address_dump"
1868 }
1869 func (*IPAddressDump) GetCrcString() string {
1870         return "6b7bcd0a"
1871 }
1872 func (*IPAddressDump) GetMessageType() api.MessageType {
1873         return api.RequestMessage
1874 }
1875
1876 // IPContainerProxyAddDel represents VPP binary API message 'ip_container_proxy_add_del':
1877 //
1878 //      "ip_container_proxy_add_del",
1879 //      [
1880 //          "u16",
1881 //          "_vl_msg_id"
1882 //      ],
1883 //      [
1884 //          "u32",
1885 //          "client_index"
1886 //      ],
1887 //      [
1888 //          "u32",
1889 //          "context"
1890 //      ],
1891 //      [
1892 //          "u8",
1893 //          "ip",
1894 //          16
1895 //      ],
1896 //      [
1897 //          "u8",
1898 //          "is_ip4"
1899 //      ],
1900 //      [
1901 //          "u8",
1902 //          "plen"
1903 //      ],
1904 //      [
1905 //          "u32",
1906 //          "sw_if_index"
1907 //      ],
1908 //      [
1909 //          "u8",
1910 //          "is_add"
1911 //      ],
1912 //      {
1913 //          "crc": "0x0a355d39"
1914 //      }
1915 //
1916 type IPContainerProxyAddDel struct {
1917         IP        []byte `struc:"[16]byte"`
1918         IsIP4     uint8
1919         Plen      uint8
1920         SwIfIndex uint32
1921         IsAdd     uint8
1922 }
1923
1924 func (*IPContainerProxyAddDel) GetMessageName() string {
1925         return "ip_container_proxy_add_del"
1926 }
1927 func (*IPContainerProxyAddDel) GetCrcString() string {
1928         return "0a355d39"
1929 }
1930 func (*IPContainerProxyAddDel) GetMessageType() api.MessageType {
1931         return api.RequestMessage
1932 }
1933
1934 // IPContainerProxyAddDelReply represents VPP binary API message 'ip_container_proxy_add_del_reply':
1935 //
1936 //      "ip_container_proxy_add_del_reply",
1937 //      [
1938 //          "u16",
1939 //          "_vl_msg_id"
1940 //      ],
1941 //      [
1942 //          "u32",
1943 //          "context"
1944 //      ],
1945 //      [
1946 //          "i32",
1947 //          "retval"
1948 //      ],
1949 //      {
1950 //          "crc": "0xe8d4e804"
1951 //      }
1952 //
1953 type IPContainerProxyAddDelReply struct {
1954         Retval int32
1955 }
1956
1957 func (*IPContainerProxyAddDelReply) GetMessageName() string {
1958         return "ip_container_proxy_add_del_reply"
1959 }
1960 func (*IPContainerProxyAddDelReply) GetCrcString() string {
1961         return "e8d4e804"
1962 }
1963 func (*IPContainerProxyAddDelReply) GetMessageType() api.MessageType {
1964         return api.ReplyMessage
1965 }
1966
1967 // IPContainerProxyDetails represents VPP binary API message 'ip_container_proxy_details':
1968 //
1969 //      "ip_container_proxy_details",
1970 //      [
1971 //          "u16",
1972 //          "_vl_msg_id"
1973 //      ],
1974 //      [
1975 //          "u32",
1976 //          "context"
1977 //      ],
1978 //      [
1979 //          "u32",
1980 //          "sw_if_index"
1981 //      ],
1982 //      [
1983 //          "vl_api_prefix_t",
1984 //          "prefix"
1985 //      ],
1986 //      {
1987 //          "crc": "0xd528df63"
1988 //      }
1989 //
1990 type IPContainerProxyDetails struct {
1991         SwIfIndex uint32
1992         Prefix    Prefix
1993 }
1994
1995 func (*IPContainerProxyDetails) GetMessageName() string {
1996         return "ip_container_proxy_details"
1997 }
1998 func (*IPContainerProxyDetails) GetCrcString() string {
1999         return "d528df63"
2000 }
2001 func (*IPContainerProxyDetails) GetMessageType() api.MessageType {
2002         return api.ReplyMessage
2003 }
2004
2005 // IPContainerProxyDump represents VPP binary API message 'ip_container_proxy_dump':
2006 //
2007 //      "ip_container_proxy_dump",
2008 //      [
2009 //          "u16",
2010 //          "_vl_msg_id"
2011 //      ],
2012 //      [
2013 //          "u32",
2014 //          "client_index"
2015 //      ],
2016 //      [
2017 //          "u32",
2018 //          "context"
2019 //      ],
2020 //      {
2021 //          "crc": "0x51077d14"
2022 //      }
2023 //
2024 type IPContainerProxyDump struct{}
2025
2026 func (*IPContainerProxyDump) GetMessageName() string {
2027         return "ip_container_proxy_dump"
2028 }
2029 func (*IPContainerProxyDump) GetCrcString() string {
2030         return "51077d14"
2031 }
2032 func (*IPContainerProxyDump) GetMessageType() api.MessageType {
2033         return api.RequestMessage
2034 }
2035
2036 // IPDetails represents VPP binary API message 'ip_details':
2037 //
2038 //      "ip_details",
2039 //      [
2040 //          "u16",
2041 //          "_vl_msg_id"
2042 //      ],
2043 //      [
2044 //          "u32",
2045 //          "context"
2046 //      ],
2047 //      [
2048 //          "u32",
2049 //          "sw_if_index"
2050 //      ],
2051 //      [
2052 //          "u8",
2053 //          "is_ipv6"
2054 //      ],
2055 //      {
2056 //          "crc": "0x8bb37ec4"
2057 //      }
2058 //
2059 type IPDetails struct {
2060         SwIfIndex uint32
2061         IsIPv6    uint8
2062 }
2063
2064 func (*IPDetails) GetMessageName() string {
2065         return "ip_details"
2066 }
2067 func (*IPDetails) GetCrcString() string {
2068         return "8bb37ec4"
2069 }
2070 func (*IPDetails) GetMessageType() api.MessageType {
2071         return api.ReplyMessage
2072 }
2073
2074 // IPDump represents VPP binary API message 'ip_dump':
2075 //
2076 //      "ip_dump",
2077 //      [
2078 //          "u16",
2079 //          "_vl_msg_id"
2080 //      ],
2081 //      [
2082 //          "u32",
2083 //          "client_index"
2084 //      ],
2085 //      [
2086 //          "u32",
2087 //          "context"
2088 //      ],
2089 //      [
2090 //          "u8",
2091 //          "is_ipv6"
2092 //      ],
2093 //      {
2094 //          "crc": "0xde883da4"
2095 //      }
2096 //
2097 type IPDump struct {
2098         IsIPv6 uint8
2099 }
2100
2101 func (*IPDump) GetMessageName() string {
2102         return "ip_dump"
2103 }
2104 func (*IPDump) GetCrcString() string {
2105         return "de883da4"
2106 }
2107 func (*IPDump) GetMessageType() api.MessageType {
2108         return api.RequestMessage
2109 }
2110
2111 // IPFibDetails represents VPP binary API message 'ip_fib_details':
2112 //
2113 //      "ip_fib_details",
2114 //      [
2115 //          "u16",
2116 //          "_vl_msg_id"
2117 //      ],
2118 //      [
2119 //          "u32",
2120 //          "context"
2121 //      ],
2122 //      [
2123 //          "u32",
2124 //          "table_id"
2125 //      ],
2126 //      [
2127 //          "u8",
2128 //          "table_name",
2129 //          64
2130 //      ],
2131 //      [
2132 //          "u8",
2133 //          "address_length"
2134 //      ],
2135 //      [
2136 //          "u8",
2137 //          "address",
2138 //          4
2139 //      ],
2140 //      [
2141 //          "u32",
2142 //          "count"
2143 //      ],
2144 //      [
2145 //          "u32",
2146 //          "stats_index"
2147 //      ],
2148 //      [
2149 //          "vl_api_fib_path_t",
2150 //          "path",
2151 //          0,
2152 //          "count"
2153 //      ],
2154 //      {
2155 //          "crc": "0xf6a2fab3"
2156 //      }
2157 //
2158 type IPFibDetails struct {
2159         TableID       uint32
2160         TableName     []byte `struc:"[64]byte"`
2161         AddressLength uint8
2162         Address       []byte `struc:"[4]byte"`
2163         Count         uint32 `struc:"sizeof=Path"`
2164         StatsIndex    uint32
2165         Path          []FibPath
2166 }
2167
2168 func (*IPFibDetails) GetMessageName() string {
2169         return "ip_fib_details"
2170 }
2171 func (*IPFibDetails) GetCrcString() string {
2172         return "f6a2fab3"
2173 }
2174 func (*IPFibDetails) GetMessageType() api.MessageType {
2175         return api.ReplyMessage
2176 }
2177
2178 // IPFibDump represents VPP binary API message 'ip_fib_dump':
2179 //
2180 //      "ip_fib_dump",
2181 //      [
2182 //          "u16",
2183 //          "_vl_msg_id"
2184 //      ],
2185 //      [
2186 //          "u32",
2187 //          "client_index"
2188 //      ],
2189 //      [
2190 //          "u32",
2191 //          "context"
2192 //      ],
2193 //      {
2194 //          "crc": "0x51077d14"
2195 //      }
2196 //
2197 type IPFibDump struct{}
2198
2199 func (*IPFibDump) GetMessageName() string {
2200         return "ip_fib_dump"
2201 }
2202 func (*IPFibDump) GetCrcString() string {
2203         return "51077d14"
2204 }
2205 func (*IPFibDump) GetMessageType() api.MessageType {
2206         return api.RequestMessage
2207 }
2208
2209 // IPMfibDetails represents VPP binary API message 'ip_mfib_details':
2210 //
2211 //      "ip_mfib_details",
2212 //      [
2213 //          "u16",
2214 //          "_vl_msg_id"
2215 //      ],
2216 //      [
2217 //          "u32",
2218 //          "context"
2219 //      ],
2220 //      [
2221 //          "u32",
2222 //          "table_id"
2223 //      ],
2224 //      [
2225 //          "u32",
2226 //          "entry_flags"
2227 //      ],
2228 //      [
2229 //          "u32",
2230 //          "rpf_id"
2231 //      ],
2232 //      [
2233 //          "u8",
2234 //          "address_length"
2235 //      ],
2236 //      [
2237 //          "u8",
2238 //          "grp_address",
2239 //          4
2240 //      ],
2241 //      [
2242 //          "u8",
2243 //          "src_address",
2244 //          4
2245 //      ],
2246 //      [
2247 //          "u32",
2248 //          "count"
2249 //      ],
2250 //      [
2251 //          "u32",
2252 //          "stats_index"
2253 //      ],
2254 //      [
2255 //          "vl_api_mfib_path_t",
2256 //          "path",
2257 //          0,
2258 //          "count"
2259 //      ],
2260 //      {
2261 //          "crc": "0x61faa26f"
2262 //      }
2263 //
2264 type IPMfibDetails struct {
2265         TableID       uint32
2266         EntryFlags    uint32
2267         RpfID         uint32
2268         AddressLength uint8
2269         GrpAddress    []byte `struc:"[4]byte"`
2270         SrcAddress    []byte `struc:"[4]byte"`
2271         Count         uint32 `struc:"sizeof=Path"`
2272         StatsIndex    uint32
2273         Path          []MfibPath
2274 }
2275
2276 func (*IPMfibDetails) GetMessageName() string {
2277         return "ip_mfib_details"
2278 }
2279 func (*IPMfibDetails) GetCrcString() string {
2280         return "61faa26f"
2281 }
2282 func (*IPMfibDetails) GetMessageType() api.MessageType {
2283         return api.ReplyMessage
2284 }
2285
2286 // IPMfibDump represents VPP binary API message 'ip_mfib_dump':
2287 //
2288 //      "ip_mfib_dump",
2289 //      [
2290 //          "u16",
2291 //          "_vl_msg_id"
2292 //      ],
2293 //      [
2294 //          "u32",
2295 //          "client_index"
2296 //      ],
2297 //      [
2298 //          "u32",
2299 //          "context"
2300 //      ],
2301 //      {
2302 //          "crc": "0x51077d14"
2303 //      }
2304 //
2305 type IPMfibDump struct{}
2306
2307 func (*IPMfibDump) GetMessageName() string {
2308         return "ip_mfib_dump"
2309 }
2310 func (*IPMfibDump) GetCrcString() string {
2311         return "51077d14"
2312 }
2313 func (*IPMfibDump) GetMessageType() api.MessageType {
2314         return api.RequestMessage
2315 }
2316
2317 // IPMrouteAddDel represents VPP binary API message 'ip_mroute_add_del':
2318 //
2319 //      "ip_mroute_add_del",
2320 //      [
2321 //          "u16",
2322 //          "_vl_msg_id"
2323 //      ],
2324 //      [
2325 //          "u32",
2326 //          "client_index"
2327 //      ],
2328 //      [
2329 //          "u32",
2330 //          "context"
2331 //      ],
2332 //      [
2333 //          "u32",
2334 //          "next_hop_sw_if_index"
2335 //      ],
2336 //      [
2337 //          "u32",
2338 //          "table_id"
2339 //      ],
2340 //      [
2341 //          "u32",
2342 //          "entry_flags"
2343 //      ],
2344 //      [
2345 //          "u32",
2346 //          "itf_flags"
2347 //      ],
2348 //      [
2349 //          "u32",
2350 //          "rpf_id"
2351 //      ],
2352 //      [
2353 //          "u32",
2354 //          "bier_imp"
2355 //      ],
2356 //      [
2357 //          "u16",
2358 //          "grp_address_length"
2359 //      ],
2360 //      [
2361 //          "u8",
2362 //          "next_hop_afi"
2363 //      ],
2364 //      [
2365 //          "u8",
2366 //          "is_add"
2367 //      ],
2368 //      [
2369 //          "u8",
2370 //          "is_ipv6"
2371 //      ],
2372 //      [
2373 //          "u8",
2374 //          "is_local"
2375 //      ],
2376 //      [
2377 //          "u8",
2378 //          "grp_address",
2379 //          16
2380 //      ],
2381 //      [
2382 //          "u8",
2383 //          "src_address",
2384 //          16
2385 //      ],
2386 //      [
2387 //          "u8",
2388 //          "nh_address",
2389 //          16
2390 //      ],
2391 //      {
2392 //          "crc": "0xf44c17b1"
2393 //      }
2394 //
2395 type IPMrouteAddDel struct {
2396         NextHopSwIfIndex uint32
2397         TableID          uint32
2398         EntryFlags       uint32
2399         ItfFlags         uint32
2400         RpfID            uint32
2401         BierImp          uint32
2402         GrpAddressLength uint16
2403         NextHopAfi       uint8
2404         IsAdd            uint8
2405         IsIPv6           uint8
2406         IsLocal          uint8
2407         GrpAddress       []byte `struc:"[16]byte"`
2408         SrcAddress       []byte `struc:"[16]byte"`
2409         NhAddress        []byte `struc:"[16]byte"`
2410 }
2411
2412 func (*IPMrouteAddDel) GetMessageName() string {
2413         return "ip_mroute_add_del"
2414 }
2415 func (*IPMrouteAddDel) GetCrcString() string {
2416         return "f44c17b1"
2417 }
2418 func (*IPMrouteAddDel) GetMessageType() api.MessageType {
2419         return api.RequestMessage
2420 }
2421
2422 // IPMrouteAddDelReply represents VPP binary API message 'ip_mroute_add_del_reply':
2423 //
2424 //      "ip_mroute_add_del_reply",
2425 //      [
2426 //          "u16",
2427 //          "_vl_msg_id"
2428 //      ],
2429 //      [
2430 //          "u32",
2431 //          "context"
2432 //      ],
2433 //      [
2434 //          "i32",
2435 //          "retval"
2436 //      ],
2437 //      [
2438 //          "u32",
2439 //          "stats_index"
2440 //      ],
2441 //      {
2442 //          "crc": "0x1992deab"
2443 //      }
2444 //
2445 type IPMrouteAddDelReply struct {
2446         Retval     int32
2447         StatsIndex uint32
2448 }
2449
2450 func (*IPMrouteAddDelReply) GetMessageName() string {
2451         return "ip_mroute_add_del_reply"
2452 }
2453 func (*IPMrouteAddDelReply) GetCrcString() string {
2454         return "1992deab"
2455 }
2456 func (*IPMrouteAddDelReply) GetMessageType() api.MessageType {
2457         return api.ReplyMessage
2458 }
2459
2460 // IPNeighborAddDel represents VPP binary API message 'ip_neighbor_add_del':
2461 //
2462 //      "ip_neighbor_add_del",
2463 //      [
2464 //          "u16",
2465 //          "_vl_msg_id"
2466 //      ],
2467 //      [
2468 //          "u32",
2469 //          "client_index"
2470 //      ],
2471 //      [
2472 //          "u32",
2473 //          "context"
2474 //      ],
2475 //      [
2476 //          "u32",
2477 //          "sw_if_index"
2478 //      ],
2479 //      [
2480 //          "u8",
2481 //          "is_add"
2482 //      ],
2483 //      [
2484 //          "u8",
2485 //          "is_ipv6"
2486 //      ],
2487 //      [
2488 //          "u8",
2489 //          "is_static"
2490 //      ],
2491 //      [
2492 //          "u8",
2493 //          "is_no_adj_fib"
2494 //      ],
2495 //      [
2496 //          "u8",
2497 //          "mac_address",
2498 //          6
2499 //      ],
2500 //      [
2501 //          "u8",
2502 //          "dst_address",
2503 //          16
2504 //      ],
2505 //      {
2506 //          "crc": "0x4711eb25"
2507 //      }
2508 //
2509 type IPNeighborAddDel struct {
2510         SwIfIndex  uint32
2511         IsAdd      uint8
2512         IsIPv6     uint8
2513         IsStatic   uint8
2514         IsNoAdjFib uint8
2515         MacAddress []byte `struc:"[6]byte"`
2516         DstAddress []byte `struc:"[16]byte"`
2517 }
2518
2519 func (*IPNeighborAddDel) GetMessageName() string {
2520         return "ip_neighbor_add_del"
2521 }
2522 func (*IPNeighborAddDel) GetCrcString() string {
2523         return "4711eb25"
2524 }
2525 func (*IPNeighborAddDel) GetMessageType() api.MessageType {
2526         return api.RequestMessage
2527 }
2528
2529 // IPNeighborAddDelReply represents VPP binary API message 'ip_neighbor_add_del_reply':
2530 //
2531 //      "ip_neighbor_add_del_reply",
2532 //      [
2533 //          "u16",
2534 //          "_vl_msg_id"
2535 //      ],
2536 //      [
2537 //          "u32",
2538 //          "context"
2539 //      ],
2540 //      [
2541 //          "i32",
2542 //          "retval"
2543 //      ],
2544 //      [
2545 //          "u32",
2546 //          "stats_index"
2547 //      ],
2548 //      {
2549 //          "crc": "0x1992deab"
2550 //      }
2551 //
2552 type IPNeighborAddDelReply struct {
2553         Retval     int32
2554         StatsIndex uint32
2555 }
2556
2557 func (*IPNeighborAddDelReply) GetMessageName() string {
2558         return "ip_neighbor_add_del_reply"
2559 }
2560 func (*IPNeighborAddDelReply) GetCrcString() string {
2561         return "1992deab"
2562 }
2563 func (*IPNeighborAddDelReply) GetMessageType() api.MessageType {
2564         return api.ReplyMessage
2565 }
2566
2567 // IPNeighborDetails represents VPP binary API message 'ip_neighbor_details':
2568 //
2569 //      "ip_neighbor_details",
2570 //      [
2571 //          "u16",
2572 //          "_vl_msg_id"
2573 //      ],
2574 //      [
2575 //          "u32",
2576 //          "context"
2577 //      ],
2578 //      [
2579 //          "u32",
2580 //          "sw_if_index"
2581 //      ],
2582 //      [
2583 //          "u32",
2584 //          "stats_index"
2585 //      ],
2586 //      [
2587 //          "u8",
2588 //          "is_static"
2589 //      ],
2590 //      [
2591 //          "u8",
2592 //          "is_ipv6"
2593 //      ],
2594 //      [
2595 //          "u8",
2596 //          "mac_address",
2597 //          6
2598 //      ],
2599 //      [
2600 //          "u8",
2601 //          "ip_address",
2602 //          16
2603 //      ],
2604 //      {
2605 //          "crc": "0xc7001770"
2606 //      }
2607 //
2608 type IPNeighborDetails struct {
2609         SwIfIndex  uint32
2610         StatsIndex uint32
2611         IsStatic   uint8
2612         IsIPv6     uint8
2613         MacAddress []byte `struc:"[6]byte"`
2614         IPAddress  []byte `struc:"[16]byte"`
2615 }
2616
2617 func (*IPNeighborDetails) GetMessageName() string {
2618         return "ip_neighbor_details"
2619 }
2620 func (*IPNeighborDetails) GetCrcString() string {
2621         return "c7001770"
2622 }
2623 func (*IPNeighborDetails) GetMessageType() api.MessageType {
2624         return api.ReplyMessage
2625 }
2626
2627 // IPNeighborDump represents VPP binary API message 'ip_neighbor_dump':
2628 //
2629 //      "ip_neighbor_dump",
2630 //      [
2631 //          "u16",
2632 //          "_vl_msg_id"
2633 //      ],
2634 //      [
2635 //          "u32",
2636 //          "client_index"
2637 //      ],
2638 //      [
2639 //          "u32",
2640 //          "context"
2641 //      ],
2642 //      [
2643 //          "u32",
2644 //          "sw_if_index"
2645 //      ],
2646 //      [
2647 //          "u8",
2648 //          "is_ipv6"
2649 //      ],
2650 //      {
2651 //          "crc": "0x6b7bcd0a"
2652 //      }
2653 //
2654 type IPNeighborDump struct {
2655         SwIfIndex uint32
2656         IsIPv6    uint8
2657 }
2658
2659 func (*IPNeighborDump) GetMessageName() string {
2660         return "ip_neighbor_dump"
2661 }
2662 func (*IPNeighborDump) GetCrcString() string {
2663         return "6b7bcd0a"
2664 }
2665 func (*IPNeighborDump) GetMessageType() api.MessageType {
2666         return api.RequestMessage
2667 }
2668
2669 // IPProbeNeighbor represents VPP binary API message 'ip_probe_neighbor':
2670 //
2671 //      "ip_probe_neighbor",
2672 //      [
2673 //          "u16",
2674 //          "_vl_msg_id"
2675 //      ],
2676 //      [
2677 //          "u32",
2678 //          "client_index"
2679 //      ],
2680 //      [
2681 //          "u32",
2682 //          "context"
2683 //      ],
2684 //      [
2685 //          "u32",
2686 //          "sw_if_index"
2687 //      ],
2688 //      [
2689 //          "u8",
2690 //          "dst_address",
2691 //          16
2692 //      ],
2693 //      [
2694 //          "u8",
2695 //          "is_ipv6"
2696 //      ],
2697 //      {
2698 //          "crc": "0x1e44bfd7"
2699 //      }
2700 //
2701 type IPProbeNeighbor struct {
2702         SwIfIndex  uint32
2703         DstAddress []byte `struc:"[16]byte"`
2704         IsIPv6     uint8
2705 }
2706
2707 func (*IPProbeNeighbor) GetMessageName() string {
2708         return "ip_probe_neighbor"
2709 }
2710 func (*IPProbeNeighbor) GetCrcString() string {
2711         return "1e44bfd7"
2712 }
2713 func (*IPProbeNeighbor) GetMessageType() api.MessageType {
2714         return api.RequestMessage
2715 }
2716
2717 // IPProbeNeighborReply represents VPP binary API message 'ip_probe_neighbor_reply':
2718 //
2719 //      "ip_probe_neighbor_reply",
2720 //      [
2721 //          "u16",
2722 //          "_vl_msg_id"
2723 //      ],
2724 //      [
2725 //          "u32",
2726 //          "context"
2727 //      ],
2728 //      [
2729 //          "i32",
2730 //          "retval"
2731 //      ],
2732 //      {
2733 //          "crc": "0xe8d4e804"
2734 //      }
2735 //
2736 type IPProbeNeighborReply struct {
2737         Retval int32
2738 }
2739
2740 func (*IPProbeNeighborReply) GetMessageName() string {
2741         return "ip_probe_neighbor_reply"
2742 }
2743 func (*IPProbeNeighborReply) GetCrcString() string {
2744         return "e8d4e804"
2745 }
2746 func (*IPProbeNeighborReply) GetMessageType() api.MessageType {
2747         return api.ReplyMessage
2748 }
2749
2750 // IPPuntPolice represents VPP binary API message 'ip_punt_police':
2751 //
2752 //      "ip_punt_police",
2753 //      [
2754 //          "u16",
2755 //          "_vl_msg_id"
2756 //      ],
2757 //      [
2758 //          "u32",
2759 //          "client_index"
2760 //      ],
2761 //      [
2762 //          "u32",
2763 //          "context"
2764 //      ],
2765 //      [
2766 //          "u32",
2767 //          "policer_index"
2768 //      ],
2769 //      [
2770 //          "u8",
2771 //          "is_add"
2772 //      ],
2773 //      [
2774 //          "u8",
2775 //          "is_ip6"
2776 //      ],
2777 //      {
2778 //          "crc": "0x38691592"
2779 //      }
2780 //
2781 type IPPuntPolice struct {
2782         PolicerIndex uint32
2783         IsAdd        uint8
2784         IsIP6        uint8
2785 }
2786
2787 func (*IPPuntPolice) GetMessageName() string {
2788         return "ip_punt_police"
2789 }
2790 func (*IPPuntPolice) GetCrcString() string {
2791         return "38691592"
2792 }
2793 func (*IPPuntPolice) GetMessageType() api.MessageType {
2794         return api.RequestMessage
2795 }
2796
2797 // IPPuntPoliceReply represents VPP binary API message 'ip_punt_police_reply':
2798 //
2799 //      "ip_punt_police_reply",
2800 //      [
2801 //          "u16",
2802 //          "_vl_msg_id"
2803 //      ],
2804 //      [
2805 //          "u32",
2806 //          "context"
2807 //      ],
2808 //      [
2809 //          "i32",
2810 //          "retval"
2811 //      ],
2812 //      {
2813 //          "crc": "0xe8d4e804"
2814 //      }
2815 //
2816 type IPPuntPoliceReply struct {
2817         Retval int32
2818 }
2819
2820 func (*IPPuntPoliceReply) GetMessageName() string {
2821         return "ip_punt_police_reply"
2822 }
2823 func (*IPPuntPoliceReply) GetCrcString() string {
2824         return "e8d4e804"
2825 }
2826 func (*IPPuntPoliceReply) GetMessageType() api.MessageType {
2827         return api.ReplyMessage
2828 }
2829
2830 // IPPuntRedirect represents VPP binary API message 'ip_punt_redirect':
2831 //
2832 //      "ip_punt_redirect",
2833 //      [
2834 //          "u16",
2835 //          "_vl_msg_id"
2836 //      ],
2837 //      [
2838 //          "u32",
2839 //          "client_index"
2840 //      ],
2841 //      [
2842 //          "u32",
2843 //          "context"
2844 //      ],
2845 //      [
2846 //          "vl_api_punt_redirect_t",
2847 //          "punt"
2848 //      ],
2849 //      [
2850 //          "u8",
2851 //          "is_add"
2852 //      ],
2853 //      {
2854 //          "crc": "0xa953495b"
2855 //      }
2856 //
2857 type IPPuntRedirect struct {
2858         Punt  PuntRedirect
2859         IsAdd uint8
2860 }
2861
2862 func (*IPPuntRedirect) GetMessageName() string {
2863         return "ip_punt_redirect"
2864 }
2865 func (*IPPuntRedirect) GetCrcString() string {
2866         return "a953495b"
2867 }
2868 func (*IPPuntRedirect) GetMessageType() api.MessageType {
2869         return api.RequestMessage
2870 }
2871
2872 // IPPuntRedirectDetails represents VPP binary API message 'ip_punt_redirect_details':
2873 //
2874 //      "ip_punt_redirect_details",
2875 //      [
2876 //          "u16",
2877 //          "_vl_msg_id"
2878 //      ],
2879 //      [
2880 //          "u32",
2881 //          "context"
2882 //      ],
2883 //      [
2884 //          "vl_api_punt_redirect_t",
2885 //          "punt"
2886 //      ],
2887 //      {
2888 //          "crc": "0xa47f70da"
2889 //      }
2890 //
2891 type IPPuntRedirectDetails struct {
2892         Punt PuntRedirect
2893 }
2894
2895 func (*IPPuntRedirectDetails) GetMessageName() string {
2896         return "ip_punt_redirect_details"
2897 }
2898 func (*IPPuntRedirectDetails) GetCrcString() string {
2899         return "a47f70da"
2900 }
2901 func (*IPPuntRedirectDetails) GetMessageType() api.MessageType {
2902         return api.ReplyMessage
2903 }
2904
2905 // IPPuntRedirectDump represents VPP binary API message 'ip_punt_redirect_dump':
2906 //
2907 //      "ip_punt_redirect_dump",
2908 //      [
2909 //          "u16",
2910 //          "_vl_msg_id"
2911 //      ],
2912 //      [
2913 //          "u32",
2914 //          "client_index"
2915 //      ],
2916 //      [
2917 //          "u32",
2918 //          "context"
2919 //      ],
2920 //      [
2921 //          "u32",
2922 //          "sw_if_index"
2923 //      ],
2924 //      [
2925 //          "u8",
2926 //          "is_ipv6"
2927 //      ],
2928 //      {
2929 //          "crc": "0x6b7bcd0a"
2930 //      }
2931 //
2932 type IPPuntRedirectDump struct {
2933         SwIfIndex uint32
2934         IsIPv6    uint8
2935 }
2936
2937 func (*IPPuntRedirectDump) GetMessageName() string {
2938         return "ip_punt_redirect_dump"
2939 }
2940 func (*IPPuntRedirectDump) GetCrcString() string {
2941         return "6b7bcd0a"
2942 }
2943 func (*IPPuntRedirectDump) GetMessageType() api.MessageType {
2944         return api.RequestMessage
2945 }
2946
2947 // IPPuntRedirectReply represents VPP binary API message 'ip_punt_redirect_reply':
2948 //
2949 //      "ip_punt_redirect_reply",
2950 //      [
2951 //          "u16",
2952 //          "_vl_msg_id"
2953 //      ],
2954 //      [
2955 //          "u32",
2956 //          "context"
2957 //      ],
2958 //      [
2959 //          "i32",
2960 //          "retval"
2961 //      ],
2962 //      {
2963 //          "crc": "0xe8d4e804"
2964 //      }
2965 //
2966 type IPPuntRedirectReply struct {
2967         Retval int32
2968 }
2969
2970 func (*IPPuntRedirectReply) GetMessageName() string {
2971         return "ip_punt_redirect_reply"
2972 }
2973 func (*IPPuntRedirectReply) GetCrcString() string {
2974         return "e8d4e804"
2975 }
2976 func (*IPPuntRedirectReply) GetMessageType() api.MessageType {
2977         return api.ReplyMessage
2978 }
2979
2980 // IPReassemblyEnableDisable represents VPP binary API message 'ip_reassembly_enable_disable':
2981 //
2982 //      "ip_reassembly_enable_disable",
2983 //      [
2984 //          "u16",
2985 //          "_vl_msg_id"
2986 //      ],
2987 //      [
2988 //          "u32",
2989 //          "client_index"
2990 //      ],
2991 //      [
2992 //          "u32",
2993 //          "context"
2994 //      ],
2995 //      [
2996 //          "u32",
2997 //          "sw_if_index"
2998 //      ],
2999 //      [
3000 //          "u8",
3001 //          "enable_ip4"
3002 //      ],
3003 //      [
3004 //          "u8",
3005 //          "enable_ip6"
3006 //      ],
3007 //      {
3008 //          "crc": "0xbb8dc5d0"
3009 //      }
3010 //
3011 type IPReassemblyEnableDisable struct {
3012         SwIfIndex uint32
3013         EnableIP4 uint8
3014         EnableIP6 uint8
3015 }
3016
3017 func (*IPReassemblyEnableDisable) GetMessageName() string {
3018         return "ip_reassembly_enable_disable"
3019 }
3020 func (*IPReassemblyEnableDisable) GetCrcString() string {
3021         return "bb8dc5d0"
3022 }
3023 func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType {
3024         return api.RequestMessage
3025 }
3026
3027 // IPReassemblyEnableDisableReply represents VPP binary API message 'ip_reassembly_enable_disable_reply':
3028 //
3029 //      "ip_reassembly_enable_disable_reply",
3030 //      [
3031 //          "u16",
3032 //          "_vl_msg_id"
3033 //      ],
3034 //      [
3035 //          "u32",
3036 //          "context"
3037 //      ],
3038 //      [
3039 //          "i32",
3040 //          "retval"
3041 //      ],
3042 //      {
3043 //          "crc": "0xe8d4e804"
3044 //      }
3045 //
3046 type IPReassemblyEnableDisableReply struct {
3047         Retval int32
3048 }
3049
3050 func (*IPReassemblyEnableDisableReply) GetMessageName() string {
3051         return "ip_reassembly_enable_disable_reply"
3052 }
3053 func (*IPReassemblyEnableDisableReply) GetCrcString() string {
3054         return "e8d4e804"
3055 }
3056 func (*IPReassemblyEnableDisableReply) GetMessageType() api.MessageType {
3057         return api.ReplyMessage
3058 }
3059
3060 // IPReassemblyGet represents VPP binary API message 'ip_reassembly_get':
3061 //
3062 //      "ip_reassembly_get",
3063 //      [
3064 //          "u16",
3065 //          "_vl_msg_id"
3066 //      ],
3067 //      [
3068 //          "u32",
3069 //          "client_index"
3070 //      ],
3071 //      [
3072 //          "u32",
3073 //          "context"
3074 //      ],
3075 //      [
3076 //          "u8",
3077 //          "is_ip6"
3078 //      ],
3079 //      {
3080 //          "crc": "0x6fe91190"
3081 //      }
3082 //
3083 type IPReassemblyGet struct {
3084         IsIP6 uint8
3085 }
3086
3087 func (*IPReassemblyGet) GetMessageName() string {
3088         return "ip_reassembly_get"
3089 }
3090 func (*IPReassemblyGet) GetCrcString() string {
3091         return "6fe91190"
3092 }
3093 func (*IPReassemblyGet) GetMessageType() api.MessageType {
3094         return api.RequestMessage
3095 }
3096
3097 // IPReassemblyGetReply represents VPP binary API message 'ip_reassembly_get_reply':
3098 //
3099 //      "ip_reassembly_get_reply",
3100 //      [
3101 //          "u16",
3102 //          "_vl_msg_id"
3103 //      ],
3104 //      [
3105 //          "u32",
3106 //          "context"
3107 //      ],
3108 //      [
3109 //          "i32",
3110 //          "retval"
3111 //      ],
3112 //      [
3113 //          "u32",
3114 //          "timeout_ms"
3115 //      ],
3116 //      [
3117 //          "u32",
3118 //          "max_reassemblies"
3119 //      ],
3120 //      [
3121 //          "u32",
3122 //          "expire_walk_interval_ms"
3123 //      ],
3124 //      [
3125 //          "u8",
3126 //          "is_ip6"
3127 //      ],
3128 //      {
3129 //          "crc": "0x1f90afd1"
3130 //      }
3131 //
3132 type IPReassemblyGetReply struct {
3133         Retval               int32
3134         TimeoutMs            uint32
3135         MaxReassemblies      uint32
3136         ExpireWalkIntervalMs uint32
3137         IsIP6                uint8
3138 }
3139
3140 func (*IPReassemblyGetReply) GetMessageName() string {
3141         return "ip_reassembly_get_reply"
3142 }
3143 func (*IPReassemblyGetReply) GetCrcString() string {
3144         return "1f90afd1"
3145 }
3146 func (*IPReassemblyGetReply) GetMessageType() api.MessageType {
3147         return api.ReplyMessage
3148 }
3149
3150 // IPReassemblySet represents VPP binary API message 'ip_reassembly_set':
3151 //
3152 //      "ip_reassembly_set",
3153 //      [
3154 //          "u16",
3155 //          "_vl_msg_id"
3156 //      ],
3157 //      [
3158 //          "u32",
3159 //          "client_index"
3160 //      ],
3161 //      [
3162 //          "u32",
3163 //          "context"
3164 //      ],
3165 //      [
3166 //          "u32",
3167 //          "timeout_ms"
3168 //      ],
3169 //      [
3170 //          "u32",
3171 //          "max_reassemblies"
3172 //      ],
3173 //      [
3174 //          "u32",
3175 //          "expire_walk_interval_ms"
3176 //      ],
3177 //      [
3178 //          "u8",
3179 //          "is_ip6"
3180 //      ],
3181 //      {
3182 //          "crc": "0x1db184de"
3183 //      }
3184 //
3185 type IPReassemblySet struct {
3186         TimeoutMs            uint32
3187         MaxReassemblies      uint32
3188         ExpireWalkIntervalMs uint32
3189         IsIP6                uint8
3190 }
3191
3192 func (*IPReassemblySet) GetMessageName() string {
3193         return "ip_reassembly_set"
3194 }
3195 func (*IPReassemblySet) GetCrcString() string {
3196         return "1db184de"
3197 }
3198 func (*IPReassemblySet) GetMessageType() api.MessageType {
3199         return api.RequestMessage
3200 }
3201
3202 // IPReassemblySetReply represents VPP binary API message 'ip_reassembly_set_reply':
3203 //
3204 //      "ip_reassembly_set_reply",
3205 //      [
3206 //          "u16",
3207 //          "_vl_msg_id"
3208 //      ],
3209 //      [
3210 //          "u32",
3211 //          "context"
3212 //      ],
3213 //      [
3214 //          "i32",
3215 //          "retval"
3216 //      ],
3217 //      {
3218 //          "crc": "0xe8d4e804"
3219 //      }
3220 //
3221 type IPReassemblySetReply struct {
3222         Retval int32
3223 }
3224
3225 func (*IPReassemblySetReply) GetMessageName() string {
3226         return "ip_reassembly_set_reply"
3227 }
3228 func (*IPReassemblySetReply) GetCrcString() string {
3229         return "e8d4e804"
3230 }
3231 func (*IPReassemblySetReply) GetMessageType() api.MessageType {
3232         return api.ReplyMessage
3233 }
3234
3235 // IPScanNeighborEnableDisable represents VPP binary API message 'ip_scan_neighbor_enable_disable':
3236 //
3237 //      "ip_scan_neighbor_enable_disable",
3238 //      [
3239 //          "u16",
3240 //          "_vl_msg_id"
3241 //      ],
3242 //      [
3243 //          "u32",
3244 //          "client_index"
3245 //      ],
3246 //      [
3247 //          "u32",
3248 //          "context"
3249 //      ],
3250 //      [
3251 //          "u8",
3252 //          "mode"
3253 //      ],
3254 //      [
3255 //          "u8",
3256 //          "scan_interval"
3257 //      ],
3258 //      [
3259 //          "u8",
3260 //          "max_proc_time"
3261 //      ],
3262 //      [
3263 //          "u8",
3264 //          "max_update"
3265 //      ],
3266 //      [
3267 //          "u8",
3268 //          "scan_int_delay"
3269 //      ],
3270 //      [
3271 //          "u8",
3272 //          "stale_threshold"
3273 //      ],
3274 //      {
3275 //          "crc": "0x0a6bf57a"
3276 //      }
3277 //
3278 type IPScanNeighborEnableDisable struct {
3279         Mode           uint8
3280         ScanInterval   uint8
3281         MaxProcTime    uint8
3282         MaxUpdate      uint8
3283         ScanIntDelay   uint8
3284         StaleThreshold uint8
3285 }
3286
3287 func (*IPScanNeighborEnableDisable) GetMessageName() string {
3288         return "ip_scan_neighbor_enable_disable"
3289 }
3290 func (*IPScanNeighborEnableDisable) GetCrcString() string {
3291         return "0a6bf57a"
3292 }
3293 func (*IPScanNeighborEnableDisable) GetMessageType() api.MessageType {
3294         return api.RequestMessage
3295 }
3296
3297 // IPScanNeighborEnableDisableReply represents VPP binary API message 'ip_scan_neighbor_enable_disable_reply':
3298 //
3299 //      "ip_scan_neighbor_enable_disable_reply",
3300 //      [
3301 //          "u16",
3302 //          "_vl_msg_id"
3303 //      ],
3304 //      [
3305 //          "u32",
3306 //          "context"
3307 //      ],
3308 //      [
3309 //          "i32",
3310 //          "retval"
3311 //      ],
3312 //      {
3313 //          "crc": "0xe8d4e804"
3314 //      }
3315 //
3316 type IPScanNeighborEnableDisableReply struct {
3317         Retval int32
3318 }
3319
3320 func (*IPScanNeighborEnableDisableReply) GetMessageName() string {
3321         return "ip_scan_neighbor_enable_disable_reply"
3322 }
3323 func (*IPScanNeighborEnableDisableReply) GetCrcString() string {
3324         return "e8d4e804"
3325 }
3326 func (*IPScanNeighborEnableDisableReply) GetMessageType() api.MessageType {
3327         return api.ReplyMessage
3328 }
3329
3330 // IPSourceAndPortRangeCheckAddDel represents VPP binary API message 'ip_source_and_port_range_check_add_del':
3331 //
3332 //      "ip_source_and_port_range_check_add_del",
3333 //      [
3334 //          "u16",
3335 //          "_vl_msg_id"
3336 //      ],
3337 //      [
3338 //          "u32",
3339 //          "client_index"
3340 //      ],
3341 //      [
3342 //          "u32",
3343 //          "context"
3344 //      ],
3345 //      [
3346 //          "u8",
3347 //          "is_ipv6"
3348 //      ],
3349 //      [
3350 //          "u8",
3351 //          "is_add"
3352 //      ],
3353 //      [
3354 //          "u8",
3355 //          "mask_length"
3356 //      ],
3357 //      [
3358 //          "u8",
3359 //          "address",
3360 //          16
3361 //      ],
3362 //      [
3363 //          "u8",
3364 //          "number_of_ranges"
3365 //      ],
3366 //      [
3367 //          "u16",
3368 //          "low_ports",
3369 //          32
3370 //      ],
3371 //      [
3372 //          "u16",
3373 //          "high_ports",
3374 //          32
3375 //      ],
3376 //      [
3377 //          "u32",
3378 //          "vrf_id"
3379 //      ],
3380 //      {
3381 //          "crc": "0x03d6b03a"
3382 //      }
3383 //
3384 type IPSourceAndPortRangeCheckAddDel struct {
3385         IsIPv6         uint8
3386         IsAdd          uint8
3387         MaskLength     uint8
3388         Address        []byte `struc:"[16]byte"`
3389         NumberOfRanges uint8
3390         LowPorts       []uint16 `struc:"[32]uint16"`
3391         HighPorts      []uint16 `struc:"[32]uint16"`
3392         VrfID          uint32
3393 }
3394
3395 func (*IPSourceAndPortRangeCheckAddDel) GetMessageName() string {
3396         return "ip_source_and_port_range_check_add_del"
3397 }
3398 func (*IPSourceAndPortRangeCheckAddDel) GetCrcString() string {
3399         return "03d6b03a"
3400 }
3401 func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType {
3402         return api.RequestMessage
3403 }
3404
3405 // IPSourceAndPortRangeCheckAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_add_del_reply':
3406 //
3407 //      "ip_source_and_port_range_check_add_del_reply",
3408 //      [
3409 //          "u16",
3410 //          "_vl_msg_id"
3411 //      ],
3412 //      [
3413 //          "u32",
3414 //          "context"
3415 //      ],
3416 //      [
3417 //          "i32",
3418 //          "retval"
3419 //      ],
3420 //      {
3421 //          "crc": "0xe8d4e804"
3422 //      }
3423 //
3424 type IPSourceAndPortRangeCheckAddDelReply struct {
3425         Retval int32
3426 }
3427
3428 func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageName() string {
3429         return "ip_source_and_port_range_check_add_del_reply"
3430 }
3431 func (*IPSourceAndPortRangeCheckAddDelReply) GetCrcString() string {
3432         return "e8d4e804"
3433 }
3434 func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageType() api.MessageType {
3435         return api.ReplyMessage
3436 }
3437
3438 // IPSourceAndPortRangeCheckInterfaceAddDel represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del':
3439 //
3440 //      "ip_source_and_port_range_check_interface_add_del",
3441 //      [
3442 //          "u16",
3443 //          "_vl_msg_id"
3444 //      ],
3445 //      [
3446 //          "u32",
3447 //          "client_index"
3448 //      ],
3449 //      [
3450 //          "u32",
3451 //          "context"
3452 //      ],
3453 //      [
3454 //          "u8",
3455 //          "is_add"
3456 //      ],
3457 //      [
3458 //          "u32",
3459 //          "sw_if_index"
3460 //      ],
3461 //      [
3462 //          "u32",
3463 //          "tcp_in_vrf_id"
3464 //      ],
3465 //      [
3466 //          "u32",
3467 //          "tcp_out_vrf_id"
3468 //      ],
3469 //      [
3470 //          "u32",
3471 //          "udp_in_vrf_id"
3472 //      ],
3473 //      [
3474 //          "u32",
3475 //          "udp_out_vrf_id"
3476 //      ],
3477 //      {
3478 //          "crc": "0x6966bc44"
3479 //      }
3480 //
3481 type IPSourceAndPortRangeCheckInterfaceAddDel struct {
3482         IsAdd       uint8
3483         SwIfIndex   uint32
3484         TCPInVrfID  uint32
3485         TCPOutVrfID uint32
3486         UDPInVrfID  uint32
3487         UDPOutVrfID uint32
3488 }
3489
3490 func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageName() string {
3491         return "ip_source_and_port_range_check_interface_add_del"
3492 }
3493 func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetCrcString() string {
3494         return "6966bc44"
3495 }
3496 func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageType() api.MessageType {
3497         return api.RequestMessage
3498 }
3499
3500 // IPSourceAndPortRangeCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del_reply':
3501 //
3502 //      "ip_source_and_port_range_check_interface_add_del_reply",
3503 //      [
3504 //          "u16",
3505 //          "_vl_msg_id"
3506 //      ],
3507 //      [
3508 //          "u32",
3509 //          "context"
3510 //      ],
3511 //      [
3512 //          "i32",
3513 //          "retval"
3514 //      ],
3515 //      {
3516 //          "crc": "0xe8d4e804"
3517 //      }
3518 //
3519 type IPSourceAndPortRangeCheckInterfaceAddDelReply struct {
3520         Retval int32
3521 }
3522
3523 func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageName() string {
3524         return "ip_source_and_port_range_check_interface_add_del_reply"
3525 }
3526 func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetCrcString() string {
3527         return "e8d4e804"
3528 }
3529 func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
3530         return api.ReplyMessage
3531 }
3532
3533 // IPSourceCheckInterfaceAddDel represents VPP binary API message 'ip_source_check_interface_add_del':
3534 //
3535 //      "ip_source_check_interface_add_del",
3536 //      [
3537 //          "u16",
3538 //          "_vl_msg_id"
3539 //      ],
3540 //      [
3541 //          "u32",
3542 //          "client_index"
3543 //      ],
3544 //      [
3545 //          "u32",
3546 //          "context"
3547 //      ],
3548 //      [
3549 //          "u8",
3550 //          "is_add"
3551 //      ],
3552 //      [
3553 //          "u8",
3554 //          "loose"
3555 //      ],
3556 //      [
3557 //          "u32",
3558 //          "sw_if_index"
3559 //      ],
3560 //      {
3561 //          "crc": "0x0a60152a"
3562 //      }
3563 //
3564 type IPSourceCheckInterfaceAddDel struct {
3565         IsAdd     uint8
3566         Loose     uint8
3567         SwIfIndex uint32
3568 }
3569
3570 func (*IPSourceCheckInterfaceAddDel) GetMessageName() string {
3571         return "ip_source_check_interface_add_del"
3572 }
3573 func (*IPSourceCheckInterfaceAddDel) GetCrcString() string {
3574         return "0a60152a"
3575 }
3576 func (*IPSourceCheckInterfaceAddDel) GetMessageType() api.MessageType {
3577         return api.RequestMessage
3578 }
3579
3580 // IPSourceCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_check_interface_add_del_reply':
3581 //
3582 //      "ip_source_check_interface_add_del_reply",
3583 //      [
3584 //          "u16",
3585 //          "_vl_msg_id"
3586 //      ],
3587 //      [
3588 //          "u32",
3589 //          "context"
3590 //      ],
3591 //      [
3592 //          "i32",
3593 //          "retval"
3594 //      ],
3595 //      {
3596 //          "crc": "0xe8d4e804"
3597 //      }
3598 //
3599 type IPSourceCheckInterfaceAddDelReply struct {
3600         Retval int32
3601 }
3602
3603 func (*IPSourceCheckInterfaceAddDelReply) GetMessageName() string {
3604         return "ip_source_check_interface_add_del_reply"
3605 }
3606 func (*IPSourceCheckInterfaceAddDelReply) GetCrcString() string {
3607         return "e8d4e804"
3608 }
3609 func (*IPSourceCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
3610         return api.ReplyMessage
3611 }
3612
3613 // IPTableAddDel represents VPP binary API message 'ip_table_add_del':
3614 //
3615 //      "ip_table_add_del",
3616 //      [
3617 //          "u16",
3618 //          "_vl_msg_id"
3619 //      ],
3620 //      [
3621 //          "u32",
3622 //          "client_index"
3623 //      ],
3624 //      [
3625 //          "u32",
3626 //          "context"
3627 //      ],
3628 //      [
3629 //          "u32",
3630 //          "table_id"
3631 //      ],
3632 //      [
3633 //          "u8",
3634 //          "is_ipv6"
3635 //      ],
3636 //      [
3637 //          "u8",
3638 //          "is_add"
3639 //      ],
3640 //      [
3641 //          "u8",
3642 //          "name",
3643 //          64
3644 //      ],
3645 //      {
3646 //          "crc": "0x0240c89d"
3647 //      }
3648 //
3649 type IPTableAddDel struct {
3650         TableID uint32
3651         IsIPv6  uint8
3652         IsAdd   uint8
3653         Name    []byte `struc:"[64]byte"`
3654 }
3655
3656 func (*IPTableAddDel) GetMessageName() string {
3657         return "ip_table_add_del"
3658 }
3659 func (*IPTableAddDel) GetCrcString() string {
3660         return "0240c89d"
3661 }
3662 func (*IPTableAddDel) GetMessageType() api.MessageType {
3663         return api.RequestMessage
3664 }
3665
3666 // IPTableAddDelReply represents VPP binary API message 'ip_table_add_del_reply':
3667 //
3668 //      "ip_table_add_del_reply",
3669 //      [
3670 //          "u16",
3671 //          "_vl_msg_id"
3672 //      ],
3673 //      [
3674 //          "u32",
3675 //          "context"
3676 //      ],
3677 //      [
3678 //          "i32",
3679 //          "retval"
3680 //      ],
3681 //      {
3682 //          "crc": "0xe8d4e804"
3683 //      }
3684 //
3685 type IPTableAddDelReply struct {
3686         Retval int32
3687 }
3688
3689 func (*IPTableAddDelReply) GetMessageName() string {
3690         return "ip_table_add_del_reply"
3691 }
3692 func (*IPTableAddDelReply) GetCrcString() string {
3693         return "e8d4e804"
3694 }
3695 func (*IPTableAddDelReply) GetMessageType() api.MessageType {
3696         return api.ReplyMessage
3697 }
3698
3699 // IPUnnumberedDetails represents VPP binary API message 'ip_unnumbered_details':
3700 //
3701 //      "ip_unnumbered_details",
3702 //      [
3703 //          "u16",
3704 //          "_vl_msg_id"
3705 //      ],
3706 //      [
3707 //          "u32",
3708 //          "context"
3709 //      ],
3710 //      [
3711 //          "u32",
3712 //          "sw_if_index"
3713 //      ],
3714 //      [
3715 //          "u32",
3716 //          "ip_sw_if_index"
3717 //      ],
3718 //      {
3719 //          "crc": "0xae694cf4"
3720 //      }
3721 //
3722 type IPUnnumberedDetails struct {
3723         SwIfIndex   uint32
3724         IPSwIfIndex uint32
3725 }
3726
3727 func (*IPUnnumberedDetails) GetMessageName() string {
3728         return "ip_unnumbered_details"
3729 }
3730 func (*IPUnnumberedDetails) GetCrcString() string {
3731         return "ae694cf4"
3732 }
3733 func (*IPUnnumberedDetails) GetMessageType() api.MessageType {
3734         return api.ReplyMessage
3735 }
3736
3737 // IPUnnumberedDump represents VPP binary API message 'ip_unnumbered_dump':
3738 //
3739 //      "ip_unnumbered_dump",
3740 //      [
3741 //          "u16",
3742 //          "_vl_msg_id"
3743 //      ],
3744 //      [
3745 //          "u32",
3746 //          "client_index"
3747 //      ],
3748 //      [
3749 //          "u32",
3750 //          "context"
3751 //      ],
3752 //      [
3753 //          "u32",
3754 //          "sw_if_index"
3755 //      ],
3756 //      {
3757 //          "crc": "0x529cb13f"
3758 //      }
3759 //
3760 type IPUnnumberedDump struct {
3761         SwIfIndex uint32
3762 }
3763
3764 func (*IPUnnumberedDump) GetMessageName() string {
3765         return "ip_unnumbered_dump"
3766 }
3767 func (*IPUnnumberedDump) GetCrcString() string {
3768         return "529cb13f"
3769 }
3770 func (*IPUnnumberedDump) GetMessageType() api.MessageType {
3771         return api.RequestMessage
3772 }
3773
3774 // MfibSignalDetails represents VPP binary API message 'mfib_signal_details':
3775 //
3776 //      "mfib_signal_details",
3777 //      [
3778 //          "u16",
3779 //          "_vl_msg_id"
3780 //      ],
3781 //      [
3782 //          "u32",
3783 //          "context"
3784 //      ],
3785 //      [
3786 //          "u32",
3787 //          "sw_if_index"
3788 //      ],
3789 //      [
3790 //          "u32",
3791 //          "table_id"
3792 //      ],
3793 //      [
3794 //          "u16",
3795 //          "grp_address_len"
3796 //      ],
3797 //      [
3798 //          "u8",
3799 //          "grp_address",
3800 //          16
3801 //      ],
3802 //      [
3803 //          "u8",
3804 //          "src_address",
3805 //          16
3806 //      ],
3807 //      [
3808 //          "u16",
3809 //          "ip_packet_len"
3810 //      ],
3811 //      [
3812 //          "u8",
3813 //          "ip_packet_data",
3814 //          256
3815 //      ],
3816 //      {
3817 //          "crc": "0x3f5f03f5"
3818 //      }
3819 //
3820 type MfibSignalDetails struct {
3821         SwIfIndex     uint32
3822         TableID       uint32
3823         GrpAddressLen uint16
3824         GrpAddress    []byte `struc:"[16]byte"`
3825         SrcAddress    []byte `struc:"[16]byte"`
3826         IPPacketLen   uint16
3827         IPPacketData  []byte `struc:"[256]byte"`
3828 }
3829
3830 func (*MfibSignalDetails) GetMessageName() string {
3831         return "mfib_signal_details"
3832 }
3833 func (*MfibSignalDetails) GetCrcString() string {
3834         return "3f5f03f5"
3835 }
3836 func (*MfibSignalDetails) GetMessageType() api.MessageType {
3837         return api.ReplyMessage
3838 }
3839
3840 // MfibSignalDump represents VPP binary API message 'mfib_signal_dump':
3841 //
3842 //      "mfib_signal_dump",
3843 //      [
3844 //          "u16",
3845 //          "_vl_msg_id"
3846 //      ],
3847 //      [
3848 //          "u32",
3849 //          "client_index"
3850 //      ],
3851 //      [
3852 //          "u32",
3853 //          "context"
3854 //      ],
3855 //      {
3856 //          "crc": "0x51077d14"
3857 //      }
3858 //
3859 type MfibSignalDump struct{}
3860
3861 func (*MfibSignalDump) GetMessageName() string {
3862         return "mfib_signal_dump"
3863 }
3864 func (*MfibSignalDump) GetCrcString() string {
3865         return "51077d14"
3866 }
3867 func (*MfibSignalDump) GetMessageType() api.MessageType {
3868         return api.RequestMessage
3869 }
3870
3871 // ProxyArpAddDel represents VPP binary API message 'proxy_arp_add_del':
3872 //
3873 //      "proxy_arp_add_del",
3874 //      [
3875 //          "u16",
3876 //          "_vl_msg_id"
3877 //      ],
3878 //      [
3879 //          "u32",
3880 //          "client_index"
3881 //      ],
3882 //      [
3883 //          "u32",
3884 //          "context"
3885 //      ],
3886 //      [
3887 //          "u8",
3888 //          "is_add"
3889 //      ],
3890 //      [
3891 //          "vl_api_proxy_arp_t",
3892 //          "proxy"
3893 //      ],
3894 //      {
3895 //          "crc": "0x227988d9"
3896 //      }
3897 //
3898 type ProxyArpAddDel struct {
3899         IsAdd uint8
3900         Proxy ProxyArp
3901 }
3902
3903 func (*ProxyArpAddDel) GetMessageName() string {
3904         return "proxy_arp_add_del"
3905 }
3906 func (*ProxyArpAddDel) GetCrcString() string {
3907         return "227988d9"
3908 }
3909 func (*ProxyArpAddDel) GetMessageType() api.MessageType {
3910         return api.RequestMessage
3911 }
3912
3913 // ProxyArpAddDelReply represents VPP binary API message 'proxy_arp_add_del_reply':
3914 //
3915 //      "proxy_arp_add_del_reply",
3916 //      [
3917 //          "u16",
3918 //          "_vl_msg_id"
3919 //      ],
3920 //      [
3921 //          "u32",
3922 //          "context"
3923 //      ],
3924 //      [
3925 //          "i32",
3926 //          "retval"
3927 //      ],
3928 //      {
3929 //          "crc": "0xe8d4e804"
3930 //      }
3931 //
3932 type ProxyArpAddDelReply struct {
3933         Retval int32
3934 }
3935
3936 func (*ProxyArpAddDelReply) GetMessageName() string {
3937         return "proxy_arp_add_del_reply"
3938 }
3939 func (*ProxyArpAddDelReply) GetCrcString() string {
3940         return "e8d4e804"
3941 }
3942 func (*ProxyArpAddDelReply) GetMessageType() api.MessageType {
3943         return api.ReplyMessage
3944 }
3945
3946 // ProxyArpDetails represents VPP binary API message 'proxy_arp_details':
3947 //
3948 //      "proxy_arp_details",
3949 //      [
3950 //          "u16",
3951 //          "_vl_msg_id"
3952 //      ],
3953 //      [
3954 //          "u32",
3955 //          "context"
3956 //      ],
3957 //      [
3958 //          "vl_api_proxy_arp_t",
3959 //          "proxy"
3960 //      ],
3961 //      {
3962 //          "crc": "0x9b707c77"
3963 //      }
3964 //
3965 type ProxyArpDetails struct {
3966         Proxy ProxyArp
3967 }
3968
3969 func (*ProxyArpDetails) GetMessageName() string {
3970         return "proxy_arp_details"
3971 }
3972 func (*ProxyArpDetails) GetCrcString() string {
3973         return "9b707c77"
3974 }
3975 func (*ProxyArpDetails) GetMessageType() api.MessageType {
3976         return api.ReplyMessage
3977 }
3978
3979 // ProxyArpDump represents VPP binary API message 'proxy_arp_dump':
3980 //
3981 //      "proxy_arp_dump",
3982 //      [
3983 //          "u16",
3984 //          "_vl_msg_id"
3985 //      ],
3986 //      [
3987 //          "u32",
3988 //          "client_index"
3989 //      ],
3990 //      [
3991 //          "u32",
3992 //          "context"
3993 //      ],
3994 //      {
3995 //          "crc": "0x51077d14"
3996 //      }
3997 //
3998 type ProxyArpDump struct{}
3999
4000 func (*ProxyArpDump) GetMessageName() string {
4001         return "proxy_arp_dump"
4002 }
4003 func (*ProxyArpDump) GetCrcString() string {
4004         return "51077d14"
4005 }
4006 func (*ProxyArpDump) GetMessageType() api.MessageType {
4007         return api.RequestMessage
4008 }
4009
4010 // ProxyArpIntfcDetails represents VPP binary API message 'proxy_arp_intfc_details':
4011 //
4012 //      "proxy_arp_intfc_details",
4013 //      [
4014 //          "u16",
4015 //          "_vl_msg_id"
4016 //      ],
4017 //      [
4018 //          "u32",
4019 //          "context"
4020 //      ],
4021 //      [
4022 //          "u32",
4023 //          "sw_if_index"
4024 //      ],
4025 //      {
4026 //          "crc": "0xf6458e5f"
4027 //      }
4028 //
4029 type ProxyArpIntfcDetails struct {
4030         SwIfIndex uint32
4031 }
4032
4033 func (*ProxyArpIntfcDetails) GetMessageName() string {
4034         return "proxy_arp_intfc_details"
4035 }
4036 func (*ProxyArpIntfcDetails) GetCrcString() string {
4037         return "f6458e5f"
4038 }
4039 func (*ProxyArpIntfcDetails) GetMessageType() api.MessageType {
4040         return api.ReplyMessage
4041 }
4042
4043 // ProxyArpIntfcDump represents VPP binary API message 'proxy_arp_intfc_dump':
4044 //
4045 //      "proxy_arp_intfc_dump",
4046 //      [
4047 //          "u16",
4048 //          "_vl_msg_id"
4049 //      ],
4050 //      [
4051 //          "u32",
4052 //          "client_index"
4053 //      ],
4054 //      [
4055 //          "u32",
4056 //          "context"
4057 //      ],
4058 //      {
4059 //          "crc": "0x51077d14"
4060 //      }
4061 //
4062 type ProxyArpIntfcDump struct{}
4063
4064 func (*ProxyArpIntfcDump) GetMessageName() string {
4065         return "proxy_arp_intfc_dump"
4066 }
4067 func (*ProxyArpIntfcDump) GetCrcString() string {
4068         return "51077d14"
4069 }
4070 func (*ProxyArpIntfcDump) GetMessageType() api.MessageType {
4071         return api.RequestMessage
4072 }
4073
4074 // ProxyArpIntfcEnableDisable represents VPP binary API message 'proxy_arp_intfc_enable_disable':
4075 //
4076 //      "proxy_arp_intfc_enable_disable",
4077 //      [
4078 //          "u16",
4079 //          "_vl_msg_id"
4080 //      ],
4081 //      [
4082 //          "u32",
4083 //          "client_index"
4084 //      ],
4085 //      [
4086 //          "u32",
4087 //          "context"
4088 //      ],
4089 //      [
4090 //          "u32",
4091 //          "sw_if_index"
4092 //      ],
4093 //      [
4094 //          "u8",
4095 //          "enable_disable"
4096 //      ],
4097 //      {
4098 //          "crc": "0x69d24598"
4099 //      }
4100 //
4101 type ProxyArpIntfcEnableDisable struct {
4102         SwIfIndex     uint32
4103         EnableDisable uint8
4104 }
4105
4106 func (*ProxyArpIntfcEnableDisable) GetMessageName() string {
4107         return "proxy_arp_intfc_enable_disable"
4108 }
4109 func (*ProxyArpIntfcEnableDisable) GetCrcString() string {
4110         return "69d24598"
4111 }
4112 func (*ProxyArpIntfcEnableDisable) GetMessageType() api.MessageType {
4113         return api.RequestMessage
4114 }
4115
4116 // ProxyArpIntfcEnableDisableReply represents VPP binary API message 'proxy_arp_intfc_enable_disable_reply':
4117 //
4118 //      "proxy_arp_intfc_enable_disable_reply",
4119 //      [
4120 //          "u16",
4121 //          "_vl_msg_id"
4122 //      ],
4123 //      [
4124 //          "u32",
4125 //          "context"
4126 //      ],
4127 //      [
4128 //          "i32",
4129 //          "retval"
4130 //      ],
4131 //      {
4132 //          "crc": "0xe8d4e804"
4133 //      }
4134 //
4135 type ProxyArpIntfcEnableDisableReply struct {
4136         Retval int32
4137 }
4138
4139 func (*ProxyArpIntfcEnableDisableReply) GetMessageName() string {
4140         return "proxy_arp_intfc_enable_disable_reply"
4141 }
4142 func (*ProxyArpIntfcEnableDisableReply) GetCrcString() string {
4143         return "e8d4e804"
4144 }
4145 func (*ProxyArpIntfcEnableDisableReply) GetMessageType() api.MessageType {
4146         return api.ReplyMessage
4147 }
4148
4149 // ResetFib represents VPP binary API message 'reset_fib':
4150 //
4151 //      "reset_fib",
4152 //      [
4153 //          "u16",
4154 //          "_vl_msg_id"
4155 //      ],
4156 //      [
4157 //          "u32",
4158 //          "client_index"
4159 //      ],
4160 //      [
4161 //          "u32",
4162 //          "context"
4163 //      ],
4164 //      [
4165 //          "u32",
4166 //          "vrf_id"
4167 //      ],
4168 //      [
4169 //          "u8",
4170 //          "is_ipv6"
4171 //      ],
4172 //      {
4173 //          "crc": "0x8553ebd9"
4174 //      }
4175 //
4176 type ResetFib struct {
4177         VrfID  uint32
4178         IsIPv6 uint8
4179 }
4180
4181 func (*ResetFib) GetMessageName() string {
4182         return "reset_fib"
4183 }
4184 func (*ResetFib) GetCrcString() string {
4185         return "8553ebd9"
4186 }
4187 func (*ResetFib) GetMessageType() api.MessageType {
4188         return api.RequestMessage
4189 }
4190
4191 // ResetFibReply represents VPP binary API message 'reset_fib_reply':
4192 //
4193 //      "reset_fib_reply",
4194 //      [
4195 //          "u16",
4196 //          "_vl_msg_id"
4197 //      ],
4198 //      [
4199 //          "u32",
4200 //          "context"
4201 //      ],
4202 //      [
4203 //          "i32",
4204 //          "retval"
4205 //      ],
4206 //      {
4207 //          "crc": "0xe8d4e804"
4208 //      }
4209 //
4210 type ResetFibReply struct {
4211         Retval int32
4212 }
4213
4214 func (*ResetFibReply) GetMessageName() string {
4215         return "reset_fib_reply"
4216 }
4217 func (*ResetFibReply) GetCrcString() string {
4218         return "e8d4e804"
4219 }
4220 func (*ResetFibReply) GetMessageType() api.MessageType {
4221         return api.ReplyMessage
4222 }
4223
4224 // SetArpNeighborLimit represents VPP binary API message 'set_arp_neighbor_limit':
4225 //
4226 //      "set_arp_neighbor_limit",
4227 //      [
4228 //          "u16",
4229 //          "_vl_msg_id"
4230 //      ],
4231 //      [
4232 //          "u32",
4233 //          "client_index"
4234 //      ],
4235 //      [
4236 //          "u32",
4237 //          "context"
4238 //      ],
4239 //      [
4240 //          "u8",
4241 //          "is_ipv6"
4242 //      ],
4243 //      [
4244 //          "u32",
4245 //          "arp_neighbor_limit"
4246 //      ],
4247 //      {
4248 //          "crc": "0x97d01fd6"
4249 //      }
4250 //
4251 type SetArpNeighborLimit struct {
4252         IsIPv6           uint8
4253         ArpNeighborLimit uint32
4254 }
4255
4256 func (*SetArpNeighborLimit) GetMessageName() string {
4257         return "set_arp_neighbor_limit"
4258 }
4259 func (*SetArpNeighborLimit) GetCrcString() string {
4260         return "97d01fd6"
4261 }
4262 func (*SetArpNeighborLimit) GetMessageType() api.MessageType {
4263         return api.RequestMessage
4264 }
4265
4266 // SetArpNeighborLimitReply represents VPP binary API message 'set_arp_neighbor_limit_reply':
4267 //
4268 //      "set_arp_neighbor_limit_reply",
4269 //      [
4270 //          "u16",
4271 //          "_vl_msg_id"
4272 //      ],
4273 //      [
4274 //          "u32",
4275 //          "context"
4276 //      ],
4277 //      [
4278 //          "i32",
4279 //          "retval"
4280 //      ],
4281 //      {
4282 //          "crc": "0xe8d4e804"
4283 //      }
4284 //
4285 type SetArpNeighborLimitReply struct {
4286         Retval int32
4287 }
4288
4289 func (*SetArpNeighborLimitReply) GetMessageName() string {
4290         return "set_arp_neighbor_limit_reply"
4291 }
4292 func (*SetArpNeighborLimitReply) GetCrcString() string {
4293         return "e8d4e804"
4294 }
4295 func (*SetArpNeighborLimitReply) GetMessageType() api.MessageType {
4296         return api.ReplyMessage
4297 }
4298
4299 // SetIPFlowHash represents VPP binary API message 'set_ip_flow_hash':
4300 //
4301 //      "set_ip_flow_hash",
4302 //      [
4303 //          "u16",
4304 //          "_vl_msg_id"
4305 //      ],
4306 //      [
4307 //          "u32",
4308 //          "client_index"
4309 //      ],
4310 //      [
4311 //          "u32",
4312 //          "context"
4313 //      ],
4314 //      [
4315 //          "u32",
4316 //          "vrf_id"
4317 //      ],
4318 //      [
4319 //          "u8",
4320 //          "is_ipv6"
4321 //      ],
4322 //      [
4323 //          "u8",
4324 //          "src"
4325 //      ],
4326 //      [
4327 //          "u8",
4328 //          "dst"
4329 //      ],
4330 //      [
4331 //          "u8",
4332 //          "sport"
4333 //      ],
4334 //      [
4335 //          "u8",
4336 //          "dport"
4337 //      ],
4338 //      [
4339 //          "u8",
4340 //          "proto"
4341 //      ],
4342 //      [
4343 //          "u8",
4344 //          "reverse"
4345 //      ],
4346 //      [
4347 //          "u8",
4348 //          "symmetric"
4349 //      ],
4350 //      {
4351 //          "crc": "0xa9084bfb"
4352 //      }
4353 //
4354 type SetIPFlowHash struct {
4355         VrfID     uint32
4356         IsIPv6    uint8
4357         Src       uint8
4358         Dst       uint8
4359         Sport     uint8
4360         Dport     uint8
4361         Proto     uint8
4362         Reverse   uint8
4363         Symmetric uint8
4364 }
4365
4366 func (*SetIPFlowHash) GetMessageName() string {
4367         return "set_ip_flow_hash"
4368 }
4369 func (*SetIPFlowHash) GetCrcString() string {
4370         return "a9084bfb"
4371 }
4372 func (*SetIPFlowHash) GetMessageType() api.MessageType {
4373         return api.RequestMessage
4374 }
4375
4376 // SetIPFlowHashReply represents VPP binary API message 'set_ip_flow_hash_reply':
4377 //
4378 //      "set_ip_flow_hash_reply",
4379 //      [
4380 //          "u16",
4381 //          "_vl_msg_id"
4382 //      ],
4383 //      [
4384 //          "u32",
4385 //          "context"
4386 //      ],
4387 //      [
4388 //          "i32",
4389 //          "retval"
4390 //      ],
4391 //      {
4392 //          "crc": "0xe8d4e804"
4393 //      }
4394 //
4395 type SetIPFlowHashReply struct {
4396         Retval int32
4397 }
4398
4399 func (*SetIPFlowHashReply) GetMessageName() string {
4400         return "set_ip_flow_hash_reply"
4401 }
4402 func (*SetIPFlowHashReply) GetCrcString() string {
4403         return "e8d4e804"
4404 }
4405 func (*SetIPFlowHashReply) GetMessageType() api.MessageType {
4406         return api.ReplyMessage
4407 }
4408
4409 // SwInterfaceIP6EnableDisable represents VPP binary API message 'sw_interface_ip6_enable_disable':
4410 //
4411 //      "sw_interface_ip6_enable_disable",
4412 //      [
4413 //          "u16",
4414 //          "_vl_msg_id"
4415 //      ],
4416 //      [
4417 //          "u32",
4418 //          "client_index"
4419 //      ],
4420 //      [
4421 //          "u32",
4422 //          "context"
4423 //      ],
4424 //      [
4425 //          "u32",
4426 //          "sw_if_index"
4427 //      ],
4428 //      [
4429 //          "u8",
4430 //          "enable"
4431 //      ],
4432 //      {
4433 //          "crc": "0xa36fadc0"
4434 //      }
4435 //
4436 type SwInterfaceIP6EnableDisable struct {
4437         SwIfIndex uint32
4438         Enable    uint8
4439 }
4440
4441 func (*SwInterfaceIP6EnableDisable) GetMessageName() string {
4442         return "sw_interface_ip6_enable_disable"
4443 }
4444 func (*SwInterfaceIP6EnableDisable) GetCrcString() string {
4445         return "a36fadc0"
4446 }
4447 func (*SwInterfaceIP6EnableDisable) GetMessageType() api.MessageType {
4448         return api.RequestMessage
4449 }
4450
4451 // SwInterfaceIP6EnableDisableReply represents VPP binary API message 'sw_interface_ip6_enable_disable_reply':
4452 //
4453 //      "sw_interface_ip6_enable_disable_reply",
4454 //      [
4455 //          "u16",
4456 //          "_vl_msg_id"
4457 //      ],
4458 //      [
4459 //          "u32",
4460 //          "context"
4461 //      ],
4462 //      [
4463 //          "i32",
4464 //          "retval"
4465 //      ],
4466 //      {
4467 //          "crc": "0xe8d4e804"
4468 //      }
4469 //
4470 type SwInterfaceIP6EnableDisableReply struct {
4471         Retval int32
4472 }
4473
4474 func (*SwInterfaceIP6EnableDisableReply) GetMessageName() string {
4475         return "sw_interface_ip6_enable_disable_reply"
4476 }
4477 func (*SwInterfaceIP6EnableDisableReply) GetCrcString() string {
4478         return "e8d4e804"
4479 }
4480 func (*SwInterfaceIP6EnableDisableReply) GetMessageType() api.MessageType {
4481         return api.ReplyMessage
4482 }
4483
4484 // SwInterfaceIP6ndRaConfig represents VPP binary API message 'sw_interface_ip6nd_ra_config':
4485 //
4486 //      "sw_interface_ip6nd_ra_config",
4487 //      [
4488 //          "u16",
4489 //          "_vl_msg_id"
4490 //      ],
4491 //      [
4492 //          "u32",
4493 //          "client_index"
4494 //      ],
4495 //      [
4496 //          "u32",
4497 //          "context"
4498 //      ],
4499 //      [
4500 //          "u32",
4501 //          "sw_if_index"
4502 //      ],
4503 //      [
4504 //          "u8",
4505 //          "suppress"
4506 //      ],
4507 //      [
4508 //          "u8",
4509 //          "managed"
4510 //      ],
4511 //      [
4512 //          "u8",
4513 //          "other"
4514 //      ],
4515 //      [
4516 //          "u8",
4517 //          "ll_option"
4518 //      ],
4519 //      [
4520 //          "u8",
4521 //          "send_unicast"
4522 //      ],
4523 //      [
4524 //          "u8",
4525 //          "cease"
4526 //      ],
4527 //      [
4528 //          "u8",
4529 //          "is_no"
4530 //      ],
4531 //      [
4532 //          "u8",
4533 //          "default_router"
4534 //      ],
4535 //      [
4536 //          "u32",
4537 //          "max_interval"
4538 //      ],
4539 //      [
4540 //          "u32",
4541 //          "min_interval"
4542 //      ],
4543 //      [
4544 //          "u32",
4545 //          "lifetime"
4546 //      ],
4547 //      [
4548 //          "u32",
4549 //          "initial_count"
4550 //      ],
4551 //      [
4552 //          "u32",
4553 //          "initial_interval"
4554 //      ],
4555 //      {
4556 //          "crc": "0xc3f02daa"
4557 //      }
4558 //
4559 type SwInterfaceIP6ndRaConfig struct {
4560         SwIfIndex       uint32
4561         Suppress        uint8
4562         Managed         uint8
4563         Other           uint8
4564         LlOption        uint8
4565         SendUnicast     uint8
4566         Cease           uint8
4567         IsNo            uint8
4568         DefaultRouter   uint8
4569         MaxInterval     uint32
4570         MinInterval     uint32
4571         Lifetime        uint32
4572         InitialCount    uint32
4573         InitialInterval uint32
4574 }
4575
4576 func (*SwInterfaceIP6ndRaConfig) GetMessageName() string {
4577         return "sw_interface_ip6nd_ra_config"
4578 }
4579 func (*SwInterfaceIP6ndRaConfig) GetCrcString() string {
4580         return "c3f02daa"
4581 }
4582 func (*SwInterfaceIP6ndRaConfig) GetMessageType() api.MessageType {
4583         return api.RequestMessage
4584 }
4585
4586 // SwInterfaceIP6ndRaConfigReply represents VPP binary API message 'sw_interface_ip6nd_ra_config_reply':
4587 //
4588 //      "sw_interface_ip6nd_ra_config_reply",
4589 //      [
4590 //          "u16",
4591 //          "_vl_msg_id"
4592 //      ],
4593 //      [
4594 //          "u32",
4595 //          "context"
4596 //      ],
4597 //      [
4598 //          "i32",
4599 //          "retval"
4600 //      ],
4601 //      {
4602 //          "crc": "0xe8d4e804"
4603 //      }
4604 //
4605 type SwInterfaceIP6ndRaConfigReply struct {
4606         Retval int32
4607 }
4608
4609 func (*SwInterfaceIP6ndRaConfigReply) GetMessageName() string {
4610         return "sw_interface_ip6nd_ra_config_reply"
4611 }
4612 func (*SwInterfaceIP6ndRaConfigReply) GetCrcString() string {
4613         return "e8d4e804"
4614 }
4615 func (*SwInterfaceIP6ndRaConfigReply) GetMessageType() api.MessageType {
4616         return api.ReplyMessage
4617 }
4618
4619 // SwInterfaceIP6ndRaPrefix represents VPP binary API message 'sw_interface_ip6nd_ra_prefix':
4620 //
4621 //      "sw_interface_ip6nd_ra_prefix",
4622 //      [
4623 //          "u16",
4624 //          "_vl_msg_id"
4625 //      ],
4626 //      [
4627 //          "u32",
4628 //          "client_index"
4629 //      ],
4630 //      [
4631 //          "u32",
4632 //          "context"
4633 //      ],
4634 //      [
4635 //          "u32",
4636 //          "sw_if_index"
4637 //      ],
4638 //      [
4639 //          "u8",
4640 //          "address",
4641 //          16
4642 //      ],
4643 //      [
4644 //          "u8",
4645 //          "address_length"
4646 //      ],
4647 //      [
4648 //          "u8",
4649 //          "use_default"
4650 //      ],
4651 //      [
4652 //          "u8",
4653 //          "no_advertise"
4654 //      ],
4655 //      [
4656 //          "u8",
4657 //          "off_link"
4658 //      ],
4659 //      [
4660 //          "u8",
4661 //          "no_autoconfig"
4662 //      ],
4663 //      [
4664 //          "u8",
4665 //          "no_onlink"
4666 //      ],
4667 //      [
4668 //          "u8",
4669 //          "is_no"
4670 //      ],
4671 //      [
4672 //          "u32",
4673 //          "val_lifetime"
4674 //      ],
4675 //      [
4676 //          "u32",
4677 //          "pref_lifetime"
4678 //      ],
4679 //      {
4680 //          "crc": "0xca763c9a"
4681 //      }
4682 //
4683 type SwInterfaceIP6ndRaPrefix struct {
4684         SwIfIndex     uint32
4685         Address       []byte `struc:"[16]byte"`
4686         AddressLength uint8
4687         UseDefault    uint8
4688         NoAdvertise   uint8
4689         OffLink       uint8
4690         NoAutoconfig  uint8
4691         NoOnlink      uint8
4692         IsNo          uint8
4693         ValLifetime   uint32
4694         PrefLifetime  uint32
4695 }
4696
4697 func (*SwInterfaceIP6ndRaPrefix) GetMessageName() string {
4698         return "sw_interface_ip6nd_ra_prefix"
4699 }
4700 func (*SwInterfaceIP6ndRaPrefix) GetCrcString() string {
4701         return "ca763c9a"
4702 }
4703 func (*SwInterfaceIP6ndRaPrefix) GetMessageType() api.MessageType {
4704         return api.RequestMessage
4705 }
4706
4707 // SwInterfaceIP6ndRaPrefixReply represents VPP binary API message 'sw_interface_ip6nd_ra_prefix_reply':
4708 //
4709 //      "sw_interface_ip6nd_ra_prefix_reply",
4710 //      [
4711 //          "u16",
4712 //          "_vl_msg_id"
4713 //      ],
4714 //      [
4715 //          "u32",
4716 //          "context"
4717 //      ],
4718 //      [
4719 //          "i32",
4720 //          "retval"
4721 //      ],
4722 //      {
4723 //          "crc": "0xe8d4e804"
4724 //      }
4725 //
4726 type SwInterfaceIP6ndRaPrefixReply struct {
4727         Retval int32
4728 }
4729
4730 func (*SwInterfaceIP6ndRaPrefixReply) GetMessageName() string {
4731         return "sw_interface_ip6nd_ra_prefix_reply"
4732 }
4733 func (*SwInterfaceIP6ndRaPrefixReply) GetCrcString() string {
4734         return "e8d4e804"
4735 }
4736 func (*SwInterfaceIP6ndRaPrefixReply) GetMessageType() api.MessageType {
4737         return api.ReplyMessage
4738 }
4739
4740 // WantIP4ArpEvents represents VPP binary API message 'want_ip4_arp_events':
4741 //
4742 //      "want_ip4_arp_events",
4743 //      [
4744 //          "u16",
4745 //          "_vl_msg_id"
4746 //      ],
4747 //      [
4748 //          "u32",
4749 //          "client_index"
4750 //      ],
4751 //      [
4752 //          "u32",
4753 //          "context"
4754 //      ],
4755 //      [
4756 //          "u8",
4757 //          "enable_disable"
4758 //      ],
4759 //      [
4760 //          "u32",
4761 //          "pid"
4762 //      ],
4763 //      [
4764 //          "u32",
4765 //          "address"
4766 //      ],
4767 //      {
4768 //          "crc": "0x77e06379"
4769 //      }
4770 //
4771 type WantIP4ArpEvents struct {
4772         EnableDisable uint8
4773         PID           uint32
4774         Address       uint32
4775 }
4776
4777 func (*WantIP4ArpEvents) GetMessageName() string {
4778         return "want_ip4_arp_events"
4779 }
4780 func (*WantIP4ArpEvents) GetCrcString() string {
4781         return "77e06379"
4782 }
4783 func (*WantIP4ArpEvents) GetMessageType() api.MessageType {
4784         return api.RequestMessage
4785 }
4786
4787 // WantIP4ArpEventsReply represents VPP binary API message 'want_ip4_arp_events_reply':
4788 //
4789 //      "want_ip4_arp_events_reply",
4790 //      [
4791 //          "u16",
4792 //          "_vl_msg_id"
4793 //      ],
4794 //      [
4795 //          "u32",
4796 //          "context"
4797 //      ],
4798 //      [
4799 //          "i32",
4800 //          "retval"
4801 //      ],
4802 //      {
4803 //          "crc": "0xe8d4e804"
4804 //      }
4805 //
4806 type WantIP4ArpEventsReply struct {
4807         Retval int32
4808 }
4809
4810 func (*WantIP4ArpEventsReply) GetMessageName() string {
4811         return "want_ip4_arp_events_reply"
4812 }
4813 func (*WantIP4ArpEventsReply) GetCrcString() string {
4814         return "e8d4e804"
4815 }
4816 func (*WantIP4ArpEventsReply) GetMessageType() api.MessageType {
4817         return api.ReplyMessage
4818 }
4819
4820 // WantIP6NdEvents represents VPP binary API message 'want_ip6_nd_events':
4821 //
4822 //      "want_ip6_nd_events",
4823 //      [
4824 //          "u16",
4825 //          "_vl_msg_id"
4826 //      ],
4827 //      [
4828 //          "u32",
4829 //          "client_index"
4830 //      ],
4831 //      [
4832 //          "u32",
4833 //          "context"
4834 //      ],
4835 //      [
4836 //          "u8",
4837 //          "enable_disable"
4838 //      ],
4839 //      [
4840 //          "u32",
4841 //          "pid"
4842 //      ],
4843 //      [
4844 //          "u8",
4845 //          "address",
4846 //          16
4847 //      ],
4848 //      {
4849 //          "crc": "0x1cf65fbb"
4850 //      }
4851 //
4852 type WantIP6NdEvents struct {
4853         EnableDisable uint8
4854         PID           uint32
4855         Address       []byte `struc:"[16]byte"`
4856 }
4857
4858 func (*WantIP6NdEvents) GetMessageName() string {
4859         return "want_ip6_nd_events"
4860 }
4861 func (*WantIP6NdEvents) GetCrcString() string {
4862         return "1cf65fbb"
4863 }
4864 func (*WantIP6NdEvents) GetMessageType() api.MessageType {
4865         return api.RequestMessage
4866 }
4867
4868 // WantIP6NdEventsReply represents VPP binary API message 'want_ip6_nd_events_reply':
4869 //
4870 //      "want_ip6_nd_events_reply",
4871 //      [
4872 //          "u16",
4873 //          "_vl_msg_id"
4874 //      ],
4875 //      [
4876 //          "u32",
4877 //          "context"
4878 //      ],
4879 //      [
4880 //          "i32",
4881 //          "retval"
4882 //      ],
4883 //      {
4884 //          "crc": "0xe8d4e804"
4885 //      }
4886 //
4887 type WantIP6NdEventsReply struct {
4888         Retval int32
4889 }
4890
4891 func (*WantIP6NdEventsReply) GetMessageName() string {
4892         return "want_ip6_nd_events_reply"
4893 }
4894 func (*WantIP6NdEventsReply) GetCrcString() string {
4895         return "e8d4e804"
4896 }
4897 func (*WantIP6NdEventsReply) GetMessageType() api.MessageType {
4898         return api.ReplyMessage
4899 }
4900
4901 // WantIP6RaEvents represents VPP binary API message 'want_ip6_ra_events':
4902 //
4903 //      "want_ip6_ra_events",
4904 //      [
4905 //          "u16",
4906 //          "_vl_msg_id"
4907 //      ],
4908 //      [
4909 //          "u32",
4910 //          "client_index"
4911 //      ],
4912 //      [
4913 //          "u32",
4914 //          "context"
4915 //      ],
4916 //      [
4917 //          "u8",
4918 //          "enable_disable"
4919 //      ],
4920 //      [
4921 //          "u32",
4922 //          "pid"
4923 //      ],
4924 //      {
4925 //          "crc": "0x05b454b5"
4926 //      }
4927 //
4928 type WantIP6RaEvents struct {
4929         EnableDisable uint8
4930         PID           uint32
4931 }
4932
4933 func (*WantIP6RaEvents) GetMessageName() string {
4934         return "want_ip6_ra_events"
4935 }
4936 func (*WantIP6RaEvents) GetCrcString() string {
4937         return "05b454b5"
4938 }
4939 func (*WantIP6RaEvents) GetMessageType() api.MessageType {
4940         return api.RequestMessage
4941 }
4942
4943 // WantIP6RaEventsReply represents VPP binary API message 'want_ip6_ra_events_reply':
4944 //
4945 //      "want_ip6_ra_events_reply",
4946 //      [
4947 //          "u16",
4948 //          "_vl_msg_id"
4949 //      ],
4950 //      [
4951 //          "u32",
4952 //          "context"
4953 //      ],
4954 //      [
4955 //          "i32",
4956 //          "retval"
4957 //      ],
4958 //      {
4959 //          "crc": "0xe8d4e804"
4960 //      }
4961 //
4962 type WantIP6RaEventsReply struct {
4963         Retval int32
4964 }
4965
4966 func (*WantIP6RaEventsReply) GetMessageName() string {
4967         return "want_ip6_ra_events_reply"
4968 }
4969 func (*WantIP6RaEventsReply) GetCrcString() string {
4970         return "e8d4e804"
4971 }
4972 func (*WantIP6RaEventsReply) GetMessageType() api.MessageType {
4973         return api.ReplyMessage
4974 }
4975
4976 func init() {
4977         api.RegisterMessage((*IoamDisable)(nil), "ip.IoamDisable")
4978         api.RegisterMessage((*IoamDisableReply)(nil), "ip.IoamDisableReply")
4979         api.RegisterMessage((*IoamEnable)(nil), "ip.IoamEnable")
4980         api.RegisterMessage((*IoamEnableReply)(nil), "ip.IoamEnableReply")
4981         api.RegisterMessage((*IP4ArpEvent)(nil), "ip.IP4ArpEvent")
4982         api.RegisterMessage((*IP6FibDetails)(nil), "ip.IP6FibDetails")
4983         api.RegisterMessage((*IP6FibDump)(nil), "ip.IP6FibDump")
4984         api.RegisterMessage((*IP6MfibDetails)(nil), "ip.IP6MfibDetails")
4985         api.RegisterMessage((*IP6MfibDump)(nil), "ip.IP6MfibDump")
4986         api.RegisterMessage((*IP6NdEvent)(nil), "ip.IP6NdEvent")
4987         api.RegisterMessage((*IP6RaEvent)(nil), "ip.IP6RaEvent")
4988         api.RegisterMessage((*IP6ndProxyAddDel)(nil), "ip.IP6ndProxyAddDel")
4989         api.RegisterMessage((*IP6ndProxyAddDelReply)(nil), "ip.IP6ndProxyAddDelReply")
4990         api.RegisterMessage((*IP6ndProxyDetails)(nil), "ip.IP6ndProxyDetails")
4991         api.RegisterMessage((*IP6ndProxyDump)(nil), "ip.IP6ndProxyDump")
4992         api.RegisterMessage((*IP6ndSendRouterSolicitation)(nil), "ip.IP6ndSendRouterSolicitation")
4993         api.RegisterMessage((*IP6ndSendRouterSolicitationReply)(nil), "ip.IP6ndSendRouterSolicitationReply")
4994         api.RegisterMessage((*IPAddDelRoute)(nil), "ip.IPAddDelRoute")
4995         api.RegisterMessage((*IPAddDelRouteReply)(nil), "ip.IPAddDelRouteReply")
4996         api.RegisterMessage((*IPAddressDetails)(nil), "ip.IPAddressDetails")
4997         api.RegisterMessage((*IPAddressDump)(nil), "ip.IPAddressDump")
4998         api.RegisterMessage((*IPContainerProxyAddDel)(nil), "ip.IPContainerProxyAddDel")
4999         api.RegisterMessage((*IPContainerProxyAddDelReply)(nil), "ip.IPContainerProxyAddDelReply")
5000         api.RegisterMessage((*IPContainerProxyDetails)(nil), "ip.IPContainerProxyDetails")
5001         api.RegisterMessage((*IPContainerProxyDump)(nil), "ip.IPContainerProxyDump")
5002         api.RegisterMessage((*IPDetails)(nil), "ip.IPDetails")
5003         api.RegisterMessage((*IPDump)(nil), "ip.IPDump")
5004         api.RegisterMessage((*IPFibDetails)(nil), "ip.IPFibDetails")
5005         api.RegisterMessage((*IPFibDump)(nil), "ip.IPFibDump")
5006         api.RegisterMessage((*IPMfibDetails)(nil), "ip.IPMfibDetails")
5007         api.RegisterMessage((*IPMfibDump)(nil), "ip.IPMfibDump")
5008         api.RegisterMessage((*IPMrouteAddDel)(nil), "ip.IPMrouteAddDel")
5009         api.RegisterMessage((*IPMrouteAddDelReply)(nil), "ip.IPMrouteAddDelReply")
5010         api.RegisterMessage((*IPNeighborAddDel)(nil), "ip.IPNeighborAddDel")
5011         api.RegisterMessage((*IPNeighborAddDelReply)(nil), "ip.IPNeighborAddDelReply")
5012         api.RegisterMessage((*IPNeighborDetails)(nil), "ip.IPNeighborDetails")
5013         api.RegisterMessage((*IPNeighborDump)(nil), "ip.IPNeighborDump")
5014         api.RegisterMessage((*IPProbeNeighbor)(nil), "ip.IPProbeNeighbor")
5015         api.RegisterMessage((*IPProbeNeighborReply)(nil), "ip.IPProbeNeighborReply")
5016         api.RegisterMessage((*IPPuntPolice)(nil), "ip.IPPuntPolice")
5017         api.RegisterMessage((*IPPuntPoliceReply)(nil), "ip.IPPuntPoliceReply")
5018         api.RegisterMessage((*IPPuntRedirect)(nil), "ip.IPPuntRedirect")
5019         api.RegisterMessage((*IPPuntRedirectDetails)(nil), "ip.IPPuntRedirectDetails")
5020         api.RegisterMessage((*IPPuntRedirectDump)(nil), "ip.IPPuntRedirectDump")
5021         api.RegisterMessage((*IPPuntRedirectReply)(nil), "ip.IPPuntRedirectReply")
5022         api.RegisterMessage((*IPReassemblyEnableDisable)(nil), "ip.IPReassemblyEnableDisable")
5023         api.RegisterMessage((*IPReassemblyEnableDisableReply)(nil), "ip.IPReassemblyEnableDisableReply")
5024         api.RegisterMessage((*IPReassemblyGet)(nil), "ip.IPReassemblyGet")
5025         api.RegisterMessage((*IPReassemblyGetReply)(nil), "ip.IPReassemblyGetReply")
5026         api.RegisterMessage((*IPReassemblySet)(nil), "ip.IPReassemblySet")
5027         api.RegisterMessage((*IPReassemblySetReply)(nil), "ip.IPReassemblySetReply")
5028         api.RegisterMessage((*IPScanNeighborEnableDisable)(nil), "ip.IPScanNeighborEnableDisable")
5029         api.RegisterMessage((*IPScanNeighborEnableDisableReply)(nil), "ip.IPScanNeighborEnableDisableReply")
5030         api.RegisterMessage((*IPSourceAndPortRangeCheckAddDel)(nil), "ip.IPSourceAndPortRangeCheckAddDel")
5031         api.RegisterMessage((*IPSourceAndPortRangeCheckAddDelReply)(nil), "ip.IPSourceAndPortRangeCheckAddDelReply")
5032         api.RegisterMessage((*IPSourceAndPortRangeCheckInterfaceAddDel)(nil), "ip.IPSourceAndPortRangeCheckInterfaceAddDel")
5033         api.RegisterMessage((*IPSourceAndPortRangeCheckInterfaceAddDelReply)(nil), "ip.IPSourceAndPortRangeCheckInterfaceAddDelReply")
5034         api.RegisterMessage((*IPSourceCheckInterfaceAddDel)(nil), "ip.IPSourceCheckInterfaceAddDel")
5035         api.RegisterMessage((*IPSourceCheckInterfaceAddDelReply)(nil), "ip.IPSourceCheckInterfaceAddDelReply")
5036         api.RegisterMessage((*IPTableAddDel)(nil), "ip.IPTableAddDel")
5037         api.RegisterMessage((*IPTableAddDelReply)(nil), "ip.IPTableAddDelReply")
5038         api.RegisterMessage((*IPUnnumberedDetails)(nil), "ip.IPUnnumberedDetails")
5039         api.RegisterMessage((*IPUnnumberedDump)(nil), "ip.IPUnnumberedDump")
5040         api.RegisterMessage((*MfibSignalDetails)(nil), "ip.MfibSignalDetails")
5041         api.RegisterMessage((*MfibSignalDump)(nil), "ip.MfibSignalDump")
5042         api.RegisterMessage((*ProxyArpAddDel)(nil), "ip.ProxyArpAddDel")
5043         api.RegisterMessage((*ProxyArpAddDelReply)(nil), "ip.ProxyArpAddDelReply")
5044         api.RegisterMessage((*ProxyArpDetails)(nil), "ip.ProxyArpDetails")
5045         api.RegisterMessage((*ProxyArpDump)(nil), "ip.ProxyArpDump")
5046         api.RegisterMessage((*ProxyArpIntfcDetails)(nil), "ip.ProxyArpIntfcDetails")
5047         api.RegisterMessage((*ProxyArpIntfcDump)(nil), "ip.ProxyArpIntfcDump")
5048         api.RegisterMessage((*ProxyArpIntfcEnableDisable)(nil), "ip.ProxyArpIntfcEnableDisable")
5049         api.RegisterMessage((*ProxyArpIntfcEnableDisableReply)(nil), "ip.ProxyArpIntfcEnableDisableReply")
5050         api.RegisterMessage((*ResetFib)(nil), "ip.ResetFib")
5051         api.RegisterMessage((*ResetFibReply)(nil), "ip.ResetFibReply")
5052         api.RegisterMessage((*SetArpNeighborLimit)(nil), "ip.SetArpNeighborLimit")
5053         api.RegisterMessage((*SetArpNeighborLimitReply)(nil), "ip.SetArpNeighborLimitReply")
5054         api.RegisterMessage((*SetIPFlowHash)(nil), "ip.SetIPFlowHash")
5055         api.RegisterMessage((*SetIPFlowHashReply)(nil), "ip.SetIPFlowHashReply")
5056         api.RegisterMessage((*SwInterfaceIP6EnableDisable)(nil), "ip.SwInterfaceIP6EnableDisable")
5057         api.RegisterMessage((*SwInterfaceIP6EnableDisableReply)(nil), "ip.SwInterfaceIP6EnableDisableReply")
5058         api.RegisterMessage((*SwInterfaceIP6ndRaConfig)(nil), "ip.SwInterfaceIP6ndRaConfig")
5059         api.RegisterMessage((*SwInterfaceIP6ndRaConfigReply)(nil), "ip.SwInterfaceIP6ndRaConfigReply")
5060         api.RegisterMessage((*SwInterfaceIP6ndRaPrefix)(nil), "ip.SwInterfaceIP6ndRaPrefix")
5061         api.RegisterMessage((*SwInterfaceIP6ndRaPrefixReply)(nil), "ip.SwInterfaceIP6ndRaPrefixReply")
5062         api.RegisterMessage((*WantIP4ArpEvents)(nil), "ip.WantIP4ArpEvents")
5063         api.RegisterMessage((*WantIP4ArpEventsReply)(nil), "ip.WantIP4ArpEventsReply")
5064         api.RegisterMessage((*WantIP6NdEvents)(nil), "ip.WantIP6NdEvents")
5065         api.RegisterMessage((*WantIP6NdEventsReply)(nil), "ip.WantIP6NdEventsReply")
5066         api.RegisterMessage((*WantIP6RaEvents)(nil), "ip.WantIP6RaEvents")
5067         api.RegisterMessage((*WantIP6RaEventsReply)(nil), "ip.WantIP6RaEventsReply")
5068 }