FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
custom_dump.c
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------
3  * custom_dump.c - pretty-print API messages for replay
4  *
5  * Copyright (c) 2014-2016 Cisco and/or its affiliates. Licensed under the
6  * Apache License, Version 2.0 (the "License"); you may not use this file
7  * except in compliance with the License. You may obtain a copy of the
8  * License at:
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15  * License for the specific language governing permissions and limitations
16  * under the License.
17  * ------------------------------------------------------------------
18  */
19 
20 #include <vnet/vnet.h>
21 #include <vnet/ip/ip.h>
22 #include <vnet/unix/tuntap.h>
23 #include <vnet/mpls/mpls.h>
24 #include <vnet/dhcp/dhcp_proxy.h>
25 #include <vnet/l2tp/l2tp.h>
26 #include <vnet/l2/l2_input.h>
27 #include <vnet/srv6/sr.h>
28 #include <vnet/srmpls/sr_mpls.h>
29 #include <vnet/gre/gre.h>
31 #include <vnet/geneve/geneve.h>
33 #include <vnet/policer/xlate.h>
34 #include <vnet/policer/policer.h>
36 #include <vlib/vlib.h>
37 #include <vlib/unix/unix.h>
38 #include <vlibapi/api.h>
39 #include <vlibmemory/api.h>
41 
42 #include <vpp/stats/stats.h>
43 #include <vpp/oam/oam.h>
44 
45 #include <vnet/ethernet/ethernet.h>
46 #include <vnet/l2/l2_vtr.h>
47 
48 #include <vpp/api/vpe_msg_enum.h>
49 
50 #include <vnet/bonding/node.h>
51 
52 #define vl_typedefs /* define message structures */
53 #include <vpp/api/vpe_all_api_h.h>
54 #undef vl_typedefs
55 
56 #define vl_endianfun /* define message structures */
57 #include <vpp/api/vpe_all_api_h.h>
58 #undef vl_endianfun
59 
60 #define vl_print(handle, ...) vlib_cli_output (handle, __VA_ARGS__)
61 
62 #define FINISH \
63  vec_add1 (s, 0); \
64  vl_print (handle, (char *)s); \
65  vec_free (s); \
66  return handle;
67 
68 
70  (vl_api_create_loopback_t * mp, void *handle)
71 {
72  u8 *s;
73 
74  s = format (0, "SCRIPT: create_loopback ");
75  s = format (s, "mac %U ", format_ethernet_address, &mp->mac_address);
76 
77  FINISH;
78 }
79 
81  (vl_api_create_loopback_instance_t * mp, void *handle)
82 {
83  u8 *s;
84 
85  s = format (0, "SCRIPT: create_loopback ");
86  s = format (s, "mac %U ", format_ethernet_address, &mp->mac_address);
87  s = format (s, "instance %d ", ntohl (mp->user_instance));
88 
89  FINISH;
90 }
91 
93  (vl_api_delete_loopback_t * mp, void *handle)
94 {
95  u8 *s;
96 
97  s = format (0, "SCRIPT: delete_loopback ");
98  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
99 
100  FINISH;
101 }
102 
104  (vl_api_sw_interface_set_flags_t * mp, void *handle)
105 {
106  u8 *s;
107  s = format (0, "SCRIPT: sw_interface_set_flags ");
108 
109  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
110 
111  if (mp->admin_up_down)
112  s = format (s, "admin-up ");
113  else
114  s = format (s, "admin-down ");
115 
116  FINISH;
117 }
118 
120  (vl_api_sw_interface_event_t * mp, void *handle)
121 {
122  u8 *s;
123  s = format (0, "SCRIPT: sw_interface_event ");
124 
125  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
126 
127  if (mp->admin_up_down)
128  s = format (s, "admin-up ");
129  else
130  s = format (s, "admin-down ");
131 
132  if (mp->link_up_down)
133  s = format (s, "link-up");
134  else
135  s = format (s, "link-down");
136 
137  if (mp->deleted)
138  s = format (s, " deleted");
139 
140  FINISH;
141 }
142 
145 {
146  u8 *s;
147 
148  s = format (0, "SCRIPT: sw_interface_add_del_address ");
149 
150  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
151 
152  if (mp->is_ipv6)
153  s = format (s, "%U/%d ", format_ip6_address,
154  (ip6_address_t *) mp->address, mp->address_length);
155  else
156  s = format (s, "%U/%d ", format_ip4_address,
157  (ip4_address_t *) mp->address, mp->address_length);
158 
159  if (mp->is_add == 0)
160  s = format (s, "del ");
161  if (mp->del_all)
162  s = format (s, "del-all ");
163 
164  FINISH;
165 }
166 
168  (vl_api_sw_interface_set_table_t * mp, void *handle)
169 {
170  u8 *s;
171 
172  s = format (0, "SCRIPT: sw_interface_set_table ");
173 
174  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
175 
176  if (mp->vrf_id)
177  s = format (s, "vrf %d ", ntohl (mp->vrf_id));
178 
179  if (mp->is_ipv6)
180  s = format (s, "ipv6 ");
181 
182  FINISH;
183 }
184 
187 {
188  u8 *s;
189 
190  s = format (0, "SCRIPT: sw_interface_set_mpls_enable ");
191 
192  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
193 
194  if (mp->enable == 0)
195  s = format (s, "disable");
196 
197  FINISH;
198 }
199 
201  (vl_api_sw_interface_set_vpath_t * mp, void *handle)
202 {
203  u8 *s;
204 
205  s = format (0, "SCRIPT: sw_interface_set_vpath ");
206 
207  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
208 
209  if (mp->enable)
210  s = format (s, "enable ");
211  else
212  s = format (s, "disable ");
213 
214  FINISH;
215 }
216 
219 {
220  u8 *s;
221 
222  s = format (0, "SCRIPT: sw_interface_set_vxlan_bypass ");
223 
224  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
225 
226  if (mp->is_ipv6)
227  s = format (s, "ip6 ");
228 
229  if (mp->enable)
230  s = format (s, "enable ");
231  else
232  s = format (s, "disable ");
233 
234  FINISH;
235 }
236 
239 {
240  u8 *s;
241 
242  s = format (0, "SCRIPT: sw_interface_set_geneve_bypass ");
243 
244  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
245 
246  if (mp->is_ipv6)
247  s = format (s, "ip6 ");
248 
249  if (mp->enable)
250  s = format (s, "enable ");
251  else
252  s = format (s, "disable ");
253 
254  FINISH;
255 }
256 
259 {
260  u8 *s;
261 
262  s = format (0, "SCRIPT: sw_interface_set_l2_xconnect ");
263 
264  s = format (s, "sw_if_index %d ", ntohl (mp->rx_sw_if_index));
265 
266  if (mp->enable)
267  {
268  s = format (s, "tx_sw_if_index %d ", ntohl (mp->tx_sw_if_index));
269  }
270  else
271  s = format (s, "delete ");
272 
273  FINISH;
274 }
275 
278 {
279  u8 *s;
280 
281  s = format (0, "SCRIPT: sw_interface_set_l2_bridge ");
282 
283  s = format (s, "sw_if_index %d ", ntohl (mp->rx_sw_if_index));
284 
285  if (mp->enable)
286  {
287  s = format (s, "bd_id %d shg %d %senable ", ntohl (mp->bd_id),
288  mp->shg, ((mp->bvi) ? "bvi " : " "));
289  }
290  else
291  s = format (s, "disable ");
292 
293  FINISH;
294 }
295 
297  (vl_api_bridge_domain_add_del_t * mp, void *handle)
298 {
299  u8 *s;
300 
301  s = format (0, "SCRIPT: bridge_domain_add_del ");
302 
303  s = format (s, "bd_id %d ", ntohl (mp->bd_id));
304 
305  if (mp->is_add)
306  {
307  if (mp->bd_tag[0])
308  s = format (s, "bd_tag %s ", mp->bd_tag);
309  s = format (s, "flood %d uu-flood %d ", mp->flood, mp->uu_flood);
310  s = format (s, "forward %d learn %d ", mp->forward, mp->learn);
311  s = format (s, "arp-term %d mac-age %d", mp->arp_term, mp->mac_age);
312  }
313  else
314  s = format (s, "del ");
315 
316  FINISH;
317 }
318 
321 {
322  u8 *s;
323 
324  s = format (0, "SCRIPT: bridge_domain_set_mac_age ");
325 
326  s = format (s, "bd_id %d ", ntohl (mp->bd_id));
327 
328  s = format (s, "mac-age %d", mp->mac_age);
329 
330  FINISH;
331 }
332 
334  (vl_api_bridge_domain_dump_t * mp, void *handle)
335 {
336  u8 *s;
337  u32 bd_id = ntohl (mp->bd_id);
338 
339  s = format (0, "SCRIPT: bridge_domain_dump ");
340 
341  if (bd_id != ~0)
342  s = format (s, "bd_id %d ", bd_id);
343 
344  FINISH;
345 }
346 
348  (vl_api_l2fib_flush_all_t * mp, void *handle)
349 {
350  u8 *s;
351 
352  s = format (0, "SCRIPT: l2fib_flush_all ");
353 
354  FINISH;
355 }
356 
357 
359  (vl_api_l2fib_flush_bd_t * mp, void *handle)
360 {
361  u8 *s;
362  u32 bd_id = ntohl (mp->bd_id);
363 
364  s = format (0, "SCRIPT: l2fib_flush_bd ");
365  s = format (s, "bd_id %d ", bd_id);
366 
367  FINISH;
368 }
369 
371  (vl_api_l2fib_flush_int_t * mp, void *handle)
372 {
373  u8 *s;
374  u32 sw_if_index = ntohl (mp->sw_if_index);
375 
376  s = format (0, "SCRIPT: l2fib_flush_int ");
377  s = format (s, "sw_if_index %d ", sw_if_index);
378 
379  FINISH;
380 }
381 
382 static void *vl_api_l2fib_add_del_t_print
383  (vl_api_l2fib_add_del_t * mp, void *handle)
384 {
385  u8 *s;
386 
387  s = format (0, "SCRIPT: l2fib_add_del ");
388 
389  s = format (s, "mac %U ", format_ethernet_address, mp->mac);
390 
391  s = format (s, "bd_id %d ", ntohl (mp->bd_id));
392 
393 
394  if (mp->is_add)
395  {
396  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
397  if (mp->static_mac)
398  s = format (s, "%s", "static ");
399  if (mp->filter_mac)
400  s = format (s, "%s", "filter ");
401  if (mp->bvi_mac)
402  s = format (s, "%s", "bvi ");
403  }
404  else
405  {
406  s = format (s, "del ");
407  }
408 
409  FINISH;
410 }
411 
412 static void *
414 {
415  u8 *s;
416  u32 flags = ntohl (mp->feature_bitmap);
417 
418  s = format (0, "SCRIPT: l2_flags ");
419 
420  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
421 
422  if (flags & L2_LEARN)
423  s = format (s, "learn ");
424  if (flags & L2_FWD)
425  s = format (s, "forward ");
426  if (flags & L2_FLOOD)
427  s = format (s, "flood ");
428  if (flags & L2_UU_FLOOD)
429  s = format (s, "uu-flood ");
430  if (flags & L2_ARP_TERM)
431  s = format (s, "arp-term ");
432 
433  if (mp->is_set == 0)
434  s = format (s, "clear ");
435 
436  FINISH;
437 }
438 
439 static void *vl_api_bridge_flags_t_print
440  (vl_api_bridge_flags_t * mp, void *handle)
441 {
442  u8 *s;
443  u32 flags = ntohl (mp->feature_bitmap);
444 
445  s = format (0, "SCRIPT: bridge_flags ");
446 
447  s = format (s, "bd_id %d ", ntohl (mp->bd_id));
448 
449  if (flags & L2_LEARN)
450  s = format (s, "learn ");
451  if (flags & L2_FWD)
452  s = format (s, "forward ");
453  if (flags & L2_FLOOD)
454  s = format (s, "flood ");
455  if (flags & L2_UU_FLOOD)
456  s = format (s, "uu-flood ");
457  if (flags & L2_ARP_TERM)
458  s = format (s, "arp-term ");
459 
460  if (mp->is_set == 0)
461  s = format (s, "clear ");
462 
463  FINISH;
464 }
465 
467  (vl_api_bd_ip_mac_add_del_t * mp, void *handle)
468 {
469  u8 *s;
470 
471  s = format (0, "SCRIPT: bd_ip_mac_add_del ");
472  s = format (s, "bd_id %d ", ntohl (mp->bd_id));
473 
474  if (mp->is_ipv6)
475  s = format (s, "%U ", format_ip6_address,
476  (ip6_address_t *) mp->ip_address);
477  else
478  s = format (s, "%U ", format_ip4_address,
479  (ip4_address_t *) mp->ip_address);
480 
481  s = format (s, "%U ", format_ethernet_address, mp->mac_address);
482  if (mp->is_add == 0)
483  s = format (s, "del ");
484 
485  FINISH;
486 }
487 
488 static void *vl_api_tap_connect_t_print
489  (vl_api_tap_connect_t * mp, void *handle)
490 {
491  u8 *s;
492  u8 null_mac[6];
493 
494  memset (null_mac, 0, sizeof (null_mac));
495 
496  s = format (0, "SCRIPT: tap_connect ");
497  s = format (s, "tapname %s ", mp->tap_name);
498  if (mp->use_random_mac)
499  s = format (s, "random-mac ");
500  if (mp->tag[0])
501  s = format (s, "tag %s ", mp->tag);
502  if (memcmp (mp->mac_address, null_mac, 6))
503  s = format (s, "mac %U ", format_ethernet_address, mp->mac_address);
504  if (mp->ip4_address_set)
505  s = format (s, "address %U/%d ", format_ip4_address, mp->ip4_address,
506  mp->ip4_mask_width);
507  if (mp->ip6_address_set)
508  s = format (s, "address %U/%d ", format_ip6_address, mp->ip6_address,
509  mp->ip6_mask_width);
510  FINISH;
511 }
512 
513 static void *vl_api_tap_modify_t_print
514  (vl_api_tap_modify_t * mp, void *handle)
515 {
516  u8 *s;
517  u8 null_mac[6];
518 
519  memset (null_mac, 0, sizeof (null_mac));
520 
521  s = format (0, "SCRIPT: tap_modify ");
522  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
523  s = format (s, "tapname %s ", mp->tap_name);
524  if (mp->use_random_mac)
525  s = format (s, "random-mac ");
526 
527  if (memcmp (mp->mac_address, null_mac, 6))
528  s = format (s, "mac %U ", format_ethernet_address, mp->mac_address);
529 
530  FINISH;
531 }
532 
533 static void *vl_api_tap_delete_t_print
534  (vl_api_tap_delete_t * mp, void *handle)
535 {
536  u8 *s;
537 
538  s = format (0, "SCRIPT: tap_delete ");
539  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
540 
541  FINISH;
542 }
543 
545  (vl_api_sw_interface_tap_dump_t * mp, void *handle)
546 {
547  u8 *s;
548 
549  s = format (0, "SCRIPT: sw_interface_tap_dump ");
550 
551  FINISH;
552 }
553 
554 static void *vl_api_tap_create_v2_t_print
555  (vl_api_tap_create_v2_t * mp, void *handle)
556 {
557  u8 *s;
558  u8 null_mac[6];
559 
560  memset (null_mac, 0, sizeof (null_mac));
561 
562  s = format (0, "SCRIPT: tap_create_v2 ");
563  s = format (s, "id %u ", mp->id);
564  if (memcmp (mp->mac_address, null_mac, 6))
565  s = format (s, "mac-address %U ",
567  if (memcmp (mp->host_mac_addr, null_mac, 6))
568  s = format (s, "host-mac-addr %U ",
570  if (mp->host_if_name_set)
571  s = format (s, "host-if-name %s ", mp->host_if_name);
572  if (mp->host_namespace_set)
573  s = format (s, "host-ns %s ", mp->host_namespace);
574  if (mp->host_bridge_set)
575  s = format (s, "host-bridge %s ", mp->host_bridge);
576  if (mp->host_ip4_addr_set)
577  s = format (s, "host-ip4-addr %U/%d ", format_ip4_address,
579  if (mp->host_ip6_addr_set)
580  s = format (s, "host-ip6-addr %U/%d ", format_ip6_address,
582  if (mp->host_ip4_gw_set)
583  s = format (s, "host-ip4-gw %U ", format_ip4_address, mp->host_ip4_addr);
584  if (mp->host_ip6_gw_set)
585  s = format (s, "host-ip6-gw %U ", format_ip6_address, mp->host_ip6_addr);
586  if (mp->tx_ring_sz)
587  s = format (s, "tx-ring-size %d ", mp->tx_ring_sz);
588  if (mp->rx_ring_sz)
589  s = format (s, "rx-ring-size %d ", mp->rx_ring_sz);
590  FINISH;
591 }
592 
593 static void *vl_api_tap_delete_v2_t_print
594  (vl_api_tap_delete_v2_t * mp, void *handle)
595 {
596  u8 *s;
597 
598  s = format (0, "SCRIPT: tap_delete_v2 ");
599  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
600 
601  FINISH;
602 }
603 
606 {
607  u8 *s;
608 
609  s = format (0, "SCRIPT: sw_interface_tap_v2_dump ");
610 
611  FINISH;
612 }
613 
614 static void *vl_api_bond_create_t_print
615  (vl_api_bond_create_t * mp, void *handle)
616 {
617  u8 *s;
618  u8 null_mac[6];
619 
620  memset (null_mac, 0, sizeof (null_mac));
621 
622  s = format (0, "SCRIPT: bond_create ");
623  if (memcmp (mp->mac_address, null_mac, 6))
624  s = format (s, "mac-address %U ",
626  if (mp->mode)
627  s = format (s, "mode %U", format_bond_mode, mp->mode);
628  if (mp->lb)
629  s = format (s, "lb %U", format_bond_load_balance, mp->lb);
630  FINISH;
631 }
632 
633 static void *vl_api_bond_delete_t_print
634  (vl_api_bond_delete_t * mp, void *handle)
635 {
636  u8 *s;
637 
638  s = format (0, "SCRIPT: bond_delete ");
639  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
640 
641  FINISH;
642 }
643 
644 static void *vl_api_bond_enslave_t_print
645  (vl_api_bond_enslave_t * mp, void *handle)
646 {
647  u8 *s;
648 
649  s = format (0, "SCRIPT: bond_enslave ");
650  s = format (s, "bond_sw_if_index %u ", mp->bond_sw_if_index);
651  s = format (s, "sw_if_index %u ", mp->sw_if_index);
652  if (mp->is_passive)
653  s = format (s, "passive ");
654  if (mp->is_long_timeout)
655  s = format (s, "long-timeout ");
656 
657  FINISH;
658 }
659 
661  (vl_api_bond_detach_slave_t * mp, void *handle)
662 {
663  u8 *s;
664 
665  s = format (0, "SCRIPT: bond_detach_slave ");
666  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
667 
668  FINISH;
669 }
670 
672  (vl_api_sw_interface_bond_dump_t * mp, void *handle)
673 {
674  u8 *s;
675 
676  s = format (0, "SCRIPT: sw_interface_bond_dump ");
677 
678  FINISH;
679 }
680 
682  (vl_api_sw_interface_slave_dump_t * mp, void *handle)
683 {
684  u8 *s;
685 
686  s = format (0, "SCRIPT: sw_interface_slave_dump ");
687  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
688 
689  FINISH;
690 }
691 
693  (vl_api_ip_add_del_route_t * mp, void *handle)
694 {
695  u8 *s;
696 
697  s = format (0, "SCRIPT: ip_add_del_route ");
698  if (mp->is_add == 0)
699  s = format (s, "del ");
700 
701  if (mp->next_hop_sw_if_index)
702  s = format (s, "sw_if_index %d ", ntohl (mp->next_hop_sw_if_index));
703 
704  if (mp->is_ipv6)
705  s = format (s, "%U/%d ", format_ip6_address, mp->dst_address,
706  mp->dst_address_length);
707  else
708  s = format (s, "%U/%d ", format_ip4_address, mp->dst_address,
709  mp->dst_address_length);
710  if (mp->is_local)
711  s = format (s, "local ");
712  else if (mp->is_drop)
713  s = format (s, "drop ");
714  else if (mp->is_classify)
715  s = format (s, "classify %d", ntohl (mp->classify_table_index));
716  else
717  {
718  if (mp->is_ipv6)
719  s = format (s, "via %U ", format_ip6_address, mp->next_hop_address);
720  else
721  s = format (s, "via %U ", format_ip4_address, mp->next_hop_address);
722  }
723 
724  if (mp->table_id != 0)
725  s = format (s, "vrf %d ", ntohl (mp->table_id));
726 
727  if (mp->next_hop_weight != 1)
728  s = format (s, "weight %d ", mp->next_hop_weight);
729 
730  if (mp->is_multipath)
731  s = format (s, "multipath ");
732 
733  if (mp->is_multipath)
734  s = format (s, "multipath ");
735 
736  if (mp->next_hop_table_id)
737  s = format (s, "lookup-in-vrf %d ", ntohl (mp->next_hop_table_id));
738 
739  FINISH;
740 }
741 
743  (vl_api_proxy_arp_add_del_t * mp, void *handle)
744 {
745  u8 *s;
746 
747  s = format (0, "SCRIPT: proxy_arp_add_del ");
748 
749  s = format (s, "%U - %U ", format_ip4_address, mp->low_address,
751 
752  if (mp->vrf_id)
753  s = format (s, "vrf %d ", ntohl (mp->vrf_id));
754 
755  if (mp->is_add == 0)
756  s = format (s, "del ");
757 
758  FINISH;
759 }
760 
763 {
764  u8 *s;
765 
766  s = format (0, "SCRIPT: proxy_arp_intfc_enable_disable ");
767 
768  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
769 
770  s = format (s, "enable %d ", mp->enable_disable);
771 
772  FINISH;
773 }
774 
776  (vl_api_mpls_tunnel_add_del_t * mp, void *handle)
777 {
778  u8 *s;
779 
780  s = format (0, "SCRIPT: mpls_tunnel_add_del ");
781 
782  if (mp->mt_next_hop_sw_if_index)
783  s = format (s, "sw_if_index %d ", ntohl (mp->mt_next_hop_sw_if_index));
784 
785  if (mp->mt_next_hop_proto_is_ip4)
786  s = format (s, "%U ", format_ip4_address, mp->mt_next_hop);
787  else
788  s = format (s, "%U ", format_ip6_address, mp->mt_next_hop);
789 
790  if (mp->mt_l2_only)
791  s = format (s, "l2-only ");
792 
793  if (mp->mt_is_add == 0)
794  s = format (s, "del ");
795 
796  FINISH;
797 }
798 
801 {
802  u8 *s;
803 
804  s = format (0, "SCRIPT: sw_interface_set_unnumbered ");
805 
806  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
807 
808  s = format (s, "unnum_if_index %d ", ntohl (mp->unnumbered_sw_if_index));
809 
810  if (mp->is_add == 0)
811  s = format (s, "del ");
812 
813  FINISH;
814 }
815 
817  (vl_api_ip_neighbor_add_del_t * mp, void *handle)
818 {
819  u8 *s;
820  u8 null_mac[6];
821 
822  memset (null_mac, 0, sizeof (null_mac));
823 
824  s = format (0, "SCRIPT: ip_neighbor_add_del ");
825 
826  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
827 
828  if (mp->is_static)
829  s = format (s, "is_static ");
830 
831  if (mp->is_no_adj_fib)
832  s = format (s, "is_no_fib_entry ");
833 
834  if (memcmp (mp->mac_address, null_mac, 6))
835  s = format (s, "mac %U ", format_ethernet_address, mp->mac_address);
836 
837  if (mp->is_ipv6)
838  s =
839  format (s, "dst %U ", format_ip6_address,
840  (ip6_address_t *) mp->dst_address);
841  else
842  s =
843  format (s, "dst %U ", format_ip4_address,
844  (ip4_address_t *) mp->dst_address);
845 
846  if (mp->is_add == 0)
847  s = format (s, "del ");
848 
849  FINISH;
850 }
851 
853  (vl_api_create_vlan_subif_t * mp, void *handle)
854 {
855  u8 *s;
856 
857  s = format (0, "SCRIPT: create_vlan_subif ");
858 
859  if (mp->sw_if_index)
860  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
861 
862  if (mp->vlan_id)
863  s = format (s, "vlan_id %d ", ntohl (mp->vlan_id));
864 
865  FINISH;
866 }
867 
868 #define foreach_create_subif_bit \
869 _(no_tags) \
870 _(one_tag) \
871 _(two_tags) \
872 _(dot1ad) \
873 _(exact_match) \
874 _(default_sub) \
875 _(outer_vlan_id_any) \
876 _(inner_vlan_id_any)
877 
878 static void *vl_api_create_subif_t_print
879  (vl_api_create_subif_t * mp, void *handle)
880 {
881  u8 *s;
882 
883  s = format (0, "SCRIPT: create_subif ");
884 
885  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
886 
887  s = format (s, "sub_id %d ", ntohl (mp->sub_id));
888 
889  if (mp->outer_vlan_id)
890  s = format (s, "outer_vlan_id %d ", ntohs (mp->outer_vlan_id));
891 
892  if (mp->inner_vlan_id)
893  s = format (s, "inner_vlan_id %d ", ntohs (mp->inner_vlan_id));
894 
895 #define _(a) if (mp->a) s = format (s, "%s ", #a);
897 #undef _
898 
899  FINISH;
900 }
901 
902 static void *vl_api_delete_subif_t_print
903  (vl_api_delete_subif_t * mp, void *handle)
904 {
905  u8 *s;
906 
907  s = format (0, "SCRIPT: delete_subif ");
908  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
909 
910  FINISH;
911 }
912 
913 static void *vl_api_oam_add_del_t_print
914  (vl_api_oam_add_del_t * mp, void *handle)
915 {
916  u8 *s;
917 
918  s = format (0, "SCRIPT: oam_add_del ");
919 
920  if (mp->vrf_id)
921  s = format (s, "vrf %d ", ntohl (mp->vrf_id));
922 
923  s = format (s, "src %U ", format_ip4_address, mp->src_address);
924 
925  s = format (s, "dst %U ", format_ip4_address, mp->dst_address);
926 
927  if (mp->is_add == 0)
928  s = format (s, "del ");
929 
930  FINISH;
931 }
932 
933 static void *
935 {
936  u8 *s;
937 
938  s = format (0, "SCRIPT: reset_fib ");
939 
940  if (mp->vrf_id)
941  s = format (s, "vrf %d ", ntohl (mp->vrf_id));
942 
943  if (mp->is_ipv6 != 0)
944  s = format (s, "ipv6 ");
945 
946  FINISH;
947 }
948 
950  (vl_api_dhcp_proxy_config_t * mp, void *handle)
951 {
952  u8 *s;
953 
954  s = format (0, "SCRIPT: dhcp_proxy_config_2 ");
955 
956  s = format (s, "rx_vrf_id %d ", ntohl (mp->rx_vrf_id));
957  s = format (s, "server_vrf_id %d ", ntohl (mp->server_vrf_id));
958 
959  if (mp->is_ipv6)
960  {
961  s = format (s, "svr %U ", format_ip6_address,
962  (ip6_address_t *) mp->dhcp_server);
963  s = format (s, "src %U ", format_ip6_address,
965  }
966  else
967  {
968  s = format (s, "svr %U ", format_ip4_address,
969  (ip4_address_t *) mp->dhcp_server);
970  s = format (s, "src %U ", format_ip4_address,
972  }
973  if (mp->is_add == 0)
974  s = format (s, "del ");
975 
976  FINISH;
977 }
978 
980  (vl_api_dhcp_proxy_set_vss_t * mp, void *handle)
981 {
982  u8 *s;
983 
984  s = format (0, "SCRIPT: dhcp_proxy_set_vss ");
985 
986  s = format (s, "tbl_id %d ", ntohl (mp->tbl_id));
987 
988  if (mp->vss_type == VSS_TYPE_VPN_ID)
989  {
990  s = format (s, "fib_id %d ", ntohl (mp->vpn_index));
991  s = format (s, "oui %d ", ntohl (mp->oui));
992  }
993  else if (mp->vss_type == VSS_TYPE_ASCII)
994  s = format (s, "vpn_ascii_id %s", mp->vpn_ascii_id);
995 
996  if (mp->is_ipv6 != 0)
997  s = format (s, "ipv6 ");
998 
999  if (mp->is_add == 0)
1000  s = format (s, "del ");
1001 
1002  FINISH;
1003 }
1004 
1006  (vl_api_dhcp_client_config_t * mp, void *handle)
1007 {
1008  u8 *s;
1009 
1010  s = format (0, "SCRIPT: dhcp_client_config ");
1011 
1012  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1013 
1014  s = format (s, "hostname %s ", mp->hostname);
1015 
1016  s = format (s, "want_dhcp_event %d ", mp->want_dhcp_event);
1017 
1018  s = format (s, "pid %d ", ntohl (mp->pid));
1019 
1020  if (mp->is_add == 0)
1021  s = format (s, "del ");
1022 
1023  FINISH;
1024 }
1025 
1026 
1028  (vl_api_set_ip_flow_hash_t * mp, void *handle)
1029 {
1030  u8 *s;
1031 
1032  s = format (0, "SCRIPT: set_ip_flow_hash ");
1033 
1034  s = format (s, "vrf_id %d ", ntohl (mp->vrf_id));
1035 
1036  if (mp->src)
1037  s = format (s, "src ");
1038 
1039  if (mp->dst)
1040  s = format (s, "dst ");
1041 
1042  if (mp->sport)
1043  s = format (s, "sport ");
1044 
1045  if (mp->dport)
1046  s = format (s, "dport ");
1047 
1048  if (mp->proto)
1049  s = format (s, "proto ");
1050 
1051  if (mp->reverse)
1052  s = format (s, "reverse ");
1053 
1054  if (mp->is_ipv6 != 0)
1055  s = format (s, "ipv6 ");
1056 
1057  FINISH;
1058 }
1059 
1062 {
1063  u8 *s;
1064 
1065  s = format (0, "SCRIPT: sw_interface_ip6_set_link_local_address ");
1066 
1067  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1068 
1069  s = format (s, "%U ", format_ip6_address, mp->address);
1070 
1071  FINISH;
1072 }
1073 
1076 {
1077  u8 *s;
1078 
1079  s = format (0, "SCRIPT: sw_interface_ip6nd_ra_prefix ");
1080 
1081  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1082 
1083  s = format (s, "%U/%d ", format_ip6_address, mp->address,
1084  mp->address_length);
1085 
1086  s = format (s, "val_life %d ", ntohl (mp->val_lifetime));
1087 
1088  s = format (s, "pref_life %d ", ntohl (mp->pref_lifetime));
1089 
1090  if (mp->use_default)
1091  s = format (s, "def ");
1092 
1093  if (mp->no_advertise)
1094  s = format (s, "noadv ");
1095 
1096  if (mp->off_link)
1097  s = format (s, "offl ");
1098 
1099  if (mp->no_autoconfig)
1100  s = format (s, "noauto ");
1101 
1102  if (mp->no_onlink)
1103  s = format (s, "nolink ");
1104 
1105  if (mp->is_no)
1106  s = format (s, "isno ");
1107 
1108  FINISH;
1109 }
1110 
1113 {
1114  u8 *s;
1115 
1116  s = format (0, "SCRIPT: sw_interface_ip6nd_ra_config ");
1117 
1118  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1119 
1120  s = format (s, "maxint %d ", ntohl (mp->max_interval));
1121 
1122  s = format (s, "minint %d ", ntohl (mp->min_interval));
1123 
1124  s = format (s, "life %d ", ntohl (mp->lifetime));
1125 
1126  s = format (s, "count %d ", ntohl (mp->initial_count));
1127 
1128  s = format (s, "interval %d ", ntohl (mp->initial_interval));
1129 
1130  if (mp->suppress)
1131  s = format (s, "suppress ");
1132 
1133  if (mp->managed)
1134  s = format (s, "managed ");
1135 
1136  if (mp->other)
1137  s = format (s, "other ");
1138 
1139  if (mp->ll_option)
1140  s = format (s, "ll ");
1141 
1142  if (mp->send_unicast)
1143  s = format (s, "send ");
1144 
1145  if (mp->cease)
1146  s = format (s, "cease ");
1147 
1148  if (mp->is_no)
1149  s = format (s, "isno ");
1150 
1151  if (mp->default_router)
1152  s = format (s, "def ");
1153 
1154  FINISH;
1155 }
1156 
1158  (vl_api_set_arp_neighbor_limit_t * mp, void *handle)
1159 {
1160  u8 *s;
1161 
1162  s = format (0, "SCRIPT: set_arp_neighbor_limit ");
1163 
1164  s = format (s, "arp_nbr_limit %d ", ntohl (mp->arp_neighbor_limit));
1165 
1166  if (mp->is_ipv6 != 0)
1167  s = format (s, "ipv6 ");
1168 
1169  FINISH;
1170 }
1171 
1173  (vl_api_l2_patch_add_del_t * mp, void *handle)
1174 {
1175  u8 *s;
1176 
1177  s = format (0, "SCRIPT: l2_patch_add_del ");
1178 
1179  s = format (s, "rx_sw_if_index %d ", ntohl (mp->rx_sw_if_index));
1180 
1181  s = format (s, "tx_sw_if_index %d ", ntohl (mp->tx_sw_if_index));
1182 
1183  if (mp->is_add == 0)
1184  s = format (s, "del ");
1185 
1186  FINISH;
1187 }
1188 
1190  (vl_api_sr_localsid_add_del_t * mp, void *handle)
1191 {
1192  vnet_main_t *vnm = vnet_get_main ();
1193  u8 *s;
1194 
1195  s = format (0, "SCRIPT: sr_localsid_add_del ");
1196 
1197  switch (mp->behavior)
1198  {
1199  case SR_BEHAVIOR_END:
1200  s = format (s, "Address: %U\nBehavior: End",
1202  s = format (s, (mp->end_psp ? "End.PSP: True" : "End.PSP: False"));
1203  break;
1204  case SR_BEHAVIOR_X:
1205  s =
1206  format (s,
1207  "Address: %U\nBehavior: X (Endpoint with Layer-3 cross-connect)"
1208  "\nIface: %U\nNext hop: %U", format_ip6_address,
1209  (ip6_address_t *) mp->localsid_addr,
1210  format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index),
1212  s = format (s, (mp->end_psp ? "End.PSP: True" : "End.PSP: False"));
1213  break;
1214  case SR_BEHAVIOR_DX4:
1215  s =
1216  format (s,
1217  "Address: %U\nBehavior: DX4 (Endpoint with decapsulation with IPv4 cross-connect)"
1218  "\nIface: %U\nNext hop: %U", format_ip6_address,
1219  (ip6_address_t *) mp->localsid_addr,
1220  format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index),
1222  break;
1223  case SR_BEHAVIOR_DX6:
1224  s =
1225  format (s,
1226  "Address: %U\nBehavior: DX6 (Endpoint with decapsulation with IPv6 cross-connect)"
1227  "\nIface: %UNext hop: %U", format_ip6_address,
1228  (ip6_address_t *) mp->localsid_addr,
1229  format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index),
1231  break;
1232  case SR_BEHAVIOR_DX2:
1233  s =
1234  format (s,
1235  "Address: %U\nBehavior: DX2 (Endpoint with decapulation and Layer-2 cross-connect)"
1236  "\nIface: %U", format_ip6_address,
1237  (ip6_address_t *) mp->localsid_addr,
1238  format_vnet_sw_if_index_name, vnm, ntohl (mp->sw_if_index));
1239  break;
1240  case SR_BEHAVIOR_DT6:
1241  s =
1242  format (s,
1243  "Address: %U\nBehavior: DT6 (Endpoint with decapsulation and specific IPv6 table lookup)"
1244  "\nTable: %u", format_ip6_address,
1245  (ip6_address_t *) mp->localsid_addr, ntohl (mp->fib_table));
1246  break;
1247  case SR_BEHAVIOR_DT4:
1248  s =
1249  format (s,
1250  "Address: %U\nBehavior: DT4 (Endpoint with decapsulation and specific IPv4 table lookup)"
1251  "\nTable: %u", format_ip6_address,
1252  (ip6_address_t *) mp->localsid_addr, ntohl (mp->fib_table));
1253  break;
1254  default:
1255  if (mp->behavior >= SR_BEHAVIOR_LAST)
1256  {
1257  s = format (s, "Address: %U\n Behavior: %u",
1259  mp->behavior);
1260  }
1261  else
1262  //Should never get here...
1263  s = format (s, "Internal error");
1264  break;
1265  }
1266  FINISH;
1267 }
1268 
1270  (vl_api_sr_steering_add_del_t * mp, void *handle)
1271 {
1272  u8 *s;
1273 
1274  s = format (0, "SCRIPT: sr_steering_add_del ");
1275 
1276  s = format (s, (mp->is_del ? "Del: True" : "Del: False"));
1277 
1278  switch (mp->traffic_type)
1279  {
1280  case SR_STEER_L2:
1281  s = format (s, "Traffic type: L2 iface: %u", ntohl (mp->sw_if_index));
1282  break;
1283  case SR_STEER_IPV4:
1284  s = format (s, "Traffic type: IPv4 %U/%u", format_ip4_address,
1285  (ip4_address_t *) mp->prefix_addr, ntohl (mp->mask_width));
1286  break;
1287  case SR_STEER_IPV6:
1288  s = format (s, "Traffic type: IPv6 %U/%u", format_ip6_address,
1289  (ip6_address_t *) mp->prefix_addr, ntohl (mp->mask_width));
1290  break;
1291  default:
1292  s = format (s, "Traffic type: Unknown(%u)", mp->traffic_type);
1293  break;
1294  }
1295  s = format (s, "BindingSID: %U", format_ip6_address,
1296  (ip6_address_t *) mp->bsid_addr);
1297 
1298  s = format (s, "SR Policy Index: %u", ntohl (mp->sr_policy_index));
1299 
1300  s = format (s, "FIB_table: %u", ntohl (mp->table_id));
1301 
1302  FINISH;
1303 }
1304 
1305 static void *vl_api_sr_policy_add_t_print
1306  (vl_api_sr_policy_add_t * mp, void *handle)
1307 {
1308  u8 *s;
1309 
1310  ip6_address_t *segments = 0, *seg;
1311  ip6_address_t *this_address = (ip6_address_t *) mp->segments;
1312 
1313  int i;
1314  for (i = 0; i < mp->n_segments; i++)
1315  {
1316  vec_add2 (segments, seg, 1);
1317  clib_memcpy (seg->as_u8, this_address->as_u8, sizeof (*this_address));
1318  this_address++;
1319  }
1320 
1321  s = format (0, "SCRIPT: sr_policy_add ");
1322 
1323  s = format (s, "BSID: %U", format_ip6_address,
1324  (ip6_address_t *) mp->bsid_addr);
1325 
1326  s =
1327  format (s,
1328  (mp->is_encap ? "Behavior: Encapsulation" :
1329  "Behavior: SRH insertion"));
1330 
1331  s = format (s, "FIB_table: %u", ntohl (mp->fib_table));
1332 
1333  s = format (s, (mp->type ? "Type: Default" : "Type: Spray"));
1334 
1335  s = format (s, "SID list weight: %u", ntohl (mp->weight));
1336 
1337  s = format (s, "{");
1338  vec_foreach (seg, segments)
1339  {
1340  s = format (s, "%U, ", format_ip6_address, seg);
1341  }
1342  s = format (s, "\b\b } ");
1343 
1344  FINISH;
1345 }
1346 
1347 static void *vl_api_sr_policy_mod_t_print
1348  (vl_api_sr_policy_mod_t * mp, void *handle)
1349 {
1350  u8 *s;
1351 
1352  ip6_address_t *segments = 0, *seg;
1353  ip6_address_t *this_address = (ip6_address_t *) mp->segments;
1354 
1355  int i;
1356  for (i = 0; i < mp->n_segments; i++)
1357  {
1358  vec_add2 (segments, seg, 1);
1359  clib_memcpy (seg->as_u8, this_address->as_u8, sizeof (*this_address));
1360  this_address++;
1361  }
1362 
1363  s = format (0, "SCRIPT: sr_policy_mod ");
1364 
1365  s = format (s, "BSID: %U", format_ip6_address,
1366  (ip6_address_t *) mp->bsid_addr);
1367 
1368  s = format (s, "SR Policy index: %u", ntohl (mp->sr_policy_index));
1369 
1370  s = format (s, "Operation: %u", mp->operation);
1371 
1372  s = format (s, "SID list index: %u", ntohl (mp->sl_index));
1373 
1374  s = format (s, "SID list weight: %u", ntohl (mp->weight));
1375 
1376  s = format (s, "{");
1377  vec_foreach (seg, segments)
1378  {
1379  s = format (s, "%U, ", format_ip6_address, seg);
1380  }
1381  s = format (s, "\b\b } ");
1382 
1383  FINISH;
1384 }
1385 
1386 static void *vl_api_sr_policy_del_t_print
1387  (vl_api_sr_policy_del_t * mp, void *handle)
1388 {
1389  u8 *s;
1390 
1391  s = format (0, "SCRIPT: sr_policy_del ");
1392  s = format (s, "To be delivered. Good luck.");
1393  FINISH;
1394 }
1395 
1397  (vl_api_classify_add_del_table_t * mp, void *handle)
1398 {
1399  u8 *s;
1400  int i;
1401 
1402  s = format (0, "SCRIPT: classify_add_del_table ");
1403 
1404  if (mp->is_add == 0)
1405  {
1406  s = format (s, "table %d ", ntohl (mp->table_index));
1407  s = format (s, "%s ", mp->del_chain ? "del-chain" : "del");
1408  }
1409  else
1410  {
1411  s = format (s, "nbuckets %d ", ntohl (mp->nbuckets));
1412  s = format (s, "memory_size %d ", ntohl (mp->memory_size));
1413  s = format (s, "skip %d ", ntohl (mp->skip_n_vectors));
1414  s = format (s, "match %d ", ntohl (mp->match_n_vectors));
1415  s = format (s, "next-table %d ", ntohl (mp->next_table_index));
1416  s = format (s, "miss-next %d ", ntohl (mp->miss_next_index));
1417  s = format (s, "current-data-flag %d ", ntohl (mp->current_data_flag));
1418  if (mp->current_data_flag)
1419  s = format (s, "current-data-offset %d ",
1420  ntohl (mp->current_data_offset));
1421  s = format (s, "mask hex ");
1422  for (i = 0; i < ntohl (mp->match_n_vectors) * sizeof (u32x4); i++)
1423  s = format (s, "%02x", mp->mask[i]);
1424  vec_add1 (s, ' ');
1425  }
1426 
1427  FINISH;
1428 }
1429 
1432 {
1433  u8 *s;
1434  int i, limit = 0;
1435 
1436  s = format (0, "SCRIPT: classify_add_del_session ");
1437 
1438  s = format (s, "table_index %d ", ntohl (mp->table_index));
1439  s = format (s, "hit_next_index %d ", ntohl (mp->hit_next_index));
1440  s = format (s, "opaque_index %d ", ntohl (mp->opaque_index));
1441  s = format (s, "advance %d ", ntohl (mp->advance));
1442  s = format (s, "action %d ", mp->action);
1443  if (mp->action)
1444  s = format (s, "metadata %d ", ntohl (mp->metadata));
1445  if (mp->is_add == 0)
1446  s = format (s, "del ");
1447 
1448  s = format (s, "match hex ");
1449  for (i = 5 * sizeof (u32x4) - 1; i > 0; i--)
1450  {
1451  if (mp->match[i] != 0)
1452  {
1453  limit = i + 1;
1454  break;
1455  }
1456  }
1457 
1458  for (i = 0; i < limit; i++)
1459  s = format (s, "%02x", mp->match[i]);
1460 
1461  FINISH;
1462 }
1463 
1466 {
1467  u8 *s;
1468 
1469  s = format (0, "SCRIPT: classify_set_interface_ip_table ");
1470 
1471  if (mp->is_ipv6)
1472  s = format (s, "ipv6 ");
1473 
1474  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1475  s = format (s, "table %d ", ntohl (mp->table_index));
1476 
1477  FINISH;
1478 }
1479 
1482 {
1483  u8 *s;
1484 
1485  s = format (0, "SCRIPT: classify_set_interface_l2_tables ");
1486 
1487  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1488  s = format (s, "ip4-table %d ", ntohl (mp->ip4_table_index));
1489  s = format (s, "ip6-table %d ", ntohl (mp->ip6_table_index));
1490  s = format (s, "other-table %d ", ntohl (mp->other_table_index));
1491  s = format (s, "is-input %d ", mp->is_input);
1492 
1493  FINISH;
1494 }
1495 
1496 static void *vl_api_add_node_next_t_print
1497  (vl_api_add_node_next_t * mp, void *handle)
1498 {
1499  u8 *s;
1500 
1501  s = format (0, "SCRIPT: add_node_next ");
1502 
1503  s = format (0, "node %s next %s ", mp->node_name, mp->next_name);
1504 
1505  FINISH;
1506 }
1507 
1509  (vl_api_l2tpv3_create_tunnel_t * mp, void *handle)
1510 {
1511  u8 *s;
1512 
1513  s = format (0, "SCRIPT: l2tpv3_create_tunnel ");
1514 
1515  s = format (s, "client_address %U our_address %U ",
1518  s = format (s, "local_session_id %d ", ntohl (mp->local_session_id));
1519  s = format (s, "remote_session_id %d ", ntohl (mp->remote_session_id));
1520  s = format (s, "local_cookie %lld ",
1521  clib_net_to_host_u64 (mp->local_cookie));
1522  s = format (s, "remote_cookie %lld ",
1523  clib_net_to_host_u64 (mp->remote_cookie));
1524  if (mp->l2_sublayer_present)
1525  s = format (s, "l2-sublayer-present ");
1526 
1527  FINISH;
1528 }
1529 
1532 {
1533  u8 *s;
1534 
1535  s = format (0, "SCRIPT: l2tpv3_set_tunnel_cookies ");
1536 
1537  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1538 
1539  s = format (s, "new_local_cookie %llu ",
1540  clib_net_to_host_u64 (mp->new_local_cookie));
1541 
1542  s = format (s, "new_remote_cookie %llu ",
1543  clib_net_to_host_u64 (mp->new_remote_cookie));
1544 
1545  FINISH;
1546 }
1547 
1550 {
1551  u8 *s;
1552 
1553  s = format (0, "SCRIPT: l2tpv3_interface_enable_disable ");
1554 
1555  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1556 
1557  if (mp->enable_disable == 0)
1558  s = format (s, "del ");
1559 
1560  FINISH;
1561 }
1562 
1564  (vl_api_l2tpv3_set_lookup_key_t * mp, void *handle)
1565 {
1566  u8 *s;
1567  char *str = "unknown";
1568 
1569  s = format (0, "SCRIPT: l2tpv3_set_lookup_key ");
1570 
1571  switch (mp->key)
1572  {
1574  str = "lookup_v6_src";
1575  break;
1577  str = "lookup_v6_dst";
1578  break;
1579  case L2T_LOOKUP_SESSION_ID:
1580  str = "lookup_session_id";
1581  break;
1582  default:
1583  break;
1584  }
1585 
1586  s = format (s, "%s ", str);
1587 
1588  FINISH;
1589 }
1590 
1593 {
1594  u8 *s;
1595 
1596  s = format (0, "SCRIPT: sw_if_l2tpv3_tunnel_dump ");
1597 
1598  FINISH;
1599 }
1600 
1602  (vl_api_vxlan_add_del_tunnel_t * mp, void *handle)
1603 {
1604  u8 *s;
1605  s = format (0, "SCRIPT: vxlan_add_del_tunnel ");
1606 
1607  ip46_address_t src = to_ip46 (mp->is_ipv6, mp->src_address);
1608  ip46_address_t dst = to_ip46 (mp->is_ipv6, mp->dst_address);
1609 
1610  u8 is_grp = ip46_address_is_multicast (&dst);
1611  char *dst_name = is_grp ? "group" : "dst";
1612 
1613  s = format (s, "src %U ", format_ip46_address, &src, IP46_TYPE_ANY);
1614  s = format (s, "%s %U ", dst_name, format_ip46_address,
1615  &dst, IP46_TYPE_ANY);
1616 
1617  if (is_grp)
1618  s = format (s, "mcast_sw_if_index %d ", ntohl (mp->mcast_sw_if_index));
1619 
1620  if (mp->encap_vrf_id)
1621  s = format (s, "encap-vrf-id %d ", ntohl (mp->encap_vrf_id));
1622 
1623  s = format (s, "decap-next %d ", ntohl (mp->decap_next_index));
1624 
1625  s = format (s, "vni %d ", ntohl (mp->vni));
1626 
1627  s = format (s, "instance %d ", ntohl (mp->instance));
1628 
1629  if (mp->is_add == 0)
1630  s = format (s, "del ");
1631 
1632  FINISH;
1633 }
1634 
1636  (vl_api_vxlan_tunnel_dump_t * mp, void *handle)
1637 {
1638  u8 *s;
1639 
1640  s = format (0, "SCRIPT: vxlan_tunnel_dump ");
1641 
1642  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1643 
1644  FINISH;
1645 }
1646 
1648  (vl_api_geneve_add_del_tunnel_t * mp, void *handle)
1649 {
1650  u8 *s;
1651  s = format (0, "SCRIPT: geneve_add_del_tunnel ");
1652 
1653  ip46_address_t local = to_ip46 (mp->is_ipv6, mp->local_address);
1654  ip46_address_t remote = to_ip46 (mp->is_ipv6, mp->remote_address);
1655 
1656  u8 is_grp = ip46_address_is_multicast (&remote);
1657  char *remote_name = is_grp ? "group" : "dst";
1658 
1659  s = format (s, "src %U ", format_ip46_address, &local, IP46_TYPE_ANY);
1660  s = format (s, "%s %U ", remote_name, format_ip46_address,
1661  &remote, IP46_TYPE_ANY);
1662 
1663  if (is_grp)
1664  s = format (s, "mcast_sw_if_index %d ", ntohl (mp->mcast_sw_if_index));
1665 
1666  if (mp->encap_vrf_id)
1667  s = format (s, "encap-vrf-id %d ", ntohl (mp->encap_vrf_id));
1668 
1669  s = format (s, "decap-next %d ", ntohl (mp->decap_next_index));
1670 
1671  s = format (s, "vni %d ", ntohl (mp->vni));
1672 
1673  if (mp->is_add == 0)
1674  s = format (s, "del ");
1675 
1676  FINISH;
1677 }
1678 
1680  (vl_api_geneve_tunnel_dump_t * mp, void *handle)
1681 {
1682  u8 *s;
1683 
1684  s = format (0, "SCRIPT: geneve_tunnel_dump ");
1685 
1686  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1687 
1688  FINISH;
1689 }
1690 
1692  (vl_api_gre_add_del_tunnel_t * mp, void *handle)
1693 {
1694  u8 *s;
1695 
1696  s = format (0, "SCRIPT: gre_add_del_tunnel ");
1697 
1698  s = format (s, "dst %U ", format_ip46_address,
1699  (ip46_address_t *) & (mp->dst_address),
1701 
1702  s = format (s, "src %U ", format_ip46_address,
1703  (ip46_address_t *) & (mp->src_address),
1704  mp->is_ipv6 ? IP46_TYPE_IP6 : IP46_TYPE_IP4);
1705 
1706  s = format (s, "instance %d ", ntohl (mp->instance));
1707 
1708  if (mp->tunnel_type == GRE_TUNNEL_TYPE_TEB)
1709  s = format (s, "teb ");
1710 
1712  s = format (s, "erspan %d ", ntohs (mp->session_id));
1713 
1714  if (mp->outer_fib_id)
1715  s = format (s, "outer-fib-id %d ", ntohl (mp->outer_fib_id));
1716 
1717  if (mp->is_add == 0)
1718  s = format (s, "del ");
1719 
1720  FINISH;
1721 }
1722 
1723 static void *vl_api_gre_tunnel_dump_t_print
1724  (vl_api_gre_tunnel_dump_t * mp, void *handle)
1725 {
1726  u8 *s;
1727 
1728  s = format (0, "SCRIPT: gre_tunnel_dump ");
1729 
1730  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1731 
1732  FINISH;
1733 }
1734 
1736  (vl_api_l2_fib_clear_table_t * mp, void *handle)
1737 {
1738  u8 *s;
1739 
1740  s = format (0, "SCRIPT: l2_fib_clear_table ");
1741 
1742  FINISH;
1743 }
1744 
1747 {
1748  u8 *s;
1749 
1750  s = format (0, "SCRIPT: l2_interface_efp_filter ");
1751 
1752  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1753  if (mp->enable_disable)
1754  s = format (s, "enable ");
1755  else
1756  s = format (s, "disable ");
1757 
1758  FINISH;
1759 }
1760 
1763 {
1764  u8 *s;
1765 
1766  s = format (0, "SCRIPT: l2_interface_vlan_tag_rewrite ");
1767 
1768  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1769  s = format (s, "vtr_op %d ", ntohl (mp->vtr_op));
1770  s = format (s, "push_dot1q %d ", ntohl (mp->push_dot1q));
1771  s = format (s, "tag1 %d ", ntohl (mp->tag1));
1772  s = format (s, "tag2 %d ", ntohl (mp->tag2));
1773 
1774  FINISH;
1775 }
1776 
1778  (vl_api_create_vhost_user_if_t * mp, void *handle)
1779 {
1780  u8 *s;
1781 
1782  s = format (0, "SCRIPT: create_vhost_user_if ");
1783 
1784  s = format (s, "socket %s ", mp->sock_filename);
1785  if (mp->is_server)
1786  s = format (s, "server ");
1787  if (mp->renumber)
1788  s = format (s, "renumber %d ", ntohl (mp->custom_dev_instance));
1789  if (mp->tag[0])
1790  s = format (s, "tag %s", mp->tag);
1791 
1792  FINISH;
1793 }
1794 
1796  (vl_api_modify_vhost_user_if_t * mp, void *handle)
1797 {
1798  u8 *s;
1799 
1800  s = format (0, "SCRIPT: modify_vhost_user_if ");
1801 
1802  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1803  s = format (s, "socket %s ", mp->sock_filename);
1804  if (mp->is_server)
1805  s = format (s, "server ");
1806  if (mp->renumber)
1807  s = format (s, "renumber %d ", ntohl (mp->custom_dev_instance));
1808 
1809  FINISH;
1810 }
1811 
1813  (vl_api_delete_vhost_user_if_t * mp, void *handle)
1814 {
1815  u8 *s;
1816 
1817  s = format (0, "SCRIPT: delete_vhost_user_if ");
1818  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1819 
1820  FINISH;
1821 }
1822 
1825 {
1826  u8 *s;
1827 
1828  s = format (0, "SCRIPT: sw_interface_vhost_user_dump ");
1829 
1830  FINISH;
1831 }
1832 
1834  (vl_api_sw_interface_dump_t * mp, void *handle)
1835 {
1836  u8 *s;
1837 
1838  s = format (0, "SCRIPT: sw_interface_dump ");
1839 
1840  if (mp->name_filter_valid)
1841  s = format (s, "name_filter %s ", mp->name_filter);
1842  else
1843  s = format (s, "all ");
1844 
1845  FINISH;
1846 }
1847 
1849  (vl_api_l2_fib_table_dump_t * mp, void *handle)
1850 {
1851  u8 *s;
1852 
1853  s = format (0, "SCRIPT: l2_fib_table_dump ");
1854 
1855  s = format (s, "bd_id %d ", ntohl (mp->bd_id));
1856 
1857  FINISH;
1858 }
1859 
1860 static void *vl_api_control_ping_t_print
1861  (vl_api_control_ping_t * mp, void *handle)
1862 {
1863  u8 *s;
1864 
1865  s = format (0, "SCRIPT: control_ping ");
1866 
1867  FINISH;
1868 }
1869 
1871  (vl_api_want_interface_events_t * mp, void *handle)
1872 {
1873  u8 *s;
1874 
1875  s = format (0, "SCRIPT: want_interface_events pid %d enable %d ",
1876  ntohl (mp->pid), ntohl (mp->enable_disable));
1877 
1878  FINISH;
1879 }
1880 
1881 static void *
1882 vl_api_cli_t_print (vl_api_cli_t * mp, void *handle)
1883 {
1884  u8 *s;
1885 
1886  s = format (0, "SCRIPT: cli ");
1887 
1888  FINISH;
1889 }
1890 
1891 static void *vl_api_cli_inband_t_print
1892  (vl_api_cli_inband_t * mp, void *handle)
1893 {
1894  u8 *s;
1895  u8 *cmd = 0;
1896  u32 length = ntohl (mp->length);
1897 
1898  vec_validate (cmd, length);
1899  clib_memcpy (cmd, mp->cmd, length);
1900 
1901  s = format (0, "SCRIPT: exec %v ", cmd);
1902 
1903  vec_free (cmd);
1904  FINISH;
1905 }
1906 
1907 static void *vl_api_memclnt_create_t_print
1908  (vl_api_memclnt_create_t * mp, void *handle)
1909 {
1910  u8 *s;
1911 
1912  s = format (0, "SCRIPT: memclnt_create name %s ", mp->name);
1913 
1914  FINISH;
1915 }
1916 
1917 static void *vl_api_sockclnt_create_t_print
1918  (vl_api_sockclnt_create_t * mp, void *handle)
1919 {
1920  u8 *s;
1921 
1922  s = format (0, "SCRIPT: sockclnt_create name %s ", mp->name);
1923 
1924  FINISH;
1925 }
1926 
1927 static void *vl_api_show_version_t_print
1928  (vl_api_show_version_t * mp, void *handle)
1929 {
1930  u8 *s;
1931 
1932  s = format (0, "SCRIPT: show_version ");
1933 
1934  FINISH;
1935 }
1936 
1939 {
1940  u8 *s;
1941 
1942  s = format (0, "SCRIPT: vxlan_gpe_add_del_tunnel ");
1943 
1944  ip46_address_t local = to_ip46 (mp->is_ipv6, mp->local);
1945  ip46_address_t remote = to_ip46 (mp->is_ipv6, mp->remote);
1946 
1947  u8 is_grp = ip46_address_is_multicast (&remote);
1948  char *remote_name = is_grp ? "group" : "remote";
1949 
1950  s = format (s, "local %U ", format_ip46_address, &local, IP46_TYPE_ANY);
1951  s = format (s, "%s %U ", remote_name, format_ip46_address,
1952  &remote, IP46_TYPE_ANY);
1953 
1954  if (is_grp)
1955  s = format (s, "mcast_sw_if_index %d ", ntohl (mp->mcast_sw_if_index));
1956  s = format (s, "protocol %d ", ntohl (mp->protocol));
1957 
1958  s = format (s, "vni %d ", ntohl (mp->vni));
1959 
1960  if (mp->is_add == 0)
1961  s = format (s, "del ");
1962 
1963  if (mp->encap_vrf_id)
1964  s = format (s, "encap-vrf-id %d ", ntohl (mp->encap_vrf_id));
1965 
1966  if (mp->decap_vrf_id)
1967  s = format (s, "decap-vrf-id %d ", ntohl (mp->decap_vrf_id));
1968 
1969  FINISH;
1970 }
1971 
1973  (vl_api_vxlan_gpe_tunnel_dump_t * mp, void *handle)
1974 {
1975  u8 *s;
1976 
1977  s = format (0, "SCRIPT: vxlan_gpe_tunnel_dump ");
1978 
1979  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1980 
1981  FINISH;
1982 }
1983 
1986 {
1987  u8 *s;
1988 
1989  s = format (0, "SCRIPT: interface_renumber ");
1990 
1991  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
1992 
1993  s = format (s, "new_show_dev_instance %d ",
1994  ntohl (mp->new_show_dev_instance));
1995 
1996  FINISH;
1997 }
1998 
2000  (vl_api_want_ip4_arp_events_t * mp, void *handle)
2001 {
2002  u8 *s;
2003 
2004  s = format (0, "SCRIPT: want_ip4_arp_events ");
2005  s = format (s, "pid %d address %U ", ntohl (mp->pid),
2006  format_ip4_address, &mp->address);
2007  if (mp->enable_disable == 0)
2008  s = format (s, "del ");
2009 
2010  FINISH;
2011 }
2012 
2014  (vl_api_want_ip6_nd_events_t * mp, void *handle)
2015 {
2016  u8 *s;
2017 
2018  s = format (0, "SCRIPT: want_ip6_nd_events ");
2019  s = format (s, "pid %d address %U ", ntohl (mp->pid),
2021  if (mp->enable_disable == 0)
2022  s = format (s, "del ");
2023 
2024  FINISH;
2025 }
2026 
2028  (vl_api_want_l2_macs_events_t * mp, void *handle)
2029 {
2030  u8 *s;
2031 
2032  s = format (0, "SCRIPT: want_l2_macs_events ");
2033  s = format (s, "learn-limit %d ", ntohl (mp->learn_limit));
2034  s = format (s, "scan-delay %d ", (u32) mp->scan_delay);
2035  s = format (s, "max-entries %d ", (u32) mp->max_macs_in_event * 10);
2036  if (mp->enable_disable == 0)
2037  s = format (s, "disable");
2038 
2039  FINISH;
2040 }
2041 
2044 {
2045  u8 *s;
2046 
2047  s = format (0, "SCRIPT: input_acl_set_interface ");
2048 
2049  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
2050  s = format (s, "ip4-table %d ", ntohl (mp->ip4_table_index));
2051  s = format (s, "ip6-table %d ", ntohl (mp->ip6_table_index));
2052  s = format (s, "l2-table %d ", ntohl (mp->l2_table_index));
2053 
2054  if (mp->is_add == 0)
2055  s = format (s, "del ");
2056 
2057  FINISH;
2058 }
2059 
2062 {
2063  u8 *s;
2064 
2065  s = format (0, "SCRIPT: output_acl_set_interface ");
2066 
2067  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
2068  s = format (s, "ip4-table %d ", ntohl (mp->ip4_table_index));
2069  s = format (s, "ip6-table %d ", ntohl (mp->ip6_table_index));
2070  s = format (s, "l2-table %d ", ntohl (mp->l2_table_index));
2071 
2072  if (mp->is_add == 0)
2073  s = format (s, "del ");
2074 
2075  FINISH;
2076 }
2077 
2078 static void *vl_api_ip_address_dump_t_print
2079  (vl_api_ip_address_dump_t * mp, void *handle)
2080 {
2081  u8 *s;
2082 
2083  s = format (0, "SCRIPT: ip6_address_dump ");
2084  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
2085  s = format (s, "is_ipv6 %d ", mp->is_ipv6 != 0);
2086 
2087  FINISH;
2088 }
2089 
2090 static void *
2092 {
2093  u8 *s;
2094 
2095  s = format (0, "SCRIPT: ip_dump ");
2096  s = format (s, "is_ipv6 %d ", mp->is_ipv6 != 0);
2097 
2098  FINISH;
2099 }
2100 
2103 {
2104  u8 *s;
2105 
2106  s = format (0, "SCRIPT: cop_interface_enable_disable ");
2107  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
2108  if (mp->enable_disable)
2109  s = format (s, "enable ");
2110  else
2111  s = format (s, "disable ");
2112 
2113  FINISH;
2114 }
2115 
2118 {
2119  u8 *s;
2120 
2121  s = format (0, "SCRIPT: cop_whitelist_enable_disable ");
2122  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
2123  s = format (s, "fib-id %d ", ntohl (mp->fib_id));
2124  if (mp->ip4)
2125  s = format (s, "ip4 ");
2126  if (mp->ip6)
2127  s = format (s, "ip6 ");
2128  if (mp->default_cop)
2129  s = format (s, "default ");
2130 
2131  FINISH;
2132 }
2133 
2135  (vl_api_af_packet_create_t * mp, void *handle)
2136 {
2137  u8 *s;
2138 
2139  s = format (0, "SCRIPT: af_packet_create ");
2140  s = format (s, "host_if_name %s ", mp->host_if_name);
2141  if (mp->use_random_hw_addr)
2142  s = format (s, "hw_addr random ");
2143  else
2144  s = format (s, "hw_addr %U ", format_ethernet_address, mp->hw_addr);
2145 
2146  FINISH;
2147 }
2148 
2150  (vl_api_af_packet_delete_t * mp, void *handle)
2151 {
2152  u8 *s;
2153 
2154  s = format (0, "SCRIPT: af_packet_delete ");
2155  s = format (s, "host_if_name %s ", mp->host_if_name);
2156 
2157  FINISH;
2158 }
2159 
2160 static u8 *
2161 format_policer_action (u8 * s, va_list * va)
2162 {
2163  u32 action = va_arg (*va, u32);
2164  u32 dscp = va_arg (*va, u32);
2165  char *t = 0;
2166 
2167  if (action == SSE2_QOS_ACTION_DROP)
2168  s = format (s, "drop");
2169  else if (action == SSE2_QOS_ACTION_TRANSMIT)
2170  s = format (s, "transmit");
2171  else if (action == SSE2_QOS_ACTION_MARK_AND_TRANSMIT)
2172  {
2173  s = format (s, "mark-and-transmit ");
2174  switch (dscp)
2175  {
2176 #define _(v,f,str) case VNET_DSCP_##f: t = str; break;
2178 #undef _
2179  default:
2180  break;
2181  }
2182  s = format (s, "%s", t);
2183  }
2184  return s;
2185 }
2186 
2187 static void *vl_api_policer_add_del_t_print
2188  (vl_api_policer_add_del_t * mp, void *handle)
2189 {
2190  u8 *s;
2191 
2192  s = format (0, "SCRIPT: policer_add_del ");
2193  s = format (s, "name %s ", mp->name);
2194  s = format (s, "cir %d ", mp->cir);
2195  s = format (s, "eir %d ", mp->eir);
2196  s = format (s, "cb %d ", mp->cb);
2197  s = format (s, "eb %d ", mp->eb);
2198 
2199  switch (mp->rate_type)
2200  {
2201  case SSE2_QOS_RATE_KBPS:
2202  s = format (s, "rate_type kbps ");
2203  break;
2204  case SSE2_QOS_RATE_PPS:
2205  s = format (s, "rate_type pps ");
2206  break;
2207  default:
2208  break;
2209  }
2210 
2211  switch (mp->round_type)
2212  {
2214  s = format (s, "round_type closest ");
2215  break;
2216  case SSE2_QOS_ROUND_TO_UP:
2217  s = format (s, "round_type up ");
2218  break;
2220  s = format (s, "round_type down ");
2221  break;
2222  default:
2223  break;
2224  }
2225 
2226  switch (mp->type)
2227  {
2229  s = format (s, "type 1r2c ");
2230  break;
2232  s = format (s, "type 1r3c ");
2233  break;
2235  s = format (s, "type 2r3c-2698 ");
2236  break;
2238  s = format (s, "type 2r3c-4115 ");
2239  break;
2241  s = format (s, "type 2r3c-mef5cf1 ");
2242  break;
2243  default:
2244  break;
2245  }
2246 
2247  s = format (s, "conform_action %U ", format_policer_action,
2249  s = format (s, "exceed_action %U ", format_policer_action,
2250  mp->exceed_action_type, mp->exceed_dscp);
2251  s = format (s, "violate_action %U ", format_policer_action,
2253 
2254  if (mp->color_aware)
2255  s = format (s, "color-aware ");
2256  if (mp->is_add == 0)
2257  s = format (s, "del ");
2258 
2259  FINISH;
2260 }
2261 
2262 static void *vl_api_policer_dump_t_print
2263  (vl_api_policer_dump_t * mp, void *handle)
2264 {
2265  u8 *s;
2266 
2267  s = format (0, "SCRIPT: policer_dump ");
2268  if (mp->match_name_valid)
2269  s = format (s, "name %s ", mp->match_name);
2270 
2271  FINISH;
2272 }
2273 
2276 {
2277  u8 *s;
2278 
2279  s = format (0, "SCRIPT: policer_classify_set_interface ");
2280  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
2281  if (mp->ip4_table_index != ~0)
2282  s = format (s, "ip4-table %d ", ntohl (mp->ip4_table_index));
2283  if (mp->ip6_table_index != ~0)
2284  s = format (s, "ip6-table %d ", ntohl (mp->ip6_table_index));
2285  if (mp->l2_table_index != ~0)
2286  s = format (s, "l2-table %d ", ntohl (mp->l2_table_index));
2287  if (mp->is_add == 0)
2288  s = format (s, "del ");
2289 
2290  FINISH;
2291 }
2292 
2294  (vl_api_policer_classify_dump_t * mp, void *handle)
2295 {
2296  u8 *s;
2297 
2298  s = format (0, "SCRIPT: policer_classify_dump ");
2299  switch (mp->type)
2300  {
2302  s = format (s, "type ip4 ");
2303  break;
2305  s = format (s, "type ip6 ");
2306  break;
2308  s = format (s, "type l2 ");
2309  break;
2310  default:
2311  break;
2312  }
2313 
2314  FINISH;
2315 }
2316 
2319 {
2320  u8 *s;
2321 
2322  s = format (0, "SCRIPT: sw_interface_clear_stats ");
2323  if (mp->sw_if_index != ~0)
2324  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
2325 
2326  FINISH;
2327 }
2328 
2330  (vl_api_mpls_tunnel_dump_t * mp, void *handle)
2331 {
2332  u8 *s;
2333 
2334  s = format (0, "SCRIPT: mpls_tunnel_dump ");
2335 
2336  s = format (s, "tunnel_index %d ", ntohl (mp->tunnel_index));
2337 
2338  FINISH;
2339 }
2340 
2341 static void *vl_api_mpls_fib_dump_t_print
2342  (vl_api_mpls_fib_dump_t * mp, void *handle)
2343 {
2344  u8 *s;
2345 
2346  s = format (0, "SCRIPT: mpls_fib_decap_dump ");
2347 
2348  FINISH;
2349 }
2350 
2351 static void *vl_api_ip_fib_dump_t_print
2352  (vl_api_ip_fib_dump_t * mp, void *handle)
2353 {
2354  u8 *s;
2355 
2356  s = format (0, "SCRIPT: ip_fib_dump ");
2357 
2358  FINISH;
2359 }
2360 
2361 static void *vl_api_ip6_fib_dump_t_print
2362  (vl_api_ip6_fib_dump_t * mp, void *handle)
2363 {
2364  u8 *s;
2365 
2366  s = format (0, "SCRIPT: ip6_fib_dump ");
2367 
2368  FINISH;
2369 }
2370 
2372  (vl_api_classify_table_ids_t * mp, void *handle)
2373 {
2374  u8 *s;
2375 
2376  s = format (0, "SCRIPT: classify_table_ids ");
2377 
2378  FINISH;
2379 }
2380 
2383 {
2384  u8 *s;
2385 
2386  s = format (0, "SCRIPT: classify_table_by_interface ");
2387  if (mp->sw_if_index != ~0)
2388  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
2389 
2390  FINISH;
2391 }
2392 
2394  (vl_api_classify_table_info_t * mp, void *handle)
2395 {
2396  u8 *s;
2397 
2398  s = format (0, "SCRIPT: classify_table_info ");
2399  if (mp->table_id != ~0)
2400  s = format (s, "table_id %d ", ntohl (mp->table_id));
2401 
2402  FINISH;
2403 }
2404 
2406  (vl_api_classify_session_dump_t * mp, void *handle)
2407 {
2408  u8 *s;
2409 
2410  s = format (0, "SCRIPT: classify_session_dump ");
2411  if (mp->table_id != ~0)
2412  s = format (s, "table_id %d ", ntohl (mp->table_id));
2413 
2414  FINISH;
2415 }
2416 
2418  (vl_api_set_ipfix_exporter_t * mp, void *handle)
2419 {
2420  u8 *s;
2421 
2422  s = format (0, "SCRIPT: set_ipfix_exporter ");
2423 
2424  s = format (s, "collector-address %U ", format_ip4_address,
2426  s = format (s, "collector-port %d ", ntohs (mp->collector_port));
2427  s = format (s, "src-address %U ", format_ip4_address,
2428  (ip4_address_t *) mp->src_address);
2429  s = format (s, "vrf-id %d ", ntohl (mp->vrf_id));
2430  s = format (s, "path-mtu %d ", ntohl (mp->path_mtu));
2431  s = format (s, "template-interval %d ", ntohl (mp->template_interval));
2432  s = format (s, "udp-checksum %d ", mp->udp_checksum);
2433 
2434  FINISH;
2435 }
2436 
2438  (vl_api_ipfix_exporter_dump_t * mp, void *handle)
2439 {
2440  u8 *s;
2441 
2442  s = format (0, "SCRIPT: ipfix_exporter_dump ");
2443 
2444  FINISH;
2445 }
2446 
2449 {
2450  u8 *s;
2451 
2452  s = format (0, "SCRIPT: set_ipfix_classify_stream ");
2453 
2454  s = format (s, "domain-id %d ", ntohl (mp->domain_id));
2455  s = format (s, "src-port %d ", ntohs (mp->src_port));
2456 
2457  FINISH;
2458 }
2459 
2462 {
2463  u8 *s;
2464 
2465  s = format (0, "SCRIPT: ipfix_classify_stream_dump ");
2466 
2467  FINISH;
2468 }
2469 
2472 {
2473  u8 *s;
2474 
2475  s = format (0, "SCRIPT: ipfix_classify_table_add_del ");
2476 
2477  s = format (s, "table-id %d ", ntohl (mp->table_id));
2478  s = format (s, "ip-version %d ", mp->ip_version);
2479  s = format (s, "transport-protocol %d ", mp->transport_protocol);
2480 
2481  FINISH;
2482 }
2483 
2486 {
2487  u8 *s;
2488 
2489  s = format (0, "SCRIPT: ipfix_classify_table_dump ");
2490 
2491  FINISH;
2492 }
2493 
2496 {
2497  u8 *s;
2498 
2499  s = format (0, "SCRIPT: sw_interface_span_enable_disable ");
2500  s = format (s, "src_sw_if_index %u ", ntohl (mp->sw_if_index_from));
2501  s = format (s, "dst_sw_if_index %u ", ntohl (mp->sw_if_index_to));
2502 
2503  if (mp->is_l2)
2504  s = format (s, "l2 ");
2505 
2506  switch (mp->state)
2507  {
2508  case 0:
2509  s = format (s, "disable ");
2510  break;
2511  case 1:
2512  s = format (s, "rx ");
2513  break;
2514  case 2:
2515  s = format (s, "tx ");
2516  break;
2517  case 3:
2518  default:
2519  s = format (s, "both ");
2520  break;
2521  }
2522 
2523  FINISH;
2524 }
2525 
2526 static void *
2528  void *handle)
2529 {
2530  u8 *s;
2531 
2532  s = format (0, "SCRIPT: sw_interface_span_dump ");
2533 
2534  if (mp->is_l2)
2535  s = format (s, "l2 ");
2536 
2537  FINISH;
2538 }
2539 
2540 static void *vl_api_get_next_index_t_print
2541  (vl_api_get_next_index_t * mp, void *handle)
2542 {
2543  u8 *s;
2544 
2545  s = format (0, "SCRIPT: get_next_index ");
2546  s = format (s, "node-name %s ", mp->node_name);
2547  s = format (s, "next-node-name %s ", mp->next_name);
2548 
2549  FINISH;
2550 }
2551 
2553  (vl_api_pg_create_interface_t * mp, void *handle)
2554 {
2555  u8 *s;
2556 
2557  s = format (0, "SCRIPT: pg_create_interface ");
2558  s = format (0, "if_id %d", ntohl (mp->interface_id));
2559 
2560  FINISH;
2561 }
2562 
2563 static void *vl_api_pg_capture_t_print
2564  (vl_api_pg_capture_t * mp, void *handle)
2565 {
2566  u8 *s;
2567 
2568  s = format (0, "SCRIPT: pg_capture ");
2569  s = format (0, "if_id %d ", ntohl (mp->interface_id));
2570  s = format (0, "pcap %s", mp->pcap_file_name);
2571  if (mp->count != ~0)
2572  s = format (s, "count %d ", ntohl (mp->count));
2573  if (!mp->is_enabled)
2574  s = format (s, "disable");
2575 
2576  FINISH;
2577 }
2578 
2580  (vl_api_pg_enable_disable_t * mp, void *handle)
2581 {
2582  u8 *s;
2583 
2584  s = format (0, "SCRIPT: pg_enable_disable ");
2585  if (ntohl (mp->stream_name_length) > 0)
2586  s = format (s, "stream %s", mp->stream_name);
2587  if (!mp->is_enabled)
2588  s = format (s, "disable");
2589 
2590  FINISH;
2591 }
2592 
2595 {
2596  u8 *s;
2597  int i;
2598 
2599  s = format (0, "SCRIPT: ip_source_and_port_range_check_add_del ");
2600  if (mp->is_ipv6)
2601  s = format (s, "%U/%d ", format_ip6_address, mp->address,
2602  mp->mask_length);
2603  else
2604  s = format (s, "%U/%d ", format_ip4_address, mp->address,
2605  mp->mask_length);
2606 
2607  for (i = 0; i < mp->number_of_ranges; i++)
2608  {
2609  s = format (s, "range %d - %d ", mp->low_ports[i], mp->high_ports[i]);
2610  }
2611 
2612  s = format (s, "vrf %d ", ntohl (mp->vrf_id));
2613 
2614  if (mp->is_add == 0)
2615  s = format (s, "del ");
2616 
2617  FINISH;
2618 }
2619 
2622  void *handle)
2623 {
2624  u8 *s;
2625 
2626  s = format (0, "SCRIPT: ip_source_and_port_range_check_interface_add_del ");
2627 
2628  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
2629 
2630  if (mp->tcp_out_vrf_id != ~0)
2631  s = format (s, "tcp-out-vrf %d ", ntohl (mp->tcp_out_vrf_id));
2632 
2633  if (mp->udp_out_vrf_id != ~0)
2634  s = format (s, "udp-out-vrf %d ", ntohl (mp->udp_out_vrf_id));
2635 
2636  if (mp->tcp_in_vrf_id != ~0)
2637  s = format (s, "tcp-in-vrf %d ", ntohl (mp->tcp_in_vrf_id));
2638 
2639  if (mp->udp_in_vrf_id != ~0)
2640  s = format (s, "udp-in-vrf %d ", ntohl (mp->udp_in_vrf_id));
2641 
2642  if (mp->is_add == 0)
2643  s = format (s, "del ");
2644 
2645  FINISH;
2646 }
2647 
2649  (vl_api_lisp_enable_disable_t * mp, void *handle)
2650 {
2651  u8 *s;
2652 
2653  s = format (0, "SCRIPT: lisp_enable_disable %s",
2654  mp->is_en ? "enable" : "disable");
2655 
2656  FINISH;
2657 }
2658 
2660  (vl_api_gpe_add_del_iface_t * mp, void *handle)
2661 {
2662  u8 *s;
2663 
2664  s = format (0, "SCRIPT: gpe_add_del_iface ");
2665 
2666  s = format (s, "%s ", mp->is_add ? "up" : "down");
2667  s = format (s, "vni %d ", mp->vni);
2668  s = format (s, "%s %d ", mp->is_l2 ? "bd_id" : "table_id", mp->dp_table);
2669 
2670  FINISH;
2671 }
2672 
2675 {
2676  u8 *s;
2677 
2678  s = format (0, "SCRIPT: lisp_pitr_set_locator_set ");
2679 
2680  if (mp->is_add)
2681  s = format (s, "locator-set %s ", mp->ls_name);
2682  else
2683  s = format (s, "del");
2684 
2685  FINISH;
2686 }
2687 
2688 static u8 *
2689 format_lisp_flat_eid (u8 * s, va_list * args)
2690 {
2691  u32 type = va_arg (*args, u32);
2692  u8 *eid = va_arg (*args, u8 *);
2693  u32 eid_len = va_arg (*args, u32);
2694 
2695  switch (type)
2696  {
2697  case 0:
2698  return format (s, "%U/%d", format_ip4_address, eid, eid_len);
2699  case 1:
2700  return format (s, "%U/%d", format_ip6_address, eid, eid_len);
2701  case 3:
2702  return format (s, "%U", format_ethernet_address, eid);
2703  }
2704  return 0;
2705 }
2706 
2709 {
2710  u8 *s;
2711  u32 rloc_num = 0;
2712 
2713  s = format (0, "SCRIPT: lisp_add_del_remote_mapping ");
2714 
2715  if (mp->del_all)
2716  s = format (s, "del-all ");
2717 
2718  s = format (s, "%s ", mp->is_add ? "add" : "del");
2719  s = format (s, "vni %d ", clib_net_to_host_u32 (mp->vni));
2720 
2721  s = format (s, "eid %U ", format_lisp_flat_eid,
2722  mp->eid_type, mp->eid, mp->eid_len);
2723 
2724  if (mp->is_src_dst)
2725  {
2726  s = format (s, "seid %U ", format_lisp_flat_eid,
2727  mp->eid_type, mp->seid, mp->seid_len);
2728  }
2729  rloc_num = clib_net_to_host_u32 (mp->rloc_num);
2730 
2731  if (0 == rloc_num)
2732  s = format (s, "action %d", mp->action);
2733 
2734  FINISH;
2735 }
2736 
2738  (vl_api_lisp_add_del_adjacency_t * mp, void *handle)
2739 {
2740  u8 *s;
2741 
2742  s = format (0, "SCRIPT: lisp_add_del_adjacency ");
2743 
2744  s = format (s, "%s ", mp->is_add ? "add" : "del");
2745  s = format (s, "vni %d ", clib_net_to_host_u32 (mp->vni));
2746  s = format (s, "reid %U leid %U ",
2747  format_lisp_flat_eid, mp->eid_type, mp->reid, mp->reid_len,
2748  format_lisp_flat_eid, mp->eid_type, mp->leid, mp->leid_len);
2749 
2750  FINISH;
2751 }
2752 
2755 {
2756  u8 *s;
2757 
2758  s = format (0, "SCRIPT: lisp_add_del_map_request_itr_rlocs ");
2759 
2760  if (mp->is_add)
2761  s = format (s, "%s", mp->locator_set_name);
2762  else
2763  s = format (s, "del");
2764 
2765  FINISH;
2766 }
2767 
2770 {
2771  u8 *s;
2772 
2773  s = format (0, "SCRIPT: lisp_eid_table_add_del_map ");
2774 
2775  if (!mp->is_add)
2776  s = format (s, "del ");
2777 
2778  s = format (s, "vni %d ", clib_net_to_host_u32 (mp->vni));
2779  s = format (s, "%s %d ",
2780  mp->is_l2 ? "bd_index" : "vrf",
2781  clib_net_to_host_u32 (mp->dp_table));
2782  FINISH;
2783 }
2784 
2786  (vl_api_lisp_add_del_local_eid_t * mp, void *handle)
2787 {
2788  u8 *s;
2789 
2790  s = format (0, "SCRIPT: lisp_add_del_local_eid ");
2791 
2792  if (!mp->is_add)
2793  s = format (s, "del ");
2794 
2795  s = format (s, "vni %d ", clib_net_to_host_u32 (mp->vni));
2796  s = format (s, "eid %U ", format_lisp_flat_eid, mp->eid_type, mp->eid,
2797  mp->prefix_len);
2798  s = format (s, "locator-set %s ", mp->locator_set_name);
2799  if (*mp->key)
2800  {
2801  u32 key_id = mp->key_id;
2802  s = format (s, "key-id %U", format_hmac_key_id, key_id);
2803  s = format (s, "secret-key %s", mp->key);
2804  }
2805  FINISH;
2806 }
2807 
2809  (vl_api_gpe_add_del_fwd_entry_t * mp, void *handle)
2810 {
2811  u8 *s;
2812 
2813  s = format (0, "SCRIPT: gpe_add_del_fwd_entry TODO");
2814 
2815  FINISH;
2816 }
2817 
2820 {
2821  u8 *s;
2822 
2823  s = format (0, "SCRIPT: lisp_add_del_map_resolver ");
2824 
2825  if (!mp->is_add)
2826  s = format (s, "del ");
2827 
2828  if (mp->is_ipv6)
2829  s = format (s, "%U ", format_ip6_address, mp->ip_address);
2830  else
2831  s = format (s, "%U ", format_ip4_address, mp->ip_address);
2832 
2833  FINISH;
2834 }
2835 
2837  (vl_api_gpe_enable_disable_t * mp, void *handle)
2838 {
2839  u8 *s;
2840 
2841  s = format (0, "SCRIPT: gpe_enable_disable ");
2842 
2843  s = format (s, "%s ", mp->is_en ? "enable" : "disable");
2844 
2845  FINISH;
2846 }
2847 
2850 {
2851  u8 *s;
2852 
2853  s = format (0, "SCRIPT: lisp_add_del_locator_set ");
2854 
2855  if (!mp->is_add)
2856  s = format (s, "del ");
2857 
2858  s = format (s, "locator-set %s ", mp->locator_set_name);
2859 
2860  FINISH;
2861 }
2862 
2864  (vl_api_lisp_add_del_locator_t * mp, void *handle)
2865 {
2866  u8 *s;
2867 
2868  s = format (0, "SCRIPT: lisp_add_del_locator ");
2869 
2870  if (!mp->is_add)
2871  s = format (s, "del ");
2872 
2873  s = format (s, "locator-set %s ", mp->locator_set_name);
2874  s = format (s, "sw_if_index %d ", mp->sw_if_index);
2875  s = format (s, "p %d w %d ", mp->priority, mp->weight);
2876 
2877  FINISH;
2878 }
2879 
2881  (vl_api_lisp_locator_set_dump_t * mp, void *handle)
2882 {
2883  u8 *s;
2884 
2885  s = format (0, "SCRIPT: lisp_locator_set_dump ");
2886  if (mp->filter == 1)
2887  s = format (s, "local");
2888  else if (mp->filter == 2)
2889  s = format (s, "remote");
2890 
2891  FINISH;
2892 }
2893 
2895  (vl_api_lisp_locator_dump_t * mp, void *handle)
2896 {
2897  u8 *s;
2898 
2899  s = format (0, "SCRIPT: lisp_locator_dump ");
2900  if (mp->is_index_set)
2901  s = format (s, "ls_index %d", clib_net_to_host_u32 (mp->ls_index));
2902  else
2903  s = format (s, "ls_name %s", mp->ls_name);
2904 
2905  FINISH;
2906 }
2907 
2909  (vl_api_lisp_map_request_mode_t * mp, void *handle)
2910 {
2911  u8 *s;
2912 
2913  s = format (0, "SCRIPT: lisp_map_request_mode ");
2914 
2915  switch (mp->mode)
2916  {
2917  case 0:
2918  s = format (s, "dst-only");
2919  break;
2920  case 1:
2921  s = format (s, "src-dst");
2922  default:
2923  break;
2924  }
2925 
2926  FINISH;
2927 }
2928 
2930  (vl_api_lisp_eid_table_dump_t * mp, void *handle)
2931 {
2932  u8 *s;
2933 
2934  s = format (0, "SCRIPT: lisp_eid_table_dump ");
2935 
2936  if (mp->eid_set)
2937  {
2938  s = format (s, "vni %d ", clib_net_to_host_u32 (mp->vni));
2939  s = format (s, "eid %U ", format_lisp_flat_eid, mp->eid_type,
2940  mp->eid, mp->prefix_length);
2941  switch (mp->filter)
2942  {
2943  case 1:
2944  s = format (s, "local ");
2945  break;
2946  case 2:
2947  s = format (s, "remote ");
2948  break;
2949  }
2950  }
2951  FINISH;
2952 }
2953 
2956 {
2957  u8 *s;
2958 
2959  s = format (0, "SCRIPT: lisp_rloc_probe_enable_disable ");
2960  if (mp->is_enabled)
2961  s = format (s, "enable");
2962  else
2963  s = format (s, "disable");
2964 
2965  FINISH;
2966 }
2967 
2970 {
2971  u8 *s;
2972 
2973  s = format (0, "SCRIPT: lisp_map_register_enable_disable ");
2974  if (mp->is_enabled)
2975  s = format (s, "enable");
2976  else
2977  s = format (s, "disable");
2978 
2979  FINISH;
2980 }
2981 
2983  (vl_api_lisp_adjacencies_get_t * mp, void *handle)
2984 {
2985  u8 *s;
2986 
2987  s = format (0, "SCRIPT: lisp_adjacencies_get ");
2988  s = format (s, "vni %d", clib_net_to_host_u32 (mp->vni));
2989 
2990  FINISH;
2991 }
2992 
2995 {
2996  u8 *s;
2997 
2998  s = format (0, "SCRIPT: lisp_eid_table_map_dump ");
2999 
3000  if (mp->is_l2)
3001  s = format (s, "l2");
3002  else
3003  s = format (s, "l3");
3004 
3005  FINISH;
3006 }
3007 
3010 {
3011  u8 *s;
3012 
3013  s = format (0, "SCRIPT: ipsec_gre_add_del_tunnel ");
3014 
3015  s = format (s, "dst %U ", format_ip4_address,
3016  (ip4_address_t *) & (mp->dst_address));
3017 
3018  s = format (s, "src %U ", format_ip4_address,
3019  (ip4_address_t *) & (mp->src_address));
3020 
3021  s = format (s, "local_sa %d ", ntohl (mp->local_sa_id));
3022 
3023  s = format (s, "remote_sa %d ", ntohl (mp->remote_sa_id));
3024 
3025  if (mp->is_add == 0)
3026  s = format (s, "del ");
3027 
3028  FINISH;
3029 }
3030 
3032  (vl_api_ipsec_gre_tunnel_dump_t * mp, void *handle)
3033 {
3034  u8 *s;
3035 
3036  s = format (0, "SCRIPT: ipsec_gre_tunnel_dump ");
3037 
3038  if (mp->sw_if_index != ~0)
3039  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
3040 
3041  FINISH;
3042 }
3043 
3046 {
3047  u8 *s;
3048  u32 vtr_op = ntohl (mp->vtr_op);
3049 
3050  s = format (0, "SCRIPT: l2_interface_pbb_tag_rewrite ");
3051 
3052  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
3053  s = format (s, "vtr_op %d ", vtr_op);
3054  if (vtr_op != L2_VTR_DISABLED && vtr_op != L2_VTR_POP_2)
3055  {
3056  if (vtr_op == L2_VTR_TRANSLATE_2_2)
3057  s = format (s, "%d ", ntohs (mp->outer_tag));
3058  s = format (s, "dmac %U ", format_ethernet_address, &mp->b_dmac);
3059  s = format (s, "smac %U ", format_ethernet_address, &mp->b_smac);
3060  s = format (s, "sid %d ", ntohl (mp->i_sid));
3061  s = format (s, "vlanid %d ", ntohs (mp->b_vlanid));
3062  }
3063  FINISH;
3064 }
3065 
3068 {
3069  u8 *s;
3070 
3071  s = format (0, "SCRIPT: flow_classify_set_interface ");
3072  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
3073  if (mp->ip4_table_index != ~0)
3074  s = format (s, "ip4-table %d ", ntohl (mp->ip4_table_index));
3075  if (mp->ip6_table_index != ~0)
3076  s = format (s, "ip6-table %d ", ntohl (mp->ip6_table_index));
3077  if (mp->is_add == 0)
3078  s = format (s, "del ");
3079 
3080  FINISH;
3081 }
3082 
3083 static void *
3085 {
3086  u8 *s;
3087 
3088  s = format (0, "SCRIPT: punt ");
3089 
3090  if (mp->ipv != (u8) ~ 0)
3091  s = format (s, "ip %d ", mp->ipv);
3092 
3093  s = format (s, "protocol %d ", mp->l4_protocol);
3094 
3095  if (mp->l4_port != (u16) ~ 0)
3096  s = format (s, "port %d ", ntohs (mp->l4_port));
3097 
3098  if (!mp->is_add)
3099  s = format (s, "del ");
3100 
3101  FINISH;
3102 }
3103 
3105  (vl_api_flow_classify_dump_t * mp, void *handle)
3106 {
3107  u8 *s;
3108 
3109  s = format (0, "SCRIPT: flow_classify_dump ");
3110  switch (mp->type)
3111  {
3113  s = format (s, "type ip4 ");
3114  break;
3116  s = format (s, "type ip6 ");
3117  break;
3118  default:
3119  break;
3120  }
3121 
3122  FINISH;
3123 }
3124 
3126  (vl_api_get_first_msg_id_t * mp, void *handle)
3127 {
3128  u8 *s;
3129 
3130  s = format (0, "SCRIPT: get_first_msg_id %s ", mp->name);
3131 
3132  FINISH;
3133 }
3134 
3135 static void *vl_api_ioam_enable_t_print
3136  (vl_api_ioam_enable_t * mp, void *handle)
3137 {
3138  u8 *s;
3139 
3140  s = format (0, "SCRIPT: ioam_enable ");
3141 
3142  if (mp->trace_enable)
3143  s = format (s, "trace enabled");
3144 
3145  if (mp->pot_enable)
3146  s = format (s, "POT enabled");
3147 
3148  if (mp->seqno)
3149  s = format (s, "Seqno enabled");
3150 
3151  if (mp->analyse)
3152  s = format (s, "Analyse enabled");
3153 
3154  FINISH;
3155 }
3156 
3157 static void *vl_api_ioam_disable_t_print
3158  (vl_api_ioam_disable_t * mp, void *handle)
3159 {
3160  u8 *s;
3161 
3162  s = format (0, "SCRIPT: ioam_disable ");
3163  s = format (s, "trace disabled");
3164  s = format (s, "POT disabled");
3165  s = format (s, "Seqno disabled");
3166  s = format (s, "Analyse disabled");
3167 
3168  FINISH;
3169 }
3170 
3172  (vl_api_feature_enable_disable_t * mp, void *handle)
3173 {
3174  u8 *s;
3175 
3176  s = format (0, "SCRIPT: feature_enable_disable ");
3177  s = format (s, "arc_name %s ", mp->arc_name);
3178  s = format (s, "feature_name %s ", mp->feature_name);
3179  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
3180  if (!mp->enable)
3181  s = format (s, "disable");
3182 
3183  FINISH;
3184 }
3185 
3188 {
3189  u8 *s;
3190 
3191  s = format (0, "SCRIPT: sw_interface_tag_add_del ");
3192  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
3193  if (mp->is_add)
3194  s = format (s, "tag %s ", mp->tag);
3195  else
3196  s = format (s, "del ");
3197 
3198  FINISH;
3199 }
3200 
3202  (vl_api_sw_interface_set_mtu_t * mp, void *handle)
3203 {
3204  u8 *s;
3205 
3206  s = format (0, "SCRIPT: sw_interface_set_mtu ");
3207  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
3208  s = format (s, "tag %d ", ntohs (mp->mtu));
3209 
3210  FINISH;
3211 }
3212 
3214  (vl_api_p2p_ethernet_add_t * mp, void *handle)
3215 {
3216  u8 *s;
3217 
3218  s = format (0, "SCRIPT: p2p_ethernet_add ");
3219  s = format (s, "sw_if_index %d ", ntohl (mp->parent_if_index));
3220  s = format (s, "remote_mac %U ", format_ethernet_address, mp->remote_mac);
3221 
3222  FINISH;
3223 }
3224 
3226  (vl_api_p2p_ethernet_del_t * mp, void *handle)
3227 {
3228  u8 *s;
3229 
3230  s = format (0, "SCRIPT: p2p_ethernet_del ");
3231  s = format (s, "sw_if_index %d ", ntohl (mp->parent_if_index));
3232  s = format (s, "remote_mac %U ", format_ethernet_address, mp->remote_mac);
3233 
3234  FINISH;
3235 }
3236 
3239 {
3240  u8 *s;
3241 
3242  s = format (0, "SCRIPT: tcp_configure_src_addresses ");
3243  if (mp->is_ipv6)
3244  s = format (s, "%U - %U ",
3247  else
3248  s = format (s, "%U - %U ",
3251 
3252  if (mp->vrf_id)
3253  s = format (s, "vrf %d ", ntohl (mp->vrf_id));
3254 
3255  FINISH;
3256 }
3257 
3259  (vl_api_app_namespace_add_del_t * mp, void *handle)
3260 {
3261  u8 *s, *ns_id = 0;
3262  u8 len = clib_min (mp->namespace_id_len,
3263  ARRAY_LEN (mp->namespace_id) - 1);
3264  mp->namespace_id[len] = 0;
3265  s = format (0, "SCRIPT: app_namespace_add_del ");
3266  s = format (s, "ns-id %s secret %lu sw_if_index %d ipv4_fib_id %d "
3267  "ipv6_fib_id %d", (char *) mp->namespace_id, mp->secret,
3268  clib_net_to_host_u32 (mp->sw_if_index),
3269  clib_net_to_host_u32 (mp->ip4_fib_id),
3270  clib_net_to_host_u32 (mp->ip6_fib_id));
3271  FINISH;
3272 }
3273 
3274 static void *vl_api_lldp_config_t_print
3275  (vl_api_lldp_config_t * mp, void *handle)
3276 {
3277  u8 *s;
3278 
3279  s = format (0, "SCRIPT: lldp_config ");
3280  s = format (s, "system_name %s ", mp->system_name);
3281  s = format (s, "tx_hold %d ", ntohl (mp->tx_hold));
3282  s = format (s, "tx_interval %d ", ntohl (mp->tx_interval));
3283  FINISH;
3284 }
3285 
3287  (vl_api_dns_enable_disable_t * mp, void *handle)
3288 {
3289  u8 *s;
3290 
3291  s = format (0, "SCRIPT: dns_enable_disable ");
3292  s = format (s, "%s ", mp->enable ? "enable" : "disable");
3293 
3294  FINISH;
3295 }
3296 
3298  (vl_api_sw_interface_set_lldp_t * mp, void *handle)
3299 {
3300  u8 *s;
3301  u8 null_data[256];
3302 
3303  memset (null_data, 0, sizeof (null_data));
3304 
3305  s = format (0, "SCRIPT: sw_interface_set_lldp ");
3306  s = format (s, "sw_if_index %d ", ntohl (mp->sw_if_index));
3307 
3308  if (memcmp (mp->port_desc, null_data, sizeof (mp->port_desc)))
3309  s = format (s, "port_desc %s ", mp->port_desc);
3310 
3311  if (memcmp (mp->mgmt_ip4, null_data, sizeof (mp->mgmt_ip4)))
3312  s = format (s, "mgmt_ip4 %U ", format_ip4_address, mp->mgmt_ip4);
3313 
3314  if (memcmp (mp->mgmt_ip6, null_data, sizeof (mp->mgmt_ip6)))
3315  s = format (s, "mgmt_ip6 %U ", format_ip6_address, mp->mgmt_ip6);
3316 
3317  if (memcmp (mp->mgmt_oid, null_data, sizeof (mp->mgmt_oid)))
3318  s = format (s, "mgmt_oid %s ", mp->mgmt_oid);
3319 
3320  if (mp->enable == 0)
3321  s = format (s, "disable ");
3322 
3323  FINISH;
3324 }
3325 
3328 {
3329  u8 *s;
3330 
3331  s = format (0, "SCRIPT: dns_name_server_add_del ");
3332  if (mp->is_ip6)
3333  s = format (s, "%U ", format_ip6_address,
3334  (ip6_address_t *) mp->server_address);
3335  else
3336  s = format (s, "%U ", format_ip4_address,
3337  (ip4_address_t *) mp->server_address);
3338 
3339  if (mp->is_add == 0)
3340  s = format (s, "del ");
3341 
3342  FINISH;
3343 }
3344 
3346  (vl_api_dns_resolve_name_t * mp, void *handle)
3347 {
3348  u8 *s;
3349 
3350  s = format (0, "SCRIPT: dns_resolve_name ");
3351  s = format (s, "%s ", mp->name);
3352  FINISH;
3353 }
3354 
3355 static void *vl_api_dns_resolve_ip_t_print
3356  (vl_api_dns_resolve_ip_t * mp, void *handle)
3357 {
3358  u8 *s;
3359 
3360  s = format (0, "SCRIPT: dns_resolve_ip ");
3361  if (mp->is_ip6)
3362  s = format (s, "%U ", format_ip6_address, mp->address);
3363  else
3364  s = format (s, "%U ", format_ip4_address, mp->address);
3365  FINISH;
3366 }
3367 
3369  (vl_api_session_rule_add_del_t * mp, void *handle)
3370 {
3371  u8 *s;
3372  char *proto = mp->transport_proto == 0 ? "tcp" : "udp";
3373  s = format (0, "SCRIPT: session_rule_add_del ");
3374  mp->tag[sizeof (mp->tag) - 1] = 0;
3375  if (mp->is_ip4)
3376  s = format (s, "appns %d scope %d %s %U/%d %d %U/%d %d action %u tag %s",
3377  mp->appns_index, mp->scope, proto, format_ip4_address,
3378  (ip4_address_t *) mp->lcl_ip, mp->lcl_plen,
3380  mp->rmt_plen, mp->action_index, mp->tag);
3381  else
3382  s = format (s, "appns %d scope %d %s %U/%d %d %U/%d %d action %u tag %s",
3383  mp->appns_index, mp->scope, proto, format_ip6_address,
3384  (ip6_address_t *) mp->lcl_ip, mp->lcl_plen,
3386  mp->rmt_plen, mp->action_index, mp->tag);
3387  FINISH;
3388 }
3389 
3392 {
3393  u8 *s;
3394  s = format (0, "SCRIPT: ip_container_proxy_add_del ");
3395  if (mp->is_ip4)
3396  s = format (s, "is_add %d address %U/%d sw_if_index %d",
3398  (ip4_address_t *) mp->ip, mp->plen, mp->sw_if_index);
3399  else
3400  s = format (s, "is_add %d address %U/%d sw_if_index %d",
3402  (ip6_address_t *) mp->ip, mp->plen, mp->sw_if_index);
3403  FINISH;
3404 }
3405 
3406 
3407 #define foreach_custom_print_no_arg_function \
3408 _(lisp_eid_table_vni_dump) \
3409 _(lisp_map_resolver_dump) \
3410 _(lisp_map_server_dump) \
3411 _(show_lisp_rloc_probe_state) \
3412 _(show_lisp_map_register_state) \
3413 _(show_lisp_map_request_mode)
3414 
3415 #define _(f) \
3416 static void * vl_api_ ## f ## _t_print \
3417  (vl_api_ ## f ## _t * mp, void * handle) \
3418 { \
3419  u8 * s; \
3420  s = format (0, "SCRIPT: " #f ); \
3421  FINISH; \
3422 }
3424 #undef _
3425 #define foreach_custom_print_function \
3426 _(CREATE_LOOPBACK, create_loopback) \
3427 _(CREATE_LOOPBACK_INSTANCE, create_loopback_instance) \
3428 _(SW_INTERFACE_SET_FLAGS, sw_interface_set_flags) \
3429 _(SW_INTERFACE_EVENT, sw_interface_event) \
3430 _(SW_INTERFACE_ADD_DEL_ADDRESS, sw_interface_add_del_address) \
3431 _(SW_INTERFACE_SET_TABLE, sw_interface_set_table) \
3432 _(SW_INTERFACE_SET_MPLS_ENABLE, sw_interface_set_mpls_enable) \
3433 _(SW_INTERFACE_SET_VPATH, sw_interface_set_vpath) \
3434 _(SW_INTERFACE_SET_VXLAN_BYPASS, sw_interface_set_vxlan_bypass) \
3435 _(SW_INTERFACE_SET_GENEVE_BYPASS, sw_interface_set_geneve_bypass) \
3436 _(TAP_CONNECT, tap_connect) \
3437 _(TAP_MODIFY, tap_modify) \
3438 _(TAP_DELETE, tap_delete) \
3439 _(SW_INTERFACE_TAP_DUMP, sw_interface_tap_dump) \
3440 _(BOND_CREATE, bond_create) \
3441 _(BOND_DELETE, bond_delete) \
3442 _(BOND_ENSLAVE, bond_enslave) \
3443 _(BOND_DETACH_SLAVE, bond_detach_slave) \
3444 _(TAP_CREATE_V2, tap_create_v2) \
3445 _(TAP_DELETE_V2, tap_delete_v2) \
3446 _(SW_INTERFACE_TAP_V2_DUMP, sw_interface_tap_v2_dump) \
3447 _(IP_ADD_DEL_ROUTE, ip_add_del_route) \
3448 _(PROXY_ARP_ADD_DEL, proxy_arp_add_del) \
3449 _(PROXY_ARP_INTFC_ENABLE_DISABLE, proxy_arp_intfc_enable_disable) \
3450 _(MPLS_TUNNEL_ADD_DEL, mpls_tunnel_add_del) \
3451 _(SW_INTERFACE_SET_UNNUMBERED, sw_interface_set_unnumbered) \
3452 _(IP_NEIGHBOR_ADD_DEL, ip_neighbor_add_del) \
3453 _(CREATE_VLAN_SUBIF, create_vlan_subif) \
3454 _(CREATE_SUBIF, create_subif) \
3455 _(OAM_ADD_DEL, oam_add_del) \
3456 _(RESET_FIB, reset_fib) \
3457 _(DHCP_PROXY_CONFIG, dhcp_proxy_config) \
3458 _(DHCP_PROXY_SET_VSS, dhcp_proxy_set_vss) \
3459 _(SET_IP_FLOW_HASH, set_ip_flow_hash) \
3460 _(SW_INTERFACE_IP6_SET_LINK_LOCAL_ADDRESS, \
3461  sw_interface_ip6_set_link_local_address) \
3462 _(SW_INTERFACE_IP6ND_RA_PREFIX, sw_interface_ip6nd_ra_prefix) \
3463 _(SW_INTERFACE_IP6ND_RA_CONFIG, sw_interface_ip6nd_ra_config) \
3464 _(SET_ARP_NEIGHBOR_LIMIT, set_arp_neighbor_limit) \
3465 _(L2_PATCH_ADD_DEL, l2_patch_add_del) \
3466 _(SR_LOCALSID_ADD_DEL, sr_localsid_add_del) \
3467 _(SR_STEERING_ADD_DEL, sr_steering_add_del) \
3468 _(SR_POLICY_ADD, sr_policy_add) \
3469 _(SR_POLICY_MOD, sr_policy_mod) \
3470 _(SR_POLICY_DEL, sr_policy_del) \
3471 _(SW_INTERFACE_SET_L2_XCONNECT, sw_interface_set_l2_xconnect) \
3472 _(L2FIB_ADD_DEL, l2fib_add_del) \
3473 _(L2FIB_FLUSH_ALL, l2fib_flush_all) \
3474 _(L2FIB_FLUSH_BD, l2fib_flush_bd) \
3475 _(L2FIB_FLUSH_INT, l2fib_flush_int) \
3476 _(L2_FLAGS, l2_flags) \
3477 _(BRIDGE_FLAGS, bridge_flags) \
3478 _(CLASSIFY_ADD_DEL_TABLE, classify_add_del_table) \
3479 _(CLASSIFY_ADD_DEL_SESSION, classify_add_del_session) \
3480 _(SW_INTERFACE_SET_L2_BRIDGE, sw_interface_set_l2_bridge) \
3481 _(BRIDGE_DOMAIN_ADD_DEL, bridge_domain_add_del) \
3482 _(BRIDGE_DOMAIN_DUMP, bridge_domain_dump) \
3483 _(BRIDGE_DOMAIN_SET_MAC_AGE, bridge_domain_set_mac_age) \
3484 _(CLASSIFY_SET_INTERFACE_IP_TABLE, classify_set_interface_ip_table) \
3485 _(CLASSIFY_SET_INTERFACE_L2_TABLES, classify_set_interface_l2_tables) \
3486 _(ADD_NODE_NEXT, add_node_next) \
3487 _(DHCP_CLIENT_CONFIG, dhcp_client_config) \
3488 _(L2TPV3_CREATE_TUNNEL, l2tpv3_create_tunnel) \
3489 _(L2TPV3_SET_TUNNEL_COOKIES, l2tpv3_set_tunnel_cookies) \
3490 _(L2TPV3_INTERFACE_ENABLE_DISABLE, l2tpv3_interface_enable_disable) \
3491 _(L2TPV3_SET_LOOKUP_KEY, l2tpv3_set_lookup_key) \
3492 _(SW_IF_L2TPV3_TUNNEL_DUMP, sw_if_l2tpv3_tunnel_dump) \
3493 _(VXLAN_ADD_DEL_TUNNEL, vxlan_add_del_tunnel) \
3494 _(VXLAN_TUNNEL_DUMP, vxlan_tunnel_dump) \
3495 _(GENEVE_ADD_DEL_TUNNEL, geneve_add_del_tunnel) \
3496 _(GENEVE_TUNNEL_DUMP, geneve_tunnel_dump) \
3497 _(GRE_ADD_DEL_TUNNEL, gre_add_del_tunnel) \
3498 _(GRE_TUNNEL_DUMP, gre_tunnel_dump) \
3499 _(L2_FIB_CLEAR_TABLE, l2_fib_clear_table) \
3500 _(L2_INTERFACE_EFP_FILTER, l2_interface_efp_filter) \
3501 _(L2_INTERFACE_VLAN_TAG_REWRITE, l2_interface_vlan_tag_rewrite) \
3502 _(CREATE_VHOST_USER_IF, create_vhost_user_if) \
3503 _(MODIFY_VHOST_USER_IF, modify_vhost_user_if) \
3504 _(DELETE_VHOST_USER_IF, delete_vhost_user_if) \
3505 _(SW_INTERFACE_DUMP, sw_interface_dump) \
3506 _(CONTROL_PING, control_ping) \
3507 _(WANT_INTERFACE_EVENTS, want_interface_events) \
3508 _(CLI, cli) \
3509 _(CLI_INBAND, cli_inband) \
3510 _(MEMCLNT_CREATE, memclnt_create) \
3511 _(SOCKCLNT_CREATE, sockclnt_create) \
3512 _(SW_INTERFACE_VHOST_USER_DUMP, sw_interface_vhost_user_dump) \
3513 _(SHOW_VERSION, show_version) \
3514 _(L2_FIB_TABLE_DUMP, l2_fib_table_dump) \
3515 _(VXLAN_GPE_ADD_DEL_TUNNEL, vxlan_gpe_add_del_tunnel) \
3516 _(VXLAN_GPE_TUNNEL_DUMP, vxlan_gpe_tunnel_dump) \
3517 _(INTERFACE_NAME_RENUMBER, interface_name_renumber) \
3518 _(WANT_IP4_ARP_EVENTS, want_ip4_arp_events) \
3519 _(WANT_IP6_ND_EVENTS, want_ip6_nd_events) \
3520 _(WANT_L2_MACS_EVENTS, want_l2_macs_events) \
3521 _(INPUT_ACL_SET_INTERFACE, input_acl_set_interface) \
3522 _(IP_ADDRESS_DUMP, ip_address_dump) \
3523 _(IP_DUMP, ip_dump) \
3524 _(DELETE_LOOPBACK, delete_loopback) \
3525 _(BD_IP_MAC_ADD_DEL, bd_ip_mac_add_del) \
3526 _(COP_INTERFACE_ENABLE_DISABLE, cop_interface_enable_disable) \
3527 _(COP_WHITELIST_ENABLE_DISABLE, cop_whitelist_enable_disable) \
3528 _(AF_PACKET_CREATE, af_packet_create) \
3529 _(AF_PACKET_DELETE, af_packet_delete) \
3530 _(SW_INTERFACE_CLEAR_STATS, sw_interface_clear_stats) \
3531 _(MPLS_FIB_DUMP, mpls_fib_dump) \
3532 _(MPLS_TUNNEL_DUMP, mpls_tunnel_dump) \
3533 _(CLASSIFY_TABLE_IDS,classify_table_ids) \
3534 _(CLASSIFY_TABLE_BY_INTERFACE, classify_table_by_interface) \
3535 _(CLASSIFY_TABLE_INFO,classify_table_info) \
3536 _(CLASSIFY_SESSION_DUMP,classify_session_dump) \
3537 _(SET_IPFIX_EXPORTER, set_ipfix_exporter) \
3538 _(IPFIX_EXPORTER_DUMP, ipfix_exporter_dump) \
3539 _(SET_IPFIX_CLASSIFY_STREAM, set_ipfix_classify_stream) \
3540 _(IPFIX_CLASSIFY_STREAM_DUMP, ipfix_classify_stream_dump) \
3541 _(IPFIX_CLASSIFY_TABLE_ADD_DEL, ipfix_classify_table_add_del) \
3542 _(IPFIX_CLASSIFY_TABLE_DUMP, ipfix_classify_table_dump) \
3543 _(SW_INTERFACE_SPAN_ENABLE_DISABLE, sw_interface_span_enable_disable) \
3544 _(SW_INTERFACE_SPAN_DUMP, sw_interface_span_dump) \
3545 _(GET_NEXT_INDEX, get_next_index) \
3546 _(PG_CREATE_INTERFACE,pg_create_interface) \
3547 _(PG_CAPTURE, pg_capture) \
3548 _(PG_ENABLE_DISABLE, pg_enable_disable) \
3549 _(POLICER_ADD_DEL, policer_add_del) \
3550 _(POLICER_DUMP, policer_dump) \
3551 _(POLICER_CLASSIFY_SET_INTERFACE, policer_classify_set_interface) \
3552 _(POLICER_CLASSIFY_DUMP, policer_classify_dump) \
3553 _(IP_SOURCE_AND_PORT_RANGE_CHECK_ADD_DEL, \
3554  ip_source_and_port_range_check_add_del) \
3555 _(IP_SOURCE_AND_PORT_RANGE_CHECK_INTERFACE_ADD_DEL, \
3556  ip_source_and_port_range_check_interface_add_del) \
3557 _(LISP_ENABLE_DISABLE, lisp_enable_disable) \
3558 _(GPE_ENABLE_DISABLE, gpe_enable_disable) \
3559 _(GPE_ADD_DEL_IFACE, gpe_add_del_iface) \
3560 _(LISP_PITR_SET_LOCATOR_SET, lisp_pitr_set_locator_set) \
3561 _(LISP_MAP_REQUEST_MODE, lisp_map_request_mode) \
3562 _(SHOW_LISP_MAP_REQUEST_MODE, show_lisp_map_request_mode) \
3563 _(LISP_ADD_DEL_REMOTE_MAPPING, lisp_add_del_remote_mapping) \
3564 _(LISP_ADD_DEL_ADJACENCY, lisp_add_del_adjacency) \
3565 _(LISP_ADD_DEL_MAP_REQUEST_ITR_RLOCS, \
3566  lisp_add_del_map_request_itr_rlocs) \
3567 _(LISP_EID_TABLE_ADD_DEL_MAP, lisp_eid_table_add_del_map) \
3568 _(LISP_ADD_DEL_LOCAL_EID, lisp_add_del_local_eid) \
3569 _(GPE_ADD_DEL_FWD_ENTRY, gpe_add_del_fwd_entry) \
3570 _(LISP_ADD_DEL_LOCATOR_SET, lisp_add_del_locator_set) \
3571 _(LISP_ADD_DEL_MAP_RESOLVER, lisp_add_del_map_resolver) \
3572 _(LISP_ADD_DEL_LOCATOR, lisp_add_del_locator) \
3573 _(LISP_EID_TABLE_DUMP, lisp_eid_table_dump) \
3574 _(LISP_EID_TABLE_MAP_DUMP, lisp_eid_table_map_dump) \
3575 _(LISP_EID_TABLE_VNI_DUMP, lisp_eid_table_vni_dump) \
3576 _(LISP_MAP_RESOLVER_DUMP, lisp_map_resolver_dump) \
3577 _(LISP_MAP_SERVER_DUMP, lisp_map_server_dump) \
3578 _(LISP_LOCATOR_SET_DUMP, lisp_locator_set_dump) \
3579 _(LISP_LOCATOR_DUMP, lisp_locator_dump) \
3580 _(LISP_ADJACENCIES_GET, lisp_adjacencies_get) \
3581 _(SHOW_LISP_RLOC_PROBE_STATE, show_lisp_rloc_probe_state) \
3582 _(SHOW_LISP_MAP_REGISTER_STATE, show_lisp_map_register_state) \
3583 _(LISP_RLOC_PROBE_ENABLE_DISABLE, lisp_rloc_probe_enable_disable) \
3584 _(LISP_MAP_REGISTER_ENABLE_DISABLE, lisp_map_register_enable_disable) \
3585 _(IPSEC_GRE_ADD_DEL_TUNNEL, ipsec_gre_add_del_tunnel) \
3586 _(IPSEC_GRE_TUNNEL_DUMP, ipsec_gre_tunnel_dump) \
3587 _(DELETE_SUBIF, delete_subif) \
3588 _(L2_INTERFACE_PBB_TAG_REWRITE, l2_interface_pbb_tag_rewrite) \
3589 _(PUNT, punt) \
3590 _(FLOW_CLASSIFY_SET_INTERFACE, flow_classify_set_interface) \
3591 _(FLOW_CLASSIFY_DUMP, flow_classify_dump) \
3592 _(GET_FIRST_MSG_ID, get_first_msg_id) \
3593 _(IOAM_ENABLE, ioam_enable) \
3594 _(IOAM_DISABLE, ioam_disable) \
3595 _(IP_FIB_DUMP, ip_fib_dump) \
3596 _(IP6_FIB_DUMP, ip6_fib_dump) \
3597 _(FEATURE_ENABLE_DISABLE, feature_enable_disable) \
3598 _(SW_INTERFACE_TAG_ADD_DEL, sw_interface_tag_add_del) \
3599 _(SW_INTERFACE_SET_MTU, sw_interface_set_mtu) \
3600 _(P2P_ETHERNET_ADD, p2p_ethernet_add) \
3601 _(P2P_ETHERNET_DEL, p2p_ethernet_del) \
3602 _(TCP_CONFIGURE_SRC_ADDRESSES, tcp_configure_src_addresses) \
3603 _(APP_NAMESPACE_ADD_DEL, app_namespace_add_del) \
3604 _(LLDP_CONFIG, lldp_config) \
3605 _(SW_INTERFACE_SET_LLDP, sw_interface_set_lldp) \
3606 _(DNS_ENABLE_DISABLE, dns_enable_disable) \
3607 _(DNS_NAME_SERVER_ADD_DEL, dns_name_server_add_del) \
3608 _(DNS_RESOLVE_NAME, dns_resolve_name) \
3609 _(DNS_RESOLVE_IP, dns_resolve_ip) \
3610 _(SESSION_RULE_ADD_DEL, session_rule_add_del) \
3611 _(OUTPUT_ACL_SET_INTERFACE, output_acl_set_interface)
3612  void
3614 {
3615 #define _(n,f) am->msg_print_handlers[VL_API_##n] \
3616  = (void *) vl_api_##f##_t_print;
3618 #undef _
3619 }
3620 
3621 /*
3622  * fd.io coding-style-patch-verification: ON
3623  *
3624  * Local Variables: eval: (c-set-style "gnu") End:
3625  */
static void * vl_api_sw_interface_set_flags_t_print(vl_api_sw_interface_set_flags_t *mp, void *handle)
Definition: custom_dump.c:104
#define vec_validate(V, I)
Make sure vector is long enough for given index (no header, unspecified alignment) ...
Definition: vec.h:434
static void * vl_api_create_vhost_user_if_t_print(vl_api_create_vhost_user_if_t *mp, void *handle)
Definition: custom_dump.c:1778
static u8 * format_lisp_flat_eid(u8 *s, va_list *args)
Definition: custom_dump.c:2689
static void * vl_api_bridge_domain_add_del_t_print(vl_api_bridge_domain_add_del_t *mp, void *handle)
Definition: custom_dump.c:297
static void * vl_api_classify_set_interface_l2_tables_t_print(vl_api_classify_set_interface_l2_tables_t *mp, void *handle)
Definition: custom_dump.c:1481
static void * vl_api_lisp_add_del_adjacency_t_print(vl_api_lisp_add_del_adjacency_t *mp, void *handle)
Definition: custom_dump.c:2738
Get list of policers.
Definition: policer.api:79
DHCP Proxy set / unset vss request.
Definition: dhcp.api:52
Proxy ARP add / del request.
Definition: ip.api:801
add or delete gpe_iface
Definition: lisp_gpe.api:89
static void * vl_api_sw_interface_set_mpls_enable_t_print(vl_api_sw_interface_set_mpls_enable_t *mp, void *handle)
Definition: custom_dump.c:186
Classify get table IDs request.
Definition: classify.api:166
static void * vl_api_mpls_fib_dump_t_print(vl_api_mpls_fib_dump_t *mp, void *handle)
Definition: custom_dump.c:2342
#define SR_STEER_IPV6
Definition: sr_mpls.h:42
Add / del ipsec gre tunnel request.
Definition: ipsec_gre.api:27
static void * vl_api_lisp_pitr_set_locator_set_t_print(vl_api_lisp_pitr_set_locator_set_t *mp, void *handle)
Definition: custom_dump.c:2674
static void * vl_api_dns_enable_disable_t_print(vl_api_dns_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:3287
L2 FIB add entry request.
Definition: l2.api:125
cop: enable/disable whitelist filtration features on an interface Note: the supplied fib_id must matc...
Definition: cop.api:45
static void * vl_api_l2tpv3_set_tunnel_cookies_t_print(vl_api_l2tpv3_set_tunnel_cookies_t *mp, void *handle)
Definition: custom_dump.c:1531
static void * vl_api_sw_if_l2tpv3_tunnel_dump_t_print(vl_api_sw_if_l2tpv3_tunnel_dump_t *mp, void *handle)
Definition: custom_dump.c:1592
Register for ip6 nd resolution events.
Definition: ip.api:699
u8 * format_hmac_key_id(u8 *s, va_list *args)
Definition: lisp_types.c:420
static void * vl_api_delete_subif_t_print(vl_api_delete_subif_t *mp, void *handle)
Definition: custom_dump.c:903
static void * vl_api_l2_patch_add_del_t_print(vl_api_l2_patch_add_del_t *mp, void *handle)
Definition: custom_dump.c:1173
#define clib_min(x, y)
Definition: clib.h:340
static void * vl_api_lisp_locator_set_dump_t_print(vl_api_lisp_locator_set_dump_t *mp, void *handle)
Definition: custom_dump.c:2881
static void * vl_api_lisp_map_request_mode_t_print(vl_api_lisp_map_request_mode_t *mp, void *handle)
Definition: custom_dump.c:2909
enable/disable LISP RLOC probing
Definition: lisp.api:233
static void * vl_api_delete_loopback_t_print(vl_api_delete_loopback_t *mp, void *handle)
Definition: custom_dump.c:93
Reset fib table request.
Definition: ip.api:832
IPFIX classify tables dump request.
Definition: flow.api:127
static void * vl_api_sw_interface_slave_dump_t_print(vl_api_sw_interface_slave_dump_t *mp, void *handle)
Definition: custom_dump.c:682
#define SR_STEER_IPV4
Definition: sr_mpls.h:41
#define foreach_create_subif_bit
Definition: custom_dump.c:868
#define SR_BEHAVIOR_X
Definition: sr.h:38
static void * vl_api_sw_interface_ip6_set_link_local_address_t_print(vl_api_sw_interface_ip6_set_link_local_address_t *mp, void *handle)
Definition: custom_dump.c:1061
static void * vl_api_reset_fib_t_print(vl_api_reset_fib_t *mp, void *handle)
Definition: custom_dump.c:934
Dump IP fib table.
Definition: ip.api:50
static void * vl_api_geneve_tunnel_dump_t_print(vl_api_geneve_tunnel_dump_t *mp, void *handle)
Definition: custom_dump.c:1680
static uword ip46_address_is_multicast(ip46_address_t *a)
Definition: ip6_packet.h:152
Transparent Ethernet Bridging - the tunnel is in L2 mode.
Definition: gre.h:50
static void * vl_api_lisp_add_del_locator_t_print(vl_api_lisp_add_del_locator_t *mp, void *handle)
Definition: custom_dump.c:2864
static void * vl_api_cli_inband_t_print(vl_api_cli_inband_t *mp, void *handle)
Definition: custom_dump.c:1892
static void * vl_api_bond_enslave_t_print(vl_api_bond_enslave_t *mp, void *handle)
Definition: custom_dump.c:645
vnet_main_t * vnet_get_main(void)
Definition: misc.c:47
static void * vl_api_ioam_enable_t_print(vl_api_ioam_enable_t *mp, void *handle)
Definition: custom_dump.c:3136
static void * vl_api_lisp_adjacencies_get_t_print(vl_api_lisp_adjacencies_get_t *mp, void *handle)
Definition: custom_dump.c:2983
Set/unset policer classify interface.
Definition: classify.api:127
static void * vl_api_sw_interface_tag_add_del_t_print(vl_api_sw_interface_tag_add_del_t *mp, void *handle)
Definition: custom_dump.c:3187
configure or disable LISP PITR node
Definition: lisp.api:157
Set flags on the interface.
Definition: interface.api:15
Control ping from client to api server request.
Definition: vpe.api:61
u8 as_u8[16]
Definition: ip6_packet.h:48
static void * vl_api_flow_classify_set_interface_t_print(vl_api_flow_classify_set_interface_t *mp, void *handle)
Definition: custom_dump.c:3067
static void * vl_api_interface_name_renumber_t_print(vl_api_interface_name_renumber_t *mp, void *handle)
Definition: custom_dump.c:1985
static void * vl_api_add_node_next_t_print(vl_api_add_node_next_t *mp, void *handle)
Definition: custom_dump.c:1497
static void * vl_api_l2_fib_clear_table_t_print(vl_api_l2_fib_clear_table_t *mp, void *handle)
Definition: custom_dump.c:1736
static void * vl_api_sr_steering_add_del_t_print(vl_api_sr_steering_add_del_t *mp, void *handle)
Definition: custom_dump.c:1270
iOAM disable
Definition: ip.api:878
#define L2_FLOOD
Definition: l2_bd.h:134
Set max allowed ARP or ip6 neighbor entries request.
Definition: ip.api:846
static void * vl_api_lisp_eid_table_add_del_map_t_print(vl_api_lisp_eid_table_add_del_map_t *mp, void *handle)
Definition: custom_dump.c:2769
Interface set vxlan-bypass request.
Definition: vxlan.api:81
add/del session rule
Definition: session.api:446
static void * vl_api_tap_modify_t_print(vl_api_tap_modify_t *mp, void *handle)
Definition: custom_dump.c:514
static void * vl_api_input_acl_set_interface_t_print(vl_api_input_acl_set_interface_t *mp, void *handle)
Definition: custom_dump.c:2043
#define L2_FWD
Definition: l2_bd.h:133
VXLAN GPE definitions.
static void * vl_api_control_ping_t_print(vl_api_control_ping_t *mp, void *handle)
Definition: custom_dump.c:1861
static void * vl_api_ip_add_del_route_t_print(vl_api_ip_add_del_route_t *mp, void *handle)
Definition: custom_dump.c:693
u8 tap_name[64]
Definition: tap.api:75
static void * vl_api_mpls_tunnel_add_del_t_print(vl_api_mpls_tunnel_add_del_t *mp, void *handle)
Definition: custom_dump.c:776
static void * vl_api_lisp_add_del_locator_set_t_print(vl_api_lisp_add_del_locator_set_t *mp, void *handle)
Definition: custom_dump.c:2849
Classify add / del session request.
Definition: classify.api:102
IPFIX exporter dump request.
Definition: flow.api:46
u8 bsid_addr[16]
Definition: sr.api:85
#define SR_BEHAVIOR_DT6
Definition: sr.h:44
#define vec_add1(V, E)
Add 1 element to end of vector (unspecified alignment).
Definition: vec.h:520
u8 bsid_addr[16]
Definition: sr.api:60
static void * vl_api_bridge_domain_dump_t_print(vl_api_bridge_domain_dump_t *mp, void *handle)
Definition: custom_dump.c:334
static void * vl_api_lisp_eid_table_map_dump_t_print(vl_api_lisp_eid_table_map_dump_t *mp, void *handle)
Definition: custom_dump.c:2994
L2 bridge domain set mac age.
Definition: l2.api:230
static void * vl_api_l2_interface_vlan_tag_rewrite_t_print(vl_api_l2_interface_vlan_tag_rewrite_t *mp, void *handle)
Definition: custom_dump.c:1762
#define vec_add2(V, P, N)
Add N elements to end of vector V, return pointer to new elements in P.
Definition: vec.h:559
Dump tap interfaces request.
Definition: tap.api:106
for(i=1;i<=collision_buckets;i++)
int i
static void * vl_api_bond_create_t_print(vl_api_bond_create_t *mp, void *handle)
Definition: custom_dump.c:615
static void * vl_api_flow_classify_dump_t_print(vl_api_flow_classify_dump_t *mp, void *handle)
Definition: custom_dump.c:3105
u8 cmd[length]
Definition: vpe.api:97
format_function_t format_ip46_address
Definition: format.h:61
static void * vl_api_want_interface_events_t_print(vl_api_want_interface_events_t *mp, void *handle)
Definition: custom_dump.c:1871
static void * vl_api_sw_interface_clear_stats_t_print(vl_api_sw_interface_clear_stats_t *mp, void *handle)
Definition: custom_dump.c:2318
static void * vl_api_gre_add_del_tunnel_t_print(vl_api_gre_add_del_tunnel_t *mp, void *handle)
Definition: custom_dump.c:1692
Request for lisp_eid_table_map_details.
Definition: lisp.api:611
u8 * format(u8 *s, const char *fmt,...)
Definition: format.c:419
Add/Delete classification table request.
Definition: classify.api:42
IPv6 router advertisement config request.
Definition: ip.api:201
L2 bridge domain request operational state details.
Definition: l2.api:270
Dump MPLS fib table.
Definition: mpls.api:174
static void * vl_api_tap_delete_t_print(vl_api_tap_delete_t *mp, void *handle)
Definition: custom_dump.c:534
static void * vl_api_session_rule_add_del_t_print(vl_api_session_rule_add_del_t *mp, void *handle)
Definition: custom_dump.c:3369
static void * vl_api_output_acl_set_interface_t_print(vl_api_output_acl_set_interface_t *mp, void *handle)
Definition: custom_dump.c:2061
Enable / disable packet generator request.
Definition: pg.api:71
static void * vl_api_ipsec_gre_tunnel_dump_t_print(vl_api_ipsec_gre_tunnel_dump_t *mp, void *handle)
Definition: custom_dump.c:3032
static void * vl_api_classify_add_del_table_t_print(vl_api_classify_add_del_table_t *mp, void *handle)
Definition: custom_dump.c:1397
static void * vl_api_dhcp_proxy_set_vss_t_print(vl_api_dhcp_proxy_set_vss_t *mp, void *handle)
Definition: custom_dump.c:980
vhost-user interface create request
Definition: vhost_user.api:25
Dump IP6 fib table.
Definition: ip.api:77
static void * vl_api_vxlan_gpe_add_del_tunnel_t_print(vl_api_vxlan_gpe_add_del_tunnel_t *mp, void *handle)
Definition: custom_dump.c:1938
DNS IP -> name resolution request.
Definition: dns.api:84
static void * vl_api_bridge_flags_t_print(vl_api_bridge_flags_t *mp, void *handle)
Definition: custom_dump.c:440
format_function_t format_vnet_sw_if_index_name
static void * vl_api_l2tpv3_interface_enable_disable_t_print(vl_api_l2tpv3_interface_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:1549
static void * vl_api_proxy_arp_intfc_enable_disable_t_print(vl_api_proxy_arp_intfc_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:762
static void * vl_api_sw_interface_set_l2_xconnect_t_print(vl_api_sw_interface_set_l2_xconnect_t *mp, void *handle)
Definition: custom_dump.c:258
#define SR_BEHAVIOR_DT4
Definition: sr.h:45
static void * vl_api_proxy_arp_add_del_t_print(vl_api_proxy_arp_add_del_t *mp, void *handle)
Definition: custom_dump.c:743
static void * vl_api_ip_dump_t_print(vl_api_ip_dump_t *mp, void *handle)
Definition: custom_dump.c:2091
static void * vl_api_l2fib_add_del_t_print(vl_api_l2fib_add_del_t *mp, void *handle)
Definition: custom_dump.c:383
Process a vpe parser cli string request.
Definition: vpe.api:86
static void * vl_api_l2_flags_t_print(vl_api_l2_flags_t *mp, void *handle)
Definition: custom_dump.c:413
static void * vl_api_create_vlan_subif_t_print(vl_api_create_vlan_subif_t *mp, void *handle)
Definition: custom_dump.c:853
static void * vl_api_l2fib_flush_bd_t_print(vl_api_l2fib_flush_bd_t *mp, void *handle)
Definition: custom_dump.c:359
static void * vl_api_lisp_enable_disable_t_print(vl_api_lisp_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:2649
static void * vl_api_oam_add_del_t_print(vl_api_oam_add_del_t *mp, void *handle)
Definition: custom_dump.c:914
static void * vl_api_sockclnt_create_t_print(vl_api_sockclnt_create_t *mp, void *handle)
Definition: custom_dump.c:1918
static void * vl_api_sr_policy_add_t_print(vl_api_sr_policy_add_t *mp, void *handle)
Definition: custom_dump.c:1306
Dump tap interfaces request.
Definition: tapv2.api:105
Dump ipsec gre tunnel table.
Definition: ipsec_gre.api:53
add or delete LISP adjacency adjacency
Definition: lisp.api:365
u8 pcap_file_name[pcap_name_length]
Definition: pg.api:62
static void * vl_api_p2p_ethernet_del_t_print(vl_api_p2p_ethernet_del_t *mp, void *handle)
Definition: custom_dump.c:3226
PacketGenerator capture packets on given interface request.
Definition: pg.api:54
u8 mac_address[6]
Definition: tap.api:76
static void * vl_api_vxlan_gpe_tunnel_dump_t_print(vl_api_vxlan_gpe_tunnel_dump_t *mp, void *handle)
Definition: custom_dump.c:1973
format_function_t format_ip4_address
Definition: format.h:79
static void * vl_api_ipfix_classify_stream_dump_t_print(vl_api_ipfix_classify_stream_dump_t *mp, void *handle)
Definition: custom_dump.c:2461
static void * vl_api_ip_fib_dump_t_print(vl_api_ip_fib_dump_t *mp, void *handle)
Definition: custom_dump.c:2352
static void * vl_api_lisp_rloc_probe_enable_disable_t_print(vl_api_lisp_rloc_probe_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:2955
u8 * format_ethernet_address(u8 *s, va_list *args)
Definition: format.c:44
Proxy ARP add / del request.
Definition: ip.api:817
Clear interface statistics.
Definition: interface.api:326
static void * vl_api_memclnt_create_t_print(vl_api_memclnt_create_t *mp, void *handle)
Definition: custom_dump.c:1908
Interface set geneve-bypass request.
Definition: geneve.api:66
static void * vl_api_l2tpv3_set_lookup_key_t_print(vl_api_l2tpv3_set_lookup_key_t *mp, void *handle)
Definition: custom_dump.c:1564
static void * vl_api_dhcp_proxy_config_t_print(vl_api_dhcp_proxy_config_t *mp, void *handle)
Definition: custom_dump.c:950
#define SR_BEHAVIOR_LAST
Definition: sr.h:46
Classify sessions dump request.
Definition: classify.api:259
static u8 * format_policer_action(u8 *s, va_list *va)
Definition: custom_dump.c:2161
Set interface source and L4 port-range request.
Definition: ip.api:641
Set/unset output ACL interface.
Definition: classify.api:398
unsigned long long u32x4
Definition: ixge.c:28
static void * vl_api_get_next_index_t_print(vl_api_get_next_index_t *mp, void *handle)
Definition: custom_dump.c:2541
u32 feature_bitmap
Definition: l2.api:209
u8 ip6_address[16]
Definition: tap.api:44
add/del application namespace
Definition: session.api:402
static void * vl_api_ip_address_dump_t_print(vl_api_ip_address_dump_t *mp, void *handle)
Definition: custom_dump.c:2079
#define L2_UU_FLOOD
Definition: l2_bd.h:135
static void * vl_api_policer_dump_t_print(vl_api_policer_dump_t *mp, void *handle)
Definition: custom_dump.c:2263
u8 tap_name[64]
Definition: tap.api:36
#define VSS_TYPE_ASCII
Definition: dhcp_proxy.h:60
L2 FIB flush bridge domain entries.
Definition: l2.api:96
add or delete map request itr rlocs
Definition: lisp.api:384
static void * vl_api_cli_t_print(vl_api_cli_t *mp, void *handle)
Definition: custom_dump.c:1882
Delete host-interface.
Definition: af_packet.api:51
Set/unset input ACL interface.
Definition: classify.api:376
static void * vl_api_set_ipfix_classify_stream_t_print(vl_api_set_ipfix_classify_stream_t *mp, void *handle)
Definition: custom_dump.c:2448
static void * vl_api_lisp_eid_table_dump_t_print(vl_api_lisp_eid_table_dump_t *mp, void *handle)
Definition: custom_dump.c:2930
static void * vl_api_sw_interface_set_table_t_print(vl_api_sw_interface_set_table_t *mp, void *handle)
Definition: custom_dump.c:168
u8 dst_address[4]
Definition: oam.api:67
Initialize a new tap interface with the given paramters.
Definition: tap.api:31
static void * vl_api_want_l2_macs_events_t_print(vl_api_want_l2_macs_events_t *mp, void *handle)
Definition: custom_dump.c:2028
static void * vl_api_sr_localsid_add_del_t_print(vl_api_sr_localsid_add_del_t *mp, void *handle)
Definition: custom_dump.c:1190
static void * vl_api_l2fib_flush_int_t_print(vl_api_l2fib_flush_int_t *mp, void *handle)
Definition: custom_dump.c:371
Dump mpls eth tunnel table.
Definition: mpls.api:78
static void * vl_api_want_ip6_nd_events_t_print(vl_api_want_ip6_nd_events_t *mp, void *handle)
Definition: custom_dump.c:2014
static void * vl_api_sw_interface_set_unnumbered_t_print(vl_api_sw_interface_set_unnumbered_t *mp, void *handle)
Definition: custom_dump.c:800
static void * vl_api_tap_delete_v2_t_print(vl_api_tap_delete_v2_t *mp, void *handle)
Definition: custom_dump.c:594
static void * vl_api_ip_source_and_port_range_check_add_del_t_print(vl_api_ip_source_and_port_range_check_add_del_t *mp, void *handle)
Definition: custom_dump.c:2594
Dump l2 fib (aka bridge domain) table.
Definition: l2.api:64
Configure IP source and L4 port-range check.
Definition: ip.api:620
Delete tap interface.
Definition: tap.api:98
static void * vl_api_dns_name_server_add_del_t_print(vl_api_dns_name_server_add_del_t *mp, void *handle)
Definition: custom_dump.c:3327
Set interface L2 flags (such as L2_LEARN, L2_FWD, L2_FLOOD, L2_UU_FLOOD, or L2_ARP_TERM bits)...
Definition: l2.api:203
static void * vl_api_gpe_add_del_fwd_entry_t_print(vl_api_gpe_add_del_fwd_entry_t *mp, void *handle)
Definition: custom_dump.c:2809
L2 FIB flush all entries.
Definition: l2.api:85
L2 fib clear table request, clear all mac entries in the l2 fib.
Definition: l2.api:75
Enable/Disable span to mirror traffic from one interface to another.
Definition: span.api:27
static void * vl_api_pg_create_interface_t_print(vl_api_pg_create_interface_t *mp, void *handle)
Definition: custom_dump.c:2553
static void * vl_api_sw_interface_set_vpath_t_print(vl_api_sw_interface_set_vpath_t *mp, void *handle)
Definition: custom_dump.c:201
static void * vl_api_sw_interface_set_lldp_t_print(vl_api_sw_interface_set_lldp_t *mp, void *handle)
Definition: custom_dump.c:3298
Set interface MTU.
Definition: interface.api:30
#define SR_BEHAVIOR_END
Definition: sr.h:37
set LISP map-request mode.
Definition: lisp.api:281
DNS name resolution request.
Definition: dns.api:52
u8 system_name[256]
Definition: lldp.api:30
static void * vl_api_geneve_add_del_tunnel_t_print(vl_api_geneve_add_del_tunnel_t *mp, void *handle)
Definition: custom_dump.c:1648
static void * vl_api_sw_interface_span_dump_t_print(vl_api_sw_interface_span_dump_t *mp, void *handle)
Definition: custom_dump.c:2527
Request for LISP adjacencies.
Definition: lisp.api:588
Set/unset l2 classification tables for an interface request.
Definition: classify.api:353
Set bridge domain ip to mac entry request.
Definition: l2.api:451
static void * vl_api_l2fib_flush_all_t_print(vl_api_l2fib_flush_all_t *mp, void *handle)
Definition: custom_dump.c:348
u8 stream_name[stream_name_length]
Definition: pg.api:77
add or delete lisp eid-table
Definition: lisp.api:93
static void * vl_api_gre_tunnel_dump_t_print(vl_api_gre_tunnel_dump_t *mp, void *handle)
Definition: custom_dump.c:1724
static void * vl_api_classify_add_del_session_t_print(vl_api_classify_add_del_session_t *mp, void *handle)
Definition: custom_dump.c:1431
static void * vl_api_ip6_fib_dump_t_print(vl_api_ip6_fib_dump_t *mp, void *handle)
Definition: custom_dump.c:2362
static void * vl_api_bond_delete_t_print(vl_api_bond_delete_t *mp, void *handle)
Definition: custom_dump.c:634
static void * vl_api_p2p_ethernet_add_t_print(vl_api_p2p_ethernet_add_t *mp, void *handle)
Definition: custom_dump.c:3214
static void * vl_api_sw_interface_bond_dump_t_print(vl_api_sw_interface_bond_dump_t *mp, void *handle)
Definition: custom_dump.c:672
u8 l4_protocol
Definition: punt.api:31
static void * vl_api_ip_neighbor_add_del_t_print(vl_api_ip_neighbor_add_del_t *mp, void *handle)
Definition: custom_dump.c:817
static void * vl_api_cop_whitelist_enable_disable_t_print(vl_api_cop_whitelist_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:2117
#define SR_BEHAVIOR_DX4
Definition: sr.h:43
Get list of flow classify interfaces and tables.
Definition: classify.api:312
static void * vl_api_af_packet_delete_t_print(vl_api_af_packet_delete_t *mp, void *handle)
Definition: custom_dump.c:2150
static void * vl_api_pg_enable_disable_t_print(vl_api_pg_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:2580
Set or delete one or all ip addresses on a specified interface.
Definition: interface.api:179
Enable or Disable MPLS on and interface.
Definition: mpls.api:204
Dump bond interfaces request.
Definition: bond.api:107
IOAM enable : Enable in-band OAM.
Definition: ip.api:861
static void * vl_api_af_packet_create_t_print(vl_api_af_packet_create_t *mp, void *handle)
Definition: custom_dump.c:2135
static void * vl_api_sw_interface_event_t_print(vl_api_sw_interface_event_t *mp, void *handle)
Definition: custom_dump.c:120
Call from VLIB_INIT_FUNCTION to set the Linux kernel inject node name.
Classify table info.
Definition: classify.api:220
API main structure, used by both vpp and binary API clients.
Definition: api_common.h:199
Initialize a new bond interface with the given paramters.
Definition: bond.api:74
static void * vl_api_modify_vhost_user_if_t_print(vl_api_modify_vhost_user_if_t *mp, void *handle)
Definition: custom_dump.c:1796
static void * vl_api_classify_table_by_interface_t_print(vl_api_classify_table_by_interface_t *mp, void *handle)
Definition: custom_dump.c:2382
static void * vl_api_show_version_t_print(vl_api_show_version_t *mp, void *handle)
Definition: custom_dump.c:1928
static void * vl_api_set_ip_flow_hash_t_print(vl_api_set_ip_flow_hash_t *mp, void *handle)
Definition: custom_dump.c:1028
IPFIX classify stream configure request.
Definition: flow.api:80
static void * vl_api_lisp_locator_dump_t_print(vl_api_lisp_locator_dump_t *mp, void *handle)
Definition: custom_dump.c:2895
u8 mac_address[6]
Definition: tap.api:37
PacketGenerator create interface request.
Definition: pg.api:28
static void * vl_api_lisp_add_del_map_resolver_t_print(vl_api_lisp_add_del_map_resolver_t *mp, void *handle)
Definition: custom_dump.c:2819
Set the ip flow hash config for a fib request.
Definition: ip.api:170
static void * vl_api_create_loopback_t_print(vl_api_create_loopback_t *mp, void *handle)
Definition: custom_dump.c:70
enable or disable LISP feature
Definition: lisp.api:144
format_function_t format_ip6_address
Definition: format.h:95
Create host-interface.
Definition: af_packet.api:25
static void * vl_api_policer_add_del_t_print(vl_api_policer_add_del_t *mp, void *handle)
Definition: custom_dump.c:2188
static void * vl_api_gpe_enable_disable_t_print(vl_api_gpe_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:2837
cop: enable/disable junk filtration features on an interface
Definition: cop.api:25
#define vec_free(V)
Free vector&#39;s memory (no header).
Definition: vec.h:336
static void * vl_api_cop_interface_enable_disable_t_print(vl_api_cop_interface_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:2102
Set/unset the classification table for an interface request.
Definition: classify.api:336
Initialize a new bond interface with the given paramters.
Definition: bond.api:32
static void * vl_api_l2_interface_pbb_tag_rewrite_t_print(vl_api_l2_interface_pbb_tag_rewrite_t *mp, void *handle)
Definition: custom_dump.c:3045
static void * vl_api_bond_detach_slave_t_print(vl_api_bond_detach_slave_t *mp, void *handle)
Definition: custom_dump.c:661
static void * vl_api_policer_classify_dump_t_print(vl_api_policer_classify_dump_t *mp, void *handle)
Definition: custom_dump.c:2294
static void * vl_api_lisp_map_register_enable_disable_t_print(vl_api_lisp_map_register_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:2969
SPAN dump request.
Definition: span.api:41
Create or delete a VXLAN tunnel.
Definition: vxlan.api:31
#define clib_memcpy(a, b, c)
Definition: string.h:75
#define FINISH
Definition: custom_dump.c:62
static void * vl_api_set_ipfix_exporter_t_print(vl_api_set_ipfix_exporter_t *mp, void *handle)
Definition: custom_dump.c:2418
Feature path enable/disable request.
Definition: feature.api:30
static void * vl_api_ip_source_and_port_range_check_interface_add_del_t_print(vl_api_ip_source_and_port_range_check_interface_add_del_t *mp, void *handle)
Definition: custom_dump.c:2621
IPv6 SR steering add/del.
Definition: sr.api:134
add or delete map-resolver
Definition: lisp.api:130
static void * vl_api_ipsec_gre_add_del_tunnel_t_print(vl_api_ipsec_gre_add_del_tunnel_t *mp, void *handle)
Definition: custom_dump.c:3009
Initialize a new tap interface with the given paramters.
Definition: tapv2.api:51
Set/unset flow classify interface.
Definition: classify.api:298
static void * vl_api_sr_policy_del_t_print(vl_api_sr_policy_del_t *mp, void *handle)
Definition: custom_dump.c:1387
static void * vl_api_lisp_add_del_local_eid_t_print(vl_api_lisp_add_del_local_eid_t *mp, void *handle)
Definition: custom_dump.c:2786
Delete sub interface request.
Definition: interface.api:474
#define ARRAY_LEN(x)
Definition: clib.h:59
void vl_msg_api_custom_dump_configure(api_main_t *am)
Definition: custom_dump.c:3613
Request for map lisp locator status.
Definition: lisp.api:421
static void * vl_api_lldp_config_t_print(vl_api_lldp_config_t *mp, void *handle)
Definition: custom_dump.c:3275
Delete loopback interface request.
Definition: interface.api:537
vhost-user interface modify request
Definition: vhost_user.api:55
Register for interface events.
Definition: interface.api:62
Set L2 XConnect between two interfaces request.
Definition: l2.api:413
Create or delete a GRE tunnel.
Definition: gre.api:30
bond detach slave
Definition: bond.api:99
static void * vl_api_tap_create_v2_t_print(vl_api_tap_create_v2_t *mp, void *handle)
Definition: custom_dump.c:555
static void * vl_api_ipfix_classify_table_add_del_t_print(vl_api_ipfix_classify_table_add_del_t *mp, void *handle)
Definition: custom_dump.c:2471
static ip46_address_t to_ip46(u32 is_ipv6, u8 *buf)
Definition: ip6_packet.h:87
IP neighbor add / del request.
Definition: ip.api:144
static void * vl_api_ioam_disable_t_print(vl_api_ioam_disable_t *mp, void *handle)
Definition: custom_dump.c:3158
static void * vl_api_create_subif_t_print(vl_api_create_subif_t *mp, void *handle)
Definition: custom_dump.c:879
unsigned int u32
Definition: types.h:88
Request for eid table summary status.
Definition: lisp.api:540
static void * vl_api_dhcp_client_config_t_print(vl_api_dhcp_client_config_t *mp, void *handle)
Definition: custom_dump.c:1006
enable/disable LISP map-register
Definition: lisp.api:245
Request for locator_set summary status.
Definition: lisp.api:469
Get list of policer classify interfaces and tables.
Definition: classify.api:143
Reply for lisp_add_del_map_request_itr_rlocs.
Definition: lisp.api:404
static void * vl_api_vxlan_add_del_tunnel_t_print(vl_api_vxlan_add_del_tunnel_t *mp, void *handle)
Definition: custom_dump.c:1602
IPv6 router advertisement prefix config request.
Definition: ip.api:250
static void * vl_api_create_loopback_instance_t_print(vl_api_create_loopback_instance_t *mp, void *handle)
Definition: custom_dump.c:81
Register to recive L2 MAC events for leanred and aged MAC.
Definition: l2.api:147
static void * vl_api_sw_interface_set_geneve_bypass_t_print(vl_api_sw_interface_set_geneve_bypass_t *mp, void *handle)
Definition: custom_dump.c:238
u16 l4_port
Definition: punt.api:32
IPv6 SR policy deletion.
Definition: sr.api:101
Delete bond interface.
Definition: bond.api:59
static void * vl_api_sw_interface_tap_v2_dump_t_print(vl_api_sw_interface_tap_v2_dump_t *mp, void *handle)
Definition: custom_dump.c:605
Set the next node for a given node request.
Definition: vpe.api:149
Query relative index via node names.
Definition: vpe.api:223
static void * vl_api_classify_session_dump_t_print(vl_api_classify_session_dump_t *mp, void *handle)
Definition: custom_dump.c:2406
show version
Definition: vpe.api:173
add or delete locator_set
Definition: lisp.api:33
static void * vl_api_get_first_msg_id_t_print(vl_api_get_first_msg_id_t *mp, void *handle)
Definition: custom_dump.c:3126
static void * vl_api_gpe_add_del_iface_t_print(vl_api_gpe_add_del_iface_t *mp, void *handle)
Definition: custom_dump.c:2660
#define foreach_custom_print_function
Definition: custom_dump.c:3425
OAM add / del target request.
Definition: oam.api:61
static void * vl_api_lisp_add_del_map_request_itr_rlocs_t_print(vl_api_lisp_add_del_map_request_itr_rlocs_t *mp, void *handle)
Definition: custom_dump.c:2754
static void * vl_api_sw_interface_add_del_address_t_print(vl_api_sw_interface_add_del_address_t *mp, void *handle)
Definition: custom_dump.c:144
static void * vl_api_dns_resolve_name_t_print(vl_api_dns_resolve_name_t *mp, void *handle)
Definition: custom_dump.c:3346
add or delete an upstream name server
Definition: dns.api:38
static void * vl_api_sr_policy_mod_t_print(vl_api_sr_policy_mod_t *mp, void *handle)
Definition: custom_dump.c:1348
Classify table ids by interface index request.
Definition: classify.api:190
enable/disable name resolution
Definition: dns.api:24
#define SR_BEHAVIOR_DX2
Definition: sr.h:41
static void * vl_api_set_arp_neighbor_limit_t_print(vl_api_set_arp_neighbor_limit_t *mp, void *handle)
Definition: custom_dump.c:1158
Interface Event generated by want_interface_events.
Definition: interface.api:46
static void * vl_api_want_ip4_arp_events_t_print(vl_api_want_ip4_arp_events_t *mp, void *handle)
Definition: custom_dump.c:2000
IPv6 SR policy add.
Definition: sr.api:56
Configure TCP source addresses, for active-open TCP sessions.
Definition: tcp.api:36
static void * vl_api_tap_connect_t_print(vl_api_tap_connect_t *mp, void *handle)
Definition: custom_dump.c:489
static void * vl_api_bridge_domain_set_mac_age_t_print(vl_api_bridge_domain_set_mac_age_t *mp, void *handle)
Definition: custom_dump.c:320
Add / del route request.
Definition: ip.api:391
static void * vl_api_classify_set_interface_ip_table_t_print(vl_api_classify_set_interface_ip_table_t *mp, void *handle)
Definition: custom_dump.c:1465
static void * vl_api_classify_table_ids_t_print(vl_api_classify_table_ids_t *mp, void *handle)
Definition: custom_dump.c:2372
Interface bridge mode request.
Definition: l2.api:431
static void * vl_api_sw_interface_set_mtu_t_print(vl_api_sw_interface_set_mtu_t *mp, void *handle)
Definition: custom_dump.c:3202
unsigned short u16
Definition: types.h:57
static void * vl_api_l2_interface_efp_filter_t_print(vl_api_l2_interface_efp_filter_t *mp, void *handle)
Definition: custom_dump.c:1746
Create loopback interface instance request.
Definition: interface.api:511
static void * vl_api_bd_ip_mac_add_del_t_print(vl_api_bd_ip_mac_add_del_t *mp, void *handle)
Definition: custom_dump.c:467
L2 FIB flush interface entries.
Definition: l2.api:108
ERSPAN type 2 - the tunnel is for port mirror SPAN output.
Definition: gre.h:57
static void * vl_api_pg_capture_t_print(vl_api_pg_capture_t *mp, void *handle)
Definition: custom_dump.c:2564
unsigned char u8
Definition: types.h:56
add or delete GPE tunnel
Definition: lisp_gpe.api:48
static void * vl_api_delete_vhost_user_if_t_print(vl_api_delete_vhost_user_if_t *mp, void *handle)
Definition: custom_dump.c:1813
u32 interface_id
Definition: pg.api:58
#define L2_ARP_TERM
Definition: l2_bd.h:136
add or delete locator for locator_set
Definition: lisp.api:64
Configure IPFIX exporter process request.
Definition: flow.api:29
static void * vl_api_lisp_add_del_remote_mapping_t_print(vl_api_lisp_add_del_remote_mapping_t *mp, void *handle)
Definition: custom_dump.c:2708
L2 interface ethernet flow point filtering enable/disable request.
Definition: l2.api:468
static void * vl_api_sw_interface_set_l2_bridge_t_print(vl_api_sw_interface_set_l2_bridge_t *mp, void *handle)
Definition: custom_dump.c:277
static void * vl_api_sw_interface_set_vxlan_bypass_t_print(vl_api_sw_interface_set_vxlan_bypass_t *mp, void *handle)
Definition: custom_dump.c:218
static void * vl_api_ipfix_classify_table_dump_t_print(vl_api_ipfix_classify_table_dump_t *mp, void *handle)
Definition: custom_dump.c:2485
Interface set LLDP request.
Definition: lldp.api:45
Delete tap interface.
Definition: tapv2.api:97
Create loopback interface request.
Definition: interface.api:485
Set unnumbered interface add / del request.
Definition: interface.api:312
add or delete remote static mapping
Definition: lisp.api:335
#define VSS_TYPE_VPN_ID
Definition: dhcp_proxy.h:61
Segment Routing MPLS data structures definitions.
L2 interface vlan tag rewrite configure request.
Definition: l2.api:354
static u8 * format_bond_mode(u8 *s, va_list *args)
Definition: node.h:360
Create a new subinterface with the given vlan id.
Definition: interface.api:449
L2 interface patch add / del request.
Definition: l2.api:397
Interface set vpath request.
Definition: l2.api:482
static void * vl_api_ipfix_exporter_dump_t_print(vl_api_ipfix_exporter_dump_t *mp, void *handle)
Definition: custom_dump.c:2438
u8 ip4_address[4]
Definition: tap.api:41
static void * vl_api_sw_interface_tap_dump_t_print(vl_api_sw_interface_tap_dump_t *mp, void *handle)
Definition: custom_dump.c:545
configure global parameter for LLDP
Definition: lldp.api:26
Modify a tap interface with the given paramters.
Definition: tap.api:69
Add/del policer.
Definition: policer.api:38
Segment Routing data structures definitions.
static void * vl_api_mpls_tunnel_dump_t_print(vl_api_mpls_tunnel_dump_t *mp, void *handle)
Definition: custom_dump.c:2330
L2 interface pbb tag rewrite configure request.
Definition: l2.api:377
static void * vl_api_l2_fib_table_dump_t_print(vl_api_l2_fib_table_dump_t *mp, void *handle)
Definition: custom_dump.c:1849
IPv6 SR policy modification.
Definition: sr.api:81
Register for ip4 arp resolution events.
Definition: ip.api:660
static void * vl_api_sw_interface_dump_t_print(vl_api_sw_interface_dump_t *mp, void *handle)
Definition: custom_dump.c:1834
u32 sw_if_index
Definition: l2.api:207
#define vec_foreach(var, vec)
Vector iterator.
static void * vl_api_dns_resolve_ip_t_print(vl_api_dns_resolve_ip_t *mp, void *handle)
Definition: custom_dump.c:3356
Set bridge flags (such as L2_LEARN, L2_FWD, L2_FLOOD, L2_UU_FLOOD, or L2_ARP_TERM bits) request...
Definition: l2.api:324
static void * vl_api_punt_t_print(vl_api_punt_t *mp, void *handle)
Definition: custom_dump.c:3084
IPFIX classify stream dump request.
Definition: flow.api:91
static u8 * format_bond_load_balance(u8 *s, va_list *args)
Definition: node.h:392
vhost-user interface delete request
Definition: vhost_user.api:69
#define SR_STEER_L2
Definition: sr.h:48
static void * vl_api_sw_interface_ip6nd_ra_config_t_print(vl_api_sw_interface_ip6nd_ra_config_t *mp, void *handle)
Definition: custom_dump.c:1112
u32 flags
Definition: vhost-user.h:77
static void * vl_api_l2tpv3_create_tunnel_t_print(vl_api_l2tpv3_create_tunnel_t *mp, void *handle)
Definition: custom_dump.c:1509
Set / clear software interface tag.
Definition: interface.api:340
static void * vl_api_tcp_configure_src_addresses_t_print(vl_api_tcp_configure_src_addresses_t *mp, void *handle)
Definition: custom_dump.c:3238
l2tpv3 tunnel interface create request
Definition: l2tp.api:30
IPv6 SR LocalSID add/del request.
Definition: sr.api:32
static void * vl_api_sw_interface_span_enable_disable_t_print(vl_api_sw_interface_span_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:2495
#define foreach_custom_print_no_arg_function
Definition: custom_dump.c:3407
#define L2_LEARN
Definition: l2_bd.h:132
Associate the specified interface with a fib table.
Definition: interface.api:198
static void * vl_api_feature_enable_disable_t_print(vl_api_feature_enable_disable_t *mp, void *handle)
Definition: custom_dump.c:3172
static void * vl_api_ip_container_proxy_add_del_t_print(vl_api_ip_container_proxy_add_del_t *mp, void *handle)
Definition: custom_dump.c:3391
DHCP Client config add / del request.
Definition: dhcp.api:78
static void * vl_api_app_namespace_add_del_t_print(vl_api_app_namespace_add_del_t *mp, void *handle)
Definition: custom_dump.c:3259
Punt traffic to the host.
Definition: punt.api:26
IPFIX add or delete classifier table request.
Definition: flow.api:114
static void * vl_api_sw_interface_ip6nd_ra_prefix_t_print(vl_api_sw_interface_ip6nd_ra_prefix_t *mp, void *handle)
Definition: custom_dump.c:1075
enable or disable gpe protocol
Definition: lisp_gpe.api:77
static void * vl_api_policer_classify_set_interface_t_print(vl_api_policer_classify_set_interface_t *mp, void *handle)
Definition: custom_dump.c:2275
static void * vl_api_vxlan_tunnel_dump_t_print(vl_api_vxlan_tunnel_dump_t *mp, void *handle)
Definition: custom_dump.c:1636
DHCP Proxy config add / del request.
Definition: dhcp.api:29
#define SR_BEHAVIOR_DX6
Definition: sr.h:42
static void * vl_api_sw_interface_vhost_user_dump_t_print(vl_api_sw_interface_vhost_user_dump_t *mp, void *handle)
Definition: custom_dump.c:1824
static void * vl_api_classify_table_info_t_print(vl_api_classify_table_info_t *mp, void *handle)
Definition: custom_dump.c:2394
u8 src_address[4]
Definition: oam.api:66
L2 bridge domain add or delete request.
Definition: l2.api:250