[ovs-dev] [tunnels2 4/5] datapath: Add multicast tunnel support.
Jesse Gross
jesse at nicira.com
Fri Oct 21 00:11:33 UTC 2011
On Mon, Oct 17, 2011 at 3:14 PM, Ben Pfaff <blp at nicira.com> wrote:
> diff --git a/datapath/tunnel.c b/datapath/tunnel.c
> index 8edff06..6fde389 100644
> --- a/datapath/tunnel.c
> +++ b/datapath/tunnel.c
> int tnl_set_addr(struct vport *vport, const unsigned char *addr)
> {
> struct tnl_vport *tnl_vport = tnl_vport_priv(vport);
> - struct tnl_mutable_config *mutable;
> + struct tnl_mutable_config *old_mutable, *mutable;
>
> - mutable = kmemdup(rtnl_dereference(tnl_vport->mutable),
> - sizeof(struct tnl_mutable_config), GFP_KERNEL);
> + old_mutable = rtnl_dereference(tnl_vport->mutable);
> + mutable = kmemdup(old_mutable, sizeof(struct tnl_mutable_config), GFP_KERNEL);
> if (!mutable)
> return -ENOMEM;
>
> + mutable->mlink = mutable->mlink;
I think this line probably isn't going to do a whole lot...
> diff --git a/include/openvswitch/tunnel.h b/include/openvswitch/tunnel.h
> index 110e652..ecdd821 100644
> --- a/include/openvswitch/tunnel.h
> +++ b/include/openvswitch/tunnel.h
> @@ -57,6 +57,7 @@ enum {
> OVS_TUNNEL_ATTR_IN_KEY, /* __be64 key to match on input. */
> OVS_TUNNEL_ATTR_TOS, /* 8-bit TOS value. */
> OVS_TUNNEL_ATTR_TTL, /* 8-bit TTL value. */
> + OVS_TUNNEL_ATTR_LINK, /* 32-bit ifindex of linked device. */
I think this was supposed to be part of the following patch.
> diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
> index d579b87..d09ade4 100644
> --- a/vswitchd/vswitch.xml
> +++ b/vswitchd/vswitch.xml
> <column name="options" key="local_ip">
> - Optional. The destination IP that received packets must
> - match. Default is to match all addresses.
> + Optional. The destination IP that received packets must match.
> + Default is to match all addresses. Must be omitted when <ref
> + column="options" key="remote_ip"/> is a multicast address.
> </column>
I think we probably should do some validation on this - otherwise
ports that specify a local address and a multicast address silently
won't match.
Maybe we should also document that routing table changes for multicast
tunnels require deleting and recreating them.
I think in the gre_err() code path, we should ignore ICMP messages
sent to multicast addresses.
More information about the dev
mailing list