Lines Matching refs:entry
93 struct hlist_node entry; member
103 struct hlist_node entry; member
129 struct hlist_node entry; member
141 struct hlist_node entry; member
148 struct hlist_node entry; member
306 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_ig_port() argument
309 entry->key.ig_port.in_pport)) in ofdpa_cmd_flow_tbl_add_ig_port()
312 entry->key.ig_port.in_pport_mask)) in ofdpa_cmd_flow_tbl_add_ig_port()
315 entry->key.ig_port.goto_tbl)) in ofdpa_cmd_flow_tbl_add_ig_port()
323 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_vlan() argument
326 entry->key.vlan.in_pport)) in ofdpa_cmd_flow_tbl_add_vlan()
329 entry->key.vlan.vlan_id)) in ofdpa_cmd_flow_tbl_add_vlan()
332 entry->key.vlan.vlan_id_mask)) in ofdpa_cmd_flow_tbl_add_vlan()
335 entry->key.vlan.goto_tbl)) in ofdpa_cmd_flow_tbl_add_vlan()
337 if (entry->key.vlan.untagged && in ofdpa_cmd_flow_tbl_add_vlan()
339 entry->key.vlan.new_vlan_id)) in ofdpa_cmd_flow_tbl_add_vlan()
347 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_term_mac() argument
350 entry->key.term_mac.in_pport)) in ofdpa_cmd_flow_tbl_add_term_mac()
353 entry->key.term_mac.in_pport_mask)) in ofdpa_cmd_flow_tbl_add_term_mac()
356 entry->key.term_mac.eth_type)) in ofdpa_cmd_flow_tbl_add_term_mac()
359 ETH_ALEN, entry->key.term_mac.eth_dst)) in ofdpa_cmd_flow_tbl_add_term_mac()
362 ETH_ALEN, entry->key.term_mac.eth_dst_mask)) in ofdpa_cmd_flow_tbl_add_term_mac()
365 entry->key.term_mac.vlan_id)) in ofdpa_cmd_flow_tbl_add_term_mac()
368 entry->key.term_mac.vlan_id_mask)) in ofdpa_cmd_flow_tbl_add_term_mac()
371 entry->key.term_mac.goto_tbl)) in ofdpa_cmd_flow_tbl_add_term_mac()
373 if (entry->key.term_mac.copy_to_cpu && in ofdpa_cmd_flow_tbl_add_term_mac()
375 entry->key.term_mac.copy_to_cpu)) in ofdpa_cmd_flow_tbl_add_term_mac()
383 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_ucast_routing() argument
386 entry->key.ucast_routing.eth_type)) in ofdpa_cmd_flow_tbl_add_ucast_routing()
389 entry->key.ucast_routing.dst4)) in ofdpa_cmd_flow_tbl_add_ucast_routing()
392 entry->key.ucast_routing.dst4_mask)) in ofdpa_cmd_flow_tbl_add_ucast_routing()
395 entry->key.ucast_routing.goto_tbl)) in ofdpa_cmd_flow_tbl_add_ucast_routing()
398 entry->key.ucast_routing.group_id)) in ofdpa_cmd_flow_tbl_add_ucast_routing()
406 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_bridge() argument
408 if (entry->key.bridge.has_eth_dst && in ofdpa_cmd_flow_tbl_add_bridge()
410 ETH_ALEN, entry->key.bridge.eth_dst)) in ofdpa_cmd_flow_tbl_add_bridge()
412 if (entry->key.bridge.has_eth_dst_mask && in ofdpa_cmd_flow_tbl_add_bridge()
414 ETH_ALEN, entry->key.bridge.eth_dst_mask)) in ofdpa_cmd_flow_tbl_add_bridge()
416 if (entry->key.bridge.vlan_id && in ofdpa_cmd_flow_tbl_add_bridge()
418 entry->key.bridge.vlan_id)) in ofdpa_cmd_flow_tbl_add_bridge()
420 if (entry->key.bridge.tunnel_id && in ofdpa_cmd_flow_tbl_add_bridge()
422 entry->key.bridge.tunnel_id)) in ofdpa_cmd_flow_tbl_add_bridge()
425 entry->key.bridge.goto_tbl)) in ofdpa_cmd_flow_tbl_add_bridge()
428 entry->key.bridge.group_id)) in ofdpa_cmd_flow_tbl_add_bridge()
430 if (entry->key.bridge.copy_to_cpu && in ofdpa_cmd_flow_tbl_add_bridge()
432 entry->key.bridge.copy_to_cpu)) in ofdpa_cmd_flow_tbl_add_bridge()
440 const struct ofdpa_flow_tbl_entry *entry) in ofdpa_cmd_flow_tbl_add_acl() argument
443 entry->key.acl.in_pport)) in ofdpa_cmd_flow_tbl_add_acl()
446 entry->key.acl.in_pport_mask)) in ofdpa_cmd_flow_tbl_add_acl()
449 ETH_ALEN, entry->key.acl.eth_src)) in ofdpa_cmd_flow_tbl_add_acl()
452 ETH_ALEN, entry->key.acl.eth_src_mask)) in ofdpa_cmd_flow_tbl_add_acl()
455 ETH_ALEN, entry->key.acl.eth_dst)) in ofdpa_cmd_flow_tbl_add_acl()
458 ETH_ALEN, entry->key.acl.eth_dst_mask)) in ofdpa_cmd_flow_tbl_add_acl()
461 entry->key.acl.eth_type)) in ofdpa_cmd_flow_tbl_add_acl()
464 entry->key.acl.vlan_id)) in ofdpa_cmd_flow_tbl_add_acl()
467 entry->key.acl.vlan_id_mask)) in ofdpa_cmd_flow_tbl_add_acl()
470 switch (ntohs(entry->key.acl.eth_type)) { in ofdpa_cmd_flow_tbl_add_acl()
474 entry->key.acl.ip_proto)) in ofdpa_cmd_flow_tbl_add_acl()
478 entry->key.acl.ip_proto_mask)) in ofdpa_cmd_flow_tbl_add_acl()
481 entry->key.acl.ip_tos & 0x3f)) in ofdpa_cmd_flow_tbl_add_acl()
485 entry->key.acl.ip_tos_mask & 0x3f)) in ofdpa_cmd_flow_tbl_add_acl()
488 (entry->key.acl.ip_tos & 0xc0) >> 6)) in ofdpa_cmd_flow_tbl_add_acl()
492 (entry->key.acl.ip_tos_mask & 0xc0) >> 6)) in ofdpa_cmd_flow_tbl_add_acl()
497 if (entry->key.acl.group_id != ROCKER_GROUP_NONE && in ofdpa_cmd_flow_tbl_add_acl()
499 entry->key.acl.group_id)) in ofdpa_cmd_flow_tbl_add_acl()
509 const struct ofdpa_flow_tbl_entry *entry = priv; in ofdpa_cmd_flow_tbl_add() local
513 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in ofdpa_cmd_flow_tbl_add()
519 entry->key.tbl_id)) in ofdpa_cmd_flow_tbl_add()
522 entry->key.priority)) in ofdpa_cmd_flow_tbl_add()
527 entry->cookie)) in ofdpa_cmd_flow_tbl_add()
530 switch (entry->key.tbl_id) { in ofdpa_cmd_flow_tbl_add()
532 err = ofdpa_cmd_flow_tbl_add_ig_port(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
535 err = ofdpa_cmd_flow_tbl_add_vlan(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
538 err = ofdpa_cmd_flow_tbl_add_term_mac(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
541 err = ofdpa_cmd_flow_tbl_add_ucast_routing(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
544 err = ofdpa_cmd_flow_tbl_add_bridge(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
547 err = ofdpa_cmd_flow_tbl_add_acl(desc_info, entry); in ofdpa_cmd_flow_tbl_add()
566 const struct ofdpa_flow_tbl_entry *entry = priv; in ofdpa_cmd_flow_tbl_del() local
569 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in ofdpa_cmd_flow_tbl_del()
575 entry->cookie)) in ofdpa_cmd_flow_tbl_del()
584 struct ofdpa_group_tbl_entry *entry) in ofdpa_cmd_group_tbl_add_l2_interface() argument
587 ROCKER_GROUP_PORT_GET(entry->group_id))) in ofdpa_cmd_group_tbl_add_l2_interface()
590 entry->l2_interface.pop_vlan)) in ofdpa_cmd_group_tbl_add_l2_interface()
598 const struct ofdpa_group_tbl_entry *entry) in ofdpa_cmd_group_tbl_add_l2_rewrite() argument
601 entry->l2_rewrite.group_id)) in ofdpa_cmd_group_tbl_add_l2_rewrite()
603 if (!is_zero_ether_addr(entry->l2_rewrite.eth_src) && in ofdpa_cmd_group_tbl_add_l2_rewrite()
605 ETH_ALEN, entry->l2_rewrite.eth_src)) in ofdpa_cmd_group_tbl_add_l2_rewrite()
607 if (!is_zero_ether_addr(entry->l2_rewrite.eth_dst) && in ofdpa_cmd_group_tbl_add_l2_rewrite()
609 ETH_ALEN, entry->l2_rewrite.eth_dst)) in ofdpa_cmd_group_tbl_add_l2_rewrite()
611 if (entry->l2_rewrite.vlan_id && in ofdpa_cmd_group_tbl_add_l2_rewrite()
613 entry->l2_rewrite.vlan_id)) in ofdpa_cmd_group_tbl_add_l2_rewrite()
621 const struct ofdpa_group_tbl_entry *entry) in ofdpa_cmd_group_tbl_add_group_ids() argument
627 entry->group_count)) in ofdpa_cmd_group_tbl_add_group_ids()
635 for (i = 0; i < entry->group_count; i++) in ofdpa_cmd_group_tbl_add_group_ids()
637 if (rocker_tlv_put_u32(desc_info, i + 1, entry->group_ids[i])) in ofdpa_cmd_group_tbl_add_group_ids()
647 const struct ofdpa_group_tbl_entry *entry) in ofdpa_cmd_group_tbl_add_l3_unicast() argument
649 if (!is_zero_ether_addr(entry->l3_unicast.eth_src) && in ofdpa_cmd_group_tbl_add_l3_unicast()
651 ETH_ALEN, entry->l3_unicast.eth_src)) in ofdpa_cmd_group_tbl_add_l3_unicast()
653 if (!is_zero_ether_addr(entry->l3_unicast.eth_dst) && in ofdpa_cmd_group_tbl_add_l3_unicast()
655 ETH_ALEN, entry->l3_unicast.eth_dst)) in ofdpa_cmd_group_tbl_add_l3_unicast()
657 if (entry->l3_unicast.vlan_id && in ofdpa_cmd_group_tbl_add_l3_unicast()
659 entry->l3_unicast.vlan_id)) in ofdpa_cmd_group_tbl_add_l3_unicast()
662 entry->l3_unicast.ttl_check)) in ofdpa_cmd_group_tbl_add_l3_unicast()
665 entry->l3_unicast.group_id)) in ofdpa_cmd_group_tbl_add_l3_unicast()
675 struct ofdpa_group_tbl_entry *entry = priv; in ofdpa_cmd_group_tbl_add() local
679 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in ofdpa_cmd_group_tbl_add()
686 entry->group_id)) in ofdpa_cmd_group_tbl_add()
689 switch (ROCKER_GROUP_TYPE_GET(entry->group_id)) { in ofdpa_cmd_group_tbl_add()
691 err = ofdpa_cmd_group_tbl_add_l2_interface(desc_info, entry); in ofdpa_cmd_group_tbl_add()
694 err = ofdpa_cmd_group_tbl_add_l2_rewrite(desc_info, entry); in ofdpa_cmd_group_tbl_add()
698 err = ofdpa_cmd_group_tbl_add_group_ids(desc_info, entry); in ofdpa_cmd_group_tbl_add()
701 err = ofdpa_cmd_group_tbl_add_l3_unicast(desc_info, entry); in ofdpa_cmd_group_tbl_add()
720 const struct ofdpa_group_tbl_entry *entry = priv; in ofdpa_cmd_group_tbl_del() local
723 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in ofdpa_cmd_group_tbl_del()
729 entry->group_id)) in ofdpa_cmd_group_tbl_del()
748 entry, match->key_crc32) { in ofdpa_flow_tbl_find()
772 hash_del(&found->entry); in ofdpa_flow_tbl_add()
782 hash_add(ofdpa->flow_tbl, &found->entry, found->key_crc32); in ofdpa_flow_tbl_add()
807 hash_del(&found->entry); in ofdpa_flow_tbl_del()
827 struct ofdpa_flow_tbl_entry *entry) in ofdpa_flow_tbl_do() argument
830 return ofdpa_flow_tbl_del(ofdpa_port, flags, entry); in ofdpa_flow_tbl_do()
832 return ofdpa_flow_tbl_add(ofdpa_port, flags, entry); in ofdpa_flow_tbl_do()
839 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_ig_port() local
841 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_flow_tbl_ig_port()
842 if (!entry) in ofdpa_flow_tbl_ig_port()
845 entry->key.priority = OFDPA_PRIORITY_IG_PORT; in ofdpa_flow_tbl_ig_port()
846 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_INGRESS_PORT; in ofdpa_flow_tbl_ig_port()
847 entry->key.ig_port.in_pport = in_pport; in ofdpa_flow_tbl_ig_port()
848 entry->key.ig_port.in_pport_mask = in_pport_mask; in ofdpa_flow_tbl_ig_port()
849 entry->key.ig_port.goto_tbl = goto_tbl; in ofdpa_flow_tbl_ig_port()
851 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_ig_port()
861 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_vlan() local
863 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_flow_tbl_vlan()
864 if (!entry) in ofdpa_flow_tbl_vlan()
867 entry->key.priority = OFDPA_PRIORITY_VLAN; in ofdpa_flow_tbl_vlan()
868 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_VLAN; in ofdpa_flow_tbl_vlan()
869 entry->key.vlan.in_pport = in_pport; in ofdpa_flow_tbl_vlan()
870 entry->key.vlan.vlan_id = vlan_id; in ofdpa_flow_tbl_vlan()
871 entry->key.vlan.vlan_id_mask = vlan_id_mask; in ofdpa_flow_tbl_vlan()
872 entry->key.vlan.goto_tbl = goto_tbl; in ofdpa_flow_tbl_vlan()
874 entry->key.vlan.untagged = untagged; in ofdpa_flow_tbl_vlan()
875 entry->key.vlan.new_vlan_id = new_vlan_id; in ofdpa_flow_tbl_vlan()
877 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_vlan()
887 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_term_mac() local
889 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_flow_tbl_term_mac()
890 if (!entry) in ofdpa_flow_tbl_term_mac()
894 entry->key.priority = OFDPA_PRIORITY_TERM_MAC_MCAST; in ofdpa_flow_tbl_term_mac()
895 entry->key.term_mac.goto_tbl = in ofdpa_flow_tbl_term_mac()
898 entry->key.priority = OFDPA_PRIORITY_TERM_MAC_UCAST; in ofdpa_flow_tbl_term_mac()
899 entry->key.term_mac.goto_tbl = in ofdpa_flow_tbl_term_mac()
903 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_TERMINATION_MAC; in ofdpa_flow_tbl_term_mac()
904 entry->key.term_mac.in_pport = in_pport; in ofdpa_flow_tbl_term_mac()
905 entry->key.term_mac.in_pport_mask = in_pport_mask; in ofdpa_flow_tbl_term_mac()
906 entry->key.term_mac.eth_type = eth_type; in ofdpa_flow_tbl_term_mac()
907 ether_addr_copy(entry->key.term_mac.eth_dst, eth_dst); in ofdpa_flow_tbl_term_mac()
908 ether_addr_copy(entry->key.term_mac.eth_dst_mask, eth_dst_mask); in ofdpa_flow_tbl_term_mac()
909 entry->key.term_mac.vlan_id = vlan_id; in ofdpa_flow_tbl_term_mac()
910 entry->key.term_mac.vlan_id_mask = vlan_id_mask; in ofdpa_flow_tbl_term_mac()
911 entry->key.term_mac.copy_to_cpu = copy_to_cpu; in ofdpa_flow_tbl_term_mac()
913 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_term_mac()
923 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_bridge() local
929 entry = kzalloc(sizeof(*entry), GFP_ATOMIC); in ofdpa_flow_tbl_bridge()
930 if (!entry) in ofdpa_flow_tbl_bridge()
933 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_BRIDGING; in ofdpa_flow_tbl_bridge()
936 entry->key.bridge.has_eth_dst = 1; in ofdpa_flow_tbl_bridge()
937 ether_addr_copy(entry->key.bridge.eth_dst, eth_dst); in ofdpa_flow_tbl_bridge()
940 entry->key.bridge.has_eth_dst_mask = 1; in ofdpa_flow_tbl_bridge()
941 ether_addr_copy(entry->key.bridge.eth_dst_mask, eth_dst_mask); in ofdpa_flow_tbl_bridge()
960 entry->key.priority = priority; in ofdpa_flow_tbl_bridge()
961 entry->key.bridge.vlan_id = vlan_id; in ofdpa_flow_tbl_bridge()
962 entry->key.bridge.tunnel_id = tunnel_id; in ofdpa_flow_tbl_bridge()
963 entry->key.bridge.goto_tbl = goto_tbl; in ofdpa_flow_tbl_bridge()
964 entry->key.bridge.group_id = group_id; in ofdpa_flow_tbl_bridge()
965 entry->key.bridge.copy_to_cpu = copy_to_cpu; in ofdpa_flow_tbl_bridge()
967 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_bridge()
977 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_ucast4_routing() local
979 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_flow_tbl_ucast4_routing()
980 if (!entry) in ofdpa_flow_tbl_ucast4_routing()
983 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_UNICAST_ROUTING; in ofdpa_flow_tbl_ucast4_routing()
984 entry->key.priority = priority; in ofdpa_flow_tbl_ucast4_routing()
985 entry->key.ucast_routing.eth_type = eth_type; in ofdpa_flow_tbl_ucast4_routing()
986 entry->key.ucast_routing.dst4 = dst; in ofdpa_flow_tbl_ucast4_routing()
987 entry->key.ucast_routing.dst4_mask = dst_mask; in ofdpa_flow_tbl_ucast4_routing()
988 entry->key.ucast_routing.goto_tbl = goto_tbl; in ofdpa_flow_tbl_ucast4_routing()
989 entry->key.ucast_routing.group_id = group_id; in ofdpa_flow_tbl_ucast4_routing()
990 entry->key_len = offsetof(struct ofdpa_flow_tbl_key, in ofdpa_flow_tbl_ucast4_routing()
992 entry->fi = fi; in ofdpa_flow_tbl_ucast4_routing()
994 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_ucast4_routing()
1007 struct ofdpa_flow_tbl_entry *entry; in ofdpa_flow_tbl_acl() local
1009 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_flow_tbl_acl()
1010 if (!entry) in ofdpa_flow_tbl_acl()
1021 entry->key.priority = priority; in ofdpa_flow_tbl_acl()
1022 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_ACL_POLICY; in ofdpa_flow_tbl_acl()
1023 entry->key.acl.in_pport = in_pport; in ofdpa_flow_tbl_acl()
1024 entry->key.acl.in_pport_mask = in_pport_mask; in ofdpa_flow_tbl_acl()
1027 ether_addr_copy(entry->key.acl.eth_src, eth_src); in ofdpa_flow_tbl_acl()
1029 ether_addr_copy(entry->key.acl.eth_src_mask, eth_src_mask); in ofdpa_flow_tbl_acl()
1031 ether_addr_copy(entry->key.acl.eth_dst, eth_dst); in ofdpa_flow_tbl_acl()
1033 ether_addr_copy(entry->key.acl.eth_dst_mask, eth_dst_mask); in ofdpa_flow_tbl_acl()
1035 entry->key.acl.eth_type = eth_type; in ofdpa_flow_tbl_acl()
1036 entry->key.acl.vlan_id = vlan_id; in ofdpa_flow_tbl_acl()
1037 entry->key.acl.vlan_id_mask = vlan_id_mask; in ofdpa_flow_tbl_acl()
1038 entry->key.acl.ip_proto = ip_proto; in ofdpa_flow_tbl_acl()
1039 entry->key.acl.ip_proto_mask = ip_proto_mask; in ofdpa_flow_tbl_acl()
1040 entry->key.acl.ip_tos = ip_tos; in ofdpa_flow_tbl_acl()
1041 entry->key.acl.ip_tos_mask = ip_tos_mask; in ofdpa_flow_tbl_acl()
1042 entry->key.acl.group_id = group_id; in ofdpa_flow_tbl_acl()
1044 return ofdpa_flow_tbl_do(ofdpa_port, flags, entry); in ofdpa_flow_tbl_acl()
1054 entry, match->group_id) { in ofdpa_group_tbl_find()
1062 static void ofdpa_group_tbl_entry_free(struct ofdpa_group_tbl_entry *entry) in ofdpa_group_tbl_entry_free() argument
1064 switch (ROCKER_GROUP_TYPE_GET(entry->group_id)) { in ofdpa_group_tbl_entry_free()
1067 kfree(entry->group_ids); in ofdpa_group_tbl_entry_free()
1072 kfree(entry); in ofdpa_group_tbl_entry_free()
1087 hash_del(&found->entry); in ofdpa_group_tbl_add()
1096 hash_add(ofdpa->group_tbl, &found->entry, found->group_id); in ofdpa_group_tbl_add()
1119 hash_del(&found->entry); in ofdpa_group_tbl_del()
1139 struct ofdpa_group_tbl_entry *entry) in ofdpa_group_tbl_do() argument
1142 return ofdpa_group_tbl_del(ofdpa_port, flags, entry); in ofdpa_group_tbl_do()
1144 return ofdpa_group_tbl_add(ofdpa_port, flags, entry); in ofdpa_group_tbl_do()
1151 struct ofdpa_group_tbl_entry *entry; in ofdpa_group_l2_interface() local
1153 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_group_l2_interface()
1154 if (!entry) in ofdpa_group_l2_interface()
1157 entry->group_id = ROCKER_GROUP_L2_INTERFACE(vlan_id, out_pport); in ofdpa_group_l2_interface()
1158 entry->l2_interface.pop_vlan = pop_vlan; in ofdpa_group_l2_interface()
1160 return ofdpa_group_tbl_do(ofdpa_port, flags, entry); in ofdpa_group_l2_interface()
1167 struct ofdpa_group_tbl_entry *entry; in ofdpa_group_l2_fan_out() local
1169 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_group_l2_fan_out()
1170 if (!entry) in ofdpa_group_l2_fan_out()
1173 entry->group_id = group_id; in ofdpa_group_l2_fan_out()
1174 entry->group_count = group_count; in ofdpa_group_l2_fan_out()
1176 entry->group_ids = kcalloc(group_count, sizeof(u32), GFP_KERNEL); in ofdpa_group_l2_fan_out()
1177 if (!entry->group_ids) { in ofdpa_group_l2_fan_out()
1178 kfree(entry); in ofdpa_group_l2_fan_out()
1181 memcpy(entry->group_ids, group_ids, group_count * sizeof(u32)); in ofdpa_group_l2_fan_out()
1183 return ofdpa_group_tbl_do(ofdpa_port, flags, entry); in ofdpa_group_l2_fan_out()
1200 struct ofdpa_group_tbl_entry *entry; in ofdpa_group_l3_unicast() local
1202 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_group_l3_unicast()
1203 if (!entry) in ofdpa_group_l3_unicast()
1206 entry->group_id = ROCKER_GROUP_L3_UNICAST(index); in ofdpa_group_l3_unicast()
1208 ether_addr_copy(entry->l3_unicast.eth_src, src_mac); in ofdpa_group_l3_unicast()
1210 ether_addr_copy(entry->l3_unicast.eth_dst, dst_mac); in ofdpa_group_l3_unicast()
1211 entry->l3_unicast.vlan_id = vlan_id; in ofdpa_group_l3_unicast()
1212 entry->l3_unicast.ttl_check = ttl_check; in ofdpa_group_l3_unicast()
1213 entry->l3_unicast.group_id = ROCKER_GROUP_L2_INTERFACE(vlan_id, pport); in ofdpa_group_l3_unicast()
1215 return ofdpa_group_tbl_do(ofdpa_port, flags, entry); in ofdpa_group_l3_unicast()
1224 entry, be32_to_cpu(ip_addr)) in ofdpa_neigh_tbl_find()
1232 struct ofdpa_neigh_tbl_entry *entry) in ofdpa_neigh_add() argument
1234 entry->index = ofdpa->neigh_tbl_next_index++; in ofdpa_neigh_add()
1235 entry->ref_count++; in ofdpa_neigh_add()
1236 hash_add(ofdpa->neigh_tbl, &entry->entry, in ofdpa_neigh_add()
1237 be32_to_cpu(entry->ip_addr)); in ofdpa_neigh_add()
1240 static void ofdpa_neigh_del(struct ofdpa_neigh_tbl_entry *entry) in ofdpa_neigh_del() argument
1242 if (--entry->ref_count == 0) { in ofdpa_neigh_del()
1243 hash_del(&entry->entry); in ofdpa_neigh_del()
1244 kfree(entry); in ofdpa_neigh_del()
1248 static void ofdpa_neigh_update(struct ofdpa_neigh_tbl_entry *entry, in ofdpa_neigh_update() argument
1252 ether_addr_copy(entry->eth_dst, eth_dst); in ofdpa_neigh_update()
1253 entry->ttl_check = ttl_check; in ofdpa_neigh_update()
1255 entry->ref_count++; in ofdpa_neigh_update()
1263 struct ofdpa_neigh_tbl_entry *entry; in ofdpa_port_ipv4_neigh() local
1276 entry = kzalloc(sizeof(*entry), GFP_ATOMIC); in ofdpa_port_ipv4_neigh()
1277 if (!entry) in ofdpa_port_ipv4_neigh()
1289 entry->ip_addr = ip_addr; in ofdpa_port_ipv4_neigh()
1290 entry->dev = ofdpa_port->dev; in ofdpa_port_ipv4_neigh()
1291 ether_addr_copy(entry->eth_dst, eth_dst); in ofdpa_port_ipv4_neigh()
1292 entry->ttl_check = true; in ofdpa_port_ipv4_neigh()
1293 ofdpa_neigh_add(ofdpa, entry); in ofdpa_port_ipv4_neigh()
1295 memcpy(entry, found, sizeof(*entry)); in ofdpa_port_ipv4_neigh()
1299 memcpy(entry, found, sizeof(*entry)); in ofdpa_port_ipv4_neigh()
1316 entry->index, in ofdpa_port_ipv4_neigh()
1318 entry->eth_dst, in ofdpa_port_ipv4_neigh()
1320 entry->ttl_check, in ofdpa_port_ipv4_neigh()
1324 err, entry->index); in ofdpa_port_ipv4_neigh()
1329 group_id = ROCKER_GROUP_L3_UNICAST(entry->index); in ofdpa_port_ipv4_neigh()
1338 err, &entry->ip_addr, group_id); in ofdpa_port_ipv4_neigh()
1343 kfree(entry); in ofdpa_port_ipv4_neigh()
1380 struct ofdpa_neigh_tbl_entry *entry; in ofdpa_port_ipv4_nh() local
1389 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_port_ipv4_nh()
1390 if (!entry) in ofdpa_port_ipv4_nh()
1402 entry->ip_addr = ip_addr; in ofdpa_port_ipv4_nh()
1403 entry->dev = ofdpa_port->dev; in ofdpa_port_ipv4_nh()
1404 ofdpa_neigh_add(ofdpa, entry); in ofdpa_port_ipv4_nh()
1405 *index = entry->index; in ofdpa_port_ipv4_nh()
1421 kfree(entry); in ofdpa_port_ipv4_nh()
1889 hash_for_each_possible(ofdpa->fdb_tbl, found, entry, match->key_crc32) in ofdpa_fdb_tbl_find()
1925 hash_del(&found->entry); in ofdpa_port_fdb()
1928 hash_add(ofdpa->fdb_tbl, &fdb->entry, in ofdpa_port_fdb()
1963 hash_for_each_safe(ofdpa->fdb_tbl, bkt, tmp, found, entry) { in ofdpa_port_fdb_flush()
1973 hash_del(&found->entry); in ofdpa_port_fdb_flush()
1986 struct ofdpa_fdb_tbl_entry *entry; in ofdpa_fdb_cleanup() local
1997 hash_for_each_safe(ofdpa->fdb_tbl, bkt, tmp, entry, entry) { in ofdpa_fdb_cleanup()
1998 if (!entry->learned) in ofdpa_fdb_cleanup()
2000 ofdpa_port = entry->key.ofdpa_port; in ofdpa_fdb_cleanup()
2001 expires = entry->touched + ofdpa_port->ageing_time; in ofdpa_fdb_cleanup()
2004 entry->key.addr, in ofdpa_fdb_cleanup()
2005 entry->key.vlan_id); in ofdpa_fdb_cleanup()
2006 hash_del(&entry->entry); in ofdpa_fdb_cleanup()
2217 entry, ifindex) { in ofdpa_internal_vlan_tbl_find()
2229 struct ofdpa_internal_vlan_tbl_entry *entry; in ofdpa_port_internal_vlan_id_get() local
2234 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in ofdpa_port_internal_vlan_id_get()
2235 if (!entry) in ofdpa_port_internal_vlan_id_get()
2238 entry->ifindex = ifindex; in ofdpa_port_internal_vlan_id_get()
2244 kfree(entry); in ofdpa_port_internal_vlan_id_get()
2248 found = entry; in ofdpa_port_internal_vlan_id_get()
2249 hash_add(ofdpa->internal_vlan_tbl, &found->entry, found->ifindex); in ofdpa_port_internal_vlan_id_get()
2334 hash_del(&found->entry); in ofdpa_port_internal_vlan_id_put()
2392 hash_for_each_safe(ofdpa->flow_tbl, bkt, tmp, flow_entry, entry) in ofdpa_fini()
2393 hash_del(&flow_entry->entry); in ofdpa_fini()
2397 hash_for_each_safe(ofdpa->group_tbl, bkt, tmp, group_entry, entry) in ofdpa_fini()
2398 hash_del(&group_entry->entry); in ofdpa_fini()
2402 hash_for_each_safe(ofdpa->fdb_tbl, bkt, tmp, fdb_entry, entry) in ofdpa_fini()
2403 hash_del(&fdb_entry->entry); in ofdpa_fini()
2408 tmp, internal_vlan_entry, entry) in ofdpa_fini()
2409 hash_del(&internal_vlan_entry->entry); in ofdpa_fini()
2413 hash_for_each_safe(ofdpa->neigh_tbl, bkt, tmp, neigh_entry, entry) in ofdpa_fini()
2414 hash_del(&neigh_entry->entry); in ofdpa_fini()
2775 hash_for_each_safe(ofdpa->flow_tbl, bkt, tmp, flow_entry, entry) { in ofdpa_fib4_abort()