Lines Matching defs:ofdpa
173 struct ofdpa {
194 struct ofdpa *ofdpa;
741 ofdpa_flow_tbl_find(const struct ofdpa *ofdpa,
747 hash_for_each_possible(ofdpa->flow_tbl, found,
759 struct ofdpa *ofdpa = ofdpa_port->ofdpa;
766 spin_lock_irqsave(&ofdpa->flow_tbl_lock, lock_flags);
768 found = ofdpa_flow_tbl_find(ofdpa, match);
778 found->cookie = ofdpa->flow_tbl_next_cookie++;
782 hash_add(ofdpa->flow_tbl, &found->entry, found->key_crc32);
783 spin_unlock_irqrestore(&ofdpa->flow_tbl_lock, lock_flags);
794 struct ofdpa *ofdpa = ofdpa_port->ofdpa;
802 spin_lock_irqsave(&ofdpa->flow_tbl_lock, lock_flags);
804 found = ofdpa_flow_tbl_find(ofdpa, match);
811 spin_unlock_irqrestore(&ofdpa->flow_tbl_lock, lock_flags);
1048 ofdpa_group_tbl_find(const struct ofdpa *ofdpa,
1053 hash_for_each_possible(ofdpa->group_tbl, found,
1078 struct ofdpa *ofdpa = ofdpa_port->ofdpa;
1082 spin_lock_irqsave(&ofdpa->group_tbl_lock, lock_flags);
1084 found = ofdpa_group_tbl_find(ofdpa, match);
1096 hash_add(ofdpa->group_tbl, &found->entry, found->group_id);
1098 spin_unlock_irqrestore(&ofdpa->group_tbl_lock, lock_flags);
1109 struct ofdpa *ofdpa = ofdpa_port->ofdpa;
1114 spin_lock_irqsave(&ofdpa->group_tbl_lock, lock_flags);
1116 found = ofdpa_group_tbl_find(ofdpa, match);
1123 spin_unlock_irqrestore(&ofdpa->group_tbl_lock, lock_flags);
1219 ofdpa_neigh_tbl_find(const struct ofdpa *ofdpa, __be32 ip_addr)
1223 hash_for_each_possible(ofdpa->neigh_tbl, found,
1231 static void ofdpa_neigh_add(struct ofdpa *ofdpa,
1234 entry->index = ofdpa->neigh_tbl_next_index++;
1236 hash_add(ofdpa->neigh_tbl, &entry->entry,
1262 struct ofdpa *ofdpa = ofdpa_port->ofdpa;
1280 spin_lock_irqsave(&ofdpa->neigh_tbl_lock, lock_flags);
1282 found = ofdpa_neigh_tbl_find(ofdpa, ip_addr);
1293 ofdpa_neigh_add(ofdpa, entry);
1304 spin_unlock_irqrestore(&ofdpa->neigh_tbl_lock, lock_flags);
1379 struct ofdpa *ofdpa = ofdpa_port->ofdpa;
1393 spin_lock_irqsave(&ofdpa->neigh_tbl_lock, lock_flags);
1395 found = ofdpa_neigh_tbl_find(ofdpa, ip_addr);
1404 ofdpa_neigh_add(ofdpa, entry);
1418 spin_unlock_irqrestore(&ofdpa->neigh_tbl_lock, lock_flags);
1434 static struct ofdpa_port *ofdpa_port_get(const struct ofdpa *ofdpa,
1439 rocker_port = ofdpa->rocker->ports[port_index];
1447 const struct ofdpa *ofdpa = ofdpa_port->ofdpa;
1448 unsigned int port_count = ofdpa->rocker->port_count;
1465 p = ofdpa_port_get(ofdpa, i);
1493 const struct ofdpa *ofdpa = ofdpa_port->ofdpa;
1494 unsigned int port_count = ofdpa->rocker->port_count;
1524 p = ofdpa_port_get(ofdpa, i);
1885 ofdpa_fdb_tbl_find(const struct ofdpa *ofdpa,
1890 hash_for_each_possible(ofdpa->fdb_tbl, found, entry, match->key_crc32)
1901 struct ofdpa *ofdpa = ofdpa_port->ofdpa;
1918 spin_lock_irqsave(&ofdpa->fdb_tbl_lock, lock_flags);
1920 found = ofdpa_fdb_tbl_find(ofdpa, fdb);
1929 hash_add(ofdpa->fdb_tbl, &fdb->entry,
1933 spin_unlock_irqrestore(&ofdpa->fdb_tbl_lock, lock_flags);
1949 struct ofdpa *ofdpa = ofdpa_port->ofdpa;
1962 spin_lock_irqsave(&ofdpa->fdb_tbl_lock, lock_flags);
1964 hash_for_each_safe(ofdpa->fdb_tbl, bkt, tmp, found, entry) {
1978 spin_unlock_irqrestore(&ofdpa->fdb_tbl_lock, lock_flags);
1985 struct ofdpa *ofdpa = from_timer(ofdpa, t, fdb_cleanup_timer);
1989 unsigned long next_timer = jiffies + ofdpa->ageing_time;
1996 spin_lock_irqsave(&ofdpa->fdb_tbl_lock, lock_flags);
1998 hash_for_each_safe(ofdpa->fdb_tbl, bkt, tmp, entry, entry) {
2013 spin_unlock_irqrestore(&ofdpa->fdb_tbl_lock, lock_flags);
2015 mod_timer(&ofdpa->fdb_cleanup_timer, round_jiffies_up(next_timer));
2213 ofdpa_internal_vlan_tbl_find(const struct ofdpa *ofdpa, int ifindex)
2217 hash_for_each_possible(ofdpa->internal_vlan_tbl, found,
2229 struct ofdpa *ofdpa = ofdpa_port->ofdpa;
2241 spin_lock_irqsave(&ofdpa->internal_vlan_tbl_lock, lock_flags);
2243 found = ofdpa_internal_vlan_tbl_find(ofdpa, ifindex);
2250 hash_add(ofdpa->internal_vlan_tbl, &found->entry, found->ifindex);
2253 if (test_and_set_bit(i, ofdpa->internal_vlan_bitmap))
2263 spin_unlock_irqrestore(&ofdpa->internal_vlan_tbl_lock, lock_flags);
2317 struct ofdpa *ofdpa = ofdpa_port->ofdpa;
2322 spin_lock_irqsave(&ofdpa->internal_vlan_tbl_lock, lock_flags);
2324 found = ofdpa_internal_vlan_tbl_find(ofdpa, ifindex);
2334 clear_bit(bit, ofdpa->internal_vlan_bitmap);
2340 spin_unlock_irqrestore(&ofdpa->internal_vlan_tbl_lock, lock_flags);
2349 struct ofdpa *ofdpa = rocker->wpriv;
2351 ofdpa->rocker = rocker;
2353 hash_init(ofdpa->flow_tbl);
2354 spin_lock_init(&ofdpa->flow_tbl_lock);
2356 hash_init(ofdpa->group_tbl);
2357 spin_lock_init(&ofdpa->group_tbl_lock);
2359 hash_init(ofdpa->fdb_tbl);
2360 spin_lock_init(&ofdpa->fdb_tbl_lock);
2362 hash_init(ofdpa->internal_vlan_tbl);
2363 spin_lock_init(&ofdpa->internal_vlan_tbl_lock);
2365 hash_init(ofdpa->neigh_tbl);
2366 spin_lock_init(&ofdpa->neigh_tbl_lock);
2368 timer_setup(&ofdpa->fdb_cleanup_timer, ofdpa_fdb_cleanup, 0);
2369 mod_timer(&ofdpa->fdb_cleanup_timer, jiffies);
2371 ofdpa->ageing_time = BR_DEFAULT_AGEING_TIME;
2378 struct ofdpa *ofdpa = rocker->wpriv;
2389 del_timer_sync(&ofdpa->fdb_cleanup_timer);
2392 spin_lock_irqsave(&ofdpa->flow_tbl_lock, flags);
2393 hash_for_each_safe(ofdpa->flow_tbl, bkt, tmp, flow_entry, entry)
2395 spin_unlock_irqrestore(&ofdpa->flow_tbl_lock, flags);
2397 spin_lock_irqsave(&ofdpa->group_tbl_lock, flags);
2398 hash_for_each_safe(ofdpa->group_tbl, bkt, tmp, group_entry, entry)
2400 spin_unlock_irqrestore(&ofdpa->group_tbl_lock, flags);
2402 spin_lock_irqsave(&ofdpa->fdb_tbl_lock, flags);
2403 hash_for_each_safe(ofdpa->fdb_tbl, bkt, tmp, fdb_entry, entry)
2405 spin_unlock_irqrestore(&ofdpa->fdb_tbl_lock, flags);
2407 spin_lock_irqsave(&ofdpa->internal_vlan_tbl_lock, flags);
2408 hash_for_each_safe(ofdpa->internal_vlan_tbl, bkt,
2411 spin_unlock_irqrestore(&ofdpa->internal_vlan_tbl_lock, flags);
2413 spin_lock_irqsave(&ofdpa->neigh_tbl_lock, flags);
2414 hash_for_each_safe(ofdpa->neigh_tbl, bkt, tmp, neigh_entry, entry)
2416 spin_unlock_irqrestore(&ofdpa->neigh_tbl_lock, flags);
2423 ofdpa_port->ofdpa = rocker_port->rocker->wpriv;
2523 struct ofdpa *ofdpa = ofdpa_port->ofdpa;
2526 if (ofdpa_port->ageing_time < ofdpa->ageing_time)
2527 ofdpa->ageing_time = ofdpa_port->ageing_time;
2528 mod_timer(&ofdpa_port->ofdpa->fdb_cleanup_timer, jiffies);
2724 struct ofdpa *ofdpa = rocker->wpriv;
2729 if (ofdpa->fib_aborted)
2747 struct ofdpa *ofdpa = rocker->wpriv;
2751 if (ofdpa->fib_aborted)
2765 struct ofdpa *ofdpa = rocker->wpriv;
2772 if (ofdpa->fib_aborted)
2775 spin_lock_irqsave(&ofdpa->flow_tbl_lock, flags);
2776 hash_for_each_safe(ofdpa->flow_tbl, bkt, tmp, flow_entry, entry) {
2791 spin_unlock_irqrestore(&ofdpa->flow_tbl_lock, flags);
2792 ofdpa->fib_aborted = true;
2796 .kind = "ofdpa",
2797 .priv_size = sizeof(struct ofdpa),