Lines Matching refs:entry
117 struct hlist_node entry; member
126 struct hlist_node entry; member
152 struct hlist_node entry; member
164 struct hlist_node entry; member
171 struct hlist_node entry; member
1918 const struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_ig_port() argument
1921 entry->key.ig_port.in_pport)) in rocker_cmd_flow_tbl_add_ig_port()
1924 entry->key.ig_port.in_pport_mask)) in rocker_cmd_flow_tbl_add_ig_port()
1927 entry->key.ig_port.goto_tbl)) in rocker_cmd_flow_tbl_add_ig_port()
1935 const struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_vlan() argument
1938 entry->key.vlan.in_pport)) in rocker_cmd_flow_tbl_add_vlan()
1941 entry->key.vlan.vlan_id)) in rocker_cmd_flow_tbl_add_vlan()
1944 entry->key.vlan.vlan_id_mask)) in rocker_cmd_flow_tbl_add_vlan()
1947 entry->key.vlan.goto_tbl)) in rocker_cmd_flow_tbl_add_vlan()
1949 if (entry->key.vlan.untagged && in rocker_cmd_flow_tbl_add_vlan()
1951 entry->key.vlan.new_vlan_id)) in rocker_cmd_flow_tbl_add_vlan()
1959 const struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_term_mac() argument
1962 entry->key.term_mac.in_pport)) in rocker_cmd_flow_tbl_add_term_mac()
1965 entry->key.term_mac.in_pport_mask)) in rocker_cmd_flow_tbl_add_term_mac()
1968 entry->key.term_mac.eth_type)) in rocker_cmd_flow_tbl_add_term_mac()
1971 ETH_ALEN, entry->key.term_mac.eth_dst)) in rocker_cmd_flow_tbl_add_term_mac()
1974 ETH_ALEN, entry->key.term_mac.eth_dst_mask)) in rocker_cmd_flow_tbl_add_term_mac()
1977 entry->key.term_mac.vlan_id)) in rocker_cmd_flow_tbl_add_term_mac()
1980 entry->key.term_mac.vlan_id_mask)) in rocker_cmd_flow_tbl_add_term_mac()
1983 entry->key.term_mac.goto_tbl)) in rocker_cmd_flow_tbl_add_term_mac()
1985 if (entry->key.term_mac.copy_to_cpu && in rocker_cmd_flow_tbl_add_term_mac()
1987 entry->key.term_mac.copy_to_cpu)) in rocker_cmd_flow_tbl_add_term_mac()
1995 const struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_ucast_routing() argument
1998 entry->key.ucast_routing.eth_type)) in rocker_cmd_flow_tbl_add_ucast_routing()
2001 entry->key.ucast_routing.dst4)) in rocker_cmd_flow_tbl_add_ucast_routing()
2004 entry->key.ucast_routing.dst4_mask)) in rocker_cmd_flow_tbl_add_ucast_routing()
2007 entry->key.ucast_routing.goto_tbl)) in rocker_cmd_flow_tbl_add_ucast_routing()
2010 entry->key.ucast_routing.group_id)) in rocker_cmd_flow_tbl_add_ucast_routing()
2018 const struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_bridge() argument
2020 if (entry->key.bridge.has_eth_dst && in rocker_cmd_flow_tbl_add_bridge()
2022 ETH_ALEN, entry->key.bridge.eth_dst)) in rocker_cmd_flow_tbl_add_bridge()
2024 if (entry->key.bridge.has_eth_dst_mask && in rocker_cmd_flow_tbl_add_bridge()
2026 ETH_ALEN, entry->key.bridge.eth_dst_mask)) in rocker_cmd_flow_tbl_add_bridge()
2028 if (entry->key.bridge.vlan_id && in rocker_cmd_flow_tbl_add_bridge()
2030 entry->key.bridge.vlan_id)) in rocker_cmd_flow_tbl_add_bridge()
2032 if (entry->key.bridge.tunnel_id && in rocker_cmd_flow_tbl_add_bridge()
2034 entry->key.bridge.tunnel_id)) in rocker_cmd_flow_tbl_add_bridge()
2037 entry->key.bridge.goto_tbl)) in rocker_cmd_flow_tbl_add_bridge()
2040 entry->key.bridge.group_id)) in rocker_cmd_flow_tbl_add_bridge()
2042 if (entry->key.bridge.copy_to_cpu && in rocker_cmd_flow_tbl_add_bridge()
2044 entry->key.bridge.copy_to_cpu)) in rocker_cmd_flow_tbl_add_bridge()
2052 const struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_acl() argument
2055 entry->key.acl.in_pport)) in rocker_cmd_flow_tbl_add_acl()
2058 entry->key.acl.in_pport_mask)) in rocker_cmd_flow_tbl_add_acl()
2061 ETH_ALEN, entry->key.acl.eth_src)) in rocker_cmd_flow_tbl_add_acl()
2064 ETH_ALEN, entry->key.acl.eth_src_mask)) in rocker_cmd_flow_tbl_add_acl()
2067 ETH_ALEN, entry->key.acl.eth_dst)) in rocker_cmd_flow_tbl_add_acl()
2070 ETH_ALEN, entry->key.acl.eth_dst_mask)) in rocker_cmd_flow_tbl_add_acl()
2073 entry->key.acl.eth_type)) in rocker_cmd_flow_tbl_add_acl()
2076 entry->key.acl.vlan_id)) in rocker_cmd_flow_tbl_add_acl()
2079 entry->key.acl.vlan_id_mask)) in rocker_cmd_flow_tbl_add_acl()
2082 switch (ntohs(entry->key.acl.eth_type)) { in rocker_cmd_flow_tbl_add_acl()
2086 entry->key.acl.ip_proto)) in rocker_cmd_flow_tbl_add_acl()
2090 entry->key.acl.ip_proto_mask)) in rocker_cmd_flow_tbl_add_acl()
2093 entry->key.acl.ip_tos & 0x3f)) in rocker_cmd_flow_tbl_add_acl()
2097 entry->key.acl.ip_tos_mask & 0x3f)) in rocker_cmd_flow_tbl_add_acl()
2100 (entry->key.acl.ip_tos & 0xc0) >> 6)) in rocker_cmd_flow_tbl_add_acl()
2104 (entry->key.acl.ip_tos_mask & 0xc0) >> 6)) in rocker_cmd_flow_tbl_add_acl()
2109 if (entry->key.acl.group_id != ROCKER_GROUP_NONE && in rocker_cmd_flow_tbl_add_acl()
2111 entry->key.acl.group_id)) in rocker_cmd_flow_tbl_add_acl()
2121 const struct rocker_flow_tbl_entry *entry = priv; in rocker_cmd_flow_tbl_add() local
2125 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_flow_tbl_add()
2131 entry->key.tbl_id)) in rocker_cmd_flow_tbl_add()
2134 entry->key.priority)) in rocker_cmd_flow_tbl_add()
2139 entry->cookie)) in rocker_cmd_flow_tbl_add()
2142 switch (entry->key.tbl_id) { in rocker_cmd_flow_tbl_add()
2144 err = rocker_cmd_flow_tbl_add_ig_port(desc_info, entry); in rocker_cmd_flow_tbl_add()
2147 err = rocker_cmd_flow_tbl_add_vlan(desc_info, entry); in rocker_cmd_flow_tbl_add()
2150 err = rocker_cmd_flow_tbl_add_term_mac(desc_info, entry); in rocker_cmd_flow_tbl_add()
2153 err = rocker_cmd_flow_tbl_add_ucast_routing(desc_info, entry); in rocker_cmd_flow_tbl_add()
2156 err = rocker_cmd_flow_tbl_add_bridge(desc_info, entry); in rocker_cmd_flow_tbl_add()
2159 err = rocker_cmd_flow_tbl_add_acl(desc_info, entry); in rocker_cmd_flow_tbl_add()
2178 const struct rocker_flow_tbl_entry *entry = priv; in rocker_cmd_flow_tbl_del() local
2181 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_flow_tbl_del()
2187 entry->cookie)) in rocker_cmd_flow_tbl_del()
2196 struct rocker_group_tbl_entry *entry) in rocker_cmd_group_tbl_add_l2_interface() argument
2199 ROCKER_GROUP_PORT_GET(entry->group_id))) in rocker_cmd_group_tbl_add_l2_interface()
2202 entry->l2_interface.pop_vlan)) in rocker_cmd_group_tbl_add_l2_interface()
2210 const struct rocker_group_tbl_entry *entry) in rocker_cmd_group_tbl_add_l2_rewrite() argument
2213 entry->l2_rewrite.group_id)) in rocker_cmd_group_tbl_add_l2_rewrite()
2215 if (!is_zero_ether_addr(entry->l2_rewrite.eth_src) && in rocker_cmd_group_tbl_add_l2_rewrite()
2217 ETH_ALEN, entry->l2_rewrite.eth_src)) in rocker_cmd_group_tbl_add_l2_rewrite()
2219 if (!is_zero_ether_addr(entry->l2_rewrite.eth_dst) && in rocker_cmd_group_tbl_add_l2_rewrite()
2221 ETH_ALEN, entry->l2_rewrite.eth_dst)) in rocker_cmd_group_tbl_add_l2_rewrite()
2223 if (entry->l2_rewrite.vlan_id && in rocker_cmd_group_tbl_add_l2_rewrite()
2225 entry->l2_rewrite.vlan_id)) in rocker_cmd_group_tbl_add_l2_rewrite()
2233 const struct rocker_group_tbl_entry *entry) in rocker_cmd_group_tbl_add_group_ids() argument
2239 entry->group_count)) in rocker_cmd_group_tbl_add_group_ids()
2247 for (i = 0; i < entry->group_count; i++) in rocker_cmd_group_tbl_add_group_ids()
2249 if (rocker_tlv_put_u32(desc_info, i + 1, entry->group_ids[i])) in rocker_cmd_group_tbl_add_group_ids()
2259 const struct rocker_group_tbl_entry *entry) in rocker_cmd_group_tbl_add_l3_unicast() argument
2261 if (!is_zero_ether_addr(entry->l3_unicast.eth_src) && in rocker_cmd_group_tbl_add_l3_unicast()
2263 ETH_ALEN, entry->l3_unicast.eth_src)) in rocker_cmd_group_tbl_add_l3_unicast()
2265 if (!is_zero_ether_addr(entry->l3_unicast.eth_dst) && in rocker_cmd_group_tbl_add_l3_unicast()
2267 ETH_ALEN, entry->l3_unicast.eth_dst)) in rocker_cmd_group_tbl_add_l3_unicast()
2269 if (entry->l3_unicast.vlan_id && in rocker_cmd_group_tbl_add_l3_unicast()
2271 entry->l3_unicast.vlan_id)) in rocker_cmd_group_tbl_add_l3_unicast()
2274 entry->l3_unicast.ttl_check)) in rocker_cmd_group_tbl_add_l3_unicast()
2277 entry->l3_unicast.group_id)) in rocker_cmd_group_tbl_add_l3_unicast()
2287 struct rocker_group_tbl_entry *entry = priv; in rocker_cmd_group_tbl_add() local
2291 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_group_tbl_add()
2298 entry->group_id)) in rocker_cmd_group_tbl_add()
2301 switch (ROCKER_GROUP_TYPE_GET(entry->group_id)) { in rocker_cmd_group_tbl_add()
2303 err = rocker_cmd_group_tbl_add_l2_interface(desc_info, entry); in rocker_cmd_group_tbl_add()
2306 err = rocker_cmd_group_tbl_add_l2_rewrite(desc_info, entry); in rocker_cmd_group_tbl_add()
2310 err = rocker_cmd_group_tbl_add_group_ids(desc_info, entry); in rocker_cmd_group_tbl_add()
2313 err = rocker_cmd_group_tbl_add_l3_unicast(desc_info, entry); in rocker_cmd_group_tbl_add()
2332 const struct rocker_group_tbl_entry *entry = priv; in rocker_cmd_group_tbl_del() local
2335 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_group_tbl_del()
2341 entry->group_id)) in rocker_cmd_group_tbl_del()
2384 hash_for_each_safe(rocker->flow_tbl, bkt, tmp, flow_entry, entry) in rocker_free_tbls()
2385 hash_del(&flow_entry->entry); in rocker_free_tbls()
2389 hash_for_each_safe(rocker->group_tbl, bkt, tmp, group_entry, entry) in rocker_free_tbls()
2390 hash_del(&group_entry->entry); in rocker_free_tbls()
2394 hash_for_each_safe(rocker->fdb_tbl, bkt, tmp, fdb_entry, entry) in rocker_free_tbls()
2395 hash_del(&fdb_entry->entry); in rocker_free_tbls()
2400 tmp, internal_vlan_entry, entry) in rocker_free_tbls()
2401 hash_del(&internal_vlan_entry->entry); in rocker_free_tbls()
2405 hash_for_each_safe(rocker->neigh_tbl, bkt, tmp, neigh_entry, entry) in rocker_free_tbls()
2406 hash_del(&neigh_entry->entry); in rocker_free_tbls()
2418 entry, match->key_crc32) { in rocker_flow_tbl_find()
2444 hash_del(&found->entry); in rocker_flow_tbl_add()
2455 hash_add(rocker->flow_tbl, &found->entry, found->key_crc32); in rocker_flow_tbl_add()
2481 hash_del(&found->entry); in rocker_flow_tbl_del()
2501 struct rocker_flow_tbl_entry *entry) in rocker_flow_tbl_do() argument
2504 return rocker_flow_tbl_del(rocker_port, trans, flags, entry); in rocker_flow_tbl_do()
2506 return rocker_flow_tbl_add(rocker_port, trans, flags, entry); in rocker_flow_tbl_do()
2514 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_ig_port() local
2516 entry = rocker_port_kzalloc(rocker_port, trans, flags, sizeof(*entry)); in rocker_flow_tbl_ig_port()
2517 if (!entry) in rocker_flow_tbl_ig_port()
2520 entry->key.priority = ROCKER_PRIORITY_IG_PORT; in rocker_flow_tbl_ig_port()
2521 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_INGRESS_PORT; in rocker_flow_tbl_ig_port()
2522 entry->key.ig_port.in_pport = in_pport; in rocker_flow_tbl_ig_port()
2523 entry->key.ig_port.in_pport_mask = in_pport_mask; in rocker_flow_tbl_ig_port()
2524 entry->key.ig_port.goto_tbl = goto_tbl; in rocker_flow_tbl_ig_port()
2526 return rocker_flow_tbl_do(rocker_port, trans, flags, entry); in rocker_flow_tbl_ig_port()
2536 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_vlan() local
2538 entry = rocker_port_kzalloc(rocker_port, trans, flags, sizeof(*entry)); in rocker_flow_tbl_vlan()
2539 if (!entry) in rocker_flow_tbl_vlan()
2542 entry->key.priority = ROCKER_PRIORITY_VLAN; in rocker_flow_tbl_vlan()
2543 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_VLAN; in rocker_flow_tbl_vlan()
2544 entry->key.vlan.in_pport = in_pport; in rocker_flow_tbl_vlan()
2545 entry->key.vlan.vlan_id = vlan_id; in rocker_flow_tbl_vlan()
2546 entry->key.vlan.vlan_id_mask = vlan_id_mask; in rocker_flow_tbl_vlan()
2547 entry->key.vlan.goto_tbl = goto_tbl; in rocker_flow_tbl_vlan()
2549 entry->key.vlan.untagged = untagged; in rocker_flow_tbl_vlan()
2550 entry->key.vlan.new_vlan_id = new_vlan_id; in rocker_flow_tbl_vlan()
2552 return rocker_flow_tbl_do(rocker_port, trans, flags, entry); in rocker_flow_tbl_vlan()
2563 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_term_mac() local
2565 entry = rocker_port_kzalloc(rocker_port, trans, flags, sizeof(*entry)); in rocker_flow_tbl_term_mac()
2566 if (!entry) in rocker_flow_tbl_term_mac()
2570 entry->key.priority = ROCKER_PRIORITY_TERM_MAC_MCAST; in rocker_flow_tbl_term_mac()
2571 entry->key.term_mac.goto_tbl = in rocker_flow_tbl_term_mac()
2574 entry->key.priority = ROCKER_PRIORITY_TERM_MAC_UCAST; in rocker_flow_tbl_term_mac()
2575 entry->key.term_mac.goto_tbl = in rocker_flow_tbl_term_mac()
2579 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_TERMINATION_MAC; in rocker_flow_tbl_term_mac()
2580 entry->key.term_mac.in_pport = in_pport; in rocker_flow_tbl_term_mac()
2581 entry->key.term_mac.in_pport_mask = in_pport_mask; in rocker_flow_tbl_term_mac()
2582 entry->key.term_mac.eth_type = eth_type; in rocker_flow_tbl_term_mac()
2583 ether_addr_copy(entry->key.term_mac.eth_dst, eth_dst); in rocker_flow_tbl_term_mac()
2584 ether_addr_copy(entry->key.term_mac.eth_dst_mask, eth_dst_mask); in rocker_flow_tbl_term_mac()
2585 entry->key.term_mac.vlan_id = vlan_id; in rocker_flow_tbl_term_mac()
2586 entry->key.term_mac.vlan_id_mask = vlan_id_mask; in rocker_flow_tbl_term_mac()
2587 entry->key.term_mac.copy_to_cpu = copy_to_cpu; in rocker_flow_tbl_term_mac()
2589 return rocker_flow_tbl_do(rocker_port, trans, flags, entry); in rocker_flow_tbl_term_mac()
2599 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_bridge() local
2605 entry = rocker_port_kzalloc(rocker_port, trans, flags, sizeof(*entry)); in rocker_flow_tbl_bridge()
2606 if (!entry) in rocker_flow_tbl_bridge()
2609 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_BRIDGING; in rocker_flow_tbl_bridge()
2612 entry->key.bridge.has_eth_dst = 1; in rocker_flow_tbl_bridge()
2613 ether_addr_copy(entry->key.bridge.eth_dst, eth_dst); in rocker_flow_tbl_bridge()
2616 entry->key.bridge.has_eth_dst_mask = 1; in rocker_flow_tbl_bridge()
2617 ether_addr_copy(entry->key.bridge.eth_dst_mask, eth_dst_mask); in rocker_flow_tbl_bridge()
2636 entry->key.priority = priority; in rocker_flow_tbl_bridge()
2637 entry->key.bridge.vlan_id = vlan_id; in rocker_flow_tbl_bridge()
2638 entry->key.bridge.tunnel_id = tunnel_id; in rocker_flow_tbl_bridge()
2639 entry->key.bridge.goto_tbl = goto_tbl; in rocker_flow_tbl_bridge()
2640 entry->key.bridge.group_id = group_id; in rocker_flow_tbl_bridge()
2641 entry->key.bridge.copy_to_cpu = copy_to_cpu; in rocker_flow_tbl_bridge()
2643 return rocker_flow_tbl_do(rocker_port, trans, flags, entry); in rocker_flow_tbl_bridge()
2653 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_ucast4_routing() local
2655 entry = rocker_port_kzalloc(rocker_port, trans, flags, sizeof(*entry)); in rocker_flow_tbl_ucast4_routing()
2656 if (!entry) in rocker_flow_tbl_ucast4_routing()
2659 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_UNICAST_ROUTING; in rocker_flow_tbl_ucast4_routing()
2660 entry->key.priority = priority; in rocker_flow_tbl_ucast4_routing()
2661 entry->key.ucast_routing.eth_type = eth_type; in rocker_flow_tbl_ucast4_routing()
2662 entry->key.ucast_routing.dst4 = dst; in rocker_flow_tbl_ucast4_routing()
2663 entry->key.ucast_routing.dst4_mask = dst_mask; in rocker_flow_tbl_ucast4_routing()
2664 entry->key.ucast_routing.goto_tbl = goto_tbl; in rocker_flow_tbl_ucast4_routing()
2665 entry->key.ucast_routing.group_id = group_id; in rocker_flow_tbl_ucast4_routing()
2666 entry->key_len = offsetof(struct rocker_flow_tbl_key, in rocker_flow_tbl_ucast4_routing()
2669 return rocker_flow_tbl_do(rocker_port, trans, flags, entry); in rocker_flow_tbl_ucast4_routing()
2683 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_acl() local
2685 entry = rocker_port_kzalloc(rocker_port, trans, flags, sizeof(*entry)); in rocker_flow_tbl_acl()
2686 if (!entry) in rocker_flow_tbl_acl()
2697 entry->key.priority = priority; in rocker_flow_tbl_acl()
2698 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_ACL_POLICY; in rocker_flow_tbl_acl()
2699 entry->key.acl.in_pport = in_pport; in rocker_flow_tbl_acl()
2700 entry->key.acl.in_pport_mask = in_pport_mask; in rocker_flow_tbl_acl()
2703 ether_addr_copy(entry->key.acl.eth_src, eth_src); in rocker_flow_tbl_acl()
2705 ether_addr_copy(entry->key.acl.eth_src_mask, eth_src_mask); in rocker_flow_tbl_acl()
2707 ether_addr_copy(entry->key.acl.eth_dst, eth_dst); in rocker_flow_tbl_acl()
2709 ether_addr_copy(entry->key.acl.eth_dst_mask, eth_dst_mask); in rocker_flow_tbl_acl()
2711 entry->key.acl.eth_type = eth_type; in rocker_flow_tbl_acl()
2712 entry->key.acl.vlan_id = vlan_id; in rocker_flow_tbl_acl()
2713 entry->key.acl.vlan_id_mask = vlan_id_mask; in rocker_flow_tbl_acl()
2714 entry->key.acl.ip_proto = ip_proto; in rocker_flow_tbl_acl()
2715 entry->key.acl.ip_proto_mask = ip_proto_mask; in rocker_flow_tbl_acl()
2716 entry->key.acl.ip_tos = ip_tos; in rocker_flow_tbl_acl()
2717 entry->key.acl.ip_tos_mask = ip_tos_mask; in rocker_flow_tbl_acl()
2718 entry->key.acl.group_id = group_id; in rocker_flow_tbl_acl()
2720 return rocker_flow_tbl_do(rocker_port, trans, flags, entry); in rocker_flow_tbl_acl()
2730 entry, match->group_id) { in rocker_group_tbl_find()
2739 struct rocker_group_tbl_entry *entry) in rocker_group_tbl_entry_free() argument
2741 switch (ROCKER_GROUP_TYPE_GET(entry->group_id)) { in rocker_group_tbl_entry_free()
2744 rocker_port_kfree(trans, entry->group_ids); in rocker_group_tbl_entry_free()
2749 rocker_port_kfree(trans, entry); in rocker_group_tbl_entry_free()
2766 hash_del(&found->entry); in rocker_group_tbl_add()
2776 hash_add(rocker->group_tbl, &found->entry, found->group_id); in rocker_group_tbl_add()
2799 hash_del(&found->entry); in rocker_group_tbl_del()
2819 struct rocker_group_tbl_entry *entry) in rocker_group_tbl_do() argument
2822 return rocker_group_tbl_del(rocker_port, trans, flags, entry); in rocker_group_tbl_do()
2824 return rocker_group_tbl_add(rocker_port, trans, flags, entry); in rocker_group_tbl_do()
2832 struct rocker_group_tbl_entry *entry; in rocker_group_l2_interface() local
2834 entry = rocker_port_kzalloc(rocker_port, trans, flags, sizeof(*entry)); in rocker_group_l2_interface()
2835 if (!entry) in rocker_group_l2_interface()
2838 entry->group_id = ROCKER_GROUP_L2_INTERFACE(vlan_id, out_pport); in rocker_group_l2_interface()
2839 entry->l2_interface.pop_vlan = pop_vlan; in rocker_group_l2_interface()
2841 return rocker_group_tbl_do(rocker_port, trans, flags, entry); in rocker_group_l2_interface()
2849 struct rocker_group_tbl_entry *entry; in rocker_group_l2_fan_out() local
2851 entry = rocker_port_kzalloc(rocker_port, trans, flags, sizeof(*entry)); in rocker_group_l2_fan_out()
2852 if (!entry) in rocker_group_l2_fan_out()
2855 entry->group_id = group_id; in rocker_group_l2_fan_out()
2856 entry->group_count = group_count; in rocker_group_l2_fan_out()
2858 entry->group_ids = rocker_port_kcalloc(rocker_port, trans, flags, in rocker_group_l2_fan_out()
2860 if (!entry->group_ids) { in rocker_group_l2_fan_out()
2861 rocker_port_kfree(trans, entry); in rocker_group_l2_fan_out()
2864 memcpy(entry->group_ids, group_ids, group_count * sizeof(u32)); in rocker_group_l2_fan_out()
2866 return rocker_group_tbl_do(rocker_port, trans, flags, entry); in rocker_group_l2_fan_out()
2884 struct rocker_group_tbl_entry *entry; in rocker_group_l3_unicast() local
2886 entry = rocker_port_kzalloc(rocker_port, trans, flags, sizeof(*entry)); in rocker_group_l3_unicast()
2887 if (!entry) in rocker_group_l3_unicast()
2890 entry->group_id = ROCKER_GROUP_L3_UNICAST(index); in rocker_group_l3_unicast()
2892 ether_addr_copy(entry->l3_unicast.eth_src, src_mac); in rocker_group_l3_unicast()
2894 ether_addr_copy(entry->l3_unicast.eth_dst, dst_mac); in rocker_group_l3_unicast()
2895 entry->l3_unicast.vlan_id = vlan_id; in rocker_group_l3_unicast()
2896 entry->l3_unicast.ttl_check = ttl_check; in rocker_group_l3_unicast()
2897 entry->l3_unicast.group_id = ROCKER_GROUP_L2_INTERFACE(vlan_id, pport); in rocker_group_l3_unicast()
2899 return rocker_group_tbl_do(rocker_port, trans, flags, entry); in rocker_group_l3_unicast()
2908 entry, be32_to_cpu(ip_addr)) in rocker_neigh_tbl_find()
2917 struct rocker_neigh_tbl_entry *entry) in _rocker_neigh_add() argument
2920 entry->index = rocker->neigh_tbl_next_index++; in _rocker_neigh_add()
2923 entry->ref_count++; in _rocker_neigh_add()
2924 hash_add(rocker->neigh_tbl, &entry->entry, in _rocker_neigh_add()
2925 be32_to_cpu(entry->ip_addr)); in _rocker_neigh_add()
2929 struct rocker_neigh_tbl_entry *entry) in _rocker_neigh_del() argument
2933 if (--entry->ref_count == 0) { in _rocker_neigh_del()
2934 hash_del(&entry->entry); in _rocker_neigh_del()
2935 rocker_port_kfree(trans, entry); in _rocker_neigh_del()
2939 static void _rocker_neigh_update(struct rocker_neigh_tbl_entry *entry, in _rocker_neigh_update() argument
2944 ether_addr_copy(entry->eth_dst, eth_dst); in _rocker_neigh_update()
2945 entry->ttl_check = ttl_check; in _rocker_neigh_update()
2947 entry->ref_count++; in _rocker_neigh_update()
2956 struct rocker_neigh_tbl_entry *entry; in rocker_port_ipv4_neigh() local
2969 entry = rocker_port_kzalloc(rocker_port, trans, flags, sizeof(*entry)); in rocker_port_ipv4_neigh()
2970 if (!entry) in rocker_port_ipv4_neigh()
2982 entry->ip_addr = ip_addr; in rocker_port_ipv4_neigh()
2983 entry->dev = rocker_port->dev; in rocker_port_ipv4_neigh()
2984 ether_addr_copy(entry->eth_dst, eth_dst); in rocker_port_ipv4_neigh()
2985 entry->ttl_check = true; in rocker_port_ipv4_neigh()
2986 _rocker_neigh_add(rocker, trans, entry); in rocker_port_ipv4_neigh()
2988 memcpy(entry, found, sizeof(*entry)); in rocker_port_ipv4_neigh()
2992 memcpy(entry, found, sizeof(*entry)); in rocker_port_ipv4_neigh()
3009 entry->index, in rocker_port_ipv4_neigh()
3011 entry->eth_dst, in rocker_port_ipv4_neigh()
3013 entry->ttl_check, in rocker_port_ipv4_neigh()
3018 err, entry->index); in rocker_port_ipv4_neigh()
3023 group_id = ROCKER_GROUP_L3_UNICAST(entry->index); in rocker_port_ipv4_neigh()
3033 err, &entry->ip_addr, group_id); in rocker_port_ipv4_neigh()
3038 rocker_port_kfree(trans, entry); in rocker_port_ipv4_neigh()
3077 struct rocker_neigh_tbl_entry *entry; in rocker_port_ipv4_nh() local
3086 entry = rocker_port_kzalloc(rocker_port, trans, flags, sizeof(*entry)); in rocker_port_ipv4_nh()
3087 if (!entry) in rocker_port_ipv4_nh()
3101 entry->ip_addr = ip_addr; in rocker_port_ipv4_nh()
3102 entry->dev = rocker_port->dev; in rocker_port_ipv4_nh()
3103 _rocker_neigh_add(rocker, trans, entry); in rocker_port_ipv4_nh()
3104 *index = entry->index; in rocker_port_ipv4_nh()
3118 rocker_port_kfree(trans, entry); in rocker_port_ipv4_nh()
3604 hash_for_each_possible(rocker->fdb_tbl, found, entry, match->key_crc32) in rocker_fdb_tbl_find()
3642 hash_del(&found->entry); in rocker_port_fdb()
3646 hash_add(rocker->fdb_tbl, &fdb->entry, in rocker_port_fdb()
3682 hash_for_each_safe(rocker->fdb_tbl, bkt, tmp, found, entry) { in rocker_port_fdb_flush()
3693 hash_del(&found->entry); in rocker_port_fdb_flush()
3706 struct rocker_fdb_tbl_entry *entry; in rocker_fdb_cleanup() local
3717 hash_for_each_safe(rocker->fdb_tbl, bkt, tmp, entry, entry) { in rocker_fdb_cleanup()
3718 if (!entry->learned) in rocker_fdb_cleanup()
3720 rocker_port = entry->key.rocker_port; in rocker_fdb_cleanup()
3721 expires = entry->touched + rocker_port->ageing_time; in rocker_fdb_cleanup()
3724 flags, entry->key.addr, in rocker_fdb_cleanup()
3725 entry->key.vlan_id); in rocker_fdb_cleanup()
3726 hash_del(&entry->entry); in rocker_fdb_cleanup()
3909 entry, ifindex) { in rocker_internal_vlan_tbl_find()
3921 struct rocker_internal_vlan_tbl_entry *entry; in rocker_port_internal_vlan_id_get() local
3926 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in rocker_port_internal_vlan_id_get()
3927 if (!entry) in rocker_port_internal_vlan_id_get()
3930 entry->ifindex = ifindex; in rocker_port_internal_vlan_id_get()
3936 kfree(entry); in rocker_port_internal_vlan_id_get()
3940 found = entry; in rocker_port_internal_vlan_id_get()
3941 hash_add(rocker->internal_vlan_tbl, &found->entry, found->ifindex); in rocker_port_internal_vlan_id_get()
3981 hash_del(&found->entry); in rocker_port_internal_vlan_id_put()
4577 hash_for_each_safe(rocker->fdb_tbl, bkt, tmp, found, entry) { in rocker_port_fdb_dump()
5097 rocker->msix_entries[i].entry = i; in rocker_msix_init()