return NULL;
}
-static inline void
-in6_addr_set_mapped_ipv4(struct in6_addr *addr, ovs_be32 ip4)
-{
- union ovs_16aligned_in6_addr *taddr = (void *) addr;
- memset(taddr->be16, 0, sizeof(taddr->be16));
- taddr->be16[5] = OVS_BE16_MAX;
- put_16aligned_be32(&taddr->be32[3], ip4);
-}
-
struct mcast_group *
mcast_snooping_lookup4(const struct mcast_snooping *ms, ovs_be32 ip4,
uint16_t vlan)
OVS_REQ_RDLOCK(ms->rwlock)
{
- struct in6_addr addr;
- in6_addr_set_mapped_ipv4(&addr, ip4);
+ struct in6_addr addr = in6_addr_mapped_ipv4(ip4);
return mcast_snooping_lookup(ms, &addr, vlan);
}
uint16_t vlan, void *port)
OVS_REQ_WRLOCK(ms->rwlock)
{
- struct in6_addr addr;
- in6_addr_set_mapped_ipv4(&addr, ip4);
+ struct in6_addr addr = in6_addr_mapped_ipv4(ip4);
return mcast_snooping_add_group(ms, &addr, vlan, port);
}
mcast_snooping_leave_group4(struct mcast_snooping *ms, ovs_be32 ip4,
uint16_t vlan, void *port)
{
- struct in6_addr addr;
- in6_addr_set_mapped_ipv4(&addr, ip4);
+ struct in6_addr addr = in6_addr_mapped_ipv4(ip4);
return mcast_snooping_leave_group(ms, &addr, vlan, port);
}