Lines Matching refs:entry
96 struct hlist_node entry; member
106 struct hlist_node entry; member
132 struct hlist_node entry; member
144 struct hlist_node entry; member
151 struct hlist_node entry; member
309 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_ig_port() argument
312 entry->key.ig_port.in_pport)) in ofdpa_cmd_flow_tbl_add_ig_port()
315 entry->key.ig_port.in_pport_mask)) in ofdpa_cmd_flow_tbl_add_ig_port()
318 entry->key.ig_port.goto_tbl)) in ofdpa_cmd_flow_tbl_add_ig_port()
326 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_vlan() argument
329 entry->key.vlan.in_pport)) in ofdpa_cmd_flow_tbl_add_vlan()
332 entry->key.vlan.vlan_id)) in ofdpa_cmd_flow_tbl_add_vlan()
335 entry->key.vlan.vlan_id_mask)) in ofdpa_cmd_flow_tbl_add_vlan()
338 entry->key.vlan.goto_tbl)) in ofdpa_cmd_flow_tbl_add_vlan()
340 if (entry->key.vlan.untagged && in ofdpa_cmd_flow_tbl_add_vlan()
342 entry->key.vlan.new_vlan_id)) in ofdpa_cmd_flow_tbl_add_vlan()
350 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_term_mac() argument
353 entry->key.term_mac.in_pport)) in ofdpa_cmd_flow_tbl_add_term_mac()
356 entry->key.term_mac.in_pport_mask)) in ofdpa_cmd_flow_tbl_add_term_mac()
359 entry->key.term_mac.eth_type)) in ofdpa_cmd_flow_tbl_add_term_mac()
362 ETH_ALEN, entry->key.term_mac.eth_dst)) in ofdpa_cmd_flow_tbl_add_term_mac()
365 ETH_ALEN, entry->key.term_mac.eth_dst_mask)) in ofdpa_cmd_flow_tbl_add_term_mac()
368 entry->key.term_mac.vlan_id)) in ofdpa_cmd_flow_tbl_add_term_mac()
371 entry->key.term_mac.vlan_id_mask)) in ofdpa_cmd_flow_tbl_add_term_mac()
374 entry->key.term_mac.goto_tbl)) in ofdpa_cmd_flow_tbl_add_term_mac()
376 if (entry->key.term_mac.copy_to_cpu && in ofdpa_cmd_flow_tbl_add_term_mac()
378 entry->key.term_mac.copy_to_cpu)) in ofdpa_cmd_flow_tbl_add_term_mac()
386 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_ucast_routing() argument
389 entry->key.ucast_routing.eth_type)) in ofdpa_cmd_flow_tbl_add_ucast_routing()
392 entry->key.ucast_routing.dst4)) in ofdpa_cmd_flow_tbl_add_ucast_routing()
395 entry->key.ucast_routing.dst4_mask)) in ofdpa_cmd_flow_tbl_add_ucast_routing()
398 entry->key.ucast_routing.goto_tbl)) in ofdpa_cmd_flow_tbl_add_ucast_routing()
401 entry->key.ucast_routing.group_id)) in ofdpa_cmd_flow_tbl_add_ucast_routing()
409 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_bridge() argument
411 if (entry->key.bridge.has_eth_dst && in ofdpa_cmd_flow_tbl_add_bridge()
413 ETH_ALEN, entry->key.bridge.eth_dst)) in ofdpa_cmd_flow_tbl_add_bridge()
415 if (entry->key.bridge.has_eth_dst_mask && in ofdpa_cmd_flow_tbl_add_bridge()
417 ETH_ALEN, entry->key.bridge.eth_dst_mask)) in ofdpa_cmd_flow_tbl_add_bridge()
419 if (entry->key.bridge.vlan_id && in ofdpa_cmd_flow_tbl_add_bridge()
421 entry->key.bridge.vlan_id)) in ofdpa_cmd_flow_tbl_add_bridge()
423 if (entry->key.bridge.tunnel_id && in ofdpa_cmd_flow_tbl_add_bridge()
425 entry->key.bridge.tunnel_id)) in ofdpa_cmd_flow_tbl_add_bridge()
428 entry->key.bridge.goto_tbl)) in ofdpa_cmd_flow_tbl_add_bridge()
431 entry->key.bridge.group_id)) in ofdpa_cmd_flow_tbl_add_bridge()
433 if (entry->key.bridge.copy_to_cpu && in ofdpa_cmd_flow_tbl_add_bridge()
435 entry->key.bridge.copy_to_cpu)) in ofdpa_cmd_flow_tbl_add_bridge()
443 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_acl() argument
446 entry->key.acl.in_pport)) in ofdpa_cmd_flow_tbl_add_acl()
449 entry->key.acl.in_pport_mask)) in ofdpa_cmd_flow_tbl_add_acl()
452 ETH_ALEN, entry->key.acl.eth_src)) in ofdpa_cmd_flow_tbl_add_acl()
455 ETH_ALEN, entry->key.acl.eth_src_mask)) in ofdpa_cmd_flow_tbl_add_acl()
458 ETH_ALEN, entry->key.acl.eth_dst)) in ofdpa_cmd_flow_tbl_add_acl()
461 ETH_ALEN, entry->key.acl.eth_dst_mask)) in ofdpa_cmd_flow_tbl_add_acl()
464 entry->key.acl.eth_type)) in ofdpa_cmd_flow_tbl_add_acl()
467 entry->key.acl.vlan_id)) in ofdpa_cmd_flow_tbl_add_acl()
470 entry->key.acl.vlan_id_mask)) in ofdpa_cmd_flow_tbl_add_acl()
473 switch (ntohs(entry->key.acl.eth_type)) { in ofdpa_cmd_flow_tbl_add_acl()
477 entry->key.acl.ip_proto)) in ofdpa_cmd_flow_tbl_add_acl()
481 entry->key.acl.ip_proto_mask)) in ofdpa_cmd_flow_tbl_add_acl()
484 entry->key.acl.ip_tos & 0x3f)) in ofdpa_cmd_flow_tbl_add_acl()
488 entry->key.acl.ip_tos_mask & 0x3f)) in ofdpa_cmd_flow_tbl_add_acl()
491 (entry->key.acl.ip_tos & 0xc0) >> 6)) in ofdpa_cmd_flow_tbl_add_acl()
495 (entry->key.acl.ip_tos_mask & 0xc0) >> 6)) in ofdpa_cmd_flow_tbl_add_acl()
500 if (entry->key.acl.group_id != ROCKER_GROUP_NONE && in ofdpa_cmd_flow_tbl_add_acl()
502 entry->key.acl.group_id)) in ofdpa_cmd_flow_tbl_add_acl()
512 const struct ofdpa_flow_tbl_entry *entry = priv; in ofdpa_cmd_flow_tbl_add() local
516 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in ofdpa_cmd_flow_tbl_add()
522 entry->key.tbl_id)) in ofdpa_cmd_flow_tbl_add()
525 entry->key.priority)) in ofdpa_cmd_flow_tbl_add()
530 entry->cookie)) in ofdpa_cmd_flow_tbl_add()
533 switch (entry->key.tbl_id) { in ofdpa_cmd_flow_tbl_add()
535 err = ofdpa_cmd_flow_tbl_add_ig_port(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
538 err = ofdpa_cmd_flow_tbl_add_vlan(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
541 err = ofdpa_cmd_flow_tbl_add_term_mac(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
544 err = ofdpa_cmd_flow_tbl_add_ucast_routing(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
547 err = ofdpa_cmd_flow_tbl_add_bridge(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
550 err = ofdpa_cmd_flow_tbl_add_acl(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
569 const struct ofdpa_flow_tbl_entry *entry = priv; in ofdpa_cmd_flow_tbl_del() local
572 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in ofdpa_cmd_flow_tbl_del()
578 entry->cookie)) in ofdpa_cmd_flow_tbl_del()
587 struct ofdpa_group_tbl_entry *entry) in ofdpa_cmd_group_tbl_add_l2_interface() argument
590 ROCKER_GROUP_PORT_GET(entry->group_id))) in ofdpa_cmd_group_tbl_add_l2_interface()
593 entry->l2_interface.pop_vlan)) in ofdpa_cmd_group_tbl_add_l2_interface()
601 const struct ofdpa_group_tbl_entry *entry) in ofdpa_cmd_group_tbl_add_l2_rewrite() argument
604 entry->l2_rewrite.group_id)) in ofdpa_cmd_group_tbl_add_l2_rewrite()
606 if (!is_zero_ether_addr(entry->l2_rewrite.eth_src) && in ofdpa_cmd_group_tbl_add_l2_rewrite()
608 ETH_ALEN, entry->l2_rewrite.eth_src)) in ofdpa_cmd_group_tbl_add_l2_rewrite()
610 if (!is_zero_ether_addr(entry->l2_rewrite.eth_dst) && in ofdpa_cmd_group_tbl_add_l2_rewrite()
612 ETH_ALEN, entry->l2_rewrite.eth_dst)) in ofdpa_cmd_group_tbl_add_l2_rewrite()
614 if (entry->l2_rewrite.vlan_id && in ofdpa_cmd_group_tbl_add_l2_rewrite()
616 entry->l2_rewrite.vlan_id)) in ofdpa_cmd_group_tbl_add_l2_rewrite()
624 const struct ofdpa_group_tbl_entry *entry) in ofdpa_cmd_group_tbl_add_group_ids() argument
630 entry->group_count)) in ofdpa_cmd_group_tbl_add_group_ids()
638 for (i = 0; i < entry->group_count; i++) in ofdpa_cmd_group_tbl_add_group_ids()
640 if (rocker_tlv_put_u32(desc_info, i + 1, entry->group_ids[i])) in ofdpa_cmd_group_tbl_add_group_ids()
650 const struct ofdpa_group_tbl_entry *entry) in ofdpa_cmd_group_tbl_add_l3_unicast() argument
652 if (!is_zero_ether_addr(entry->l3_unicast.eth_src) && in ofdpa_cmd_group_tbl_add_l3_unicast()
654 ETH_ALEN, entry->l3_unicast.eth_src)) in ofdpa_cmd_group_tbl_add_l3_unicast()
656 if (!is_zero_ether_addr(entry->l3_unicast.eth_dst) && in ofdpa_cmd_group_tbl_add_l3_unicast()
658 ETH_ALEN, entry->l3_unicast.eth_dst)) in ofdpa_cmd_group_tbl_add_l3_unicast()
660 if (entry->l3_unicast.vlan_id && in ofdpa_cmd_group_tbl_add_l3_unicast()
662 entry->l3_unicast.vlan_id)) in ofdpa_cmd_group_tbl_add_l3_unicast()
665 entry->l3_unicast.ttl_check)) in ofdpa_cmd_group_tbl_add_l3_unicast()
668 entry->l3_unicast.group_id)) in ofdpa_cmd_group_tbl_add_l3_unicast()
678 struct ofdpa_group_tbl_entry *entry = priv; in ofdpa_cmd_group_tbl_add() local
682 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in ofdpa_cmd_group_tbl_add()
689 entry->group_id)) in ofdpa_cmd_group_tbl_add()
692 switch (ROCKER_GROUP_TYPE_GET(entry->group_id)) { in ofdpa_cmd_group_tbl_add()
694 err = ofdpa_cmd_group_tbl_add_l2_interface(desc_info, entry); in ofdpa_cmd_group_tbl_add()
697 err = ofdpa_cmd_group_tbl_add_l2_rewrite(desc_info, entry); in ofdpa_cmd_group_tbl_add()
701 err = ofdpa_cmd_group_tbl_add_group_ids(desc_info, entry); in ofdpa_cmd_group_tbl_add()
704 err = ofdpa_cmd_group_tbl_add_l3_unicast(desc_info, entry); in ofdpa_cmd_group_tbl_add()
723 const struct ofdpa_group_tbl_entry *entry = priv; in ofdpa_cmd_group_tbl_del() local
726 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in ofdpa_cmd_group_tbl_del()
732 entry->group_id)) in ofdpa_cmd_group_tbl_del()
751 entry, match->key_crc32) { in ofdpa_flow_tbl_find()
775 hash_del(&found->entry); in ofdpa_flow_tbl_add()
785 hash_add(ofdpa->flow_tbl, &found->entry, found->key_crc32); in ofdpa_flow_tbl_add()
810 hash_del(&found->entry); in ofdpa_flow_tbl_del()
830 struct ofdpa_flow_tbl_entry *entry) in ofdpa_flow_tbl_do() argument
833 return ofdpa_flow_tbl_del(ofdpa_port, flags, entry); in ofdpa_flow_tbl_do()
835 return ofdpa_flow_tbl_add(ofdpa_port, flags, entry); in ofdpa_flow_tbl_do()
842 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_ig_port() local
844 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_flow_tbl_ig_port()
845 if (!entry) in ofdpa_flow_tbl_ig_port()
848 entry->key.priority = OFDPA_PRIORITY_IG_PORT; in ofdpa_flow_tbl_ig_port()
849 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_INGRESS_PORT; in ofdpa_flow_tbl_ig_port()
850 entry->key.ig_port.in_pport = in_pport; in ofdpa_flow_tbl_ig_port()
851 entry->key.ig_port.in_pport_mask = in_pport_mask; in ofdpa_flow_tbl_ig_port()
852 entry->key.ig_port.goto_tbl = goto_tbl; in ofdpa_flow_tbl_ig_port()
854 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_ig_port()
864 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_vlan() local
866 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_flow_tbl_vlan()
867 if (!entry) in ofdpa_flow_tbl_vlan()
870 entry->key.priority = OFDPA_PRIORITY_VLAN; in ofdpa_flow_tbl_vlan()
871 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_VLAN; in ofdpa_flow_tbl_vlan()
872 entry->key.vlan.in_pport = in_pport; in ofdpa_flow_tbl_vlan()
873 entry->key.vlan.vlan_id = vlan_id; in ofdpa_flow_tbl_vlan()
874 entry->key.vlan.vlan_id_mask = vlan_id_mask; in ofdpa_flow_tbl_vlan()
875 entry->key.vlan.goto_tbl = goto_tbl; in ofdpa_flow_tbl_vlan()
877 entry->key.vlan.untagged = untagged; in ofdpa_flow_tbl_vlan()
878 entry->key.vlan.new_vlan_id = new_vlan_id; in ofdpa_flow_tbl_vlan()
880 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_vlan()
890 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_term_mac() local
892 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_flow_tbl_term_mac()
893 if (!entry) in ofdpa_flow_tbl_term_mac()
897 entry->key.priority = OFDPA_PRIORITY_TERM_MAC_MCAST; in ofdpa_flow_tbl_term_mac()
898 entry->key.term_mac.goto_tbl = in ofdpa_flow_tbl_term_mac()
901 entry->key.priority = OFDPA_PRIORITY_TERM_MAC_UCAST; in ofdpa_flow_tbl_term_mac()
902 entry->key.term_mac.goto_tbl = in ofdpa_flow_tbl_term_mac()
906 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_TERMINATION_MAC; in ofdpa_flow_tbl_term_mac()
907 entry->key.term_mac.in_pport = in_pport; in ofdpa_flow_tbl_term_mac()
908 entry->key.term_mac.in_pport_mask = in_pport_mask; in ofdpa_flow_tbl_term_mac()
909 entry->key.term_mac.eth_type = eth_type; in ofdpa_flow_tbl_term_mac()
910 ether_addr_copy(entry->key.term_mac.eth_dst, eth_dst); in ofdpa_flow_tbl_term_mac()
911 ether_addr_copy(entry->key.term_mac.eth_dst_mask, eth_dst_mask); in ofdpa_flow_tbl_term_mac()
912 entry->key.term_mac.vlan_id = vlan_id; in ofdpa_flow_tbl_term_mac()
913 entry->key.term_mac.vlan_id_mask = vlan_id_mask; in ofdpa_flow_tbl_term_mac()
914 entry->key.term_mac.copy_to_cpu = copy_to_cpu; in ofdpa_flow_tbl_term_mac()
916 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_term_mac()
926 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_bridge() local
932 entry = kzalloc(sizeof(*entry), GFP_ATOMIC); in ofdpa_flow_tbl_bridge()
933 if (!entry) in ofdpa_flow_tbl_bridge()
936 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_BRIDGING; in ofdpa_flow_tbl_bridge()
939 entry->key.bridge.has_eth_dst = 1; in ofdpa_flow_tbl_bridge()
940 ether_addr_copy(entry->key.bridge.eth_dst, eth_dst); in ofdpa_flow_tbl_bridge()
943 entry->key.bridge.has_eth_dst_mask = 1; in ofdpa_flow_tbl_bridge()
944 ether_addr_copy(entry->key.bridge.eth_dst_mask, eth_dst_mask); in ofdpa_flow_tbl_bridge()
963 entry->key.priority = priority; in ofdpa_flow_tbl_bridge()
964 entry->key.bridge.vlan_id = vlan_id; in ofdpa_flow_tbl_bridge()
965 entry->key.bridge.tunnel_id = tunnel_id; in ofdpa_flow_tbl_bridge()
966 entry->key.bridge.goto_tbl = goto_tbl; in ofdpa_flow_tbl_bridge()
967 entry->key.bridge.group_id = group_id; in ofdpa_flow_tbl_bridge()
968 entry->key.bridge.copy_to_cpu = copy_to_cpu; in ofdpa_flow_tbl_bridge()
970 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_bridge()
980 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_ucast4_routing() local
982 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_flow_tbl_ucast4_routing()
983 if (!entry) in ofdpa_flow_tbl_ucast4_routing()
986 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_UNICAST_ROUTING; in ofdpa_flow_tbl_ucast4_routing()
987 entry->key.priority = priority; in ofdpa_flow_tbl_ucast4_routing()
988 entry->key.ucast_routing.eth_type = eth_type; in ofdpa_flow_tbl_ucast4_routing()
989 entry->key.ucast_routing.dst4 = dst; in ofdpa_flow_tbl_ucast4_routing()
990 entry->key.ucast_routing.dst4_mask = dst_mask; in ofdpa_flow_tbl_ucast4_routing()
991 entry->key.ucast_routing.goto_tbl = goto_tbl; in ofdpa_flow_tbl_ucast4_routing()
992 entry->key.ucast_routing.group_id = group_id; in ofdpa_flow_tbl_ucast4_routing()
993 entry->key_len = offsetof(struct ofdpa_flow_tbl_key, in ofdpa_flow_tbl_ucast4_routing()
995 entry->fi = fi; in ofdpa_flow_tbl_ucast4_routing()
997 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_ucast4_routing()
1010 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_acl() local
1012 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_flow_tbl_acl()
1013 if (!entry) in ofdpa_flow_tbl_acl()
1024 entry->key.priority = priority; in ofdpa_flow_tbl_acl()
1025 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_ACL_POLICY; in ofdpa_flow_tbl_acl()
1026 entry->key.acl.in_pport = in_pport; in ofdpa_flow_tbl_acl()
1027 entry->key.acl.in_pport_mask = in_pport_mask; in ofdpa_flow_tbl_acl()
1030 ether_addr_copy(entry->key.acl.eth_src, eth_src); in ofdpa_flow_tbl_acl()
1032 ether_addr_copy(entry->key.acl.eth_src_mask, eth_src_mask); in ofdpa_flow_tbl_acl()
1034 ether_addr_copy(entry->key.acl.eth_dst, eth_dst); in ofdpa_flow_tbl_acl()
1036 ether_addr_copy(entry->key.acl.eth_dst_mask, eth_dst_mask); in ofdpa_flow_tbl_acl()
1038 entry->key.acl.eth_type = eth_type; in ofdpa_flow_tbl_acl()
1039 entry->key.acl.vlan_id = vlan_id; in ofdpa_flow_tbl_acl()
1040 entry->key.acl.vlan_id_mask = vlan_id_mask; in ofdpa_flow_tbl_acl()
1041 entry->key.acl.ip_proto = ip_proto; in ofdpa_flow_tbl_acl()
1042 entry->key.acl.ip_proto_mask = ip_proto_mask; in ofdpa_flow_tbl_acl()
1043 entry->key.acl.ip_tos = ip_tos; in ofdpa_flow_tbl_acl()
1044 entry->key.acl.ip_tos_mask = ip_tos_mask; in ofdpa_flow_tbl_acl()
1045 entry->key.acl.group_id = group_id; in ofdpa_flow_tbl_acl()
1047 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_acl()
1057 entry, match->group_id) { in ofdpa_group_tbl_find()
1065 static void ofdpa_group_tbl_entry_free(struct ofdpa_group_tbl_entry *entry) in ofdpa_group_tbl_entry_free() argument
1067 switch (ROCKER_GROUP_TYPE_GET(entry->group_id)) { in ofdpa_group_tbl_entry_free()
1070 kfree(entry->group_ids); in ofdpa_group_tbl_entry_free()
1075 kfree(entry); in ofdpa_group_tbl_entry_free()
1090 hash_del(&found->entry); in ofdpa_group_tbl_add()
1099 hash_add(ofdpa->group_tbl, &found->entry, found->group_id); in ofdpa_group_tbl_add()
1122 hash_del(&found->entry); in ofdpa_group_tbl_del()
1142 struct ofdpa_group_tbl_entry *entry) in ofdpa_group_tbl_do() argument
1145 return ofdpa_group_tbl_del(ofdpa_port, flags, entry); in ofdpa_group_tbl_do()
1147 return ofdpa_group_tbl_add(ofdpa_port, flags, entry); in ofdpa_group_tbl_do()
1154 struct ofdpa_group_tbl_entry *entry; in ofdpa_group_l2_interface() local
1156 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_group_l2_interface()
1157 if (!entry) in ofdpa_group_l2_interface()
1160 entry->group_id = ROCKER_GROUP_L2_INTERFACE(vlan_id, out_pport); in ofdpa_group_l2_interface()
1161 entry->l2_interface.pop_vlan = pop_vlan; in ofdpa_group_l2_interface()
1163 return ofdpa_group_tbl_do(ofdpa_port, flags, entry); in ofdpa_group_l2_interface()
1170 struct ofdpa_group_tbl_entry *entry; in ofdpa_group_l2_fan_out() local
1172 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_group_l2_fan_out()
1173 if (!entry) in ofdpa_group_l2_fan_out()
1176 entry->group_id = group_id; in ofdpa_group_l2_fan_out()
1177 entry->group_count = group_count; in ofdpa_group_l2_fan_out()
1179 entry->group_ids = kcalloc(group_count, sizeof(u32), GFP_KERNEL); in ofdpa_group_l2_fan_out()
1180 if (!entry->group_ids) { in ofdpa_group_l2_fan_out()
1181 kfree(entry); in ofdpa_group_l2_fan_out()
1184 memcpy(entry->group_ids, group_ids, group_count * sizeof(u32)); in ofdpa_group_l2_fan_out()
1186 return ofdpa_group_tbl_do(ofdpa_port, flags, entry); in ofdpa_group_l2_fan_out()
1203 struct ofdpa_group_tbl_entry *entry; in ofdpa_group_l3_unicast() local
1205 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_group_l3_unicast()
1206 if (!entry) in ofdpa_group_l3_unicast()
1209 entry->group_id = ROCKER_GROUP_L3_UNICAST(index); in ofdpa_group_l3_unicast()
1211 ether_addr_copy(entry->l3_unicast.eth_src, src_mac); in ofdpa_group_l3_unicast()
1213 ether_addr_copy(entry->l3_unicast.eth_dst, dst_mac); in ofdpa_group_l3_unicast()
1214 entry->l3_unicast.vlan_id = vlan_id; in ofdpa_group_l3_unicast()
1215 entry->l3_unicast.ttl_check = ttl_check; in ofdpa_group_l3_unicast()
1216 entry->l3_unicast.group_id = ROCKER_GROUP_L2_INTERFACE(vlan_id, pport); in ofdpa_group_l3_unicast()
1218 return ofdpa_group_tbl_do(ofdpa_port, flags, entry); in ofdpa_group_l3_unicast()
1227 entry, be32_to_cpu(ip_addr)) in ofdpa_neigh_tbl_find()
1235 struct ofdpa_neigh_tbl_entry *entry) in ofdpa_neigh_add() argument
1237 entry->index = ofdpa->neigh_tbl_next_index++; in ofdpa_neigh_add()
1238 entry->ref_count++; in ofdpa_neigh_add()
1239 hash_add(ofdpa->neigh_tbl, &entry->entry, in ofdpa_neigh_add()
1240 be32_to_cpu(entry->ip_addr)); in ofdpa_neigh_add()
1243 static void ofdpa_neigh_del(struct ofdpa_neigh_tbl_entry *entry) in ofdpa_neigh_del() argument
1245 if (--entry->ref_count == 0) { in ofdpa_neigh_del()
1246 hash_del(&entry->entry); in ofdpa_neigh_del()
1247 kfree(entry); in ofdpa_neigh_del()
1251 static void ofdpa_neigh_update(struct ofdpa_neigh_tbl_entry *entry, in ofdpa_neigh_update() argument
1255 ether_addr_copy(entry->eth_dst, eth_dst); in ofdpa_neigh_update()
1256 entry->ttl_check = ttl_check; in ofdpa_neigh_update()
1258 entry->ref_count++; in ofdpa_neigh_update()
1266 struct ofdpa_neigh_tbl_entry *entry; in ofdpa_port_ipv4_neigh() local
1279 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_port_ipv4_neigh()
1280 if (!entry) in ofdpa_port_ipv4_neigh()
1292 entry->ip_addr = ip_addr; in ofdpa_port_ipv4_neigh()
1293 entry->dev = ofdpa_port->dev; in ofdpa_port_ipv4_neigh()
1294 ether_addr_copy(entry->eth_dst, eth_dst); in ofdpa_port_ipv4_neigh()
1295 entry->ttl_check = true; in ofdpa_port_ipv4_neigh()
1296 ofdpa_neigh_add(ofdpa, entry); in ofdpa_port_ipv4_neigh()
1298 memcpy(entry, found, sizeof(*entry)); in ofdpa_port_ipv4_neigh()
1302 memcpy(entry, found, sizeof(*entry)); in ofdpa_port_ipv4_neigh()
1319 entry->index, in ofdpa_port_ipv4_neigh()
1321 entry->eth_dst, in ofdpa_port_ipv4_neigh()
1323 entry->ttl_check, in ofdpa_port_ipv4_neigh()
1327 err, entry->index); in ofdpa_port_ipv4_neigh()
1332 group_id = ROCKER_GROUP_L3_UNICAST(entry->index); in ofdpa_port_ipv4_neigh()
1341 err, &entry->ip_addr, group_id); in ofdpa_port_ipv4_neigh()
1346 kfree(entry); in ofdpa_port_ipv4_neigh()
1383 struct ofdpa_neigh_tbl_entry *entry; in ofdpa_port_ipv4_nh() local
1392 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_port_ipv4_nh()
1393 if (!entry) in ofdpa_port_ipv4_nh()
1405 entry->ip_addr = ip_addr; in ofdpa_port_ipv4_nh()
1406 entry->dev = ofdpa_port->dev; in ofdpa_port_ipv4_nh()
1407 ofdpa_neigh_add(ofdpa, entry); in ofdpa_port_ipv4_nh()
1408 *index = entry->index; in ofdpa_port_ipv4_nh()
1424 kfree(entry); in ofdpa_port_ipv4_nh()
1892 hash_for_each_possible(ofdpa->fdb_tbl, found, entry, match->key_crc32) in ofdpa_fdb_tbl_find()
1928 hash_del(&found->entry); in ofdpa_port_fdb()
1931 hash_add(ofdpa->fdb_tbl, &fdb->entry, in ofdpa_port_fdb()
1966 hash_for_each_safe(ofdpa->fdb_tbl, bkt, tmp, found, entry) { in ofdpa_port_fdb_flush()
1976 hash_del(&found->entry); in ofdpa_port_fdb_flush()
1989 struct ofdpa_fdb_tbl_entry *entry; in ofdpa_fdb_cleanup() local
2000 hash_for_each_safe(ofdpa->fdb_tbl, bkt, tmp, entry, entry) { in ofdpa_fdb_cleanup()
2001 if (!entry->learned) in ofdpa_fdb_cleanup()
2003 ofdpa_port = entry->key.ofdpa_port; in ofdpa_fdb_cleanup()
2004 expires = entry->touched + ofdpa_port->ageing_time; in ofdpa_fdb_cleanup()
2007 entry->key.addr, in ofdpa_fdb_cleanup()
2008 entry->key.vlan_id); in ofdpa_fdb_cleanup()
2009 hash_del(&entry->entry); in ofdpa_fdb_cleanup()
2220 entry, ifindex) { in ofdpa_internal_vlan_tbl_find()
2232 struct ofdpa_internal_vlan_tbl_entry *entry; in ofdpa_port_internal_vlan_id_get() local
2237 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_port_internal_vlan_id_get()
2238 if (!entry) in ofdpa_port_internal_vlan_id_get()
2241 entry->ifindex = ifindex; in ofdpa_port_internal_vlan_id_get()
2247 kfree(entry); in ofdpa_port_internal_vlan_id_get()
2251 found = entry; in ofdpa_port_internal_vlan_id_get()
2252 hash_add(ofdpa->internal_vlan_tbl, &found->entry, found->ifindex); in ofdpa_port_internal_vlan_id_get()
2337 hash_del(&found->entry); in ofdpa_port_internal_vlan_id_put()
2395 hash_for_each_safe(ofdpa->flow_tbl, bkt, tmp, flow_entry, entry) in ofdpa_fini()
2396 hash_del(&flow_entry->entry); in ofdpa_fini()
2400 hash_for_each_safe(ofdpa->group_tbl, bkt, tmp, group_entry, entry) in ofdpa_fini()
2401 hash_del(&group_entry->entry); in ofdpa_fini()
2405 hash_for_each_safe(ofdpa->fdb_tbl, bkt, tmp, fdb_entry, entry) in ofdpa_fini()
2406 hash_del(&fdb_entry->entry); in ofdpa_fini()
2411 tmp, internal_vlan_entry, entry) in ofdpa_fini()
2412 hash_del(&internal_vlan_entry->entry); in ofdpa_fini()
2416 hash_for_each_safe(ofdpa->neigh_tbl, bkt, tmp, neigh_entry, entry) in ofdpa_fini()
2417 hash_del(&neigh_entry->entry); in ofdpa_fini()
2796 hash_for_each_safe(ofdpa->flow_tbl, bkt, tmp, flow_entry, entry) { in ofdpa_fib4_abort()