UNION DPNI_STATISTICS(9)
π union dpni_statistics(9) β Kernel API Manual π
okay so bestie, welcome to the glow-up of union dpni_statistics π this is a Kernel API Manual page, and it's literally the union that describes all the DPNI statistics β like the group chat where every counter comes to spill its numbers β¨
πΈ NAME πΈ
union dpni_statistics β a union describing the DPNI statistics. that's it, that's the vibe π«Ά
β¨ SYNOPSIS β¨
here's the whole struct, copied exactly, no cap β every field is iconic in its own way π
union dpni_statistics {
struct {
u64 ingress_all_frames;
u64 ingress_all_bytes;
u64 ingress_multicast_frames;
u64 ingress_multicast_bytes;
u64 ingress_broadcast_frames;
u64 ingress_broadcast_bytes;
} page_0;
struct {
u64 egress_all_frames;
u64 egress_all_bytes;
u64 egress_multicast_frames;
u64 egress_multicast_bytes;
u64 egress_broadcast_frames;
u64 egress_broadcast_bytes;
} page_1;
struct {
u64 ingress_filtered_frames;
u64 ingress_discarded_frames;
u64 ingress_nobuffer_discards;
u64 egress_discarded_frames;
u64 egress_confirmed_frames;
} page_2;
struct {
u64 egress_dequeue_bytes;
u64 egress_dequeue_frames;
u64 egress_reject_bytes;
u64 egress_reject_frames;
} page_3;
struct {
u64 cgr_reject_frames;
u64 cgr_reject_bytes;
} page_4;
struct {
u64 policer_cnt_red;
u64 policer_cnt_yellow;
u64 policer_cnt_green;
u64 policer_cnt_re_red;
u64 policer_cnt_re_yellow;
} page_5;
struct {
u64 tx_pending_frames;
} page_6;
struct {
u64 counter[DPNI_STATISTICS_CNT];
} raw;
};
π¦ Members π¦
π page_0
page_0 β the Page_0 statistics structure. she's the ingress girlie, first page energy π
page_0.ingress_all_framesβ ingress frame count, all of them, every single one πpage_0.ingress_all_bytesβ ingress byte count, the bytes are byte-ing π₯page_0.ingress_multicast_framesβ ingress multicast frame count πpage_0.ingress_multicast_bytesβ ingress multicast byte count β¨page_0.ingress_broadcast_framesβ ingress broadcast frame count π£page_0.ingress_broadcast_bytesβ ingress broadcast byte count π
π page_1
page_1 β the Page_1 statistics structure. now we're on the egress side, main character shift π«
page_1.egress_all_framesβ egress frame count πpage_1.egress_all_bytesβ egress byte count πpage_1.egress_multicast_framesβ egress multicast frame count πΈpage_1.egress_multicast_bytesβ egress multicast byte count π§page_1.egress_broadcast_framesβ egress broadcast frame count π’page_1.egress_broadcast_bytesβ egress broadcast byte count β
π page_2
page_2 β the Page_2 statistics structure. this one's the filtered/discarded lore, kind of dramatic ngl π
page_2.ingress_filtered_framesβ ingress filtered frame count π«§page_2.ingress_discarded_framesβ ingress discarded frame count πpage_2.ingress_nobuffer_discardsβ ingress discarded frame count due to lack of buffers. yeah, no buffers, tragic πpage_2.egress_discarded_framesβ egress discarded frame count πpage_2.egress_confirmed_framesβ egress confirmed frame count β
π page_3
page_3 β the Page_3 statistics structure. queue math, we love to see it π
page_3.egress_dequeue_bytesβ cumulative count of the number of bytes dequeued from egress FQs π₯page_3.egress_dequeue_framesβ cumulative count of the number of frames dequeued from egress FQs β¨page_3.egress_reject_bytesβ cumulative count of the number of bytes in egress frames whose enqueue was rejected. rejected, not accepted, moving on πpage_3.egress_reject_framesβ cumulative count of the number of egress frames whose enqueue was rejected π«
π page_4
page_4 β the Page_4 statistics structure: congestion points. congested but make it cute π¦
page_4.cgr_reject_framesβ number of rejected frames due to congestion point πpage_4.cgr_reject_bytesβ number of rejected bytes due to congestion point π΅
π page_5
page_5 β the Page_5 statistics structure: policer. traffic-light couture, honestly iconic π₯
page_5.policer_cnt_redβ number of red colored frames β€οΈpage_5.policer_cnt_yellowβ number of yellow colored frames πpage_5.policer_cnt_greenβ number of green colored frames πpage_5.policer_cnt_re_redβ number of recolored red frames π¨page_5.policer_cnt_re_yellowβ number of recolored yellow frames π
π page_6
page_6 β the Page_6 statistics structure. one field, one moment, one legend π«Ά
page_6.tx_pending_framesβ total number of frames pending in egress FQs β³
π raw
rawβ raw statistics structure, used to index counters π’ like the index of the whole friend group fr fr
π SEE ALSO π
the whole extended universe, bestie β go read these too, iykyk π
Kernel file ./drivers/net/ethernet/freescale/dpaa2/dpni.h
DPNI_MAX_TC(9), DPNI_MAX_DPBP(9), DPNI_ALL_TCS(9), DPNI_ALL_TC_FLOWS(9), DPNI_NEW_FLOW_ID(9), DPNI_OPT_TX_FRM_RELEASE(9), DPNI_OPT_NO_MAC_FILTER(9), DPNI_OPT_HAS_POLICING(9), DPNI_OPT_SHARED_CONGESTION(9), DPNI_OPT_HAS_KEY_MASKING(9), DPNI_OPT_NO_FS(9), DPNI_OPT_SHARED_FS(9), struct dpni_pools_cfg(9), struct dpni_attr(9), DPNI_ERROR_EOFHE(9), DPNI_ERROR_FLE(9), DPNI_ERROR_FPE(9), DPNI_ERROR_PHE(9), DPNI_ERROR_L3CE(9), DPNI_ERROR_L4CE(9), enum dpni_error_action(9), struct dpni_error_cfg(9), DPNI_BUF_LAYOUT_OPT_TIMESTAMP(9), DPNI_BUF_LAYOUT_OPT_PARSER_RESULT(9), DPNI_BUF_LAYOUT_OPT_FRAME_STATUS(9), DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE(9), DPNI_BUF_LAYOUT_OPT_DATA_ALIGN(9), DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM(9), DPNI_BUF_LAYOUT_OPT_DATA_TAIL_ROOM(9), struct dpni_buffer_layout(9), enum dpni_queue_type(9), enum dpni_offload(9), struct dpni_link_cfg(9), struct dpni_link_state(9), enum dpni_dist_mode(9), enum dpni_fs_miss_action(9), struct dpni_fs_tbl_cfg(9), struct dpni_rx_tc_dist_cfg(9), DPNI_FS_MISS_DROP(9), struct dpni_rx_dist_cfg(9), struct dpni_qos_tbl_cfg(9), enum dpni_dest(9), struct dpni_queue(9), struct dpni_queue_id(9), enum dpni_congestion_unit(9), enum dpni_congestion_point(9), struct dpni_dest_cfg(9), DPNI_CONG_OPT_FLOW_CONTROL(9), struct dpni_congestion_notification_cfg(9), struct dpni_taildrop(9), struct dpni_rule_cfg(9), DPNI_FS_OPT_DISCARD(9), DPNI_FS_OPT_SET_FLC(9), DPNI_FS_OPT_SET_STASH_CONTROL(9), struct dpni_fs_action_cfg(9), struct dpni_tx_shaping_cfg(9), struct dpni_single_step_cfg(9)
okay that's the whole page, you ate that π«Ά source is ./drivers/net/ethernet/freesca... and it's dated October 2026, and yes it's still union dpni_statistics(9) β bye bestie, go count some frames π
β¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms