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

rmnet_config.h (1897B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/* Copyright (c) 2013-2014, 2016-2018, 2021 The Linux Foundation.
      3 * All rights reserved.
      4 *
      5 * RMNET Data configuration engine
      6 */
      7
      8#include <linux/skbuff.h>
      9#include <net/gro_cells.h>
     10
     11#ifndef _RMNET_CONFIG_H_
     12#define _RMNET_CONFIG_H_
     13
     14#define RMNET_MAX_LOGICAL_EP 255
     15
     16struct rmnet_endpoint {
     17	u8 mux_id;
     18	struct net_device *egress_dev;
     19	struct hlist_node hlnode;
     20};
     21
     22/* One instance of this structure is instantiated for each real_dev associated
     23 * with rmnet.
     24 */
     25struct rmnet_port {
     26	struct net_device *dev;
     27	u32 data_format;
     28	u8 nr_rmnet_devs;
     29	u8 rmnet_mode;
     30	struct hlist_head muxed_ep[RMNET_MAX_LOGICAL_EP];
     31	struct net_device *bridge_ep;
     32	struct net_device *rmnet_dev;
     33};
     34
     35extern struct rtnl_link_ops rmnet_link_ops;
     36
     37struct rmnet_vnd_stats {
     38	u64 rx_pkts;
     39	u64 rx_bytes;
     40	u64 tx_pkts;
     41	u64 tx_bytes;
     42	u32 tx_drops;
     43};
     44
     45struct rmnet_pcpu_stats {
     46	struct rmnet_vnd_stats stats;
     47	struct u64_stats_sync syncp;
     48};
     49
     50struct rmnet_priv_stats {
     51	u64 csum_ok;
     52	u64 csum_ip4_header_bad;
     53	u64 csum_valid_unset;
     54	u64 csum_validation_failed;
     55	u64 csum_err_bad_buffer;
     56	u64 csum_err_invalid_ip_version;
     57	u64 csum_err_invalid_transport;
     58	u64 csum_fragmented_pkt;
     59	u64 csum_skipped;
     60	u64 csum_sw;
     61	u64 csum_hw;
     62};
     63
     64struct rmnet_priv {
     65	u8 mux_id;
     66	struct net_device *real_dev;
     67	struct rmnet_pcpu_stats __percpu *pcpu_stats;
     68	struct gro_cells gro_cells;
     69	struct rmnet_priv_stats stats;
     70};
     71
     72struct rmnet_port *rmnet_get_port_rcu(struct net_device *real_dev);
     73struct rmnet_endpoint *rmnet_get_endpoint(struct rmnet_port *port, u8 mux_id);
     74int rmnet_add_bridge(struct net_device *rmnet_dev,
     75		     struct net_device *slave_dev,
     76		     struct netlink_ext_ack *extack);
     77int rmnet_del_bridge(struct net_device *rmnet_dev,
     78		     struct net_device *slave_dev);
     79struct rmnet_port*
     80rmnet_get_port_rtnl(const struct net_device *real_dev);
     81#endif /* _RMNET_CONFIG_H_ */