lkml.org 
[lkml]   [2017]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH net-next v2 4/6] vxlan: check valid combinations of address scopes
    From
    Date
    On 04/14/2017 07:27 PM, Sergei Shtylyov wrote:
    > On 04/14/2017 07:44 PM, Matthias Schiffer wrote:
    >
    >> * Multicast addresses are never valid as local address
    >> * Link-local IPv6 unicast addresses may only be used as remote when the
    >> local address is link-local as well
    >> * Don't allow link-local IPv6 local/remote addresses without interface
    >>
    >> We also store in the flags field if link-local addresses are used for the
    >> follow-up patches that actually make VXLAN over link-local IPv6 work.
    >>
    >> Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
    >> ---
    >>
    >> v2: was "vxlan: don't allow link-local IPv6 local/remote addresses without
    >> interface" before. v2 does a lot more checks and adds the
    >> VXLAN_F_IPV6_LINKLOCAL flag.
    >>
    >> drivers/net/vxlan.c | 35 +++++++++++++++++++++++++++++++++++
    >> include/net/vxlan.h | 2 ++
    >> 2 files changed, 37 insertions(+)
    >>
    >> diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
    >> index 07f89b037681..95a71546e8f2 100644
    >> --- a/drivers/net/vxlan.c
    >> +++ b/drivers/net/vxlan.c
    >> @@ -2881,11 +2881,39 @@ static int vxlan_config_validate(struct net
    >> *src_net, struct vxlan_config *conf,
    >> if (conf->saddr.sa.sa_family != conf->remote_ip.sa.sa_family)
    >> return -EINVAL;
    >>
    >> + if (vxlan_addr_multicast(&conf->saddr))
    >> + return -EINVAL;
    >> +
    >> if (conf->saddr.sa.sa_family == AF_INET6) {
    >> if (!IS_ENABLED(CONFIG_IPV6))
    >> return -EPFNOSUPPORT;
    >> use_ipv6 = true;
    >> conf->flags |= VXLAN_F_IPV6;
    >> +
    >> + if (!(conf->flags & VXLAN_F_COLLECT_METADATA)) {
    >> + int local_type =
    >> + ipv6_addr_type(&conf->saddr.sin6.sin6_addr);
    >> + int remote_type =
    >> + ipv6_addr_type(&conf->remote_ip.sin6.sin6_addr);
    >> +
    >> + if (local_type & IPV6_ADDR_LINKLOCAL) {
    >> + if (!(remote_type & IPV6_ADDR_LINKLOCAL) &&
    >> + (remote_type != IPV6_ADDR_ANY)) {
    >> + pr_info("invalid combination of address scopes\n");
    >
    > Maybe pr_err()?

    Hmm, I mostly followed the style of the existing code, which uses pr_info
    for such messages. Also, these messages can be triggered by userspace, as
    they're diagnostics for the newlink/changelink operations; I'm not
    convinced that their importance justifies pr_err().

    Generally, it seems unusual to me to use the kernel log for configuration
    diagnostics at all; just removing the messages would be another option.
    Stephen also mentioned "extended netlink error reporting", but I guess that
    can be done in another patchset.

    Matthias

    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2017-04-16 16:58    [W:5.683 / U:0.688 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site