Lines Matching defs: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;
176 ip.src.ip4 = 0;
185 ip.src.ip6 = ipv6_hdr(skb)->saddr;
189 memset(&ip.src.ip6, 0, sizeof(ip.src.ip6));
206 * to inconsistent timers when the contexts are changed, i.e. src timer
282 const unsigned char *src)
290 return ether_addr_equal(src, p->eth_addr);
376 sg_ip.src = src_ent->addr.src;
427 sg_ip.src = src_ent->addr.src;
516 static void br_multicast_fwd_src_add(struct net_bridge_group_src *src)
524 if (src->flags & BR_SGRP_F_INSTALLED)
528 pmctx = br_multicast_pg_to_port_ctx(src->pg);
532 sg_ip = src->pg->key.addr;
533 sg_ip.src = src->addr.src;
536 src->pg->eth_addr, MCAST_INCLUDE, false,
537 !timer_pending(&src->timer));
540 src->flags |= BR_SGRP_F_INSTALLED;
550 star_mp = br_mdb_ip_get(src->br, &src->pg->key.addr);
557 static void br_multicast_fwd_src_remove(struct net_bridge_group_src *src,
560 struct net_bridge_port_group *p, *pg = src->pg;
567 sg_ip.src = src->addr.src;
569 mp = br_mdb_ip_get(src->br, &sg_ip);
574 (p = mlock_dereference(*pp, src->br)) != NULL;
581 !(src->flags & BR_SGRP_F_USER_ADDED))
589 src->flags &= ~BR_SGRP_F_INSTALLED;
592 /* install S,G and based on src's timer enable or disable forwarding */
593 static void br_multicast_fwd_src_handle(struct net_bridge_group_src *src)
599 br_multicast_fwd_src_add(src);
602 sg_key.addr = src->pg->key.addr;
603 sg_key.addr.src = src->addr.src;
604 sg_key.port = src->pg->key.port;
606 sg = br_sg_port_find(src->br, &sg_key);
611 if (timer_pending(&src->timer))
619 sg_mp = br_mdb_ip_get(src->br, &sg_key.addr);
622 br_mdb_notify(src->br->dev, sg_mp, sg, RTM_NEWMDB);
670 struct net_bridge_group_src *src;
672 src = container_of(gc, struct net_bridge_group_src, mcast_gc);
673 WARN_ON(!hlist_unhashed(&src->node));
675 timer_shutdown_sync(&src->timer);
676 kfree_rcu(src, rcu);
679 void __br_multicast_del_group_src(struct net_bridge_group_src *src)
681 struct net_bridge *br = src->pg->key.port->br;
683 hlist_del_init_rcu(&src->node);
684 src->pg->src_ents--;
685 hlist_add_head(&src->mcast_gc.gc_node, &br->mcast_gc_list);
689 void br_multicast_del_group_src(struct net_bridge_group_src *src,
692 br_multicast_fwd_src_remove(src, fastleave);
693 __br_multicast_del_group_src(src);
1046 ihv3->srcs[lmqt_srcs++] = ent->addr.src.ip4;
1209 mld2q->mld2q_srcs[llqt_srcs++] = ent->addr.src.ip6;
1317 struct net_bridge_group_src *src = timer_container_of(src, t, timer);
1319 struct net_bridge *br = src->br;
1322 if (hlist_unhashed(&src->node) || !netif_running(br->dev) ||
1323 timer_pending(&src->timer))
1326 pg = src->pg;
1328 br_multicast_del_group_src(src, false);
1333 br_multicast_fwd_src_handle(src);
1348 if (ip->src.ip4 == ent->addr.src.ip4)
1354 if (!ipv6_addr_cmp(&ent->addr.src.ip6, &ip->src.ip6))
1373 if (ipv4_is_zeronet(src_ip->src.ip4) ||
1374 ipv4_is_multicast(src_ip->src.ip4))
1379 if (ipv6_addr_any(&src_ip->src.ip6) ||
1380 ipv6_addr_is_multicast(&src_ip->src.ip6))
1407 const unsigned char *src,
1447 if (src)
1448 memcpy(p->eth_addr, src, ETH_ALEN);
1507 const unsigned char *src,
1532 if (br_port_group_equal(p, pmctx->port, src))
1538 p = br_multicast_new_port_group(pmctx->port, group, *pp, 0, src,
1561 const unsigned char *src,
1569 pg = __br_multicast_add_group(brmctx, pmctx, group, src, filter_mode,
1582 const unsigned char *src,
1597 return br_multicast_add_group(brmctx, pmctx, &br_group, src,
1606 const unsigned char *src,
1621 return br_multicast_add_group(brmctx, pmctx, &br_group, src,
1774 brmctx->ip4_querier.addr.src.ip4 = ip_hdr(skb)->saddr;
1777 brmctx->ip6_querier.addr.src.ip6 = ipv6_hdr(skb)->saddr;
2233 static void __grp_src_mod_timer(struct net_bridge_group_src *src,
2236 mod_timer(&src->timer, expires);
2237 br_multicast_fwd_src_handle(src);
2341 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size);
2380 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size);
2419 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size);
2491 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size);
2539 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size);
2620 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size);
2665 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size);
2740 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size);
2778 memcpy(&src_ip.src, srcs + (src_idx * addr_size), addr_size);
2838 const unsigned char *src)
2846 if (br_port_group_equal(pg, p, src))
2860 const unsigned char *src;
2900 src = eth_hdr(skb)->h_source;
2906 group, vid, src);
2911 vid, src, igmpv2);
2926 pg = br_multicast_find_port(mdst, pmctx->port, src);
2984 const unsigned char *src;
3036 src = eth_hdr(skb)->h_source;
3043 vid, src);
3049 src, mldv1);
3064 pg = br_multicast_find_port(mdst, pmctx->port, src);
3129 if (!querier->addr.src.ip4 ||
3130 ntohl(saddr->src.ip4) <= ntohl(querier->addr.src.ip4))
3138 if (ipv6_addr_cmp(&saddr->src.ip6, &querier->addr.src.ip6) <= 0)
3216 querier.addr.src.ip4)) {
3239 &querier.addr.src.ip6)) {
3537 saddr.src.ip4 = iph->saddr;
3625 saddr.src.ip6 = ipv6_hdr(skb)->saddr;
3669 const unsigned char *src)
3690 if (!br_port_group_equal(p, pmctx->port, src))
3717 if (!br_port_group_equal(p, pmctx->port, src))
3769 const unsigned char *src)
3786 own_query, src);
3794 const unsigned char *src)
3811 own_query, src);
3886 const unsigned char *src;
3909 src = eth_hdr(skb)->h_source;
3917 src, true);
3926 br_ip4_multicast_leave_group(brmctx, pmctx, ih->group, vid, src);
3955 const unsigned char *src;
3979 src = eth_hdr(skb)->h_source;
3982 vid, src, true);
3991 src = eth_hdr(skb)->h_source;
3993 src);
5165 static noinline_for_stack void mcast_stats_add_dir(u64 *dst, u64 *src)
5167 dst[BR_MCAST_DIR_RX] += src[BR_MCAST_DIR_RX];
5168 dst[BR_MCAST_DIR_TX] += src[BR_MCAST_DIR_TX];