Lines Matching refs:port

211 	struct net_bridge_mcast_port *pmctx = &pg->key.port->multicast_ctx;
214 lockdep_assert_held_once(&pg->key.port->br->multicast_lock);
216 /* if vlan snooping is disabled use the port's multicast context */
218 !br_opt_get(pg->key.port->br, BROPT_MCAST_VLAN_SNOOPING_ENABLED))
228 vlan = br_vlan_find(nbp_vlan_group_rcu(pg->key.port), pg->key.addr.vid);
239 br_multicast_port_vid_to_port_ctx(struct net_bridge_port *port, u16 vid)
244 lockdep_assert_held_once(&port->br->multicast_lock);
246 if (!br_opt_get(port->br, BROPT_MCAST_VLAN_SNOOPING_ENABLED))
252 vlan = br_vlan_find(nbp_vlan_group_rcu(port), vid);
263 * - if pmctx is non-NULL (port), check if it should be used
280 struct net_bridge_port *port,
283 if (p->key.port != port)
286 if (!(port->flags & BR_MULTICAST_TO_UNICAST))
302 sg_key.port = pg->key.port;
321 struct net_bridge *br = pg->key.port->br;
325 sg_key.port = pg->key.port;
335 /* When a port group transitions to (or is added as) EXCLUDE we need to add it
338 * are already added so the S,G,port lookup should skip them.
339 * When a port group transitions from EXCLUDE -> INCLUDE mode or is being
346 struct net_bridge *br = pg->key.port->br;
495 sg_key.port = pg->key.port;
575 if (!br_port_group_equal(p, pg->key.port, pg->eth_addr))
603 sg_key.port = src->pg->key.port;
680 struct net_bridge *br = src->pg->key.port->br;
721 static int br_multicast_port_ngroups_inc(struct net_bridge_port *port,
728 lockdep_assert_held_once(&port->br->multicast_lock);
730 /* Always count on the port context. */
731 err = br_multicast_port_ngroups_inc_one(&port->multicast_ctx, extack,
734 trace_br_mdb_full(port->dev, group);
744 pmctx = br_multicast_port_vid_to_port_ctx(port, group->vid);
750 trace_br_mdb_full(port->dev, group);
757 br_multicast_port_ngroups_dec_one(&port->multicast_ctx);
761 static void br_multicast_port_ngroups_dec(struct net_bridge_port *port, u16 vid)
765 lockdep_assert_held_once(&port->br->multicast_lock);
768 pmctx = br_multicast_port_vid_to_port_ctx(port, vid);
772 br_multicast_port_ngroups_dec_one(&port->multicast_ctx);
807 struct net_bridge *br = pg->key.port->br;
824 br_multicast_port_ngroups_dec(pg->key.port, pg->key.addr.vid);
860 struct net_bridge *br = pg->key.port->br;
933 struct net_bridge_port *p = pg ? pg->key.port : NULL;
1081 struct net_bridge_port *p = pg ? pg->key.port : NULL;
1390 grp_src->br = pg->key.port->br;
1402 struct net_bridge_port *port,
1414 err = br_multicast_port_ngroups_inc(port, group, extack);
1420 NL_SET_ERR_MSG_MOD(extack, "Couldn't allocate new port group");
1425 p->key.port = port;
1435 rhashtable_lookup_insert_fast(&port->br->sg_port_tbl, &p->rhnode,
1437 NL_SET_ERR_MSG_MOD(extack, "Couldn't insert new port group");
1444 hlist_add_head(&p->mglist, &port->mglist);
1456 br_multicast_port_ngroups_dec(port, group->vid);
1462 struct net_bridge_port *port = p->key.port;
1467 rhashtable_remove_fast(&port->br->sg_port_tbl, &p->rhnode,
1470 br_multicast_port_ngroups_dec(port, vid);
1531 if (br_port_group_equal(p, pmctx->port, src))
1533 if ((unsigned long)p->key.port < (unsigned long)pmctx->port)
1537 p = br_multicast_new_port_group(pmctx->port, group, *pp, 0, src,
1652 struct net_bridge *br = pmctx->port->br;
1805 skb->dev = pmctx->port->dev;
1806 br_multicast_count(brmctx->br, pmctx->port, skb, igmp_type,
1809 dev_net(pmctx->port->dev), NULL, skb, NULL, skb->dev,
1901 struct net_bridge *br = pmctx->port->br;
1940 struct net_bridge *br = pg->key.port->br;
1995 void br_multicast_port_ctx_init(struct net_bridge_port *port,
1999 pmctx->port = port;
2022 int br_multicast_add_port(struct net_bridge_port *port)
2026 port->multicast_eht_hosts_limit = BR_MCAST_DEFAULT_EHT_HOSTS_LIMIT;
2027 br_multicast_port_ctx_init(port, NULL, &port->multicast_ctx);
2029 err = br_mc_disabled_update(port->dev,
2030 br_opt_get(port->br,
2036 port->mcast_stats = netdev_alloc_pcpu_stats(struct bridge_mcast_stats);
2037 if (!port->mcast_stats)
2043 void br_multicast_del_port(struct net_bridge_port *port)
2045 struct net_bridge *br = port->br;
2052 hlist_for_each_entry_safe(pg, n, &port->mglist, mglist)
2057 br_multicast_port_ctx_deinit(&port->multicast_ctx);
2058 free_percpu(port->mcast_stats);
2072 struct net_bridge *br = pmctx->port->br;
2101 hlist_for_each_entry(pg, &pmctx->port->mglist, mglist) {
2109 void br_multicast_enable_port(struct net_bridge_port *port)
2111 struct net_bridge *br = port->br;
2114 __br_multicast_enable_port_ctx(&port->multicast_ctx);
2124 hlist_for_each_entry_safe(pg, n, &pmctx->port->mglist, mglist)
2128 br_multicast_find_del_pg(pmctx->port->br, pg);
2141 void br_multicast_disable_port(struct net_bridge_port *port)
2143 spin_lock_bh(&port->br->multicast_lock);
2144 __br_multicast_disable_port_ctx(&port->multicast_ctx);
2145 spin_unlock_bh(&port->br->multicast_lock);
2518 br_multicast_find_del_pg(pg->key.port->br, pg);
2755 br_multicast_find_del_pg(pg->key.port->br, pg);
2856 pg = br_multicast_find_port(mdst, pmctx->port, src);
2994 pg = br_multicast_find_port(mdst, pmctx->port, src);
3050 int port_ifidx = pmctx ? pmctx->port->dev->ifindex : 0;
3238 return pmctx->port;
3243 struct net_bridge_port *port,
3254 if ((unsigned long)port >= (unsigned long)p)
3276 /* Add port to router_list
3290 slot = br_multicast_get_rport_slot(brmctx, pmctx->port, mc_router_list);
3302 br_rtr_notify(pmctx->port->br->dev, pmctx, RTM_NEWMDB);
3303 br_port_mc_router_state_change(pmctx->port, true);
3307 /* Add port to router_list
3318 /* Add port to router_list
3614 if (pmctx && (pmctx->port->flags & BR_MULTICAST_FAST_LEAVE)) {
3620 if (!br_port_group_equal(p, pmctx->port, src))
3647 if (!br_port_group_equal(p, pmctx->port, src))
3679 if (p->key.port != pmctx->port)
3815 struct net_bridge_port *p = pmctx ? pmctx->port : NULL;
3884 struct net_bridge_port *p = pmctx ? pmctx->port : NULL;
4249 br = vlan->port->br;
4424 br_rtr_notify(pmctx->port->br->dev, pmctx, RTM_DELMDB);
4425 br_port_mc_router_state_change(pmctx->port, false);
4443 /* Refresh the temp router port timer */
4512 struct net_bridge_port *port;
4520 list_for_each_entry_rcu(port, &brmctx->br->port_list, list) {
4526 if (br_multicast_port_ctx_state_stopped(&port->multicast_ctx))
4532 vlan = br_vlan_find(nbp_vlan_group_rcu(port),
4543 ip4_own_query = &port->multicast_ctx.ip4_own_query;
4545 ip6_own_query = &port->multicast_ctx.ip6_own_query;
4562 struct net_bridge_port *port;
4586 list_for_each_entry(port, &br->port_list, list)
4587 __br_multicast_enable_port_ctx(&port->multicast_ctx);
4746 * @dev: The bridge port adjacent to which to retrieve addresses
4765 struct net_bridge_port *port;
4774 port = br_port_get_rcu(dev);
4775 if (!port || !port->br)
4778 br = port->br;
4780 list_for_each_entry_rcu(port, &br->port_list, list) {
4781 if (!port->dev || port->dev == dev)
4784 hlist_for_each_entry_rcu(group, &port->mglist, mglist) {
4803 * @dev: The bridge port providing the bridge on which to check for a querier
4813 struct net_bridge_port *port;
4821 port = br_port_get_rcu(dev);
4822 if (!port || !port->br)
4825 br = port->br;
4839 * br_multicast_has_querier_adjacent - Checks for a querier behind a bridge port
4840 * @dev: The bridge port adjacent to which to check for a querier
4851 struct net_bridge_port *port;
4859 port = br_port_get_rcu(dev);
4860 if (!port || !port->br)
4863 br = port->br;
4870 port_ifidx == port->dev->ifindex)
4877 port_ifidx == port->dev->ifindex)
4893 * br_multicast_has_router_adjacent - Checks for a router behind a bridge port
4894 * @dev: The bridge port adjacent to which to check for a multicast router
4905 struct net_bridge_port *port;
4909 port = br_port_get_check_rcu(dev);
4910 if (!port)
4913 brmctx = &port->br->multicast_ctx;
4918 if (pmctx->port == port)
4929 if (pmctx->port == port)