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

psample.h (1083B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __NET_PSAMPLE_H
      3#define __NET_PSAMPLE_H
      4
      5#include <uapi/linux/psample.h>
      6#include <linux/list.h>
      7
      8struct psample_group {
      9	struct list_head list;
     10	struct net *net;
     11	u32 group_num;
     12	u32 refcount;
     13	u32 seq;
     14	struct rcu_head rcu;
     15};
     16
     17struct psample_metadata {
     18	u32 trunc_size;
     19	int in_ifindex;
     20	int out_ifindex;
     21	u16 out_tc;
     22	u64 out_tc_occ;	/* bytes */
     23	u64 latency;	/* nanoseconds */
     24	u8 out_tc_valid:1,
     25	   out_tc_occ_valid:1,
     26	   latency_valid:1,
     27	   unused:5;
     28};
     29
     30struct psample_group *psample_group_get(struct net *net, u32 group_num);
     31void psample_group_take(struct psample_group *group);
     32void psample_group_put(struct psample_group *group);
     33
     34struct sk_buff;
     35
     36#if IS_ENABLED(CONFIG_PSAMPLE)
     37
     38void psample_sample_packet(struct psample_group *group, struct sk_buff *skb,
     39			   u32 sample_rate, const struct psample_metadata *md);
     40
     41#else
     42
     43static inline void psample_sample_packet(struct psample_group *group,
     44					 struct sk_buff *skb, u32 sample_rate,
     45					 const struct psample_metadata *md)
     46{
     47}
     48
     49#endif
     50
     51#endif /* __NET_PSAMPLE_H */