Skip to content

Commit cd811d5

Browse files
committed
net: count IPv4 packets with options
1 parent 0a9a5a9 commit cd811d5

File tree

6 files changed

+59
-36
lines changed

6 files changed

+59
-36
lines changed

book/api/metrics-generated.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@
4949

5050
| Metric | Type | Description |
5151
|--------|------|-------------|
52-
| <span class="metrics-name">net_&#8203;rx_&#8203;pkt_&#8203;cnt</span> | counter | Packet receive count. |
52+
| <span class="metrics-name">net_&#8203;rx_&#8203;pkt_&#8203;cnt</span><br/>{pkt_&#8203;kind="<span class="metrics-enum">ip4_&#8203;udp</span>"} | counter | Packet receive count. (IPv4 UDP packet (no options)) |
53+
| <span class="metrics-name">net_&#8203;rx_&#8203;pkt_&#8203;cnt</span><br/>{pkt_&#8203;kind="<span class="metrics-enum">ip4_&#8203;opt_&#8203;udp</span>"} | counter | Packet receive count. (IPv4 UDP packet (with options)) |
5354
| <span class="metrics-name">net_&#8203;rx_&#8203;bytes_&#8203;total</span> | counter | Total number of bytes received (including Ethernet header). |
5455
| <span class="metrics-name">net_&#8203;rx_&#8203;undersz_&#8203;cnt</span> | counter | Number of incoming packets dropped due to being too small. |
5556
| <span class="metrics-name">net_&#8203;rx_&#8203;fill_&#8203;blocked_&#8203;cnt</span> | counter | Number of incoming packets dropped due to fill ring being full. |

src/disco/metrics/generated/fd_metrics_enums.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@
1919
#define FD_METRICS_ENUM_TILE_REGIME_V_PROCESSING_POSTFRAG_IDX 7
2020
#define FD_METRICS_ENUM_TILE_REGIME_V_PROCESSING_POSTFRAG_NAME "processing_postfrag"
2121

22+
#define FD_METRICS_ENUM_PKT_KIND_NAME "pkt_kind"
23+
#define FD_METRICS_ENUM_PKT_KIND_CNT (2UL)
24+
#define FD_METRICS_ENUM_PKT_KIND_V_IP4_UDP_IDX 0
25+
#define FD_METRICS_ENUM_PKT_KIND_V_IP4_UDP_NAME "ip4_udp"
26+
#define FD_METRICS_ENUM_PKT_KIND_V_IP4_OPT_UDP_IDX 1
27+
#define FD_METRICS_ENUM_PKT_KIND_V_IP4_OPT_UDP_NAME "ip4_opt_udp"
28+
2229
#define FD_METRICS_ENUM_SOCK_ERR_NAME "sock_err"
2330
#define FD_METRICS_ENUM_SOCK_ERR_CNT (6UL)
2431
#define FD_METRICS_ENUM_SOCK_ERR_V_NO_ERROR_IDX 0

src/disco/metrics/generated/fd_metrics_net.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
#include "fd_metrics_net.h"
33

44
const fd_metrics_meta_t FD_METRICS_NET[FD_METRICS_NET_TOTAL] = {
5-
DECLARE_METRIC( NET_RX_PKT_CNT, COUNTER ),
5+
DECLARE_METRIC_ENUM( NET_RX_PKT_CNT, COUNTER, PKT_KIND, IP4_UDP ),
6+
DECLARE_METRIC_ENUM( NET_RX_PKT_CNT, COUNTER, PKT_KIND, IP4_OPT_UDP ),
67
DECLARE_METRIC( NET_RX_BYTES_TOTAL, COUNTER ),
78
DECLARE_METRIC( NET_RX_UNDERSZ_CNT, COUNTER ),
89
DECLARE_METRIC( NET_RX_FILL_BLOCKED_CNT, COUNTER ),

src/disco/metrics/generated/fd_metrics_net.h

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,168 +8,172 @@
88
#define FD_METRICS_COUNTER_NET_RX_PKT_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
99
#define FD_METRICS_COUNTER_NET_RX_PKT_CNT_DESC "Packet receive count."
1010
#define FD_METRICS_COUNTER_NET_RX_PKT_CNT_CVT (FD_METRICS_CONVERTER_NONE)
11+
#define FD_METRICS_COUNTER_NET_RX_PKT_CNT_CNT (2UL)
1112

12-
#define FD_METRICS_COUNTER_NET_RX_BYTES_TOTAL_OFF (17UL)
13+
#define FD_METRICS_COUNTER_NET_RX_PKT_CNT_IP4_UDP_OFF (16UL)
14+
#define FD_METRICS_COUNTER_NET_RX_PKT_CNT_IP4_OPT_UDP_OFF (17UL)
15+
16+
#define FD_METRICS_COUNTER_NET_RX_BYTES_TOTAL_OFF (18UL)
1317
#define FD_METRICS_COUNTER_NET_RX_BYTES_TOTAL_NAME "net_rx_bytes_total"
1418
#define FD_METRICS_COUNTER_NET_RX_BYTES_TOTAL_TYPE (FD_METRICS_TYPE_COUNTER)
1519
#define FD_METRICS_COUNTER_NET_RX_BYTES_TOTAL_DESC "Total number of bytes received (including Ethernet header)."
1620
#define FD_METRICS_COUNTER_NET_RX_BYTES_TOTAL_CVT (FD_METRICS_CONVERTER_NONE)
1721

18-
#define FD_METRICS_COUNTER_NET_RX_UNDERSZ_CNT_OFF (18UL)
22+
#define FD_METRICS_COUNTER_NET_RX_UNDERSZ_CNT_OFF (19UL)
1923
#define FD_METRICS_COUNTER_NET_RX_UNDERSZ_CNT_NAME "net_rx_undersz_cnt"
2024
#define FD_METRICS_COUNTER_NET_RX_UNDERSZ_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
2125
#define FD_METRICS_COUNTER_NET_RX_UNDERSZ_CNT_DESC "Number of incoming packets dropped due to being too small."
2226
#define FD_METRICS_COUNTER_NET_RX_UNDERSZ_CNT_CVT (FD_METRICS_CONVERTER_NONE)
2327

24-
#define FD_METRICS_COUNTER_NET_RX_FILL_BLOCKED_CNT_OFF (19UL)
28+
#define FD_METRICS_COUNTER_NET_RX_FILL_BLOCKED_CNT_OFF (20UL)
2529
#define FD_METRICS_COUNTER_NET_RX_FILL_BLOCKED_CNT_NAME "net_rx_fill_blocked_cnt"
2630
#define FD_METRICS_COUNTER_NET_RX_FILL_BLOCKED_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
2731
#define FD_METRICS_COUNTER_NET_RX_FILL_BLOCKED_CNT_DESC "Number of incoming packets dropped due to fill ring being full."
2832
#define FD_METRICS_COUNTER_NET_RX_FILL_BLOCKED_CNT_CVT (FD_METRICS_CONVERTER_NONE)
2933

30-
#define FD_METRICS_COUNTER_NET_RX_BACKPRESSURE_CNT_OFF (20UL)
34+
#define FD_METRICS_COUNTER_NET_RX_BACKPRESSURE_CNT_OFF (21UL)
3135
#define FD_METRICS_COUNTER_NET_RX_BACKPRESSURE_CNT_NAME "net_rx_backpressure_cnt"
3236
#define FD_METRICS_COUNTER_NET_RX_BACKPRESSURE_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
3337
#define FD_METRICS_COUNTER_NET_RX_BACKPRESSURE_CNT_DESC "Number of incoming packets dropped due to backpressure."
3438
#define FD_METRICS_COUNTER_NET_RX_BACKPRESSURE_CNT_CVT (FD_METRICS_CONVERTER_NONE)
3539

36-
#define FD_METRICS_GAUGE_NET_RX_BUSY_CNT_OFF (21UL)
40+
#define FD_METRICS_GAUGE_NET_RX_BUSY_CNT_OFF (22UL)
3741
#define FD_METRICS_GAUGE_NET_RX_BUSY_CNT_NAME "net_rx_busy_cnt"
3842
#define FD_METRICS_GAUGE_NET_RX_BUSY_CNT_TYPE (FD_METRICS_TYPE_GAUGE)
3943
#define FD_METRICS_GAUGE_NET_RX_BUSY_CNT_DESC "Number of receive buffers currently busy."
4044
#define FD_METRICS_GAUGE_NET_RX_BUSY_CNT_CVT (FD_METRICS_CONVERTER_NONE)
4145

42-
#define FD_METRICS_GAUGE_NET_RX_IDLE_CNT_OFF (22UL)
46+
#define FD_METRICS_GAUGE_NET_RX_IDLE_CNT_OFF (23UL)
4347
#define FD_METRICS_GAUGE_NET_RX_IDLE_CNT_NAME "net_rx_idle_cnt"
4448
#define FD_METRICS_GAUGE_NET_RX_IDLE_CNT_TYPE (FD_METRICS_TYPE_GAUGE)
4549
#define FD_METRICS_GAUGE_NET_RX_IDLE_CNT_DESC "Number of receive buffers currently idle."
4650
#define FD_METRICS_GAUGE_NET_RX_IDLE_CNT_CVT (FD_METRICS_CONVERTER_NONE)
4751

48-
#define FD_METRICS_COUNTER_NET_TX_SUBMIT_CNT_OFF (23UL)
52+
#define FD_METRICS_COUNTER_NET_TX_SUBMIT_CNT_OFF (24UL)
4953
#define FD_METRICS_COUNTER_NET_TX_SUBMIT_CNT_NAME "net_tx_submit_cnt"
5054
#define FD_METRICS_COUNTER_NET_TX_SUBMIT_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
5155
#define FD_METRICS_COUNTER_NET_TX_SUBMIT_CNT_DESC "Number of packet transmit jobs submitted."
5256
#define FD_METRICS_COUNTER_NET_TX_SUBMIT_CNT_CVT (FD_METRICS_CONVERTER_NONE)
5357

54-
#define FD_METRICS_COUNTER_NET_TX_COMPLETE_CNT_OFF (24UL)
58+
#define FD_METRICS_COUNTER_NET_TX_COMPLETE_CNT_OFF (25UL)
5559
#define FD_METRICS_COUNTER_NET_TX_COMPLETE_CNT_NAME "net_tx_complete_cnt"
5660
#define FD_METRICS_COUNTER_NET_TX_COMPLETE_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
5761
#define FD_METRICS_COUNTER_NET_TX_COMPLETE_CNT_DESC "Number of packet transmit jobs marked as completed by the kernel."
5862
#define FD_METRICS_COUNTER_NET_TX_COMPLETE_CNT_CVT (FD_METRICS_CONVERTER_NONE)
5963

60-
#define FD_METRICS_COUNTER_NET_TX_BYTES_TOTAL_OFF (25UL)
64+
#define FD_METRICS_COUNTER_NET_TX_BYTES_TOTAL_OFF (26UL)
6165
#define FD_METRICS_COUNTER_NET_TX_BYTES_TOTAL_NAME "net_tx_bytes_total"
6266
#define FD_METRICS_COUNTER_NET_TX_BYTES_TOTAL_TYPE (FD_METRICS_TYPE_COUNTER)
6367
#define FD_METRICS_COUNTER_NET_TX_BYTES_TOTAL_DESC "Total number of bytes transmitted (including Ethernet header)."
6468
#define FD_METRICS_COUNTER_NET_TX_BYTES_TOTAL_CVT (FD_METRICS_CONVERTER_NONE)
6569

66-
#define FD_METRICS_COUNTER_NET_TX_ROUTE_FAIL_CNT_OFF (26UL)
70+
#define FD_METRICS_COUNTER_NET_TX_ROUTE_FAIL_CNT_OFF (27UL)
6771
#define FD_METRICS_COUNTER_NET_TX_ROUTE_FAIL_CNT_NAME "net_tx_route_fail_cnt"
6872
#define FD_METRICS_COUNTER_NET_TX_ROUTE_FAIL_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
6973
#define FD_METRICS_COUNTER_NET_TX_ROUTE_FAIL_CNT_DESC "Number of packet transmit jobs dropped due to route failure."
7074
#define FD_METRICS_COUNTER_NET_TX_ROUTE_FAIL_CNT_CVT (FD_METRICS_CONVERTER_NONE)
7175

72-
#define FD_METRICS_COUNTER_NET_TX_NEIGHBOR_FAIL_CNT_OFF (27UL)
76+
#define FD_METRICS_COUNTER_NET_TX_NEIGHBOR_FAIL_CNT_OFF (28UL)
7377
#define FD_METRICS_COUNTER_NET_TX_NEIGHBOR_FAIL_CNT_NAME "net_tx_neighbor_fail_cnt"
7478
#define FD_METRICS_COUNTER_NET_TX_NEIGHBOR_FAIL_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
7579
#define FD_METRICS_COUNTER_NET_TX_NEIGHBOR_FAIL_CNT_DESC "Number of packet transmit jobs dropped due to unresolved neighbor."
7680
#define FD_METRICS_COUNTER_NET_TX_NEIGHBOR_FAIL_CNT_CVT (FD_METRICS_CONVERTER_NONE)
7781

78-
#define FD_METRICS_COUNTER_NET_TX_FULL_FAIL_CNT_OFF (28UL)
82+
#define FD_METRICS_COUNTER_NET_TX_FULL_FAIL_CNT_OFF (29UL)
7983
#define FD_METRICS_COUNTER_NET_TX_FULL_FAIL_CNT_NAME "net_tx_full_fail_cnt"
8084
#define FD_METRICS_COUNTER_NET_TX_FULL_FAIL_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
8185
#define FD_METRICS_COUNTER_NET_TX_FULL_FAIL_CNT_DESC "Number of packet transmit jobs dropped due to XDP TX ring full or missing completions."
8286
#define FD_METRICS_COUNTER_NET_TX_FULL_FAIL_CNT_CVT (FD_METRICS_CONVERTER_NONE)
8387

84-
#define FD_METRICS_GAUGE_NET_TX_BUSY_CNT_OFF (29UL)
88+
#define FD_METRICS_GAUGE_NET_TX_BUSY_CNT_OFF (30UL)
8589
#define FD_METRICS_GAUGE_NET_TX_BUSY_CNT_NAME "net_tx_busy_cnt"
8690
#define FD_METRICS_GAUGE_NET_TX_BUSY_CNT_TYPE (FD_METRICS_TYPE_GAUGE)
8791
#define FD_METRICS_GAUGE_NET_TX_BUSY_CNT_DESC "Number of transmit buffers currently busy."
8892
#define FD_METRICS_GAUGE_NET_TX_BUSY_CNT_CVT (FD_METRICS_CONVERTER_NONE)
8993

90-
#define FD_METRICS_GAUGE_NET_TX_IDLE_CNT_OFF (30UL)
94+
#define FD_METRICS_GAUGE_NET_TX_IDLE_CNT_OFF (31UL)
9195
#define FD_METRICS_GAUGE_NET_TX_IDLE_CNT_NAME "net_tx_idle_cnt"
9296
#define FD_METRICS_GAUGE_NET_TX_IDLE_CNT_TYPE (FD_METRICS_TYPE_GAUGE)
9397
#define FD_METRICS_GAUGE_NET_TX_IDLE_CNT_DESC "Number of transmit buffers currently idle."
9498
#define FD_METRICS_GAUGE_NET_TX_IDLE_CNT_CVT (FD_METRICS_CONVERTER_NONE)
9599

96-
#define FD_METRICS_COUNTER_NET_XSK_TX_WAKEUP_CNT_OFF (31UL)
100+
#define FD_METRICS_COUNTER_NET_XSK_TX_WAKEUP_CNT_OFF (32UL)
97101
#define FD_METRICS_COUNTER_NET_XSK_TX_WAKEUP_CNT_NAME "net_xsk_tx_wakeup_cnt"
98102
#define FD_METRICS_COUNTER_NET_XSK_TX_WAKEUP_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
99103
#define FD_METRICS_COUNTER_NET_XSK_TX_WAKEUP_CNT_DESC "Number of XSK sendto syscalls dispatched."
100104
#define FD_METRICS_COUNTER_NET_XSK_TX_WAKEUP_CNT_CVT (FD_METRICS_CONVERTER_NONE)
101105

102-
#define FD_METRICS_COUNTER_NET_XSK_RX_WAKEUP_CNT_OFF (32UL)
106+
#define FD_METRICS_COUNTER_NET_XSK_RX_WAKEUP_CNT_OFF (33UL)
103107
#define FD_METRICS_COUNTER_NET_XSK_RX_WAKEUP_CNT_NAME "net_xsk_rx_wakeup_cnt"
104108
#define FD_METRICS_COUNTER_NET_XSK_RX_WAKEUP_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
105109
#define FD_METRICS_COUNTER_NET_XSK_RX_WAKEUP_CNT_DESC "Number of XSK recvmsg syscalls dispatched."
106110
#define FD_METRICS_COUNTER_NET_XSK_RX_WAKEUP_CNT_CVT (FD_METRICS_CONVERTER_NONE)
107111

108-
#define FD_METRICS_COUNTER_NET_XDP_RX_DROPPED_OTHER_OFF (33UL)
112+
#define FD_METRICS_COUNTER_NET_XDP_RX_DROPPED_OTHER_OFF (34UL)
109113
#define FD_METRICS_COUNTER_NET_XDP_RX_DROPPED_OTHER_NAME "net_xdp_rx_dropped_other"
110114
#define FD_METRICS_COUNTER_NET_XDP_RX_DROPPED_OTHER_TYPE (FD_METRICS_TYPE_COUNTER)
111115
#define FD_METRICS_COUNTER_NET_XDP_RX_DROPPED_OTHER_DESC "xdp_statistics_v0.rx_dropped: Dropped for other reasons"
112116
#define FD_METRICS_COUNTER_NET_XDP_RX_DROPPED_OTHER_CVT (FD_METRICS_CONVERTER_NONE)
113117

114-
#define FD_METRICS_COUNTER_NET_XDP_RX_INVALID_DESCS_OFF (34UL)
118+
#define FD_METRICS_COUNTER_NET_XDP_RX_INVALID_DESCS_OFF (35UL)
115119
#define FD_METRICS_COUNTER_NET_XDP_RX_INVALID_DESCS_NAME "net_xdp_rx_invalid_descs"
116120
#define FD_METRICS_COUNTER_NET_XDP_RX_INVALID_DESCS_TYPE (FD_METRICS_TYPE_COUNTER)
117121
#define FD_METRICS_COUNTER_NET_XDP_RX_INVALID_DESCS_DESC "xdp_statistics_v0.rx_invalid_descs: Dropped due to invalid descriptor"
118122
#define FD_METRICS_COUNTER_NET_XDP_RX_INVALID_DESCS_CVT (FD_METRICS_CONVERTER_NONE)
119123

120-
#define FD_METRICS_COUNTER_NET_XDP_TX_INVALID_DESCS_OFF (35UL)
124+
#define FD_METRICS_COUNTER_NET_XDP_TX_INVALID_DESCS_OFF (36UL)
121125
#define FD_METRICS_COUNTER_NET_XDP_TX_INVALID_DESCS_NAME "net_xdp_tx_invalid_descs"
122126
#define FD_METRICS_COUNTER_NET_XDP_TX_INVALID_DESCS_TYPE (FD_METRICS_TYPE_COUNTER)
123127
#define FD_METRICS_COUNTER_NET_XDP_TX_INVALID_DESCS_DESC "xdp_statistics_v0.tx_invalid_descs: Dropped due to invalid descriptor"
124128
#define FD_METRICS_COUNTER_NET_XDP_TX_INVALID_DESCS_CVT (FD_METRICS_CONVERTER_NONE)
125129

126-
#define FD_METRICS_COUNTER_NET_XDP_RX_RING_FULL_OFF (36UL)
130+
#define FD_METRICS_COUNTER_NET_XDP_RX_RING_FULL_OFF (37UL)
127131
#define FD_METRICS_COUNTER_NET_XDP_RX_RING_FULL_NAME "net_xdp_rx_ring_full"
128132
#define FD_METRICS_COUNTER_NET_XDP_RX_RING_FULL_TYPE (FD_METRICS_TYPE_COUNTER)
129133
#define FD_METRICS_COUNTER_NET_XDP_RX_RING_FULL_DESC "xdp_statistics_v1.rx_ring_full: Dropped due to rx ring being full"
130134
#define FD_METRICS_COUNTER_NET_XDP_RX_RING_FULL_CVT (FD_METRICS_CONVERTER_NONE)
131135

132-
#define FD_METRICS_COUNTER_NET_XDP_RX_FILL_RING_EMPTY_DESCS_OFF (37UL)
136+
#define FD_METRICS_COUNTER_NET_XDP_RX_FILL_RING_EMPTY_DESCS_OFF (38UL)
133137
#define FD_METRICS_COUNTER_NET_XDP_RX_FILL_RING_EMPTY_DESCS_NAME "net_xdp_rx_fill_ring_empty_descs"
134138
#define FD_METRICS_COUNTER_NET_XDP_RX_FILL_RING_EMPTY_DESCS_TYPE (FD_METRICS_TYPE_COUNTER)
135139
#define FD_METRICS_COUNTER_NET_XDP_RX_FILL_RING_EMPTY_DESCS_DESC "xdp_statistics_v1.rx_fill_ring_empty_descs: Failed to retrieve item from fill ring"
136140
#define FD_METRICS_COUNTER_NET_XDP_RX_FILL_RING_EMPTY_DESCS_CVT (FD_METRICS_CONVERTER_NONE)
137141

138-
#define FD_METRICS_COUNTER_NET_XDP_TX_RING_EMPTY_DESCS_OFF (38UL)
142+
#define FD_METRICS_COUNTER_NET_XDP_TX_RING_EMPTY_DESCS_OFF (39UL)
139143
#define FD_METRICS_COUNTER_NET_XDP_TX_RING_EMPTY_DESCS_NAME "net_xdp_tx_ring_empty_descs"
140144
#define FD_METRICS_COUNTER_NET_XDP_TX_RING_EMPTY_DESCS_TYPE (FD_METRICS_TYPE_COUNTER)
141145
#define FD_METRICS_COUNTER_NET_XDP_TX_RING_EMPTY_DESCS_DESC "xdp_statistics_v1.tx_ring_empty_descs: Failed to retrieve item from tx ring"
142146
#define FD_METRICS_COUNTER_NET_XDP_TX_RING_EMPTY_DESCS_CVT (FD_METRICS_CONVERTER_NONE)
143147

144-
#define FD_METRICS_COUNTER_NET_RX_GRE_CNT_OFF (39UL)
148+
#define FD_METRICS_COUNTER_NET_RX_GRE_CNT_OFF (40UL)
145149
#define FD_METRICS_COUNTER_NET_RX_GRE_CNT_NAME "net_rx_gre_cnt"
146150
#define FD_METRICS_COUNTER_NET_RX_GRE_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
147151
#define FD_METRICS_COUNTER_NET_RX_GRE_CNT_DESC "Number of valid GRE packets received"
148152
#define FD_METRICS_COUNTER_NET_RX_GRE_CNT_CVT (FD_METRICS_CONVERTER_NONE)
149153

150-
#define FD_METRICS_COUNTER_NET_RX_GRE_INVALID_CNT_OFF (40UL)
154+
#define FD_METRICS_COUNTER_NET_RX_GRE_INVALID_CNT_OFF (41UL)
151155
#define FD_METRICS_COUNTER_NET_RX_GRE_INVALID_CNT_NAME "net_rx_gre_invalid_cnt"
152156
#define FD_METRICS_COUNTER_NET_RX_GRE_INVALID_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
153157
#define FD_METRICS_COUNTER_NET_RX_GRE_INVALID_CNT_DESC "Number of invalid GRE packets received"
154158
#define FD_METRICS_COUNTER_NET_RX_GRE_INVALID_CNT_CVT (FD_METRICS_CONVERTER_NONE)
155159

156-
#define FD_METRICS_COUNTER_NET_RX_GRE_IGNORED_CNT_OFF (41UL)
160+
#define FD_METRICS_COUNTER_NET_RX_GRE_IGNORED_CNT_OFF (42UL)
157161
#define FD_METRICS_COUNTER_NET_RX_GRE_IGNORED_CNT_NAME "net_rx_gre_ignored_cnt"
158162
#define FD_METRICS_COUNTER_NET_RX_GRE_IGNORED_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
159163
#define FD_METRICS_COUNTER_NET_RX_GRE_IGNORED_CNT_DESC "Number of received but ignored GRE packets"
160164
#define FD_METRICS_COUNTER_NET_RX_GRE_IGNORED_CNT_CVT (FD_METRICS_CONVERTER_NONE)
161165

162-
#define FD_METRICS_COUNTER_NET_TX_GRE_CNT_OFF (42UL)
166+
#define FD_METRICS_COUNTER_NET_TX_GRE_CNT_OFF (43UL)
163167
#define FD_METRICS_COUNTER_NET_TX_GRE_CNT_NAME "net_tx_gre_cnt"
164168
#define FD_METRICS_COUNTER_NET_TX_GRE_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
165169
#define FD_METRICS_COUNTER_NET_TX_GRE_CNT_DESC "Number of GRE packet transmit jobs submitted"
166170
#define FD_METRICS_COUNTER_NET_TX_GRE_CNT_CVT (FD_METRICS_CONVERTER_NONE)
167171

168-
#define FD_METRICS_COUNTER_NET_TX_GRE_ROUTE_FAIL_CNT_OFF (43UL)
172+
#define FD_METRICS_COUNTER_NET_TX_GRE_ROUTE_FAIL_CNT_OFF (44UL)
169173
#define FD_METRICS_COUNTER_NET_TX_GRE_ROUTE_FAIL_CNT_NAME "net_tx_gre_route_fail_cnt"
170174
#define FD_METRICS_COUNTER_NET_TX_GRE_ROUTE_FAIL_CNT_TYPE (FD_METRICS_TYPE_COUNTER)
171175
#define FD_METRICS_COUNTER_NET_TX_GRE_ROUTE_FAIL_CNT_DESC "Number of GRE packets transmit jobs dropped due to route failure"
172176
#define FD_METRICS_COUNTER_NET_TX_GRE_ROUTE_FAIL_CNT_CVT (FD_METRICS_CONVERTER_NONE)
173177

174-
#define FD_METRICS_NET_TOTAL (28UL)
178+
#define FD_METRICS_NET_TOTAL (29UL)
175179
extern const fd_metrics_meta_t FD_METRICS_NET[FD_METRICS_NET_TOTAL];

src/disco/metrics/metrics.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,13 @@ metric introduced.
5151
<counter name="RegimeDurationNanos" enum="TileRegime" converter="nanoseconds" summary="Mutually exclusive and exhaustive duration of time the tile spent in each of the regimes." />
5252
</common>
5353

54+
<enum name="PktKind">
55+
<int value="0" name="Ip4Udp" label="IPv4 UDP packet (no options)" />
56+
<int value="1" name="Ip4OptUdp" label="IPv4 UDP packet (with options)" />
57+
</enum>
58+
5459
<tile name="net">
55-
<counter name="RxPktCnt" summary="Packet receive count." />
60+
<counter name="RxPktCnt" enum="PktKind" summary="Packet receive count (ignoring tunnels)" />
5661
<counter name="RxBytesTotal" summary="Total number of bytes received (including Ethernet header)." />
5762
<counter name="RxUnderszCnt" summary="Number of incoming packets dropped due to being too small." />
5863
<counter name="RxFillBlockedCnt" summary="Number of incoming packets dropped due to fill ring being full." />

src/disco/net/xdp/fd_xdp_tile.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,8 @@ typedef struct {
258258
int has_gre_interface; /* enable GRE support? */
259259

260260
struct {
261-
ulong rx_pkt_cnt;
261+
ulong rx_pkt_cnt_ip4_udp;
262+
ulong rx_pkt_cnt_ip4_opt_udp;
262263
ulong rx_bytes_total;
263264
ulong rx_undersz_cnt;
264265
ulong rx_fill_blocked_cnt;
@@ -303,7 +304,8 @@ scratch_footprint( fd_topo_tile_t const * tile ) {
303304

304305
static void
305306
metrics_write( fd_net_ctx_t * ctx ) {
306-
FD_MCNT_SET( NET, RX_PKT_CNT, ctx->metrics.rx_pkt_cnt );
307+
FD_MCNT_SET( NET, RX_PKT_CNT_IP4_UDP, ctx->metrics.rx_pkt_cnt_ip4_udp );
308+
FD_MCNT_SET( NET, RX_PKT_CNT_IP4_OPT_UDP, ctx->metrics.rx_pkt_cnt_ip4_opt_udp );
307309
FD_MCNT_SET( NET, RX_BYTES_TOTAL, ctx->metrics.rx_bytes_total );
308310
FD_MCNT_SET( NET, RX_UNDERSZ_CNT, ctx->metrics.rx_undersz_cnt );
309311
FD_MCNT_SET( NET, RX_FILL_BLOCKED_CNT, ctx->metrics.rx_fill_blocked_cnt );
@@ -955,8 +957,8 @@ net_rx_packet( fd_net_ctx_t * ctx,
955957
( iphdr->protocol!=FD_IP4_HDR_PROTOCOL_UDP ) ) ) return;
956958

957959
/* IPv4 is variable-length, so lookup IHL to find start of UDP */
958-
uint iplen = FD_IP4_GET_LEN( *iphdr );
959-
uchar const * udp = (uchar *)iphdr + iplen;
960+
uint iplen = FD_IP4_GET_LEN( *iphdr );
961+
uchar const * udp = (uchar *)iphdr + iplen;
960962

961963
if( FD_UNLIKELY( udp+sizeof(fd_udp_hdr_t) > packet_end ) ) {
962964
FD_DTRACE_PROBE( net_tile_err_rx_undersz );
@@ -1013,7 +1015,10 @@ net_rx_packet( fd_net_ctx_t * ctx,
10131015
out->seq = fd_seq_inc( out->seq, 1UL );
10141016

10151017
if( is_packet_gre ) ctx->metrics.rx_gre_cnt++;
1016-
ctx->metrics.rx_pkt_cnt++;
1018+
ulong * rx_metric = iplen==sizeof(fd_ip4_hdr_t) ?
1019+
&ctx->metrics.rx_pkt_cnt_ip4_udp :
1020+
&ctx->metrics.rx_pkt_cnt_ip4_opt_udp;
1021+
(*rx_metric)++;
10171022
ctx->metrics.rx_bytes_total += sz;
10181023
}
10191024

0 commit comments

Comments
 (0)