cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

netcnt_common.h (910B)


      1// SPDX-License-Identifier: GPL-2.0
      2#ifndef __NETCNT_COMMON_H
      3#define __NETCNT_COMMON_H
      4
      5#include <linux/types.h>
      6
      7#define MAX_PERCPU_PACKETS 32
      8
      9/* sizeof(struct bpf_local_storage_elem):
     10 *
     11 * It really is about 128 bytes on x86_64, but allocate more to account for
     12 * 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		256
     16
     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			32768
     22
     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#endif