Lines Matching refs:rule

790 				      struct ethtool_rx_flow_spec *rule)  in efx_ethtool_get_class_rule()  argument
792 struct ethtool_tcpip4_spec *ip_entry = &rule->h_u.tcp_ip4_spec; in efx_ethtool_get_class_rule()
793 struct ethtool_tcpip4_spec *ip_mask = &rule->m_u.tcp_ip4_spec; in efx_ethtool_get_class_rule()
794 struct ethhdr *mac_entry = &rule->h_u.ether_spec; in efx_ethtool_get_class_rule()
795 struct ethhdr *mac_mask = &rule->m_u.ether_spec; in efx_ethtool_get_class_rule()
800 rule->location, &spec); in efx_ethtool_get_class_rule()
805 rule->ring_cookie = RX_CLS_FLOW_DISC; in efx_ethtool_get_class_rule()
807 rule->ring_cookie = spec.dmaq_id; in efx_ethtool_get_class_rule()
818 rule->flow_type = ((spec.ip_proto == IPPROTO_TCP) ? in efx_ethtool_get_class_rule()
840 rule->flow_type = ETHER_FLOW; in efx_ethtool_get_class_rule()
865 rule->flow_type |= FLOW_EXT; in efx_ethtool_get_class_rule()
866 rule->h_ext.vlan_tci = spec.outer_vid; in efx_ethtool_get_class_rule()
867 rule->m_ext.vlan_tci = htons(0xfff); in efx_ethtool_get_class_rule()
950 struct ethtool_rx_flow_spec *rule) in efx_ethtool_set_class_rule() argument
952 struct ethtool_tcpip4_spec *ip_entry = &rule->h_u.tcp_ip4_spec; in efx_ethtool_set_class_rule()
953 struct ethtool_tcpip4_spec *ip_mask = &rule->m_u.tcp_ip4_spec; in efx_ethtool_set_class_rule()
954 struct ethhdr *mac_entry = &rule->h_u.ether_spec; in efx_ethtool_set_class_rule()
955 struct ethhdr *mac_mask = &rule->m_u.ether_spec; in efx_ethtool_set_class_rule()
960 if (rule->location != RX_CLS_LOC_ANY) in efx_ethtool_set_class_rule()
964 if (rule->ring_cookie >= efx->n_rx_channels && in efx_ethtool_set_class_rule()
965 rule->ring_cookie != RX_CLS_FLOW_DISC) in efx_ethtool_set_class_rule()
969 if ((rule->flow_type & FLOW_EXT) && in efx_ethtool_set_class_rule()
970 (rule->m_ext.vlan_etype || rule->m_ext.data[0] || in efx_ethtool_set_class_rule()
971 rule->m_ext.data[1])) in efx_ethtool_set_class_rule()
976 (rule->ring_cookie == RX_CLS_FLOW_DISC) ? in efx_ethtool_set_class_rule()
977 EFX_FILTER_RX_DMAQ_ID_DROP : rule->ring_cookie); in efx_ethtool_set_class_rule()
979 switch (rule->flow_type & ~FLOW_EXT) { in efx_ethtool_set_class_rule()
985 spec.ip_proto = ((rule->flow_type & ~FLOW_EXT) == TCP_V4_FLOW ? in efx_ethtool_set_class_rule()
1044 if ((rule->flow_type & FLOW_EXT) && rule->m_ext.vlan_tci) { in efx_ethtool_set_class_rule()
1045 if (rule->m_ext.vlan_tci != htons(0xfff)) in efx_ethtool_set_class_rule()
1048 spec.outer_vid = rule->h_ext.vlan_tci; in efx_ethtool_set_class_rule()
1055 rule->location = rc; in efx_ethtool_set_class_rule()