Lines Matching refs:group
65 struct vxlan_mdb_entry_key group; member
381 static void vxlan_mdb_group_set(struct vxlan_mdb_entry_key *group, in vxlan_mdb_group_set() argument
387 group->dst.sa.sa_family = AF_INET; in vxlan_mdb_group_set()
388 group->dst.sin.sin_addr.s_addr = entry->addr.u.ip4; in vxlan_mdb_group_set()
392 group->dst.sa.sa_family = AF_INET6; in vxlan_mdb_group_set()
393 group->dst.sin6.sin6_addr = entry->addr.u.ip6; in vxlan_mdb_group_set()
399 vxlan_nla_get_addr(&group->src, source_attr); in vxlan_mdb_group_set()
402 static bool vxlan_mdb_is_star_g(const struct vxlan_mdb_entry_key *group) in vxlan_mdb_is_star_g() argument
404 return !vxlan_addr_any(&group->dst) && vxlan_addr_any(&group->src); in vxlan_mdb_is_star_g()
407 static bool vxlan_mdb_is_sg(const struct vxlan_mdb_entry_key *group) in vxlan_mdb_is_sg() argument
409 return !vxlan_addr_any(&group->dst) && !vxlan_addr_any(&group->src); in vxlan_mdb_is_sg()
512 vxlan_mdb_group_set(&cfg->group, entry, mdbe_attrs[MDBE_ATTR_SOURCE]); in vxlan_mdb_config_attrs_init()
517 if (!vxlan_addr_is_multicast(&cfg->group.dst) && in vxlan_mdb_config_attrs_init()
518 !vxlan_addr_any(&cfg->group.dst)) { in vxlan_mdb_config_attrs_init()
523 if (vxlan_addr_any(&cfg->group.dst) && in vxlan_mdb_config_attrs_init()
529 if (vxlan_mdb_is_sg(&cfg->group)) in vxlan_mdb_config_attrs_init()
533 if (!vxlan_mdb_is_star_g(&cfg->group)) { in vxlan_mdb_config_attrs_init()
541 if (!vxlan_mdb_is_star_g(&cfg->group)) { in vxlan_mdb_config_attrs_init()
556 if (vxlan_mdb_is_star_g(&cfg->group) && list_empty(&cfg->src_list) && in vxlan_mdb_config_attrs_init()
590 cfg->group.vni = in vxlan_mdb_config_attrs_init()
610 cfg->group.vni = vxlan->default_dst.remote_vni; in vxlan_mdb_config_init()
664 const struct vxlan_mdb_entry_key *group) in vxlan_mdb_entry_lookup() argument
666 return rhashtable_lookup_fast(&vxlan->mdb_tbl, group, in vxlan_mdb_entry_lookup()
796 sg_cfg.group.src = *addr; in vxlan_mdb_remote_src_fwd_add()
797 sg_cfg.group.dst = cfg->group.dst; in vxlan_mdb_remote_src_fwd_add()
798 sg_cfg.group.vni = cfg->group.vni; in vxlan_mdb_remote_src_fwd_add()
815 const struct vxlan_mdb_entry_key *group, in vxlan_mdb_remote_src_fwd_del() argument
824 sg_cfg.group.src = *addr; in vxlan_mdb_remote_src_fwd_del()
825 sg_cfg.group.dst = group->dst; in vxlan_mdb_remote_src_fwd_del()
826 sg_cfg.group.vni = group->vni; in vxlan_mdb_remote_src_fwd_del()
869 const struct vxlan_mdb_entry_key *group, in vxlan_mdb_remote_src_del() argument
873 vxlan_mdb_remote_src_fwd_del(vxlan, group, remote, &ent->addr); in vxlan_mdb_remote_src_del()
896 vxlan_mdb_remote_src_del(cfg->vxlan, &cfg->group, remote, ent); in vxlan_mdb_remote_srcs_add()
901 const struct vxlan_mdb_entry_key *group, in vxlan_mdb_remote_srcs_del() argument
908 vxlan_mdb_remote_src_del(vxlan, group, remote, ent); in vxlan_mdb_remote_srcs_del()
912 vxlan_mdb_nlmsg_src_list_size(const struct vxlan_mdb_entry_key *group, in vxlan_mdb_nlmsg_src_list_size() argument
928 nla_total_size(vxlan_addr_size(&group->dst)) + in vxlan_mdb_nlmsg_src_list_size()
941 const struct vxlan_mdb_entry_key *group = &mdb_entry->key; in vxlan_mdb_nlmsg_remote_size() local
951 if (vxlan_mdb_is_sg(group)) in vxlan_mdb_nlmsg_remote_size()
952 nlmsg_size += nla_total_size(vxlan_addr_size(&group->dst)); in vxlan_mdb_nlmsg_remote_size()
956 nlmsg_size += vxlan_mdb_nlmsg_src_list_size(group, remote); in vxlan_mdb_nlmsg_remote_size()
971 if ((vxlan->cfg.flags & VXLAN_F_COLLECT_METADATA) && group->vni) in vxlan_mdb_nlmsg_remote_size()
1181 const struct vxlan_mdb_entry_key *group) in vxlan_mdb_entry_get() argument
1186 mdb_entry = vxlan_mdb_entry_lookup(vxlan, group); in vxlan_mdb_entry_get()
1195 memcpy(&mdb_entry->key, group, sizeof(mdb_entry->key)); in vxlan_mdb_entry_get()
1237 mdb_entry = vxlan_mdb_entry_get(vxlan, &cfg->group); in __vxlan_mdb_add()
1261 mdb_entry = vxlan_mdb_entry_lookup(vxlan, &cfg->group); in __vxlan_mdb_del()
1464 struct vxlan_mdb_entry_key *group, in vxlan_mdb_get_parse() argument
1472 memset(group, 0, sizeof(*group)); in vxlan_mdb_get_parse()
1473 group->vni = vxlan->default_dst.remote_vni; in vxlan_mdb_get_parse()
1476 vxlan_mdb_group_set(group, entry, NULL); in vxlan_mdb_get_parse()
1491 vxlan_mdb_group_set(group, entry, mdbe_attrs[MDBE_ATTR_SOURCE]); in vxlan_mdb_get_parse()
1494 group->vni = in vxlan_mdb_get_parse()
1573 struct vxlan_mdb_entry_key group; in vxlan_mdb_get() local
1579 err = vxlan_mdb_get_parse(dev, tb, &group, extack); in vxlan_mdb_get()
1583 mdb_entry = vxlan_mdb_entry_lookup(vxlan, &group); in vxlan_mdb_get()
1611 struct vxlan_mdb_entry_key group; in vxlan_mdb_entry_skb_get() local
1623 memset(&group, 0, sizeof(group)); in vxlan_mdb_entry_skb_get()
1624 group.vni = src_vni; in vxlan_mdb_entry_skb_get()
1630 group.dst.sa.sa_family = AF_INET; in vxlan_mdb_entry_skb_get()
1631 group.dst.sin.sin_addr.s_addr = ip_hdr(skb)->daddr; in vxlan_mdb_entry_skb_get()
1632 group.src.sa.sa_family = AF_INET; in vxlan_mdb_entry_skb_get()
1633 group.src.sin.sin_addr.s_addr = ip_hdr(skb)->saddr; in vxlan_mdb_entry_skb_get()
1639 group.dst.sa.sa_family = AF_INET6; in vxlan_mdb_entry_skb_get()
1640 group.dst.sin6.sin6_addr = ipv6_hdr(skb)->daddr; in vxlan_mdb_entry_skb_get()
1641 group.src.sa.sa_family = AF_INET6; in vxlan_mdb_entry_skb_get()
1642 group.src.sin6.sin6_addr = ipv6_hdr(skb)->saddr; in vxlan_mdb_entry_skb_get()
1649 mdb_entry = vxlan_mdb_entry_lookup(vxlan, &group); in vxlan_mdb_entry_skb_get()
1653 memset(&group.src, 0, sizeof(group.src)); in vxlan_mdb_entry_skb_get()
1654 mdb_entry = vxlan_mdb_entry_lookup(vxlan, &group); in vxlan_mdb_entry_skb_get()
1665 if (ipv4_is_local_multicast(group.dst.sin.sin_addr.s_addr)) in vxlan_mdb_entry_skb_get()
1667 group.dst.sin.sin_addr.s_addr = 0; in vxlan_mdb_entry_skb_get()
1671 if (ipv6_addr_type(&group.dst.sin6.sin6_addr) & in vxlan_mdb_entry_skb_get()
1674 memset(&group.dst.sin6.sin6_addr, 0, in vxlan_mdb_entry_skb_get()
1675 sizeof(group.dst.sin6.sin6_addr)); in vxlan_mdb_entry_skb_get()
1682 return vxlan_mdb_entry_lookup(vxlan, &group); in vxlan_mdb_entry_skb_get()