Lines Matching refs:src

61 					 const unsigned char *src);
72 __u16 vid, const unsigned char *src);
78 const unsigned char *src,
172 ip.src.ip4 = ip_hdr(skb)->saddr; in br_mdb_entry_skb_get()
176 ip.src.ip4 = 0; in br_mdb_entry_skb_get()
185 ip.src.ip6 = ipv6_hdr(skb)->saddr; in br_mdb_entry_skb_get()
189 memset(&ip.src.ip6, 0, sizeof(ip.src.ip6)); in br_mdb_entry_skb_get()
282 const unsigned char *src) in br_port_group_equal() argument
290 return ether_addr_equal(src, p->eth_addr); in br_port_group_equal()
376 sg_ip.src = src_ent->addr.src; in br_multicast_star_g_handle_mode()
427 sg_ip.src = src_ent->addr.src; in br_multicast_star_g_host_state()
516 static void br_multicast_fwd_src_add(struct net_bridge_group_src *src) in br_multicast_fwd_src_add() argument
524 if (src->flags & BR_SGRP_F_INSTALLED) in br_multicast_fwd_src_add()
528 pmctx = br_multicast_pg_to_port_ctx(src->pg); in br_multicast_fwd_src_add()
532 sg_ip = src->pg->key.addr; in br_multicast_fwd_src_add()
533 sg_ip.src = src->addr.src; in br_multicast_fwd_src_add()
536 src->pg->eth_addr, MCAST_INCLUDE, false, in br_multicast_fwd_src_add()
537 !timer_pending(&src->timer)); in br_multicast_fwd_src_add()
540 src->flags |= BR_SGRP_F_INSTALLED; in br_multicast_fwd_src_add()
550 star_mp = br_mdb_ip_get(src->br, &src->pg->key.addr); in br_multicast_fwd_src_add()
557 static void br_multicast_fwd_src_remove(struct net_bridge_group_src *src, in br_multicast_fwd_src_remove() argument
560 struct net_bridge_port_group *p, *pg = src->pg; in br_multicast_fwd_src_remove()
567 sg_ip.src = src->addr.src; in br_multicast_fwd_src_remove()
569 mp = br_mdb_ip_get(src->br, &sg_ip); in br_multicast_fwd_src_remove()
574 (p = mlock_dereference(*pp, src->br)) != NULL; in br_multicast_fwd_src_remove()
581 !(src->flags & BR_SGRP_F_USER_ADDED)) in br_multicast_fwd_src_remove()
589 src->flags &= ~BR_SGRP_F_INSTALLED; in br_multicast_fwd_src_remove()
593 static void br_multicast_fwd_src_handle(struct net_bridge_group_src *src) in br_multicast_fwd_src_handle() argument
599 br_multicast_fwd_src_add(src); in br_multicast_fwd_src_handle()
602 sg_key.addr = src->pg->key.addr; in br_multicast_fwd_src_handle()
603 sg_key.addr.src = src->addr.src; in br_multicast_fwd_src_handle()
604 sg_key.port = src->pg->key.port; in br_multicast_fwd_src_handle()
606 sg = br_sg_port_find(src->br, &sg_key); in br_multicast_fwd_src_handle()
611 if (timer_pending(&src->timer)) in br_multicast_fwd_src_handle()
619 sg_mp = br_mdb_ip_get(src->br, &sg_key.addr); in br_multicast_fwd_src_handle()
622 br_mdb_notify(src->br->dev, sg_mp, sg, RTM_NEWMDB); in br_multicast_fwd_src_handle()
670 struct net_bridge_group_src *src; in br_multicast_destroy_group_src() local
672 src = container_of(gc, struct net_bridge_group_src, mcast_gc); in br_multicast_destroy_group_src()
673 WARN_ON(!hlist_unhashed(&src->node)); in br_multicast_destroy_group_src()
675 timer_shutdown_sync(&src->timer); in br_multicast_destroy_group_src()
676 kfree_rcu(src, rcu); in br_multicast_destroy_group_src()
679 void __br_multicast_del_group_src(struct net_bridge_group_src *src) in __br_multicast_del_group_src() argument
681 struct net_bridge *br = src->pg->key.port->br; in __br_multicast_del_group_src()
683 hlist_del_init_rcu(&src->node); in __br_multicast_del_group_src()
684 src->pg->src_ents--; in __br_multicast_del_group_src()
685 hlist_add_head(&src->mcast_gc.gc_node, &br->mcast_gc_list); in __br_multicast_del_group_src()
689 void br_multicast_del_group_src(struct net_bridge_group_src *src, in br_multicast_del_group_src() argument
692 br_multicast_fwd_src_remove(src, fastleave); in br_multicast_del_group_src()
693 __br_multicast_del_group_src(src); in br_multicast_del_group_src()
1046 ihv3->srcs[lmqt_srcs++] = ent->addr.src.ip4; in br_ip4_multicast_alloc_query()
1209 mld2q->mld2q_srcs[llqt_srcs++] = ent->addr.src.ip6; in br_ip6_multicast_alloc_query()
1317 struct net_bridge_group_src *src = timer_container_of(src, t, timer); in br_multicast_group_src_expired() local
1319 struct net_bridge *br = src->br; in br_multicast_group_src_expired()
1322 if (hlist_unhashed(&src->node) || !netif_running(br->dev) || in br_multicast_group_src_expired()
1323 timer_pending(&src->timer)) in br_multicast_group_src_expired()
1326 pg = src->pg; in br_multicast_group_src_expired()
1328 br_multicast_del_group_src(src, false); in br_multicast_group_src_expired()
1333 br_multicast_fwd_src_handle(src); in br_multicast_group_src_expired()
1348 if (ip->src.ip4 == ent->addr.src.ip4) in br_multicast_find_group_src()
1354 if (!ipv6_addr_cmp(&ent->addr.src.ip6, &ip->src.ip6)) in br_multicast_find_group_src()
1373 if (ipv4_is_zeronet(src_ip->src.ip4) || in br_multicast_new_group_src()
1374 ipv4_is_multicast(src_ip->src.ip4)) in br_multicast_new_group_src()
1379 if (ipv6_addr_any(&src_ip->src.ip6) || in br_multicast_new_group_src()
1380 ipv6_addr_is_multicast(&src_ip->src.ip6)) in br_multicast_new_group_src()
1407 const unsigned char *src, in br_multicast_new_port_group() argument
1447 if (src) in br_multicast_new_port_group()
1448 memcpy(p->eth_addr, src, ETH_ALEN); in br_multicast_new_port_group()
1507 const unsigned char *src, in __br_multicast_add_group() argument
1532 if (br_port_group_equal(p, pmctx->port, src)) in __br_multicast_add_group()
1538 p = br_multicast_new_port_group(pmctx->port, group, *pp, 0, src, in __br_multicast_add_group()
1561 const unsigned char *src, in br_multicast_add_group() argument
1569 pg = __br_multicast_add_group(brmctx, pmctx, group, src, filter_mode, in br_multicast_add_group()
1582 const unsigned char *src, in br_ip4_multicast_add_group() argument
1597 return br_multicast_add_group(brmctx, pmctx, &br_group, src, in br_ip4_multicast_add_group()
1606 const unsigned char *src, in br_ip6_multicast_add_group() argument
1621 return br_multicast_add_group(brmctx, pmctx, &br_group, src, in br_ip6_multicast_add_group()
1774 brmctx->ip4_querier.addr.src.ip4 = ip_hdr(skb)->saddr; in br_multicast_select_own_querier()
1777 brmctx->ip6_querier.addr.src.ip6 = ipv6_hdr(skb)->saddr; in br_multicast_select_own_querier()
2233 static void __grp_src_mod_timer(struct net_bridge_group_src *src, in __grp_src_mod_timer() argument
2236 mod_timer(&src->timer, expires); in __grp_src_mod_timer()
2237 br_multicast_fwd_src_handle(src); in __grp_src_mod_timer()
2341 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size); in br_multicast_isinc_allow()
2380 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size); in __grp_src_isexc_incl()
2419 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size); in __grp_src_isexc_excl()
2491 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size); in __grp_src_toin_incl()
2539 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size); in __grp_src_toin_excl()
2620 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size); in __grp_src_toex_incl()
2665 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size); in __grp_src_toex_excl()
2740 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size); in __grp_src_block_incl()
2778 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size); in __grp_src_block_excl()
2838 const unsigned char *src) in br_multicast_find_port() argument
2846 if (br_port_group_equal(pg, p, src)) in br_multicast_find_port()
2860 const unsigned char *src; in br_ip4_multicast_igmp3_report() local
2900 src = eth_hdr(skb)->h_source; in br_ip4_multicast_igmp3_report()
2906 group, vid, src); in br_ip4_multicast_igmp3_report()
2911 vid, src, igmpv2); in br_ip4_multicast_igmp3_report()
2926 pg = br_multicast_find_port(mdst, pmctx->port, src); in br_ip4_multicast_igmp3_report()
2984 const unsigned char *src; in br_ip6_multicast_mld2_report() local
3036 src = eth_hdr(skb)->h_source; in br_ip6_multicast_mld2_report()
3043 vid, src); in br_ip6_multicast_mld2_report()
3049 src, mldv1); in br_ip6_multicast_mld2_report()
3064 pg = br_multicast_find_port(mdst, pmctx->port, src); in br_ip6_multicast_mld2_report()
3129 if (!querier->addr.src.ip4 || in br_multicast_select_querier()
3130 ntohl(saddr->src.ip4) <= ntohl(querier->addr.src.ip4)) in br_multicast_select_querier()
3138 if (ipv6_addr_cmp(&saddr->src.ip6, &querier->addr.src.ip6) <= 0) in br_multicast_select_querier()
3216 querier.addr.src.ip4)) { in br_multicast_dump_querier_state()
3239 &querier.addr.src.ip6)) { in br_multicast_dump_querier_state()
3537 saddr.src.ip4 = iph->saddr; in br_ip4_multicast_query()
3625 saddr.src.ip6 = ipv6_hdr(skb)->saddr; in br_ip6_multicast_query()
3669 const unsigned char *src) in br_multicast_leave_group() argument
3690 if (!br_port_group_equal(p, pmctx->port, src)) in br_multicast_leave_group()
3717 if (!br_port_group_equal(p, pmctx->port, src)) in br_multicast_leave_group()
3769 const unsigned char *src) in br_ip4_multicast_leave_group() argument
3786 own_query, src); in br_ip4_multicast_leave_group()
3794 const unsigned char *src) in br_ip6_multicast_leave_group() argument
3811 own_query, src); in br_ip6_multicast_leave_group()
3886 const unsigned char *src; in br_multicast_ipv4_rcv() local
3909 src = eth_hdr(skb)->h_source; in br_multicast_ipv4_rcv()
3917 src, true); in br_multicast_ipv4_rcv()
3926 br_ip4_multicast_leave_group(brmctx, pmctx, ih->group, vid, src); in br_multicast_ipv4_rcv()
3955 const unsigned char *src; in br_multicast_ipv6_rcv() local
3979 src = eth_hdr(skb)->h_source; in br_multicast_ipv6_rcv()
3982 vid, src, true); in br_multicast_ipv6_rcv()
3991 src = eth_hdr(skb)->h_source; in br_multicast_ipv6_rcv()
3993 src); in br_multicast_ipv6_rcv()
5152 static noinline_for_stack void mcast_stats_add_dir(u64 *dst, u64 *src) in mcast_stats_add_dir() argument
5154 dst[BR_MCAST_DIR_RX] += src[BR_MCAST_DIR_RX]; in mcast_stats_add_dir()
5155 dst[BR_MCAST_DIR_TX] += src[BR_MCAST_DIR_TX]; in mcast_stats_add_dir()