Lines Matching refs:rule
811 struct ethtool_rx_flow_spec *rule, in efx_ethtool_get_class_rule() argument
814 struct ethtool_tcpip4_spec *ip_entry = &rule->h_u.tcp_ip4_spec; in efx_ethtool_get_class_rule()
815 struct ethtool_tcpip4_spec *ip_mask = &rule->m_u.tcp_ip4_spec; in efx_ethtool_get_class_rule()
816 struct ethtool_usrip4_spec *uip_entry = &rule->h_u.usr_ip4_spec; in efx_ethtool_get_class_rule()
817 struct ethtool_usrip4_spec *uip_mask = &rule->m_u.usr_ip4_spec; in efx_ethtool_get_class_rule()
818 struct ethtool_tcpip6_spec *ip6_entry = &rule->h_u.tcp_ip6_spec; in efx_ethtool_get_class_rule()
819 struct ethtool_tcpip6_spec *ip6_mask = &rule->m_u.tcp_ip6_spec; in efx_ethtool_get_class_rule()
820 struct ethtool_usrip6_spec *uip6_entry = &rule->h_u.usr_ip6_spec; in efx_ethtool_get_class_rule()
821 struct ethtool_usrip6_spec *uip6_mask = &rule->m_u.usr_ip6_spec; in efx_ethtool_get_class_rule()
822 struct ethhdr *mac_entry = &rule->h_u.ether_spec; in efx_ethtool_get_class_rule()
823 struct ethhdr *mac_mask = &rule->m_u.ether_spec; in efx_ethtool_get_class_rule()
828 rule->location, &spec); in efx_ethtool_get_class_rule()
833 rule->ring_cookie = RX_CLS_FLOW_DISC; in efx_ethtool_get_class_rule()
835 rule->ring_cookie = spec.dmaq_id; in efx_ethtool_get_class_rule()
846 rule->flow_type = ((spec.ip_proto == IPPROTO_TCP) ? in efx_ethtool_get_class_rule()
873 rule->flow_type = ((spec.ip_proto == IPPROTO_TCP) ? in efx_ethtool_get_class_rule()
897 rule->flow_type = ETHER_FLOW; in efx_ethtool_get_class_rule()
921 rule->flow_type = IPV4_USER_FLOW; in efx_ethtool_get_class_rule()
941 rule->flow_type = IPV6_USER_FLOW; in efx_ethtool_get_class_rule()
963 rule->flow_type |= FLOW_EXT; in efx_ethtool_get_class_rule()
964 rule->h_ext.vlan_tci = spec.outer_vid; in efx_ethtool_get_class_rule()
965 rule->m_ext.vlan_tci = htons(0xfff); in efx_ethtool_get_class_rule()
969 rule->flow_type |= FLOW_RSS; in efx_ethtool_get_class_rule()
1080 struct ethtool_rx_flow_spec *rule, in efx_ethtool_set_class_rule() argument
1083 struct ethtool_tcpip4_spec *ip_entry = &rule->h_u.tcp_ip4_spec; in efx_ethtool_set_class_rule()
1084 struct ethtool_tcpip4_spec *ip_mask = &rule->m_u.tcp_ip4_spec; in efx_ethtool_set_class_rule()
1085 struct ethtool_usrip4_spec *uip_entry = &rule->h_u.usr_ip4_spec; in efx_ethtool_set_class_rule()
1086 struct ethtool_usrip4_spec *uip_mask = &rule->m_u.usr_ip4_spec; in efx_ethtool_set_class_rule()
1087 struct ethtool_tcpip6_spec *ip6_entry = &rule->h_u.tcp_ip6_spec; in efx_ethtool_set_class_rule()
1088 struct ethtool_tcpip6_spec *ip6_mask = &rule->m_u.tcp_ip6_spec; in efx_ethtool_set_class_rule()
1089 struct ethtool_usrip6_spec *uip6_entry = &rule->h_u.usr_ip6_spec; in efx_ethtool_set_class_rule()
1090 struct ethtool_usrip6_spec *uip6_mask = &rule->m_u.usr_ip6_spec; in efx_ethtool_set_class_rule()
1091 u32 flow_type = rule->flow_type & ~(FLOW_EXT | FLOW_RSS); in efx_ethtool_set_class_rule()
1092 struct ethhdr *mac_entry = &rule->h_u.ether_spec; in efx_ethtool_set_class_rule()
1093 struct ethhdr *mac_mask = &rule->m_u.ether_spec; in efx_ethtool_set_class_rule()
1099 if (rule->location != RX_CLS_LOC_ANY) in efx_ethtool_set_class_rule()
1103 if (rule->ring_cookie >= efx->n_rx_channels && in efx_ethtool_set_class_rule()
1104 rule->ring_cookie != RX_CLS_FLOW_DISC) in efx_ethtool_set_class_rule()
1108 if ((rule->flow_type & FLOW_EXT) && in efx_ethtool_set_class_rule()
1109 (rule->m_ext.vlan_etype || rule->m_ext.data[0] || in efx_ethtool_set_class_rule()
1110 rule->m_ext.data[1])) in efx_ethtool_set_class_rule()
1115 if (rule->flow_type & FLOW_RSS) in efx_ethtool_set_class_rule()
1119 (rule->ring_cookie == RX_CLS_FLOW_DISC) ? in efx_ethtool_set_class_rule()
1120 EFX_FILTER_RX_DMAQ_ID_DROP : rule->ring_cookie); in efx_ethtool_set_class_rule()
1122 if (rule->flow_type & FLOW_RSS) in efx_ethtool_set_class_rule()
1276 if ((rule->flow_type & FLOW_EXT) && rule->m_ext.vlan_tci) { in efx_ethtool_set_class_rule()
1277 if (rule->m_ext.vlan_tci != htons(0xfff)) in efx_ethtool_set_class_rule()
1280 spec.outer_vid = rule->h_ext.vlan_tci; in efx_ethtool_set_class_rule()
1287 rule->location = rc; in efx_ethtool_set_class_rule()