Lines Matching refs:fsp
966 struct ethtool_rx_flow_spec *fsp = &cmd->fs; in igc_ethtool_get_nfc_rule() local
973 rule = igc_get_nfc_rule(adapter, fsp->location); in igc_ethtool_get_nfc_rule()
977 fsp->flow_type = ETHER_FLOW; in igc_ethtool_get_nfc_rule()
978 fsp->ring_cookie = rule->action; in igc_ethtool_get_nfc_rule()
981 fsp->h_u.ether_spec.h_proto = htons(rule->filter.etype); in igc_ethtool_get_nfc_rule()
982 fsp->m_u.ether_spec.h_proto = ETHER_TYPE_FULL_MASK; in igc_ethtool_get_nfc_rule()
986 fsp->flow_type |= FLOW_EXT; in igc_ethtool_get_nfc_rule()
987 fsp->h_ext.vlan_etype = htons(rule->filter.vlan_etype); in igc_ethtool_get_nfc_rule()
988 fsp->m_ext.vlan_etype = ETHER_TYPE_FULL_MASK; in igc_ethtool_get_nfc_rule()
992 fsp->flow_type |= FLOW_EXT; in igc_ethtool_get_nfc_rule()
993 fsp->h_ext.vlan_tci = htons(rule->filter.vlan_tci); in igc_ethtool_get_nfc_rule()
994 fsp->m_ext.vlan_tci = htons(rule->filter.vlan_tci_mask); in igc_ethtool_get_nfc_rule()
998 ether_addr_copy(fsp->h_u.ether_spec.h_dest, in igc_ethtool_get_nfc_rule()
1000 eth_broadcast_addr(fsp->m_u.ether_spec.h_dest); in igc_ethtool_get_nfc_rule()
1004 ether_addr_copy(fsp->h_u.ether_spec.h_source, in igc_ethtool_get_nfc_rule()
1006 eth_broadcast_addr(fsp->m_u.ether_spec.h_source); in igc_ethtool_get_nfc_rule()
1010 fsp->flow_type |= FLOW_EXT; in igc_ethtool_get_nfc_rule()
1011 memcpy(fsp->h_ext.data, rule->filter.user_data, sizeof(fsp->h_ext.data)); in igc_ethtool_get_nfc_rule()
1012 memcpy(fsp->m_ext.data, rule->filter.user_mask, sizeof(fsp->m_ext.data)); in igc_ethtool_get_nfc_rule()
1222 const struct ethtool_rx_flow_spec *fsp) in igc_ethtool_init_nfc_rule() argument
1226 rule->action = fsp->ring_cookie; in igc_ethtool_init_nfc_rule()
1227 rule->location = fsp->location; in igc_ethtool_init_nfc_rule()
1229 if ((fsp->flow_type & FLOW_EXT) && fsp->m_ext.vlan_tci) { in igc_ethtool_init_nfc_rule()
1230 rule->filter.vlan_tci = ntohs(fsp->h_ext.vlan_tci); in igc_ethtool_init_nfc_rule()
1231 rule->filter.vlan_tci_mask = ntohs(fsp->m_ext.vlan_tci); in igc_ethtool_init_nfc_rule()
1235 if (fsp->m_u.ether_spec.h_proto == ETHER_TYPE_FULL_MASK) { in igc_ethtool_init_nfc_rule()
1236 rule->filter.etype = ntohs(fsp->h_u.ether_spec.h_proto); in igc_ethtool_init_nfc_rule()
1243 if (is_broadcast_ether_addr(fsp->m_u.ether_spec.h_source)) { in igc_ethtool_init_nfc_rule()
1246 fsp->h_u.ether_spec.h_source); in igc_ethtool_init_nfc_rule()
1249 if (is_broadcast_ether_addr(fsp->m_u.ether_spec.h_dest)) { in igc_ethtool_init_nfc_rule()
1252 fsp->h_u.ether_spec.h_dest); in igc_ethtool_init_nfc_rule()
1256 if ((fsp->flow_type & FLOW_EXT) && fsp->h_ext.vlan_etype) { in igc_ethtool_init_nfc_rule()
1257 rule->filter.vlan_etype = ntohs(fsp->h_ext.vlan_etype); in igc_ethtool_init_nfc_rule()
1262 if ((fsp->flow_type & FLOW_EXT) && in igc_ethtool_init_nfc_rule()
1263 (fsp->h_ext.data[0] || fsp->h_ext.data[1])) { in igc_ethtool_init_nfc_rule()
1265 memcpy(rule->filter.user_data, fsp->h_ext.data, sizeof(fsp->h_ext.data)); in igc_ethtool_init_nfc_rule()
1266 memcpy(rule->filter.user_mask, fsp->m_ext.data, sizeof(fsp->m_ext.data)); in igc_ethtool_init_nfc_rule()
1299 fsp->flow_type == ETHER_FLOW && in igc_ethtool_init_nfc_rule()
1300 is_zero_ether_addr(fsp->m_u.ether_spec.h_source) && in igc_ethtool_init_nfc_rule()
1301 is_zero_ether_addr(fsp->m_u.ether_spec.h_dest) && in igc_ethtool_init_nfc_rule()
1302 !fsp->m_u.ether_spec.h_proto) in igc_ethtool_init_nfc_rule()
1349 struct ethtool_rx_flow_spec *fsp = in igc_ethtool_add_nfc_rule() local
1359 if ((fsp->flow_type & ~FLOW_EXT) != ETHER_FLOW) { in igc_ethtool_add_nfc_rule()
1364 if (fsp->ring_cookie >= adapter->num_rx_queues) { in igc_ethtool_add_nfc_rule()
1373 if ((fsp->flow_type & FLOW_EXT) && in igc_ethtool_add_nfc_rule()
1374 fsp->m_ext.vlan_tci && in igc_ethtool_add_nfc_rule()
1375 fsp->m_ext.vlan_tci != htons(VLAN_PRIO_MASK) && in igc_ethtool_add_nfc_rule()
1376 fsp->m_ext.vlan_tci != VLAN_TCI_FULL_MASK) { in igc_ethtool_add_nfc_rule()
1382 if ((fsp->flow_type & FLOW_EXT) && in igc_ethtool_add_nfc_rule()
1383 fsp->m_ext.vlan_etype && in igc_ethtool_add_nfc_rule()
1384 fsp->m_ext.vlan_etype != ETHER_TYPE_FULL_MASK) { in igc_ethtool_add_nfc_rule()
1389 if (fsp->location >= IGC_MAX_RXNFC_RULES) { in igc_ethtool_add_nfc_rule()
1398 igc_ethtool_init_nfc_rule(rule, fsp); in igc_ethtool_add_nfc_rule()
1406 old_rule = igc_get_nfc_rule(adapter, fsp->location); in igc_ethtool_add_nfc_rule()
1426 struct ethtool_rx_flow_spec *fsp = in igc_ethtool_del_nfc_rule() local
1432 rule = igc_get_nfc_rule(adapter, fsp->location); in igc_ethtool_del_nfc_rule()