/
vr.sandesh
517 lines (495 loc) · 17.7 KB
/
vr.sandesh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
/*
* vr.sandesh --
*
* Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
*/
enum sandesh_op {
ADD,
GET,
DEL,
DUMP,
RESPONSE,
RESET,
}
enum flow_op {
FLOW_SET,
FLOW_LIST,
FLOW_TABLE_GET,
}
struct sandesh_hdr {
1: sandesh_op h_op;
2: i32 h_id;
}
/*
* adding a new list element will need a change in vr_util.c
*/
buffer sandesh vr_nexthop_req {
1: sandesh_op h_op;
2: byte nhr_type;
3: byte nhr_family;
4: i32 nhr_id;
5: i32 nhr_rid;
6: i32 nhr_encap_oif_id;
7: i32 nhr_encap_len;
8: i32 nhr_encap_family;
9: i32 nhr_vrf;
10: u32 nhr_tun_sip;
11: u32 nhr_tun_dip;
12: i16 nhr_tun_sport;
13: i16 nhr_tun_dport;
14: i32 nhr_ref_cnt;
15: i32 nhr_marker;
16: u32 nhr_flags;
17: list<byte> nhr_encap;
18: list<i32> nhr_nh_list;
19: list<i32> nhr_label_list;
20: i16 nhr_nh_count;
21: list<byte> nhr_tun_sip6;
22: list<byte> nhr_tun_dip6;
23: byte nhr_ecmp_config_hash;
24: list<byte> nhr_pbb_mac;
25: i32 nhr_encap_crypt_oif_id;
26: i32 nhr_crypt_traffic;
27: i32 nhr_crypt_path_available;
28: list<byte> nhr_rw_dst_mac;
}
buffer sandesh vr_interface_req {
1: sandesh_op h_op;
2: u32 vifr_core;
3: i32 vifr_type;
4: i32 vifr_flags;
5: i32 vifr_vrf;
6: i32 vifr_idx;
7: i32 vifr_rid;
8: i32 vifr_os_idx;
9: i32 vifr_mtu;
10: string vifr_name;
11: i64 vifr_ibytes;
12: i64 vifr_ipackets;
13: i64 vifr_ierrors;
14: i64 vifr_obytes;
15: i64 vifr_opackets;
16: i64 vifr_oerrors;
17: i64 vifr_queue_ipackets;
18: i64 vifr_queue_ierrors;
19: list<i64> vifr_queue_ierrors_to_lcore;
20: i64 vifr_queue_opackets;
21: i64 vifr_queue_oerrors;
22: i64 vifr_port_ipackets;
23: i64 vifr_port_ierrors;
24: i64 vifr_port_isyscalls;
25: i64 vifr_port_inombufs;
26: i64 vifr_port_opackets;
27: i64 vifr_port_oerrors;
28: i64 vifr_port_osyscalls;
29: i64 vifr_dev_ibytes;
30: i64 vifr_dev_ipackets;
31: i64 vifr_dev_ierrors;
32: i64 vifr_dev_inombufs;
33: i64 vifr_dev_obytes;
34: i64 vifr_dev_opackets;
35: i64 vifr_dev_oerrors;
36: i32 vifr_ref_cnt;
37: i32 vifr_marker;
38: list<byte> vifr_mac;
39: u32 vifr_ip;
40: u64 vifr_ip6_u;
41: u64 vifr_ip6_l;
42: i32 vifr_context;
43: i16 vifr_mir_id;
44: i32 vifr_speed;
45: i32 vifr_duplex;
46: i16 vifr_vlan_id;
47: i32 vifr_parent_vif_idx;
48: i16 vifr_nh_id;
49: i32 vifr_cross_connect_idx;
50: list<byte> vifr_src_mac;
51: list<i32> vifr_bridge_idx;
52: i16 vifr_ovlan_id;
53: byte vifr_transport;
54: list<i32> vifr_fat_flow_protocol_port;
55: i16 vifr_qos_map_index;
56: list<byte> vifr_in_mirror_md;
57: list<byte> vifr_out_mirror_md;
58: u64 vifr_dpackets;
59: list<i16> vifr_hw_queues;
60: u32 vifr_isid;
61: list<byte> vifr_pbb_mac;
62: byte vifr_vhostuser_mode;
63: i32 vifr_mcast_vrf;
64: list<byte> vifr_if_guid;
65: list<u64> vifr_fat_flow_exclude_ip_list;
66: list<u64> vifr_fat_flow_exclude_ip6_u_list;
67: list<u64> vifr_fat_flow_exclude_ip6_l_list;
68: list<u16> vifr_fat_flow_exclude_ip6_plen_list;
77: list<u64> vifr_fat_flow_src_prefix_h;
78: list<u64> vifr_fat_flow_src_prefix_l;
79: list<byte> vifr_fat_flow_src_prefix_mask;
80: list<byte> vifr_fat_flow_src_aggregate_plen;
81: list<u64> vifr_fat_flow_dst_prefix_h;
82: list<u64> vifr_fat_flow_dst_prefix_l;
83: list<byte> vifr_fat_flow_dst_prefix_mask;
84: list<byte> vifr_fat_flow_dst_aggregate_plen;
}
buffer sandesh vr_vxlan_req {
1: sandesh_op h_op;
2: i16 vxlanr_rid;
3: i32 vxlanr_vnid;
4: i32 vxlanr_nhid;
}
buffer sandesh vr_route_req {
1: sandesh_op h_op;
2: i32 rtr_vrf_id;
3: i32 rtr_family;
4: list<byte> rtr_prefix;
5: i32 rtr_prefix_len;
6: i16 rtr_rid;
7: i16 rtr_label_flags;
8: i32 rtr_label;
9: i32 rtr_nh_id;
10: list<byte> rtr_marker;
11: i32 rtr_marker_plen;
12: list<byte> rtr_mac;
13: i32 rtr_replace_plen;
14: i32 rtr_index;
}
buffer sandesh vr_mpls_req {
1: sandesh_op h_op;
2: i32 mr_label;
3: i16 mr_rid;
4: i32 mr_nhid;
5: i32 mr_marker;
}
buffer sandesh vr_mirror_req {
1: sandesh_op h_op;
2: i16 mirr_index;
3: i16 mirr_rid;
4: i32 mirr_nhid;
5: i32 mirr_users;
6: i32 mirr_flags;
7: i32 mirr_marker;
8: i32 mirr_vni;
9: i16 mirr_vlan;
}
buffer sandesh vr_flow_req {
1: flow_op fr_op;
2: i16 fr_rid;
3: i32 fr_index;
4: i16 fr_action;
5: i16 fr_flags;
6: i32 fr_rindex;
7: i32 fr_family;
8: u64 fr_flow_sip_u;
9: u64 fr_flow_sip_l;
10: u64 fr_flow_dip_u;
11: u64 fr_flow_dip_l;
12: u16 fr_flow_sport;
13: u16 fr_flow_dport;
14: byte fr_flow_proto;
15: u16 fr_flow_vrf;
16: u16 fr_flow_dvrf;
17: u16 fr_mir_id;
18: u16 fr_sec_mir_id;
19: u32 fr_mir_sip;
20: u16 fr_mir_sport;
21: list<byte> fr_pcap_meta_data;
22: u16 fr_mir_vrf;
23: u32 fr_ecmp_nh_index;
24: u32 fr_src_nh_index;
25: u32 fr_flow_nh_id;
26: u16 fr_drop_reason;
27: byte fr_gen_id;
28: u64 fr_rflow_sip_u;
29: u64 fr_rflow_sip_l;
30: u64 fr_rflow_dip_u;
31: u64 fr_rflow_dip_l;
32: u32 fr_rflow_nh_id;
33: u16 fr_rflow_sport;
34: u16 fr_rflow_dport;
35: u16 fr_qos_id;
36: byte fr_ttl;
}
buffer sandesh vr_vrf_assign_req {
1: sandesh_op h_op;
2: i16 var_rid;
3: i16 var_vif_index;
4: i32 var_vif_vrf;
5: i16 var_vlan_id;
6: i16 var_marker;
7: i32 var_nh_id;
}
buffer sandesh vr_vrf_stats_req {
1: sandesh_op h_op;
2: i16 vsr_rid;
3: i16 vsr_family;
4: i16 vsr_type;
5: i32 vsr_vrf;
6: i64 vsr_discards;
7: i64 vsr_resolves;
8: i64 vsr_receives;
9: i64 vsr_ecmp_composites;
10: i64 vsr_l2_mcast_composites;
11: i64 vsr_fabric_composites;
12: i64 vsr_udp_tunnels;
13: i64 vsr_udp_mpls_tunnels;
14: i64 vsr_gre_mpls_tunnels;
15: i64 vsr_l2_encaps;
16: i64 vsr_encaps;
17: i16 vsr_marker;
18: i64 vsr_gros;
19: i64 vsr_diags;
20: i64 vsr_encap_composites;
21: i64 vsr_evpn_composites;
22: i64 vsr_vrf_translates;
23: i64 vsr_vxlan_tunnels;
24: i64 vsr_arp_virtual_proxy;
25: i64 vsr_arp_virtual_stitch;
26: i64 vsr_arp_virtual_flood;
27: i64 vsr_arp_physical_stitch;
28: i64 vsr_arp_tor_proxy;
29: i64 vsr_arp_physical_flood;
30: i64 vsr_l2_receives;
31: i64 vsr_uuc_floods;
32: i64 vsr_pbb_tunnels;
}
buffer sandesh vr_response {
1: sandesh_op h_op;
2: i32 resp_code;
}
buffer sandesh vrouter_ops {
1: sandesh_op h_op;
2: i32 vo_rid;
3: i32 vo_mpls_labels;
4: i32 vo_nexthops;
5: i32 vo_bridge_entries;
6: i32 vo_oflow_bridge_entries;
7: i32 vo_flow_entries;
8: i32 vo_oflow_entries;
9: i32 vo_interfaces;
10: i32 vo_mirror_entries;
11: i32 vo_vrfs;
12: string vo_build_info;
13: u32 vo_log_level;
14: list<i32> vo_log_type_enable;
15: list<i32> vo_log_type_disable;
16: i32 vo_perfr;
17: i32 vo_perfs;
18: i32 vo_from_vm_mss_adj;
19: i32 vo_to_vm_mss_adj;
20: i32 vo_perfr1;
21: i32 vo_perfr2;
22: i32 vo_perfr3;
23: i32 vo_perfp;
24: i32 vo_perfq1;
25: i32 vo_perfq2;
26: i32 vo_perfq3;
27: i32 vo_udp_coff;
28: i32 vo_flow_hold_limit;
29: i32 vo_mudp;
30: u32 vo_flow_used_entries;
31: u32 vo_flow_used_oentries;
32: u32 vo_bridge_used_entries;
33: u32 vo_bridge_used_oentries;
34: i32 vo_burst_tokens;
35: i32 vo_burst_interval;
36: i32 vo_burst_step;
37: i32 vo_memory_alloc_checks;
38: u32 vo_priority_tagging;
39: i32 vo_vif_bridge_entries;
40: i32 vo_vif_oflow_bridge_entries;
41: i32 vo_packet_dump;
}
buffer sandesh vr_mem_stats_req {
1: sandesh_op h_op;
2: i16 vms_rid;
3: i64 vms_alloced;
4: i64 vms_freed;
5: i64 vms_assembler_table_object;
6: i64 vms_bridge_mac_object;
7: i64 vms_btable_object;
8: i64 vms_build_info_object;
9: i64 vms_defer_object;
10: i64 vms_drop_stats_object;
11: i64 vms_drop_stats_req_object;
12: i64 vms_flow_queue_object;
13: i64 vms_flow_req_object;
14: i64 vms_flow_req_path_object;
15: i64 vms_flow_hold_stat_object;
16: i64 vms_flow_link_local_object;
17: i64 vms_flow_metadata_object;
18: i64 vms_flow_table_data_object;
19: i64 vms_flow_table_info_object;
20: i64 vms_fragment_object;
21: i64 vms_fragment_queue_object;
22: i64 vms_fragment_queue_element_object;
23: i64 vms_fragment_scanner_object;
24: i64 vms_hpacket_pool_object;
25: i64 vms_htable_object;
26: i64 vms_interface_object;
27: i64 vms_interface_mac_object;
28: i64 vms_interface_req_object;
29: i64 vms_interface_req_mac_object;
30: i64 vms_interface_req_name_object;
31: i64 vms_interface_stats_object;
32: i64 vms_interface_table_object;
33: i64 vms_interface_vrf_table_object;
34: i64 vms_itable_object;
35: i64 vms_malloc_object;
36: i64 vms_message_object;
37: i64 vms_message_response_object;
38: i64 vms_message_dump_object;
39: i64 vms_mem_stats_req_object;
40: i64 vms_mirror_object;
41: i64 vms_mirror_table_object;
42: i64 vms_mirror_meta_object;
43: i64 vms_mtrie_object;
44: i64 vms_mtrie_bucket_object;
45: i64 vms_mtrie_stats_object;
46: i64 vms_mtrie_table_object;
47: i64 vms_network_address_object;
48: i64 vms_nexthop_object;
49: i64 vms_nexthop_component_object;
50: i64 vms_nexthop_req_list_object;
51: i64 vms_nexthop_req_encap_object;
52: i64 vms_nexthop_req_object;
53: i64 vms_route_table_object;
54: i64 vms_route_req_mac_object;
55: i64 vms_timer_object;
56: i64 vms_usock_object;
57: i64 vms_usock_poll_object;
58: i64 vms_usock_buf_object;
59: i64 vms_usock_iovec_object;
60: i64 vms_vrouter_req_object;
61: i64 vms_interface_fat_flow_config_object;
62: i64 vms_qos_map_object;
63: i64 vms_fc_object;
64: i64 vms_interface_mirror_meta_object;
65: i64 vms_interface_req_mirror_meta_object;
66: i64 vms_interface_bridge_lock_object;
67: i64 vms_interface_queue_object;
68: i64 vms_interface_req_pbb_mac_object;
69: i64 vms_nexthop_req_bmac_object;
70: i64 vms_interface_req_bridge_id_object;
71: i64 vms_interface_fat_flow_ipv4_exclude_list_object;
72: i64 vms_interface_fat_flow_ipv6_exclude_list_object;
}
/* any new addition needs update to vr_util.c & flow.c */
buffer sandesh vr_drop_stats_req {
1: sandesh_op h_op;
2: i16 vds_rid;
3: i16 vds_core;
4: i64 vds_discard;
5: byte vds_pcpu_stats_failure_status;
6: i64 vds_pull;
7: i64 vds_invalid_if;
8: i64 vds_invalid_arp;
9: i64 vds_trap_no_if;
10: i64 vds_nowhere_to_go;
11: i64 vds_flow_queue_limit_exceeded;
12: i64 vds_flow_no_memory;
13: i64 vds_flow_invalid_protocol;
14: i64 vds_flow_nat_no_rflow;
15: i64 vds_flow_action_drop;
16: i64 vds_flow_action_invalid;
17: i64 vds_flow_unusable;
18: i64 vds_flow_table_full;
19: i64 vds_interface_tx_discard;
20: i64 vds_interface_drop;
21: i64 vds_duplicated;
22: i64 vds_push;
23: i64 vds_ttl_exceeded;
24: i64 vds_invalid_nh;
25: i64 vds_invalid_label;
26: i64 vds_invalid_protocol;
27: i64 vds_interface_rx_discard;
28: i64 vds_invalid_mcast_source;
29: i64 vds_head_alloc_fail;
30: i64 vds_pcow_fail;
31: i64 vds_mcast_df_bit;
32: i64 vds_mcast_clone_fail;
33: i64 vds_no_memory;
34: i64 vds_rewrite_fail;
35: i64 vds_misc;
36: i64 vds_invalid_packet;
37: i64 vds_cksum_err;
38: i64 vds_no_fmd;
39: i64 vds_cloned_original;
40: i64 vds_invalid_vnid;
41: i64 vds_frag_err;
42: i64 vds_invalid_source;
43: i64 vds_l2_no_route;
44: i64 vds_fragment_queue_fail;
45: i64 vds_vlan_fwd_tx;
46: i64 vds_vlan_fwd_enq;
47: i64 vds_drop_new_flow;
48: i64 vds_flow_evict;
49: i64 vds_trap_original;
50: i64 vds_leaf_to_leaf;
51: i64 vds_bmac_isid_mismatch;
52: i64 vds_pkt_loop;
53: i64 vds_no_crypt_path;
}
buffer sandesh vr_qos_map_req {
1: sandesh_op h_op;
2: u16 qmr_rid;
3: u16 qmr_id;
4: list<byte> qmr_dscp;
5: list<byte> qmr_dscp_fc_id;
6: list<byte> qmr_mpls_qos;
7: list<byte> qmr_mpls_qos_fc_id;
8: list<byte> qmr_dotonep;
9: list<byte> qmr_dotonep_fc_id;
10: i16 qmr_marker;
}
buffer sandesh vr_fc_map_req {
1: sandesh_op h_op;
2: u16 fmr_rid;
3: list<i16> fmr_id;
4: list<byte> fmr_dscp;
5: list<byte> fmr_mpls_qos;
6: list<byte> fmr_dotonep;
7: list<byte> fmr_queue_id;
8: i16 fmr_marker;
}
buffer sandesh vr_flow_response {
1: flow_op fresp_op;
2: u16 fresp_rid;
3: u16 fresp_flags;
4: u32 fresp_index;
5: u32 fresp_bytes;
6: u32 fresp_packets;
7: u32 fresp_stats_oflow;
8: byte fresp_gen_id;
}
buffer sandesh vr_flow_table_data {
1: flow_op ftable_op;
2: u16 ftable_rid;
3: u32 ftable_size;
4: u16 ftable_dev;
5: string ftable_file_path;
6: u64 ftable_used_entries;
7: u64 ftable_processed;
8: u64 ftable_deleted;
9: u64 ftable_added;
10: u64 ftable_created;
11: u64 ftable_changed;
12: u32 ftable_hold_oflows;
13: u32 ftable_cpus;
14: u32 ftable_oflow_entries;
15: list<u32> ftable_hold_stat;
16: u32 ftable_burst_free_tokens;
17: u32 ftable_hold_entries;
}
buffer sandesh vr_bridge_table_data {
1: sandesh_op btable_op;
2: u16 btable_rid;
3: u32 btable_size;
4: u16 btable_dev;
5: string btable_file_path;
}
buffer sandesh vr_hugepage_config {
1: sandesh_op vhp_op;
2: list<u64> vhp_mem;
3: list<u32> vhp_msize;
4: u32 vhp_resp;
}