brintos

brintos / linux-shallow public Read only

0
0
Text · 926 B · 2d4a58e Raw
45 lines · c
1// SPDX-License-Identifier: GPL-2.02#ifndef __NETCNT_COMMON_H3#define __NETCNT_COMMON_H4 5#include <linux/types.h>6 7#define MAX_PERCPU_PACKETS 328 9/* sizeof(struct bpf_local_storage_elem):10 *11 * It is about 128 bytes on x86_64 and 512 bytes on s390x, but allocate more to12 * account for possible layout changes, different architectures, etc.13 * The kernel will wrap up to PAGE_SIZE internally anyway.14 */15#define SIZEOF_BPF_LOCAL_STORAGE_ELEM		76816 17/* Try to estimate kernel's BPF_LOCAL_STORAGE_MAX_VALUE_SIZE: */18#define BPF_LOCAL_STORAGE_MAX_VALUE_SIZE	(0xFFFF - \19						 SIZEOF_BPF_LOCAL_STORAGE_ELEM)20 21#define PCPU_MIN_UNIT_SIZE			3276822 23union percpu_net_cnt {24	struct {25		__u64 packets;26		__u64 bytes;27 28		__u64 prev_ts;29 30		__u64 prev_packets;31		__u64 prev_bytes;32	};33	__u8 data[PCPU_MIN_UNIT_SIZE];34};35 36union net_cnt {37	struct {38		__u64 packets;39		__u64 bytes;40	};41	__u8 data[BPF_LOCAL_STORAGE_MAX_VALUE_SIZE];42};43 44#endif45