mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-29 23:53:32 +00:00
ethtool: add IPv6 to the NFC API
Signed-off-by: Edward Cree <ecree@solarflare.com> Reviewed-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
84e7f67aac
commit
72bb68721f
1 changed files with 64 additions and 6 deletions
|
@ -748,6 +748,56 @@ struct ethtool_usrip4_spec {
|
|||
__u8 proto;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ethtool_tcpip6_spec - flow specification for TCP/IPv6 etc.
|
||||
* @ip6src: Source host
|
||||
* @ip6dst: Destination host
|
||||
* @psrc: Source port
|
||||
* @pdst: Destination port
|
||||
* @tclass: Traffic Class
|
||||
*
|
||||
* This can be used to specify a TCP/IPv6, UDP/IPv6 or SCTP/IPv6 flow.
|
||||
*/
|
||||
struct ethtool_tcpip6_spec {
|
||||
__be32 ip6src[4];
|
||||
__be32 ip6dst[4];
|
||||
__be16 psrc;
|
||||
__be16 pdst;
|
||||
__u8 tclass;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ethtool_ah_espip6_spec - flow specification for IPsec/IPv6
|
||||
* @ip6src: Source host
|
||||
* @ip6dst: Destination host
|
||||
* @spi: Security parameters index
|
||||
* @tclass: Traffic Class
|
||||
*
|
||||
* This can be used to specify an IPsec transport or tunnel over IPv6.
|
||||
*/
|
||||
struct ethtool_ah_espip6_spec {
|
||||
__be32 ip6src[4];
|
||||
__be32 ip6dst[4];
|
||||
__be32 spi;
|
||||
__u8 tclass;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ethtool_usrip6_spec - general flow specification for IPv6
|
||||
* @ip6src: Source host
|
||||
* @ip6dst: Destination host
|
||||
* @l4_4_bytes: First 4 bytes of transport (layer 4) header
|
||||
* @tclass: Traffic Class
|
||||
* @l4_proto: Transport protocol number (nexthdr after any Extension Headers)
|
||||
*/
|
||||
struct ethtool_usrip6_spec {
|
||||
__be32 ip6src[4];
|
||||
__be32 ip6dst[4];
|
||||
__be32 l4_4_bytes;
|
||||
__u8 tclass;
|
||||
__u8 l4_proto;
|
||||
};
|
||||
|
||||
union ethtool_flow_union {
|
||||
struct ethtool_tcpip4_spec tcp_ip4_spec;
|
||||
struct ethtool_tcpip4_spec udp_ip4_spec;
|
||||
|
@ -755,6 +805,12 @@ union ethtool_flow_union {
|
|||
struct ethtool_ah_espip4_spec ah_ip4_spec;
|
||||
struct ethtool_ah_espip4_spec esp_ip4_spec;
|
||||
struct ethtool_usrip4_spec usr_ip4_spec;
|
||||
struct ethtool_tcpip6_spec tcp_ip6_spec;
|
||||
struct ethtool_tcpip6_spec udp_ip6_spec;
|
||||
struct ethtool_tcpip6_spec sctp_ip6_spec;
|
||||
struct ethtool_ah_espip6_spec ah_ip6_spec;
|
||||
struct ethtool_ah_espip6_spec esp_ip6_spec;
|
||||
struct ethtool_usrip6_spec usr_ip6_spec;
|
||||
struct ethhdr ether_spec;
|
||||
__u8 hdata[52];
|
||||
};
|
||||
|
@ -1401,15 +1457,17 @@ static inline int ethtool_validate_duplex(__u8 duplex)
|
|||
#define UDP_V4_FLOW 0x02 /* hash or spec (udp_ip4_spec) */
|
||||
#define SCTP_V4_FLOW 0x03 /* hash or spec (sctp_ip4_spec) */
|
||||
#define AH_ESP_V4_FLOW 0x04 /* hash only */
|
||||
#define TCP_V6_FLOW 0x05 /* hash only */
|
||||
#define UDP_V6_FLOW 0x06 /* hash only */
|
||||
#define SCTP_V6_FLOW 0x07 /* hash only */
|
||||
#define TCP_V6_FLOW 0x05 /* hash or spec (tcp_ip6_spec; nfc only) */
|
||||
#define UDP_V6_FLOW 0x06 /* hash or spec (udp_ip6_spec; nfc only) */
|
||||
#define SCTP_V6_FLOW 0x07 /* hash or spec (sctp_ip6_spec; nfc only) */
|
||||
#define AH_ESP_V6_FLOW 0x08 /* hash only */
|
||||
#define AH_V4_FLOW 0x09 /* hash or spec (ah_ip4_spec) */
|
||||
#define ESP_V4_FLOW 0x0a /* hash or spec (esp_ip4_spec) */
|
||||
#define AH_V6_FLOW 0x0b /* hash only */
|
||||
#define ESP_V6_FLOW 0x0c /* hash only */
|
||||
#define IP_USER_FLOW 0x0d /* spec only (usr_ip4_spec) */
|
||||
#define AH_V6_FLOW 0x0b /* hash or spec (ah_ip6_spec; nfc only) */
|
||||
#define ESP_V6_FLOW 0x0c /* hash or spec (esp_ip6_spec; nfc only) */
|
||||
#define IPV4_USER_FLOW 0x0d /* spec only (usr_ip4_spec) */
|
||||
#define IP_USER_FLOW IPV4_USER_FLOW
|
||||
#define IPV6_USER_FLOW 0x0e /* spec only (usr_ip6_spec; nfc only) */
|
||||
#define IPV4_FLOW 0x10 /* hash only */
|
||||
#define IPV6_FLOW 0x11 /* hash only */
|
||||
#define ETHER_FLOW 0x12 /* spec only (ether_spec) */
|
||||
|
|
Loading…
Reference in a new issue