Coverage Report

Created: 2025-08-26 06:20

/src/frr/bgpd/bgp_route_clippy.c
Line
Count
Source (jump to first uncovered line)
1
/* bgp_network => "[no] network   <A.B.C.D/M$prefix|A.B.C.D$address [mask A.B.C.D$netmask]>   [{route-map RMAP_NAME$map_name|label-index (0-1048560)$label_index|   backdoor$backdoor}]" */
2
DEFUN_CMD_FUNC_DECL(bgp_network)
3
#define funcdecl_bgp_network static int bgp_network_magic(\
4
  const struct cmd_element *self __attribute__ ((unused)),\
5
  struct vty *vty __attribute__ ((unused)),\
6
  int argc __attribute__ ((unused)),\
7
  struct cmd_token *argv[] __attribute__ ((unused)),\
8
  const char * no,\
9
  const struct prefix_ipv4 * prefix,\
10
  const char * prefix_str __attribute__ ((unused)),\
11
  struct in_addr address,\
12
  const char * address_str __attribute__ ((unused)),\
13
  struct in_addr netmask,\
14
  const char * netmask_str __attribute__ ((unused)),\
15
  const char * map_name,\
16
  long label_index,\
17
  const char * label_index_str __attribute__ ((unused)),\
18
  const char * backdoor)
19
funcdecl_bgp_network;
20
DEFUN_CMD_FUNC_TEXT(bgp_network)
21
0
{
22
0
#if 7 /* anything to parse? */
23
0
  int _i;
24
0
#if 1 /* anything that can fail? */
25
0
  unsigned _fail = 0, _failcnt = 0;
26
0
#endif
27
0
  const char *no = NULL;
28
0
  struct prefix_ipv4 prefix = { };
29
0
  const char *prefix_str = NULL;
30
0
  struct in_addr address = { INADDR_ANY };
31
0
  const char *address_str = NULL;
32
0
  struct in_addr netmask = { INADDR_ANY };
33
0
  const char *netmask_str = NULL;
34
0
  const char *map_name = NULL;
35
0
  long label_index = 0;
36
0
  const char *label_index_str = NULL;
37
0
  const char *backdoor = NULL;
38
39
0
  for (_i = 0; _i < argc; _i++) {
40
0
    if (!argv[_i]->varname)
41
0
      continue;
42
0
#if 1 /* anything that can fail? */
43
0
    _fail = 0;
44
0
#endif
45
46
0
    if (!strcmp(argv[_i]->varname, "no")) {
47
0
      no = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
48
0
    }
49
0
    if (!strcmp(argv[_i]->varname, "prefix")) {
50
0
      prefix_str = argv[_i]->arg;
51
0
      _fail = !str2prefix_ipv4(argv[_i]->arg, &prefix);
52
0
    }
53
0
    if (!strcmp(argv[_i]->varname, "address")) {
54
0
      address_str = argv[_i]->arg;
55
0
      _fail = !inet_aton(argv[_i]->arg, &address);
56
0
    }
57
0
    if (!strcmp(argv[_i]->varname, "netmask")) {
58
0
      netmask_str = argv[_i]->arg;
59
0
      _fail = !inet_aton(argv[_i]->arg, &netmask);
60
0
    }
61
0
    if (!strcmp(argv[_i]->varname, "map_name")) {
62
0
      map_name = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
63
0
    }
64
0
    if (!strcmp(argv[_i]->varname, "label_index")) {
65
0
      label_index_str = argv[_i]->arg;
66
0
      char *_end;
67
0
      label_index = strtol(argv[_i]->arg, &_end, 10);
68
0
      _fail = (_end == argv[_i]->arg) || (*_end != '\0');
69
0
    }
70
0
    if (!strcmp(argv[_i]->varname, "backdoor")) {
71
0
      backdoor = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
72
0
    }
73
0
#if 1 /* anything that can fail? */
74
0
    if (_fail)
75
0
      vty_out (vty, "%% invalid input for %s: %s\n",
76
0
           argv[_i]->varname, argv[_i]->arg);
77
0
    _failcnt += _fail;
78
0
#endif
79
0
  }
80
0
#if 1 /* anything that can fail? */
81
0
  if (_failcnt)
82
0
    return CMD_WARNING;
83
0
#endif
84
0
#endif
85
86
0
  return bgp_network_magic(self, vty, argc, argv, no, &prefix, prefix_str, address, address_str, netmask, netmask_str, map_name, label_index, label_index_str, backdoor);
87
0
}
88
89
/* ipv6_bgp_network => "[no] network X:X::X:X/M$prefix  [{route-map RMAP_NAME$map_name|label-index (0-1048560)$label_index}]" */
90
DEFUN_CMD_FUNC_DECL(ipv6_bgp_network)
91
#define funcdecl_ipv6_bgp_network static int ipv6_bgp_network_magic(\
92
  const struct cmd_element *self __attribute__ ((unused)),\
93
  struct vty *vty __attribute__ ((unused)),\
94
  int argc __attribute__ ((unused)),\
95
  struct cmd_token *argv[] __attribute__ ((unused)),\
96
  const char * no,\
97
  const struct prefix_ipv6 * prefix,\
98
  const char * prefix_str __attribute__ ((unused)),\
99
  const char * map_name,\
100
  long label_index,\
101
  const char * label_index_str __attribute__ ((unused)))
102
funcdecl_ipv6_bgp_network;
103
DEFUN_CMD_FUNC_TEXT(ipv6_bgp_network)
104
0
{
105
0
#if 4 /* anything to parse? */
106
0
  int _i;
107
0
#if 1 /* anything that can fail? */
108
0
  unsigned _fail = 0, _failcnt = 0;
109
0
#endif
110
0
  const char *no = NULL;
111
0
  struct prefix_ipv6 prefix = { };
112
0
  const char *prefix_str = NULL;
113
0
  const char *map_name = NULL;
114
0
  long label_index = 0;
115
0
  const char *label_index_str = NULL;
116
117
0
  for (_i = 0; _i < argc; _i++) {
118
0
    if (!argv[_i]->varname)
119
0
      continue;
120
0
#if 1 /* anything that can fail? */
121
0
    _fail = 0;
122
0
#endif
123
124
0
    if (!strcmp(argv[_i]->varname, "no")) {
125
0
      no = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
126
0
    }
127
0
    if (!strcmp(argv[_i]->varname, "prefix")) {
128
0
      prefix_str = argv[_i]->arg;
129
0
      _fail = !str2prefix_ipv6(argv[_i]->arg, &prefix);
130
0
    }
131
0
    if (!strcmp(argv[_i]->varname, "map_name")) {
132
0
      map_name = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
133
0
    }
134
0
    if (!strcmp(argv[_i]->varname, "label_index")) {
135
0
      label_index_str = argv[_i]->arg;
136
0
      char *_end;
137
0
      label_index = strtol(argv[_i]->arg, &_end, 10);
138
0
      _fail = (_end == argv[_i]->arg) || (*_end != '\0');
139
0
    }
140
0
#if 1 /* anything that can fail? */
141
0
    if (_fail)
142
0
      vty_out (vty, "%% invalid input for %s: %s\n",
143
0
           argv[_i]->varname, argv[_i]->arg);
144
0
    _failcnt += _fail;
145
0
#endif
146
0
  }
147
0
#if 1 /* anything that can fail? */
148
0
  if (_failcnt)
149
0
    return CMD_WARNING;
150
0
#endif
151
0
#endif
152
0
  if (!prefix_str) {
153
0
    vty_out(vty, "Internal CLI error [%s]\n", "prefix_str");
154
0
    return CMD_WARNING;
155
0
  }
156
157
0
  return ipv6_bgp_network_magic(self, vty, argc, argv, no, &prefix, prefix_str, map_name, label_index, label_index_str);
158
0
}
159
160
/* aggregate_addressv4 => "[no] aggregate-address <A.B.C.D/M$prefix|A.B.C.D$addr A.B.C.D$mask> [{as-set$as_set_s|summary-only$summary_only|route-map RMAP_NAME$rmap_name|origin <egp|igp|incomplete>$origin_s|matching-MED-only$match_med|suppress-map RMAP_NAME$suppress_map}]" */
161
DEFUN_CMD_FUNC_DECL(aggregate_addressv4)
162
#define funcdecl_aggregate_addressv4 static int aggregate_addressv4_magic(\
163
  const struct cmd_element *self __attribute__ ((unused)),\
164
  struct vty *vty __attribute__ ((unused)),\
165
  int argc __attribute__ ((unused)),\
166
  struct cmd_token *argv[] __attribute__ ((unused)),\
167
  const char * no,\
168
  const struct prefix_ipv4 * prefix,\
169
  const char * prefix_str __attribute__ ((unused)),\
170
  struct in_addr addr,\
171
  const char * addr_str __attribute__ ((unused)),\
172
  struct in_addr mask,\
173
  const char * mask_str __attribute__ ((unused)),\
174
  const char * as_set_s,\
175
  const char * summary_only,\
176
  const char * rmap_name,\
177
  const char * origin_s,\
178
  const char * match_med,\
179
  const char * suppress_map)
180
funcdecl_aggregate_addressv4;
181
DEFUN_CMD_FUNC_TEXT(aggregate_addressv4)
182
0
{
183
0
#if 10 /* anything to parse? */
184
0
  int _i;
185
0
#if 1 /* anything that can fail? */
186
0
  unsigned _fail = 0, _failcnt = 0;
187
0
#endif
188
0
  const char *no = NULL;
189
0
  struct prefix_ipv4 prefix = { };
190
0
  const char *prefix_str = NULL;
191
0
  struct in_addr addr = { INADDR_ANY };
192
0
  const char *addr_str = NULL;
193
0
  struct in_addr mask = { INADDR_ANY };
194
0
  const char *mask_str = NULL;
195
0
  const char *as_set_s = NULL;
196
0
  const char *summary_only = NULL;
197
0
  const char *rmap_name = NULL;
198
0
  const char *origin_s = NULL;
199
0
  const char *match_med = NULL;
200
0
  const char *suppress_map = NULL;
201
202
0
  for (_i = 0; _i < argc; _i++) {
203
0
    if (!argv[_i]->varname)
204
0
      continue;
205
0
#if 1 /* anything that can fail? */
206
0
    _fail = 0;
207
0
#endif
208
209
0
    if (!strcmp(argv[_i]->varname, "no")) {
210
0
      no = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
211
0
    }
212
0
    if (!strcmp(argv[_i]->varname, "prefix")) {
213
0
      prefix_str = argv[_i]->arg;
214
0
      _fail = !str2prefix_ipv4(argv[_i]->arg, &prefix);
215
0
    }
216
0
    if (!strcmp(argv[_i]->varname, "addr")) {
217
0
      addr_str = argv[_i]->arg;
218
0
      _fail = !inet_aton(argv[_i]->arg, &addr);
219
0
    }
220
0
    if (!strcmp(argv[_i]->varname, "mask")) {
221
0
      mask_str = argv[_i]->arg;
222
0
      _fail = !inet_aton(argv[_i]->arg, &mask);
223
0
    }
224
0
    if (!strcmp(argv[_i]->varname, "as_set_s")) {
225
0
      as_set_s = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
226
0
    }
227
0
    if (!strcmp(argv[_i]->varname, "summary_only")) {
228
0
      summary_only = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
229
0
    }
230
0
    if (!strcmp(argv[_i]->varname, "rmap_name")) {
231
0
      rmap_name = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
232
0
    }
233
0
    if (!strcmp(argv[_i]->varname, "origin_s")) {
234
0
      origin_s = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
235
0
    }
236
0
    if (!strcmp(argv[_i]->varname, "match_med")) {
237
0
      match_med = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
238
0
    }
239
0
    if (!strcmp(argv[_i]->varname, "suppress_map")) {
240
0
      suppress_map = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
241
0
    }
242
0
#if 1 /* anything that can fail? */
243
0
    if (_fail)
244
0
      vty_out (vty, "%% invalid input for %s: %s\n",
245
0
           argv[_i]->varname, argv[_i]->arg);
246
0
    _failcnt += _fail;
247
0
#endif
248
0
  }
249
0
#if 1 /* anything that can fail? */
250
0
  if (_failcnt)
251
0
    return CMD_WARNING;
252
0
#endif
253
0
#endif
254
255
0
  return aggregate_addressv4_magic(self, vty, argc, argv, no, &prefix, prefix_str, addr, addr_str, mask, mask_str, as_set_s, summary_only, rmap_name, origin_s, match_med, suppress_map);
256
0
}
257
258
/* aggregate_addressv6 => "[no] aggregate-address X:X::X:X/M$prefix [{as-set$as_set_s|summary-only$summary_only|route-map RMAP_NAME$rmap_name|origin <egp|igp|incomplete>$origin_s|matching-MED-only$match_med|suppress-map RMAP_NAME$suppress_map}]" */
259
DEFUN_CMD_FUNC_DECL(aggregate_addressv6)
260
#define funcdecl_aggregate_addressv6 static int aggregate_addressv6_magic(\
261
  const struct cmd_element *self __attribute__ ((unused)),\
262
  struct vty *vty __attribute__ ((unused)),\
263
  int argc __attribute__ ((unused)),\
264
  struct cmd_token *argv[] __attribute__ ((unused)),\
265
  const char * no,\
266
  const struct prefix_ipv6 * prefix,\
267
  const char * prefix_str __attribute__ ((unused)),\
268
  const char * as_set_s,\
269
  const char * summary_only,\
270
  const char * rmap_name,\
271
  const char * origin_s,\
272
  const char * match_med,\
273
  const char * suppress_map)
274
funcdecl_aggregate_addressv6;
275
DEFUN_CMD_FUNC_TEXT(aggregate_addressv6)
276
0
{
277
0
#if 8 /* anything to parse? */
278
0
  int _i;
279
0
#if 1 /* anything that can fail? */
280
0
  unsigned _fail = 0, _failcnt = 0;
281
0
#endif
282
0
  const char *no = NULL;
283
0
  struct prefix_ipv6 prefix = { };
284
0
  const char *prefix_str = NULL;
285
0
  const char *as_set_s = NULL;
286
0
  const char *summary_only = NULL;
287
0
  const char *rmap_name = NULL;
288
0
  const char *origin_s = NULL;
289
0
  const char *match_med = NULL;
290
0
  const char *suppress_map = NULL;
291
292
0
  for (_i = 0; _i < argc; _i++) {
293
0
    if (!argv[_i]->varname)
294
0
      continue;
295
0
#if 1 /* anything that can fail? */
296
0
    _fail = 0;
297
0
#endif
298
299
0
    if (!strcmp(argv[_i]->varname, "no")) {
300
0
      no = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
301
0
    }
302
0
    if (!strcmp(argv[_i]->varname, "prefix")) {
303
0
      prefix_str = argv[_i]->arg;
304
0
      _fail = !str2prefix_ipv6(argv[_i]->arg, &prefix);
305
0
    }
306
0
    if (!strcmp(argv[_i]->varname, "as_set_s")) {
307
0
      as_set_s = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
308
0
    }
309
0
    if (!strcmp(argv[_i]->varname, "summary_only")) {
310
0
      summary_only = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
311
0
    }
312
0
    if (!strcmp(argv[_i]->varname, "rmap_name")) {
313
0
      rmap_name = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
314
0
    }
315
0
    if (!strcmp(argv[_i]->varname, "origin_s")) {
316
0
      origin_s = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
317
0
    }
318
0
    if (!strcmp(argv[_i]->varname, "match_med")) {
319
0
      match_med = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
320
0
    }
321
0
    if (!strcmp(argv[_i]->varname, "suppress_map")) {
322
0
      suppress_map = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
323
0
    }
324
0
#if 1 /* anything that can fail? */
325
0
    if (_fail)
326
0
      vty_out (vty, "%% invalid input for %s: %s\n",
327
0
           argv[_i]->varname, argv[_i]->arg);
328
0
    _failcnt += _fail;
329
0
#endif
330
0
  }
331
0
#if 1 /* anything that can fail? */
332
0
  if (_failcnt)
333
0
    return CMD_WARNING;
334
0
#endif
335
0
#endif
336
0
  if (!prefix_str) {
337
0
    vty_out(vty, "Internal CLI error [%s]\n", "prefix_str");
338
0
    return CMD_WARNING;
339
0
  }
340
341
0
  return aggregate_addressv6_magic(self, vty, argc, argv, no, &prefix, prefix_str, as_set_s, summary_only, rmap_name, origin_s, match_med, suppress_map);
342
0
}
343
344
/* show_ip_bgp_dampening_params => "show [ip] bgp [<view|vrf> VIEWVRFNAME] [<ipv4|ipv6> [<unicast|multicast|vpn|labeled-unicast|flowspec>]] [all$all] dampening parameters [json]" */
345
DEFUN_CMD_FUNC_DECL(show_ip_bgp_dampening_params)
346
#define funcdecl_show_ip_bgp_dampening_params static int show_ip_bgp_dampening_params_magic(\
347
  const struct cmd_element *self __attribute__ ((unused)),\
348
  struct vty *vty __attribute__ ((unused)),\
349
  int argc __attribute__ ((unused)),\
350
  struct cmd_token *argv[] __attribute__ ((unused)),\
351
  const char * viewvrfname,\
352
  const char * all)
353
funcdecl_show_ip_bgp_dampening_params;
354
DEFUN_CMD_FUNC_TEXT(show_ip_bgp_dampening_params)
355
0
{
356
0
#if 2 /* anything to parse? */
357
0
  int _i;
358
#if 0 /* anything that can fail? */
359
  unsigned _fail = 0, _failcnt = 0;
360
#endif
361
0
  const char *viewvrfname = NULL;
362
0
  const char *all = NULL;
363
364
0
  for (_i = 0; _i < argc; _i++) {
365
0
    if (!argv[_i]->varname)
366
0
      continue;
367
#if 0 /* anything that can fail? */
368
    _fail = 0;
369
#endif
370
371
0
    if (!strcmp(argv[_i]->varname, "viewvrfname")) {
372
0
      viewvrfname = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
373
0
    }
374
0
    if (!strcmp(argv[_i]->varname, "all")) {
375
0
      all = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
376
0
    }
377
#if 0 /* anything that can fail? */
378
    if (_fail)
379
      vty_out (vty, "%% invalid input for %s: %s\n",
380
           argv[_i]->varname, argv[_i]->arg);
381
    _failcnt += _fail;
382
#endif
383
0
  }
384
#if 0 /* anything that can fail? */
385
  if (_failcnt)
386
    return CMD_WARNING;
387
#endif
388
0
#endif
389
390
0
  return show_ip_bgp_dampening_params_magic(self, vty, argc, argv, viewvrfname, all);
391
0
}
392
393
/* show_ip_bgp => "show [ip] bgp [<view|vrf> VIEWVRFNAME] [<ipv4|ipv6> [<unicast|multicast|vpn|labeled-unicast|flowspec>]]          [all$all]          [cidr-only          |dampening <flap-statistics|dampened-paths>          |community [AA:NN|local-AS|no-advertise|no-export                     |graceful-shutdown|no-peer|blackhole|llgr-stale|no-llgr                     |accept-own|accept-own-nexthop|route-filter-v6                     |route-filter-v4|route-filter-translated-v6                     |route-filter-translated-v4] [exact-match]          |community-list <(1-500)|COMMUNITY_LIST_NAME> [exact-match]          |filter-list AS_PATH_FILTER_NAME          |prefix-list WORD          |access-list ACCESSLIST_NAME          |route-map RMAP_NAME          |rpki <invalid|valid|notfound>          |version (1-4294967295)          |alias ALIAS_NAME          |A.B.C.D/M longer-prefixes          |X:X::X:X/M longer-prefixes          |self-originate          |detail-routes$detail_routes          ] [json$uj [detail$detail_json] | wide$wide]" */
394
DEFUN_CMD_FUNC_DECL(show_ip_bgp)
395
#define funcdecl_show_ip_bgp static int show_ip_bgp_magic(\
396
  const struct cmd_element *self __attribute__ ((unused)),\
397
  struct vty *vty __attribute__ ((unused)),\
398
  int argc __attribute__ ((unused)),\
399
  struct cmd_token *argv[] __attribute__ ((unused)),\
400
  const char * viewvrfname,\
401
  const char * all,\
402
  const char * aa_nn,\
403
  long community_list,\
404
  const char * community_list_str __attribute__ ((unused)),\
405
  const char * community_list_name,\
406
  const char * as_path_filter_name,\
407
  const char * prefix_list,\
408
  const char * accesslist_name,\
409
  const char * rmap_name,\
410
  long version,\
411
  const char * version_str __attribute__ ((unused)),\
412
  const char * alias_name,\
413
  const char * detail_routes,\
414
  const char * uj,\
415
  const char * detail_json,\
416
  const char * wide)
417
funcdecl_show_ip_bgp;
418
DEFUN_CMD_FUNC_TEXT(show_ip_bgp)
419
0
{
420
0
#if 15 /* anything to parse? */
421
0
  int _i;
422
0
#if 1 /* anything that can fail? */
423
0
  unsigned _fail = 0, _failcnt = 0;
424
0
#endif
425
0
  const char *viewvrfname = NULL;
426
0
  const char *all = NULL;
427
0
  const char *aa_nn = NULL;
428
0
  long community_list = 0;
429
0
  const char *community_list_str = NULL;
430
0
  const char *community_list_name = NULL;
431
0
  const char *as_path_filter_name = NULL;
432
0
  const char *prefix_list = NULL;
433
0
  const char *accesslist_name = NULL;
434
0
  const char *rmap_name = NULL;
435
0
  long version = 0;
436
0
  const char *version_str = NULL;
437
0
  const char *alias_name = NULL;
438
0
  const char *detail_routes = NULL;
439
0
  const char *uj = NULL;
440
0
  const char *detail_json = NULL;
441
0
  const char *wide = NULL;
442
443
0
  for (_i = 0; _i < argc; _i++) {
444
0
    if (!argv[_i]->varname)
445
0
      continue;
446
0
#if 1 /* anything that can fail? */
447
0
    _fail = 0;
448
0
#endif
449
450
0
    if (!strcmp(argv[_i]->varname, "viewvrfname")) {
451
0
      viewvrfname = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
452
0
    }
453
0
    if (!strcmp(argv[_i]->varname, "all")) {
454
0
      all = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
455
0
    }
456
0
    if (!strcmp(argv[_i]->varname, "aa_nn")) {
457
0
      aa_nn = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
458
0
    }
459
0
    if (!strcmp(argv[_i]->varname, "community_list")) {
460
0
      community_list_str = argv[_i]->arg;
461
0
      char *_end;
462
0
      community_list = strtol(argv[_i]->arg, &_end, 10);
463
0
      _fail = (_end == argv[_i]->arg) || (*_end != '\0');
464
0
    }
465
0
    if (!strcmp(argv[_i]->varname, "community_list_name")) {
466
0
      community_list_name = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
467
0
    }
468
0
    if (!strcmp(argv[_i]->varname, "as_path_filter_name")) {
469
0
      as_path_filter_name = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
470
0
    }
471
0
    if (!strcmp(argv[_i]->varname, "prefix_list")) {
472
0
      prefix_list = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
473
0
    }
474
0
    if (!strcmp(argv[_i]->varname, "accesslist_name")) {
475
0
      accesslist_name = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
476
0
    }
477
0
    if (!strcmp(argv[_i]->varname, "rmap_name")) {
478
0
      rmap_name = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
479
0
    }
480
0
    if (!strcmp(argv[_i]->varname, "version")) {
481
0
      version_str = argv[_i]->arg;
482
0
      char *_end;
483
0
      version = strtol(argv[_i]->arg, &_end, 10);
484
0
      _fail = (_end == argv[_i]->arg) || (*_end != '\0');
485
0
    }
486
0
    if (!strcmp(argv[_i]->varname, "alias_name")) {
487
0
      alias_name = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
488
0
    }
489
0
    if (!strcmp(argv[_i]->varname, "detail_routes")) {
490
0
      detail_routes = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
491
0
    }
492
0
    if (!strcmp(argv[_i]->varname, "uj")) {
493
0
      uj = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
494
0
    }
495
0
    if (!strcmp(argv[_i]->varname, "detail_json")) {
496
0
      detail_json = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
497
0
    }
498
0
    if (!strcmp(argv[_i]->varname, "wide")) {
499
0
      wide = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
500
0
    }
501
0
#if 1 /* anything that can fail? */
502
0
    if (_fail)
503
0
      vty_out (vty, "%% invalid input for %s: %s\n",
504
0
           argv[_i]->varname, argv[_i]->arg);
505
0
    _failcnt += _fail;
506
0
#endif
507
0
  }
508
0
#if 1 /* anything that can fail? */
509
0
  if (_failcnt)
510
0
    return CMD_WARNING;
511
0
#endif
512
0
#endif
513
514
0
  return show_ip_bgp_magic(self, vty, argc, argv, viewvrfname, all, aa_nn, community_list, community_list_str, community_list_name, as_path_filter_name, prefix_list, accesslist_name, rmap_name, version, version_str, alias_name, detail_routes, uj, detail_json, wide);
515
0
}
516
517
/* show_ip_bgp_instance_all => "show [ip] bgp <view|vrf> all [<ipv4|ipv6> [<unicast|multicast|vpn|labeled-unicast|flowspec>]] [json$uj | wide$wide]" */
518
DEFUN_CMD_FUNC_DECL(show_ip_bgp_instance_all)
519
#define funcdecl_show_ip_bgp_instance_all static int show_ip_bgp_instance_all_magic(\
520
  const struct cmd_element *self __attribute__ ((unused)),\
521
  struct vty *vty __attribute__ ((unused)),\
522
  int argc __attribute__ ((unused)),\
523
  struct cmd_token *argv[] __attribute__ ((unused)),\
524
  const char * uj,\
525
  const char * wide)
526
funcdecl_show_ip_bgp_instance_all;
527
DEFUN_CMD_FUNC_TEXT(show_ip_bgp_instance_all)
528
0
{
529
0
#if 2 /* anything to parse? */
530
0
  int _i;
531
#if 0 /* anything that can fail? */
532
  unsigned _fail = 0, _failcnt = 0;
533
#endif
534
0
  const char *uj = NULL;
535
0
  const char *wide = NULL;
536
537
0
  for (_i = 0; _i < argc; _i++) {
538
0
    if (!argv[_i]->varname)
539
0
      continue;
540
#if 0 /* anything that can fail? */
541
    _fail = 0;
542
#endif
543
544
0
    if (!strcmp(argv[_i]->varname, "uj")) {
545
0
      uj = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
546
0
    }
547
0
    if (!strcmp(argv[_i]->varname, "wide")) {
548
0
      wide = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
549
0
    }
550
#if 0 /* anything that can fail? */
551
    if (_fail)
552
      vty_out (vty, "%% invalid input for %s: %s\n",
553
           argv[_i]->varname, argv[_i]->arg);
554
    _failcnt += _fail;
555
#endif
556
0
  }
557
#if 0 /* anything that can fail? */
558
  if (_failcnt)
559
    return CMD_WARNING;
560
#endif
561
0
#endif
562
563
0
  return show_ip_bgp_instance_all_magic(self, vty, argc, argv, uj, wide);
564
0
}
565
566
/* show_ip_bgp_instance_neighbor_bestpath_route => "show [ip] bgp [<view|vrf> VIEWVRFNAME] [<ipv4|ipv6> [<unicast|multicast|vpn|labeled-unicast|flowspec>]] neighbors <A.B.C.D|X:X::X:X|WORD> bestpath-routes [detail$detail] [json$uj | wide$wide]" */
567
DEFUN_CMD_FUNC_DECL(show_ip_bgp_instance_neighbor_bestpath_route)
568
#define funcdecl_show_ip_bgp_instance_neighbor_bestpath_route static int show_ip_bgp_instance_neighbor_bestpath_route_magic(\
569
  const struct cmd_element *self __attribute__ ((unused)),\
570
  struct vty *vty __attribute__ ((unused)),\
571
  int argc __attribute__ ((unused)),\
572
  struct cmd_token *argv[] __attribute__ ((unused)),\
573
  const char * viewvrfname,\
574
  const char * neighbors,\
575
  const char * detail,\
576
  const char * uj,\
577
  const char * wide)
578
funcdecl_show_ip_bgp_instance_neighbor_bestpath_route;
579
DEFUN_CMD_FUNC_TEXT(show_ip_bgp_instance_neighbor_bestpath_route)
580
0
{
581
0
#if 5 /* anything to parse? */
582
0
  int _i;
583
#if 0 /* anything that can fail? */
584
  unsigned _fail = 0, _failcnt = 0;
585
#endif
586
0
  const char *viewvrfname = NULL;
587
0
  const char *neighbors = NULL;
588
0
  const char *detail = NULL;
589
0
  const char *uj = NULL;
590
0
  const char *wide = NULL;
591
592
0
  for (_i = 0; _i < argc; _i++) {
593
0
    if (!argv[_i]->varname)
594
0
      continue;
595
#if 0 /* anything that can fail? */
596
    _fail = 0;
597
#endif
598
599
0
    if (!strcmp(argv[_i]->varname, "viewvrfname")) {
600
0
      viewvrfname = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
601
0
    }
602
0
    if (!strcmp(argv[_i]->varname, "neighbors")) {
603
0
      neighbors = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
604
0
    }
605
0
    if (!strcmp(argv[_i]->varname, "detail")) {
606
0
      detail = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
607
0
    }
608
0
    if (!strcmp(argv[_i]->varname, "uj")) {
609
0
      uj = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
610
0
    }
611
0
    if (!strcmp(argv[_i]->varname, "wide")) {
612
0
      wide = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
613
0
    }
614
#if 0 /* anything that can fail? */
615
    if (_fail)
616
      vty_out (vty, "%% invalid input for %s: %s\n",
617
           argv[_i]->varname, argv[_i]->arg);
618
    _failcnt += _fail;
619
#endif
620
0
  }
621
#if 0 /* anything that can fail? */
622
  if (_failcnt)
623
    return CMD_WARNING;
624
#endif
625
0
#endif
626
0
  if (!neighbors) {
627
0
    vty_out(vty, "Internal CLI error [%s]\n", "neighbors");
628
0
    return CMD_WARNING;
629
0
  }
630
631
0
  return show_ip_bgp_instance_neighbor_bestpath_route_magic(self, vty, argc, argv, viewvrfname, neighbors, detail, uj, wide);
632
0
}
633
634
/* show_ip_bgp_instance_neighbor_advertised_route => "show [ip] bgp [<view|vrf> VIEWVRFNAME] [<ipv4|ipv6> [<unicast|multicast|vpn|labeled-unicast|flowspec>]] [all$all] neighbors <A.B.C.D|X:X::X:X|WORD> <advertised-routes|received-routes|filtered-routes> [route-map RMAP_NAME$route_map] [<A.B.C.D/M|X:X::X:X/M>$prefix | detail$detail] [json$uj | wide$wide]" */
635
DEFUN_CMD_FUNC_DECL(show_ip_bgp_instance_neighbor_advertised_route)
636
#define funcdecl_show_ip_bgp_instance_neighbor_advertised_route static int show_ip_bgp_instance_neighbor_advertised_route_magic(\
637
  const struct cmd_element *self __attribute__ ((unused)),\
638
  struct vty *vty __attribute__ ((unused)),\
639
  int argc __attribute__ ((unused)),\
640
  struct cmd_token *argv[] __attribute__ ((unused)),\
641
  const char * viewvrfname,\
642
  const char * all,\
643
  const char * neighbors,\
644
  const char * route_map,\
645
  const struct prefix * prefix,\
646
  const char * prefix_str __attribute__ ((unused)),\
647
  const char * detail,\
648
  const char * uj,\
649
  const char * wide)
650
funcdecl_show_ip_bgp_instance_neighbor_advertised_route;
651
DEFUN_CMD_FUNC_TEXT(show_ip_bgp_instance_neighbor_advertised_route)
652
0
{
653
0
#if 8 /* anything to parse? */
654
0
  int _i;
655
0
#if 1 /* anything that can fail? */
656
0
  unsigned _fail = 0, _failcnt = 0;
657
0
#endif
658
0
  const char *viewvrfname = NULL;
659
0
  const char *all = NULL;
660
0
  const char *neighbors = NULL;
661
0
  const char *route_map = NULL;
662
0
  struct prefix prefix = { };
663
0
  const char *prefix_str = NULL;
664
0
  const char *detail = NULL;
665
0
  const char *uj = NULL;
666
0
  const char *wide = NULL;
667
668
0
  for (_i = 0; _i < argc; _i++) {
669
0
    if (!argv[_i]->varname)
670
0
      continue;
671
0
#if 1 /* anything that can fail? */
672
0
    _fail = 0;
673
0
#endif
674
675
0
    if (!strcmp(argv[_i]->varname, "viewvrfname")) {
676
0
      viewvrfname = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
677
0
    }
678
0
    if (!strcmp(argv[_i]->varname, "all")) {
679
0
      all = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
680
0
    }
681
0
    if (!strcmp(argv[_i]->varname, "neighbors")) {
682
0
      neighbors = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
683
0
    }
684
0
    if (!strcmp(argv[_i]->varname, "route_map")) {
685
0
      route_map = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
686
0
    }
687
0
    if (!strcmp(argv[_i]->varname, "prefix")) {
688
0
      prefix_str = argv[_i]->arg;
689
0
      _fail = !str2prefix(argv[_i]->arg, &prefix);
690
0
    }
691
0
    if (!strcmp(argv[_i]->varname, "detail")) {
692
0
      detail = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
693
0
    }
694
0
    if (!strcmp(argv[_i]->varname, "uj")) {
695
0
      uj = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
696
0
    }
697
0
    if (!strcmp(argv[_i]->varname, "wide")) {
698
0
      wide = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
699
0
    }
700
0
#if 1 /* anything that can fail? */
701
0
    if (_fail)
702
0
      vty_out (vty, "%% invalid input for %s: %s\n",
703
0
           argv[_i]->varname, argv[_i]->arg);
704
0
    _failcnt += _fail;
705
0
#endif
706
0
  }
707
0
#if 1 /* anything that can fail? */
708
0
  if (_failcnt)
709
0
    return CMD_WARNING;
710
0
#endif
711
0
#endif
712
0
  if (!neighbors) {
713
0
    vty_out(vty, "Internal CLI error [%s]\n", "neighbors");
714
0
    return CMD_WARNING;
715
0
  }
716
717
0
  return show_ip_bgp_instance_neighbor_advertised_route_magic(self, vty, argc, argv, viewvrfname, all, neighbors, route_map, &prefix, prefix_str, detail, uj, wide);
718
0
}
719
720
/* show_ip_bgp_vrf_afi_safi_routes_detailed => "show [ip] bgp [<view|vrf> VIEWVRFNAME$vrf_name] [<ipv4|ipv6> [<unicast|multicast|vpn|labeled-unicast|flowspec>]] detail [json$uj]" */
721
DEFUN_CMD_FUNC_DECL(show_ip_bgp_vrf_afi_safi_routes_detailed)
722
#define funcdecl_show_ip_bgp_vrf_afi_safi_routes_detailed static int show_ip_bgp_vrf_afi_safi_routes_detailed_magic(\
723
  const struct cmd_element *self __attribute__ ((unused)),\
724
  struct vty *vty __attribute__ ((unused)),\
725
  int argc __attribute__ ((unused)),\
726
  struct cmd_token *argv[] __attribute__ ((unused)),\
727
  const char * vrf_name,\
728
  const char * uj)
729
funcdecl_show_ip_bgp_vrf_afi_safi_routes_detailed;
730
DEFUN_CMD_FUNC_TEXT(show_ip_bgp_vrf_afi_safi_routes_detailed)
731
0
{
732
0
#if 2 /* anything to parse? */
733
0
  int _i;
734
#if 0 /* anything that can fail? */
735
  unsigned _fail = 0, _failcnt = 0;
736
#endif
737
0
  const char *vrf_name = NULL;
738
0
  const char *uj = NULL;
739
740
0
  for (_i = 0; _i < argc; _i++) {
741
0
    if (!argv[_i]->varname)
742
0
      continue;
743
#if 0 /* anything that can fail? */
744
    _fail = 0;
745
#endif
746
747
0
    if (!strcmp(argv[_i]->varname, "vrf_name")) {
748
0
      vrf_name = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
749
0
    }
750
0
    if (!strcmp(argv[_i]->varname, "uj")) {
751
0
      uj = (argv[_i]->type == WORD_TKN) ? argv[_i]->text : argv[_i]->arg;
752
0
    }
753
#if 0 /* anything that can fail? */
754
    if (_fail)
755
      vty_out (vty, "%% invalid input for %s: %s\n",
756
           argv[_i]->varname, argv[_i]->arg);
757
    _failcnt += _fail;
758
#endif
759
0
  }
760
#if 0 /* anything that can fail? */
761
  if (_failcnt)
762
    return CMD_WARNING;
763
#endif
764
0
#endif
765
766
0
  return show_ip_bgp_vrf_afi_safi_routes_detailed_magic(self, vty, argc, argv, vrf_name, uj);
767
0
}
768