Lines Matching refs:entry

117 	struct hlist_node entry;  member
126 struct hlist_node entry; member
152 struct hlist_node entry; member
163 struct hlist_node entry; member
170 struct hlist_node entry; member
1803 struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_ig_port() argument
1806 entry->key.ig_port.in_pport)) in rocker_cmd_flow_tbl_add_ig_port()
1809 entry->key.ig_port.in_pport_mask)) in rocker_cmd_flow_tbl_add_ig_port()
1812 entry->key.ig_port.goto_tbl)) in rocker_cmd_flow_tbl_add_ig_port()
1819 struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_vlan() argument
1822 entry->key.vlan.in_pport)) in rocker_cmd_flow_tbl_add_vlan()
1825 entry->key.vlan.vlan_id)) in rocker_cmd_flow_tbl_add_vlan()
1828 entry->key.vlan.vlan_id_mask)) in rocker_cmd_flow_tbl_add_vlan()
1831 entry->key.vlan.goto_tbl)) in rocker_cmd_flow_tbl_add_vlan()
1833 if (entry->key.vlan.untagged && in rocker_cmd_flow_tbl_add_vlan()
1835 entry->key.vlan.new_vlan_id)) in rocker_cmd_flow_tbl_add_vlan()
1842 struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_term_mac() argument
1845 entry->key.term_mac.in_pport)) in rocker_cmd_flow_tbl_add_term_mac()
1848 entry->key.term_mac.in_pport_mask)) in rocker_cmd_flow_tbl_add_term_mac()
1851 entry->key.term_mac.eth_type)) in rocker_cmd_flow_tbl_add_term_mac()
1854 ETH_ALEN, entry->key.term_mac.eth_dst)) in rocker_cmd_flow_tbl_add_term_mac()
1857 ETH_ALEN, entry->key.term_mac.eth_dst_mask)) in rocker_cmd_flow_tbl_add_term_mac()
1860 entry->key.term_mac.vlan_id)) in rocker_cmd_flow_tbl_add_term_mac()
1863 entry->key.term_mac.vlan_id_mask)) in rocker_cmd_flow_tbl_add_term_mac()
1866 entry->key.term_mac.goto_tbl)) in rocker_cmd_flow_tbl_add_term_mac()
1868 if (entry->key.term_mac.copy_to_cpu && in rocker_cmd_flow_tbl_add_term_mac()
1870 entry->key.term_mac.copy_to_cpu)) in rocker_cmd_flow_tbl_add_term_mac()
1878 struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_ucast_routing() argument
1881 entry->key.ucast_routing.eth_type)) in rocker_cmd_flow_tbl_add_ucast_routing()
1884 entry->key.ucast_routing.dst4)) in rocker_cmd_flow_tbl_add_ucast_routing()
1887 entry->key.ucast_routing.dst4_mask)) in rocker_cmd_flow_tbl_add_ucast_routing()
1890 entry->key.ucast_routing.goto_tbl)) in rocker_cmd_flow_tbl_add_ucast_routing()
1893 entry->key.ucast_routing.group_id)) in rocker_cmd_flow_tbl_add_ucast_routing()
1900 struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_bridge() argument
1902 if (entry->key.bridge.has_eth_dst && in rocker_cmd_flow_tbl_add_bridge()
1904 ETH_ALEN, entry->key.bridge.eth_dst)) in rocker_cmd_flow_tbl_add_bridge()
1906 if (entry->key.bridge.has_eth_dst_mask && in rocker_cmd_flow_tbl_add_bridge()
1908 ETH_ALEN, entry->key.bridge.eth_dst_mask)) in rocker_cmd_flow_tbl_add_bridge()
1910 if (entry->key.bridge.vlan_id && in rocker_cmd_flow_tbl_add_bridge()
1912 entry->key.bridge.vlan_id)) in rocker_cmd_flow_tbl_add_bridge()
1914 if (entry->key.bridge.tunnel_id && in rocker_cmd_flow_tbl_add_bridge()
1916 entry->key.bridge.tunnel_id)) in rocker_cmd_flow_tbl_add_bridge()
1919 entry->key.bridge.goto_tbl)) in rocker_cmd_flow_tbl_add_bridge()
1922 entry->key.bridge.group_id)) in rocker_cmd_flow_tbl_add_bridge()
1924 if (entry->key.bridge.copy_to_cpu && in rocker_cmd_flow_tbl_add_bridge()
1926 entry->key.bridge.copy_to_cpu)) in rocker_cmd_flow_tbl_add_bridge()
1933 struct rocker_flow_tbl_entry *entry) in rocker_cmd_flow_tbl_add_acl() argument
1936 entry->key.acl.in_pport)) in rocker_cmd_flow_tbl_add_acl()
1939 entry->key.acl.in_pport_mask)) in rocker_cmd_flow_tbl_add_acl()
1942 ETH_ALEN, entry->key.acl.eth_src)) in rocker_cmd_flow_tbl_add_acl()
1945 ETH_ALEN, entry->key.acl.eth_src_mask)) in rocker_cmd_flow_tbl_add_acl()
1948 ETH_ALEN, entry->key.acl.eth_dst)) in rocker_cmd_flow_tbl_add_acl()
1951 ETH_ALEN, entry->key.acl.eth_dst_mask)) in rocker_cmd_flow_tbl_add_acl()
1954 entry->key.acl.eth_type)) in rocker_cmd_flow_tbl_add_acl()
1957 entry->key.acl.vlan_id)) in rocker_cmd_flow_tbl_add_acl()
1960 entry->key.acl.vlan_id_mask)) in rocker_cmd_flow_tbl_add_acl()
1963 switch (ntohs(entry->key.acl.eth_type)) { in rocker_cmd_flow_tbl_add_acl()
1967 entry->key.acl.ip_proto)) in rocker_cmd_flow_tbl_add_acl()
1971 entry->key.acl.ip_proto_mask)) in rocker_cmd_flow_tbl_add_acl()
1974 entry->key.acl.ip_tos & 0x3f)) in rocker_cmd_flow_tbl_add_acl()
1978 entry->key.acl.ip_tos_mask & 0x3f)) in rocker_cmd_flow_tbl_add_acl()
1981 (entry->key.acl.ip_tos & 0xc0) >> 6)) in rocker_cmd_flow_tbl_add_acl()
1985 (entry->key.acl.ip_tos_mask & 0xc0) >> 6)) in rocker_cmd_flow_tbl_add_acl()
1990 if (entry->key.acl.group_id != ROCKER_GROUP_NONE && in rocker_cmd_flow_tbl_add_acl()
1992 entry->key.acl.group_id)) in rocker_cmd_flow_tbl_add_acl()
2003 struct rocker_flow_tbl_entry *entry = priv; in rocker_cmd_flow_tbl_add() local
2007 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_flow_tbl_add()
2013 entry->key.tbl_id)) in rocker_cmd_flow_tbl_add()
2016 entry->key.priority)) in rocker_cmd_flow_tbl_add()
2021 entry->cookie)) in rocker_cmd_flow_tbl_add()
2024 switch (entry->key.tbl_id) { in rocker_cmd_flow_tbl_add()
2026 err = rocker_cmd_flow_tbl_add_ig_port(desc_info, entry); in rocker_cmd_flow_tbl_add()
2029 err = rocker_cmd_flow_tbl_add_vlan(desc_info, entry); in rocker_cmd_flow_tbl_add()
2032 err = rocker_cmd_flow_tbl_add_term_mac(desc_info, entry); in rocker_cmd_flow_tbl_add()
2035 err = rocker_cmd_flow_tbl_add_ucast_routing(desc_info, entry); in rocker_cmd_flow_tbl_add()
2038 err = rocker_cmd_flow_tbl_add_bridge(desc_info, entry); in rocker_cmd_flow_tbl_add()
2041 err = rocker_cmd_flow_tbl_add_acl(desc_info, entry); in rocker_cmd_flow_tbl_add()
2061 const struct rocker_flow_tbl_entry *entry = priv; in rocker_cmd_flow_tbl_del() local
2064 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_flow_tbl_del()
2070 entry->cookie)) in rocker_cmd_flow_tbl_del()
2079 struct rocker_group_tbl_entry *entry) in rocker_cmd_group_tbl_add_l2_interface() argument
2082 ROCKER_GROUP_PORT_GET(entry->group_id))) in rocker_cmd_group_tbl_add_l2_interface()
2085 entry->l2_interface.pop_vlan)) in rocker_cmd_group_tbl_add_l2_interface()
2093 struct rocker_group_tbl_entry *entry) in rocker_cmd_group_tbl_add_l2_rewrite() argument
2096 entry->l2_rewrite.group_id)) in rocker_cmd_group_tbl_add_l2_rewrite()
2098 if (!is_zero_ether_addr(entry->l2_rewrite.eth_src) && in rocker_cmd_group_tbl_add_l2_rewrite()
2100 ETH_ALEN, entry->l2_rewrite.eth_src)) in rocker_cmd_group_tbl_add_l2_rewrite()
2102 if (!is_zero_ether_addr(entry->l2_rewrite.eth_dst) && in rocker_cmd_group_tbl_add_l2_rewrite()
2104 ETH_ALEN, entry->l2_rewrite.eth_dst)) in rocker_cmd_group_tbl_add_l2_rewrite()
2106 if (entry->l2_rewrite.vlan_id && in rocker_cmd_group_tbl_add_l2_rewrite()
2108 entry->l2_rewrite.vlan_id)) in rocker_cmd_group_tbl_add_l2_rewrite()
2116 struct rocker_group_tbl_entry *entry) in rocker_cmd_group_tbl_add_group_ids() argument
2122 entry->group_count)) in rocker_cmd_group_tbl_add_group_ids()
2130 for (i = 0; i < entry->group_count; i++) in rocker_cmd_group_tbl_add_group_ids()
2132 if (rocker_tlv_put_u32(desc_info, i + 1, entry->group_ids[i])) in rocker_cmd_group_tbl_add_group_ids()
2142 struct rocker_group_tbl_entry *entry) in rocker_cmd_group_tbl_add_l3_unicast() argument
2144 if (!is_zero_ether_addr(entry->l3_unicast.eth_src) && in rocker_cmd_group_tbl_add_l3_unicast()
2146 ETH_ALEN, entry->l3_unicast.eth_src)) in rocker_cmd_group_tbl_add_l3_unicast()
2148 if (!is_zero_ether_addr(entry->l3_unicast.eth_dst) && in rocker_cmd_group_tbl_add_l3_unicast()
2150 ETH_ALEN, entry->l3_unicast.eth_dst)) in rocker_cmd_group_tbl_add_l3_unicast()
2152 if (entry->l3_unicast.vlan_id && in rocker_cmd_group_tbl_add_l3_unicast()
2154 entry->l3_unicast.vlan_id)) in rocker_cmd_group_tbl_add_l3_unicast()
2157 entry->l3_unicast.ttl_check)) in rocker_cmd_group_tbl_add_l3_unicast()
2160 entry->l3_unicast.group_id)) in rocker_cmd_group_tbl_add_l3_unicast()
2171 struct rocker_group_tbl_entry *entry = priv; in rocker_cmd_group_tbl_add() local
2175 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_group_tbl_add()
2182 entry->group_id)) in rocker_cmd_group_tbl_add()
2185 switch (ROCKER_GROUP_TYPE_GET(entry->group_id)) { in rocker_cmd_group_tbl_add()
2187 err = rocker_cmd_group_tbl_add_l2_interface(desc_info, entry); in rocker_cmd_group_tbl_add()
2190 err = rocker_cmd_group_tbl_add_l2_rewrite(desc_info, entry); in rocker_cmd_group_tbl_add()
2194 err = rocker_cmd_group_tbl_add_group_ids(desc_info, entry); in rocker_cmd_group_tbl_add()
2197 err = rocker_cmd_group_tbl_add_l3_unicast(desc_info, entry); in rocker_cmd_group_tbl_add()
2217 const struct rocker_group_tbl_entry *entry = priv; in rocker_cmd_group_tbl_del() local
2220 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_group_tbl_del()
2226 entry->group_id)) in rocker_cmd_group_tbl_del()
2269 hash_for_each_safe(rocker->flow_tbl, bkt, tmp, flow_entry, entry) in rocker_free_tbls()
2270 hash_del(&flow_entry->entry); in rocker_free_tbls()
2274 hash_for_each_safe(rocker->group_tbl, bkt, tmp, group_entry, entry) in rocker_free_tbls()
2275 hash_del(&group_entry->entry); in rocker_free_tbls()
2279 hash_for_each_safe(rocker->fdb_tbl, bkt, tmp, fdb_entry, entry) in rocker_free_tbls()
2280 hash_del(&fdb_entry->entry); in rocker_free_tbls()
2285 tmp, internal_vlan_entry, entry) in rocker_free_tbls()
2286 hash_del(&internal_vlan_entry->entry); in rocker_free_tbls()
2290 hash_for_each_safe(rocker->neigh_tbl, bkt, tmp, neigh_entry, entry) in rocker_free_tbls()
2291 hash_del(&neigh_entry->entry); in rocker_free_tbls()
2302 entry, match->key_crc32) { in rocker_flow_tbl_find()
2327 hash_del(&found->entry); in rocker_flow_tbl_add()
2337 hash_add(rocker->flow_tbl, &found->entry, found->key_crc32); in rocker_flow_tbl_add()
2363 hash_del(&found->entry); in rocker_flow_tbl_del()
2387 int flags, struct rocker_flow_tbl_entry *entry) in rocker_flow_tbl_do() argument
2392 return rocker_flow_tbl_del(rocker_port, entry, nowait); in rocker_flow_tbl_do()
2394 return rocker_flow_tbl_add(rocker_port, entry, nowait); in rocker_flow_tbl_do()
2401 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_ig_port() local
2403 entry = kzalloc(sizeof(*entry), rocker_op_flags_gfp(flags)); in rocker_flow_tbl_ig_port()
2404 if (!entry) in rocker_flow_tbl_ig_port()
2407 entry->key.priority = ROCKER_PRIORITY_IG_PORT; in rocker_flow_tbl_ig_port()
2408 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_INGRESS_PORT; in rocker_flow_tbl_ig_port()
2409 entry->key.ig_port.in_pport = in_pport; in rocker_flow_tbl_ig_port()
2410 entry->key.ig_port.in_pport_mask = in_pport_mask; in rocker_flow_tbl_ig_port()
2411 entry->key.ig_port.goto_tbl = goto_tbl; in rocker_flow_tbl_ig_port()
2413 return rocker_flow_tbl_do(rocker_port, flags, entry); in rocker_flow_tbl_ig_port()
2422 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_vlan() local
2424 entry = kzalloc(sizeof(*entry), rocker_op_flags_gfp(flags)); in rocker_flow_tbl_vlan()
2425 if (!entry) in rocker_flow_tbl_vlan()
2428 entry->key.priority = ROCKER_PRIORITY_VLAN; in rocker_flow_tbl_vlan()
2429 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_VLAN; in rocker_flow_tbl_vlan()
2430 entry->key.vlan.in_pport = in_pport; in rocker_flow_tbl_vlan()
2431 entry->key.vlan.vlan_id = vlan_id; in rocker_flow_tbl_vlan()
2432 entry->key.vlan.vlan_id_mask = vlan_id_mask; in rocker_flow_tbl_vlan()
2433 entry->key.vlan.goto_tbl = goto_tbl; in rocker_flow_tbl_vlan()
2435 entry->key.vlan.untagged = untagged; in rocker_flow_tbl_vlan()
2436 entry->key.vlan.new_vlan_id = new_vlan_id; in rocker_flow_tbl_vlan()
2438 return rocker_flow_tbl_do(rocker_port, flags, entry); in rocker_flow_tbl_vlan()
2448 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_term_mac() local
2450 entry = kzalloc(sizeof(*entry), rocker_op_flags_gfp(flags)); in rocker_flow_tbl_term_mac()
2451 if (!entry) in rocker_flow_tbl_term_mac()
2455 entry->key.priority = ROCKER_PRIORITY_TERM_MAC_MCAST; in rocker_flow_tbl_term_mac()
2456 entry->key.term_mac.goto_tbl = in rocker_flow_tbl_term_mac()
2459 entry->key.priority = ROCKER_PRIORITY_TERM_MAC_UCAST; in rocker_flow_tbl_term_mac()
2460 entry->key.term_mac.goto_tbl = in rocker_flow_tbl_term_mac()
2464 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_TERMINATION_MAC; in rocker_flow_tbl_term_mac()
2465 entry->key.term_mac.in_pport = in_pport; in rocker_flow_tbl_term_mac()
2466 entry->key.term_mac.in_pport_mask = in_pport_mask; in rocker_flow_tbl_term_mac()
2467 entry->key.term_mac.eth_type = eth_type; in rocker_flow_tbl_term_mac()
2468 ether_addr_copy(entry->key.term_mac.eth_dst, eth_dst); in rocker_flow_tbl_term_mac()
2469 ether_addr_copy(entry->key.term_mac.eth_dst_mask, eth_dst_mask); in rocker_flow_tbl_term_mac()
2470 entry->key.term_mac.vlan_id = vlan_id; in rocker_flow_tbl_term_mac()
2471 entry->key.term_mac.vlan_id_mask = vlan_id_mask; in rocker_flow_tbl_term_mac()
2472 entry->key.term_mac.copy_to_cpu = copy_to_cpu; in rocker_flow_tbl_term_mac()
2474 return rocker_flow_tbl_do(rocker_port, flags, entry); in rocker_flow_tbl_term_mac()
2484 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_bridge() local
2490 entry = kzalloc(sizeof(*entry), rocker_op_flags_gfp(flags)); in rocker_flow_tbl_bridge()
2491 if (!entry) in rocker_flow_tbl_bridge()
2494 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_BRIDGING; in rocker_flow_tbl_bridge()
2497 entry->key.bridge.has_eth_dst = 1; in rocker_flow_tbl_bridge()
2498 ether_addr_copy(entry->key.bridge.eth_dst, eth_dst); in rocker_flow_tbl_bridge()
2501 entry->key.bridge.has_eth_dst_mask = 1; in rocker_flow_tbl_bridge()
2502 ether_addr_copy(entry->key.bridge.eth_dst_mask, eth_dst_mask); in rocker_flow_tbl_bridge()
2521 entry->key.priority = priority; in rocker_flow_tbl_bridge()
2522 entry->key.bridge.vlan_id = vlan_id; in rocker_flow_tbl_bridge()
2523 entry->key.bridge.tunnel_id = tunnel_id; in rocker_flow_tbl_bridge()
2524 entry->key.bridge.goto_tbl = goto_tbl; in rocker_flow_tbl_bridge()
2525 entry->key.bridge.group_id = group_id; in rocker_flow_tbl_bridge()
2526 entry->key.bridge.copy_to_cpu = copy_to_cpu; in rocker_flow_tbl_bridge()
2528 return rocker_flow_tbl_do(rocker_port, flags, entry); in rocker_flow_tbl_bridge()
2537 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_ucast4_routing() local
2539 entry = kzalloc(sizeof(*entry), rocker_op_flags_gfp(flags)); in rocker_flow_tbl_ucast4_routing()
2540 if (!entry) in rocker_flow_tbl_ucast4_routing()
2543 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_UNICAST_ROUTING; in rocker_flow_tbl_ucast4_routing()
2544 entry->key.priority = priority; in rocker_flow_tbl_ucast4_routing()
2545 entry->key.ucast_routing.eth_type = eth_type; in rocker_flow_tbl_ucast4_routing()
2546 entry->key.ucast_routing.dst4 = dst; in rocker_flow_tbl_ucast4_routing()
2547 entry->key.ucast_routing.dst4_mask = dst_mask; in rocker_flow_tbl_ucast4_routing()
2548 entry->key.ucast_routing.goto_tbl = goto_tbl; in rocker_flow_tbl_ucast4_routing()
2549 entry->key.ucast_routing.group_id = group_id; in rocker_flow_tbl_ucast4_routing()
2550 entry->key_len = offsetof(struct rocker_flow_tbl_key, in rocker_flow_tbl_ucast4_routing()
2553 return rocker_flow_tbl_do(rocker_port, flags, entry); in rocker_flow_tbl_ucast4_routing()
2568 struct rocker_flow_tbl_entry *entry; in rocker_flow_tbl_acl() local
2570 entry = kzalloc(sizeof(*entry), rocker_op_flags_gfp(flags)); in rocker_flow_tbl_acl()
2571 if (!entry) in rocker_flow_tbl_acl()
2582 entry->key.priority = priority; in rocker_flow_tbl_acl()
2583 entry->key.tbl_id = ROCKER_OF_DPA_TABLE_ID_ACL_POLICY; in rocker_flow_tbl_acl()
2584 entry->key.acl.in_pport = in_pport; in rocker_flow_tbl_acl()
2585 entry->key.acl.in_pport_mask = in_pport_mask; in rocker_flow_tbl_acl()
2588 ether_addr_copy(entry->key.acl.eth_src, eth_src); in rocker_flow_tbl_acl()
2590 ether_addr_copy(entry->key.acl.eth_src_mask, eth_src_mask); in rocker_flow_tbl_acl()
2592 ether_addr_copy(entry->key.acl.eth_dst, eth_dst); in rocker_flow_tbl_acl()
2594 ether_addr_copy(entry->key.acl.eth_dst_mask, eth_dst_mask); in rocker_flow_tbl_acl()
2596 entry->key.acl.eth_type = eth_type; in rocker_flow_tbl_acl()
2597 entry->key.acl.vlan_id = vlan_id; in rocker_flow_tbl_acl()
2598 entry->key.acl.vlan_id_mask = vlan_id_mask; in rocker_flow_tbl_acl()
2599 entry->key.acl.ip_proto = ip_proto; in rocker_flow_tbl_acl()
2600 entry->key.acl.ip_proto_mask = ip_proto_mask; in rocker_flow_tbl_acl()
2601 entry->key.acl.ip_tos = ip_tos; in rocker_flow_tbl_acl()
2602 entry->key.acl.ip_tos_mask = ip_tos_mask; in rocker_flow_tbl_acl()
2603 entry->key.acl.group_id = group_id; in rocker_flow_tbl_acl()
2605 return rocker_flow_tbl_do(rocker_port, flags, entry); in rocker_flow_tbl_acl()
2615 entry, match->group_id) { in rocker_group_tbl_find()
2623 static void rocker_group_tbl_entry_free(struct rocker_group_tbl_entry *entry) in rocker_group_tbl_entry_free() argument
2625 switch (ROCKER_GROUP_TYPE_GET(entry->group_id)) { in rocker_group_tbl_entry_free()
2628 kfree(entry->group_ids); in rocker_group_tbl_entry_free()
2633 kfree(entry); in rocker_group_tbl_entry_free()
2649 hash_del(&found->entry); in rocker_group_tbl_add()
2658 hash_add(rocker->group_tbl, &found->entry, found->group_id); in rocker_group_tbl_add()
2681 hash_del(&found->entry); in rocker_group_tbl_del()
2700 int flags, struct rocker_group_tbl_entry *entry) in rocker_group_tbl_do() argument
2705 return rocker_group_tbl_del(rocker_port, entry, nowait); in rocker_group_tbl_do()
2707 return rocker_group_tbl_add(rocker_port, entry, nowait); in rocker_group_tbl_do()
2714 struct rocker_group_tbl_entry *entry; in rocker_group_l2_interface() local
2716 entry = kzalloc(sizeof(*entry), rocker_op_flags_gfp(flags)); in rocker_group_l2_interface()
2717 if (!entry) in rocker_group_l2_interface()
2720 entry->group_id = ROCKER_GROUP_L2_INTERFACE(vlan_id, out_pport); in rocker_group_l2_interface()
2721 entry->l2_interface.pop_vlan = pop_vlan; in rocker_group_l2_interface()
2723 return rocker_group_tbl_do(rocker_port, flags, entry); in rocker_group_l2_interface()
2730 struct rocker_group_tbl_entry *entry; in rocker_group_l2_fan_out() local
2732 entry = kzalloc(sizeof(*entry), rocker_op_flags_gfp(flags)); in rocker_group_l2_fan_out()
2733 if (!entry) in rocker_group_l2_fan_out()
2736 entry->group_id = group_id; in rocker_group_l2_fan_out()
2737 entry->group_count = group_count; in rocker_group_l2_fan_out()
2739 entry->group_ids = kcalloc(group_count, sizeof(u32), in rocker_group_l2_fan_out()
2741 if (!entry->group_ids) { in rocker_group_l2_fan_out()
2742 kfree(entry); in rocker_group_l2_fan_out()
2745 memcpy(entry->group_ids, group_ids, group_count * sizeof(u32)); in rocker_group_l2_fan_out()
2747 return rocker_group_tbl_do(rocker_port, flags, entry); in rocker_group_l2_fan_out()
2765 struct rocker_group_tbl_entry *entry; in rocker_group_l3_unicast() local
2767 entry = kzalloc(sizeof(*entry), rocker_op_flags_gfp(flags)); in rocker_group_l3_unicast()
2768 if (!entry) in rocker_group_l3_unicast()
2771 entry->group_id = ROCKER_GROUP_L3_UNICAST(index); in rocker_group_l3_unicast()
2773 ether_addr_copy(entry->l3_unicast.eth_src, src_mac); in rocker_group_l3_unicast()
2775 ether_addr_copy(entry->l3_unicast.eth_dst, dst_mac); in rocker_group_l3_unicast()
2776 entry->l3_unicast.vlan_id = vlan_id; in rocker_group_l3_unicast()
2777 entry->l3_unicast.ttl_check = ttl_check; in rocker_group_l3_unicast()
2778 entry->l3_unicast.group_id = ROCKER_GROUP_L2_INTERFACE(vlan_id, pport); in rocker_group_l3_unicast()
2780 return rocker_group_tbl_do(rocker_port, flags, entry); in rocker_group_l3_unicast()
2789 entry, be32_to_cpu(ip_addr)) in rocker_neigh_tbl_find()
2797 struct rocker_neigh_tbl_entry *entry) in _rocker_neigh_add() argument
2799 entry->index = rocker->neigh_tbl_next_index++; in _rocker_neigh_add()
2800 entry->ref_count++; in _rocker_neigh_add()
2801 hash_add(rocker->neigh_tbl, &entry->entry, in _rocker_neigh_add()
2802 be32_to_cpu(entry->ip_addr)); in _rocker_neigh_add()
2806 struct rocker_neigh_tbl_entry *entry) in _rocker_neigh_del() argument
2808 if (--entry->ref_count == 0) { in _rocker_neigh_del()
2809 hash_del(&entry->entry); in _rocker_neigh_del()
2810 kfree(entry); in _rocker_neigh_del()
2815 struct rocker_neigh_tbl_entry *entry, in _rocker_neigh_update() argument
2819 ether_addr_copy(entry->eth_dst, eth_dst); in _rocker_neigh_update()
2820 entry->ttl_check = ttl_check; in _rocker_neigh_update()
2822 entry->ref_count++; in _rocker_neigh_update()
2830 struct rocker_neigh_tbl_entry *entry; in rocker_port_ipv4_neigh() local
2843 entry = kzalloc(sizeof(*entry), rocker_op_flags_gfp(flags)); in rocker_port_ipv4_neigh()
2844 if (!entry) in rocker_port_ipv4_neigh()
2856 entry->ip_addr = ip_addr; in rocker_port_ipv4_neigh()
2857 entry->dev = rocker_port->dev; in rocker_port_ipv4_neigh()
2858 ether_addr_copy(entry->eth_dst, eth_dst); in rocker_port_ipv4_neigh()
2859 entry->ttl_check = true; in rocker_port_ipv4_neigh()
2860 _rocker_neigh_add(rocker, entry); in rocker_port_ipv4_neigh()
2862 memcpy(entry, found, sizeof(*entry)); in rocker_port_ipv4_neigh()
2866 memcpy(entry, found, sizeof(*entry)); in rocker_port_ipv4_neigh()
2883 entry->index, in rocker_port_ipv4_neigh()
2885 entry->eth_dst, in rocker_port_ipv4_neigh()
2887 entry->ttl_check, in rocker_port_ipv4_neigh()
2892 err, entry->index); in rocker_port_ipv4_neigh()
2897 group_id = ROCKER_GROUP_L3_UNICAST(entry->index); in rocker_port_ipv4_neigh()
2907 err, &entry->ip_addr, group_id); in rocker_port_ipv4_neigh()
2912 kfree(entry); in rocker_port_ipv4_neigh()
2948 struct rocker_neigh_tbl_entry *entry; in rocker_port_ipv4_nh() local
2957 entry = kzalloc(sizeof(*entry), rocker_op_flags_gfp(flags)); in rocker_port_ipv4_nh()
2958 if (!entry) in rocker_port_ipv4_nh()
2972 entry->ip_addr = ip_addr; in rocker_port_ipv4_nh()
2973 entry->dev = rocker_port->dev; in rocker_port_ipv4_nh()
2974 _rocker_neigh_add(rocker, entry); in rocker_port_ipv4_nh()
2975 *index = entry->index; in rocker_port_ipv4_nh()
2989 kfree(entry); in rocker_port_ipv4_nh()
3450 hash_for_each_possible(rocker->fdb_tbl, found, entry, match->key_crc32) in rocker_fdb_tbl_find()
3483 hash_del(&found->entry); in rocker_port_fdb()
3485 hash_add(rocker->fdb_tbl, &fdb->entry, fdb->key_crc32); in rocker_port_fdb()
3518 hash_for_each_safe(rocker->fdb_tbl, bkt, tmp, found, entry) { in rocker_port_fdb_flush()
3528 hash_del(&found->entry); in rocker_port_fdb_flush()
3686 entry, ifindex) { in rocker_internal_vlan_tbl_find()
3698 struct rocker_internal_vlan_tbl_entry *entry; in rocker_port_internal_vlan_id_get() local
3703 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in rocker_port_internal_vlan_id_get()
3704 if (!entry) in rocker_port_internal_vlan_id_get()
3707 entry->ifindex = ifindex; in rocker_port_internal_vlan_id_get()
3713 kfree(entry); in rocker_port_internal_vlan_id_get()
3717 found = entry; in rocker_port_internal_vlan_id_get()
3718 hash_add(rocker->internal_vlan_tbl, &found->entry, found->ifindex); in rocker_port_internal_vlan_id_get()
3757 hash_del(&found->entry); in rocker_port_internal_vlan_id_put()
4122 hash_for_each_safe(rocker->fdb_tbl, bkt, tmp, found, entry) { in rocker_port_fdb_dump()
4711 rocker->msix_entries[i].entry = i; in rocker_msix_init()