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

hinic_rx.h (1169B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Huawei HiNIC PCI Express Linux driver
      4 * Copyright(c) 2017 Huawei Technologies Co., Ltd
      5 */
      6
      7#ifndef HINIC_RX_H
      8#define HINIC_RX_H
      9
     10#include <linux/types.h>
     11#include <linux/netdevice.h>
     12#include <linux/u64_stats_sync.h>
     13#include <linux/interrupt.h>
     14
     15#include "hinic_hw_qp.h"
     16
     17#define HINIC_RX_CSUM_OFFLOAD_EN	0xFFF
     18#define HINIC_RX_CSUM_HW_CHECK_NONE	BIT(7)
     19#define HINIC_RX_CSUM_IPSU_OTHER_ERR	BIT(8)
     20
     21struct hinic_rxq_stats {
     22	u64                     pkts;
     23	u64                     bytes;
     24	u64			errors;
     25	u64			csum_errors;
     26	u64			other_errors;
     27	u64			alloc_skb_err;
     28	struct u64_stats_sync   syncp;
     29};
     30
     31struct hinic_rxq {
     32	struct net_device       *netdev;
     33	struct hinic_rq         *rq;
     34
     35	struct hinic_rxq_stats  rxq_stats;
     36
     37	char                    *irq_name;
     38	u16			buf_len;
     39	u32			rx_buff_shift;
     40
     41	struct napi_struct      napi;
     42};
     43
     44void hinic_rxq_clean_stats(struct hinic_rxq *rxq);
     45
     46void hinic_rxq_get_stats(struct hinic_rxq *rxq, struct hinic_rxq_stats *stats);
     47
     48int hinic_init_rxq(struct hinic_rxq *rxq, struct hinic_rq *rq,
     49		   struct net_device *netdev);
     50
     51void hinic_clean_rxq(struct hinic_rxq *rxq);
     52
     53#endif