Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  * Copyright (c) 2008, Intel Corporation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  * Author: Lucy Liu <lucy.liu@intel.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) #ifndef __NET_DCBNL_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #define __NET_DCBNL_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) #include <linux/dcbnl.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) struct dcb_app_type {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 	int	ifindex;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 	struct dcb_app	  app;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 	struct list_head  list;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 	u8	dcbx;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) int dcb_setapp(struct net_device *, struct dcb_app *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) u8 dcb_getapp(struct net_device *, struct dcb_app *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) int dcb_ieee_setapp(struct net_device *, struct dcb_app *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) int dcb_ieee_delapp(struct net_device *, struct dcb_app *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) u8 dcb_ieee_getapp_mask(struct net_device *, struct dcb_app *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) struct dcb_ieee_app_prio_map {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 	u64 map[IEEE_8021QAZ_MAX_TCS];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) void dcb_ieee_getapp_prio_dscp_mask_map(const struct net_device *dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 					struct dcb_ieee_app_prio_map *p_map);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) struct dcb_ieee_app_dscp_map {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 	u8 map[64];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) void dcb_ieee_getapp_dscp_prio_mask_map(const struct net_device *dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 					struct dcb_ieee_app_dscp_map *p_map);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) u8 dcb_ieee_getapp_default_prio_mask(const struct net_device *dev);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) int dcbnl_ieee_notify(struct net_device *dev, int event, int cmd,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 		      u32 seq, u32 pid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) int dcbnl_cee_notify(struct net_device *dev, int event, int cmd,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 		     u32 seq, u32 pid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)  * Ops struct for the netlink callbacks.  Used by DCB-enabled drivers through
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)  * the netdevice struct.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) struct dcbnl_rtnl_ops {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	/* IEEE 802.1Qaz std */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	int (*ieee_getets) (struct net_device *, struct ieee_ets *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	int (*ieee_setets) (struct net_device *, struct ieee_ets *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	int (*ieee_getmaxrate) (struct net_device *, struct ieee_maxrate *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 	int (*ieee_setmaxrate) (struct net_device *, struct ieee_maxrate *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	int (*ieee_getqcn) (struct net_device *, struct ieee_qcn *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	int (*ieee_setqcn) (struct net_device *, struct ieee_qcn *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	int (*ieee_getqcnstats) (struct net_device *, struct ieee_qcn_stats *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	int (*ieee_getpfc) (struct net_device *, struct ieee_pfc *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 	int (*ieee_setpfc) (struct net_device *, struct ieee_pfc *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	int (*ieee_getapp) (struct net_device *, struct dcb_app *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	int (*ieee_setapp) (struct net_device *, struct dcb_app *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	int (*ieee_delapp) (struct net_device *, struct dcb_app *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	int (*ieee_peer_getets) (struct net_device *, struct ieee_ets *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	int (*ieee_peer_getpfc) (struct net_device *, struct ieee_pfc *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	/* CEE std */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	u8   (*getstate)(struct net_device *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	u8   (*setstate)(struct net_device *, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	void (*getpermhwaddr)(struct net_device *, u8 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	void (*setpgtccfgtx)(struct net_device *, int, u8, u8, u8, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	void (*setpgbwgcfgtx)(struct net_device *, int, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	void (*setpgtccfgrx)(struct net_device *, int, u8, u8, u8, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	void (*setpgbwgcfgrx)(struct net_device *, int, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	void (*getpgtccfgtx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	void (*getpgbwgcfgtx)(struct net_device *, int, u8 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	void (*getpgtccfgrx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	void (*getpgbwgcfgrx)(struct net_device *, int, u8 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	void (*setpfccfg)(struct net_device *, int, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	void (*getpfccfg)(struct net_device *, int, u8 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	u8   (*setall)(struct net_device *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	u8   (*getcap)(struct net_device *, int, u8 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	int  (*getnumtcs)(struct net_device *, int, u8 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	int  (*setnumtcs)(struct net_device *, int, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	u8   (*getpfcstate)(struct net_device *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	void (*setpfcstate)(struct net_device *, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	void (*getbcncfg)(struct net_device *, int, u32 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	void (*setbcncfg)(struct net_device *, int, u32);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	void (*getbcnrp)(struct net_device *, int, u8 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	void (*setbcnrp)(struct net_device *, int, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	int  (*setapp)(struct net_device *, u8, u16, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	int  (*getapp)(struct net_device *, u8, u16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	u8   (*getfeatcfg)(struct net_device *, int, u8 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	u8   (*setfeatcfg)(struct net_device *, int, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	/* DCBX configuration */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	u8   (*getdcbx)(struct net_device *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	u8   (*setdcbx)(struct net_device *, u8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	/* peer apps */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	int (*peer_getappinfo)(struct net_device *, struct dcb_peer_app_info *,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 			       u16 *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	int (*peer_getapptable)(struct net_device *, struct dcb_app *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	/* CEE peer */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 	int (*cee_peer_getpg) (struct net_device *, struct cee_pg *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	int (*cee_peer_getpfc) (struct net_device *, struct cee_pfc *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	/* buffer settings */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	int (*dcbnl_getbuffer)(struct net_device *, struct dcbnl_buffer *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	int (*dcbnl_setbuffer)(struct net_device *, struct dcbnl_buffer *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) #endif /* __NET_DCBNL_H__ */