Lines Matching refs:rule

3672 			       struct igc_nfc_rule *rule)
3674 struct igc_nfc_filter *filter = &rule->filter;
3695 flex.rx_queue = rule->action;
3697 vlan = rule->filter.vlan_tci || rule->filter.vlan_etype;
3702 if (rule->filter.match_flags & IGC_FILTER_FLAG_DST_MAC_ADDR)
3707 if (rule->filter.match_flags & IGC_FILTER_FLAG_SRC_MAC_ADDR)
3712 if (rule->filter.match_flags & IGC_FILTER_FLAG_VLAN_ETYPE) {
3720 if (rule->filter.match_flags & IGC_FILTER_FLAG_VLAN_TCI)
3725 if (rule->filter.match_flags & IGC_FILTER_FLAG_ETHER_TYPE) {
3733 if (rule->filter.match_flags & IGC_FILTER_FLAG_USER_DATA)
3781 struct igc_nfc_rule *rule)
3785 if (rule->flex) {
3786 return igc_add_flex_filter(adapter, rule);
3789 if (rule->filter.match_flags & IGC_FILTER_FLAG_ETHER_TYPE) {
3790 err = igc_add_etype_filter(adapter, rule->filter.etype,
3791 rule->action);
3796 if (rule->filter.match_flags & IGC_FILTER_FLAG_SRC_MAC_ADDR) {
3798 rule->filter.src_addr, rule->action);
3803 if (rule->filter.match_flags & IGC_FILTER_FLAG_DST_MAC_ADDR) {
3805 rule->filter.dst_addr, rule->action);
3810 if (rule->filter.match_flags & IGC_FILTER_FLAG_VLAN_TCI) {
3811 int prio = FIELD_GET(VLAN_PRIO_MASK, rule->filter.vlan_tci);
3813 err = igc_add_vlan_prio_filter(adapter, prio, rule->action);
3822 const struct igc_nfc_rule *rule)
3824 if (rule->flex) {
3825 igc_del_flex_filter(adapter, rule->filter.flex_index);
3829 if (rule->filter.match_flags & IGC_FILTER_FLAG_ETHER_TYPE)
3830 igc_del_etype_filter(adapter, rule->filter.etype);
3832 if (rule->filter.match_flags & IGC_FILTER_FLAG_VLAN_TCI) {
3833 int prio = FIELD_GET(VLAN_PRIO_MASK, rule->filter.vlan_tci);
3838 if (rule->filter.match_flags & IGC_FILTER_FLAG_SRC_MAC_ADDR)
3840 rule->filter.src_addr);
3842 if (rule->filter.match_flags & IGC_FILTER_FLAG_DST_MAC_ADDR)
3844 rule->filter.dst_addr);
3848 * igc_get_nfc_rule() - Get NFC rule
3854 * Return: Pointer to NFC rule at @location. If not found, NULL.
3859 struct igc_nfc_rule *rule;
3861 list_for_each_entry(rule, &adapter->nfc_rule_list, list) {
3862 if (rule->location == location)
3863 return rule;
3864 if (rule->location > location)
3872 * igc_del_nfc_rule() - Delete NFC rule
3874 * @rule: Pointer to rule to be deleted
3876 * Disable NFC rule in hardware and delete it from adapter.
3880 void igc_del_nfc_rule(struct igc_adapter *adapter, struct igc_nfc_rule *rule)
3882 igc_disable_nfc_rule(adapter, rule);
3884 list_del(&rule->list);
3887 kfree(rule);
3892 struct igc_nfc_rule *rule, *tmp;
3896 list_for_each_entry_safe(rule, tmp, &adapter->nfc_rule_list, list)
3897 igc_del_nfc_rule(adapter, rule);
3903 * igc_add_nfc_rule() - Add NFC rule
3905 * @rule: Pointer to rule to be added
3907 * Enable NFC rule in hardware and add it to adapter.
3913 int igc_add_nfc_rule(struct igc_adapter *adapter, struct igc_nfc_rule *rule)
3918 err = igc_enable_nfc_rule(adapter, rule);
3924 if (cur->location >= rule->location)
3929 list_add(&rule->list, pred ? &pred->list : &adapter->nfc_rule_list);
3936 struct igc_nfc_rule *rule;
3940 list_for_each_entry_reverse(rule, &adapter->nfc_rule_list, list)
3941 igc_enable_nfc_rule(adapter, rule);