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