lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Fri, 30 Nov 2018 23:36:36 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Roopa Prabhu <roopa@...ulusnetworks.com>
Cc:     kbuild-all@...org, davem@...emloft.net, netdev@...r.kernel.org
Subject: Re: [PATCH net-next 3/3] vxlan: move flag sets to use a helper func
 vxlan_nl2conf

Hi Roopa,

I love your patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Roopa-Prabhu/vxlan-support-changelink-for-a-few-more-attributes/20181130-030315
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

>> drivers/net/vxlan.c:3526:22: error: Expected ; at end of statement
>> drivers/net/vxlan.c:3526:22: error: got {
>> drivers/net/vxlan.c:3534:17: error: Expected ) in function declarator
   drivers/net/vxlan.c:3534:17: error: got [
>> drivers/net/vxlan.c:3534:9: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3536:25: error: Trying to use reserved word 'if' as identifier
>> drivers/net/vxlan.c:3536:25: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3536:25: error: got }
>> drivers/net/vxlan.c:3539:25: error: Trying to use reserved word 'return' as identifier
>> drivers/net/vxlan.c:3539:32: error: Expected ; at end of declaration
   drivers/net/vxlan.c:3539:32: error: got -
   drivers/net/vxlan.c:3540:17: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3540:17: error: got }
   drivers/net/vxlan.c:3542:9: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3542:9: error: got }
   drivers/net/vxlan.c:3546:25: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3546:25: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3546:25: error: got }
   drivers/net/vxlan.c:3549:25: error: Trying to use reserved word 'return' as identifier
   drivers/net/vxlan.c:3549:32: error: Expected ; at end of declaration
   drivers/net/vxlan.c:3549:32: error: got -
   drivers/net/vxlan.c:3550:17: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3550:17: error: got }
   drivers/net/vxlan.c:3553:9: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3553:9: error: got }
   drivers/net/vxlan.c:3558:63: error: Expected ) in function declarator
   drivers/net/vxlan.c:3558:63: error: got ,
   drivers/net/vxlan.c:3561:56: error: Expected ) in function declarator
   drivers/net/vxlan.c:3561:56: error: got ,
   drivers/net/vxlan.c:3564:56: error: Expected ) in function declarator
   drivers/net/vxlan.c:3564:56: error: got ,
   drivers/net/vxlan.c:3567:49: error: Expected ) in function declarator
   drivers/net/vxlan.c:3567:49: error: got ,
   drivers/net/vxlan.c:3570:49: error: Expected ) in function declarator
   drivers/net/vxlan.c:3570:49: error: got ,
   drivers/net/vxlan.c:3573:63: error: Expected ) in function declarator
   drivers/net/vxlan.c:3573:63: error: got ,
   drivers/net/vxlan.c:3576:15: error: Expected ) in function declarator
   drivers/net/vxlan.c:3576:15: error: got [
   drivers/net/vxlan.c:3576:9: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3578:25: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3578:25: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3578:25: error: got }
   drivers/net/vxlan.c:3581:25: error: Trying to use reserved word 'return' as identifier
   drivers/net/vxlan.c:3581:32: error: Expected ; at end of declaration
   drivers/net/vxlan.c:3581:32: error: got -
   drivers/net/vxlan.c:3582:17: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3582:17: error: got }
   drivers/net/vxlan.c:3584:9: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3584:9: error: got }
   drivers/net/vxlan.c:3589:9: error: Trying to use reserved word 'return' as identifier
   drivers/net/vxlan.c:3589:16: error: Expected ; at end of declaration
   drivers/net/vxlan.c:3589:16: error: got 0
   drivers/net/vxlan.c:3590:1: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3590:1: error: got }
   drivers/net/vxlan.c:3600:9: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3601:17: error: Expected ; at end of declaration
>> drivers/net/vxlan.c:3601:17: error: got return
   drivers/net/vxlan.c:3603:9: error: Trying to use reserved word 'return' as identifier
   drivers/net/vxlan.c:3603:16: error: Expected ; at end of declaration
>> drivers/net/vxlan.c:3603:16: error: got __vxlan_dev_create
   drivers/net/vxlan.c:3604:1: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3604:1: error: got }
   drivers/net/vxlan.c:3620:9: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3621:17: error: Expected ; at end of declaration
   drivers/net/vxlan.c:3621:17: error: got return
   drivers/net/vxlan.c:3624:9: error: Expected ) in function declarator
   drivers/net/vxlan.c:3624:9: error: got &
   drivers/net/vxlan.c:3627:9: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3628:17: error: Expected ; at end of declaration
   drivers/net/vxlan.c:3628:17: error: got return
   drivers/net/vxlan.c:3630:30: error: Expected ) in function declarator
   drivers/net/vxlan.c:3630:30: error: got !=
   drivers/net/vxlan.c:3630:9: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3634:13: error: Expected ) in function declarator
   drivers/net/vxlan.c:3634:13: error: got !
   drivers/net/vxlan.c:3634:9: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3636:21: error: Expected ) in function declarator
   drivers/net/vxlan.c:3636:21: error: got !
   drivers/net/vxlan.c:3636:17: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3645:21: error: Expected ) in function declarator
   drivers/net/vxlan.c:3645:21: error: got !
   drivers/net/vxlan.c:3645:17: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3654:25: error: Trying to use reserved word 'if' as identifier
   drivers/net/vxlan.c:3658:69: error: Expected ) in function declarator
>> drivers/net/vxlan.c:3658:69: error: got (
   drivers/net/vxlan.c:3660:17: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3660:17: error: got }
   drivers/net/vxlan.c:3662:9: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3662:9: error: got }
   drivers/net/vxlan.c:3665:1: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3665:1: error: got }
   drivers/net/vxlan.c:3673:27: error: Expected ) in function declarator
   drivers/net/vxlan.c:3673:27: error: got &
   drivers/net/vxlan.c:3674:18: error: Expected ) in function declarator
   drivers/net/vxlan.c:3674:18: error: got &
   drivers/net/vxlan.c:3676:1: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3676:1: error: got }
   drivers/net/vxlan.c:3706:1: error: Expected ; at the end of type declaration
   drivers/net/vxlan.c:3706:1: error: got }
   drivers/net/vxlan.c:3717:24: error: Expected ) in function declarator
>> drivers/net/vxlan.c:3717:24: error: too many errors
   drivers/net/vxlan.c: In function 'vxlan_nl2conf':
   drivers/net/vxlan.c:3526:3: error: expected '}' before 'else'
      else {
      ^~~~

vim +3526 drivers/net/vxlan.c

5b4a0054c Roopa Prabhu       2018-11-28  3393  
8bcdc4f3a Roopa Prabhu       2017-02-20  3394  static int vxlan_nl2conf(struct nlattr *tb[], struct nlattr *data[],
8bcdc4f3a Roopa Prabhu       2017-02-20  3395  			 struct net_device *dev, struct vxlan_config *conf,
87801e838 Roopa Prabhu       2018-11-28  3396  			 bool changelink, struct netlink_ext_ack *extack)
0dfbdf410 Thomas Graf        2015-07-21  3397  {
8bcdc4f3a Roopa Prabhu       2017-02-20  3398  	struct vxlan_dev *vxlan = netdev_priv(dev);
8bcdc4f3a Roopa Prabhu       2017-02-20  3399  
8bcdc4f3a Roopa Prabhu       2017-02-20  3400  	memset(conf, 0, sizeof(*conf));
8bcdc4f3a Roopa Prabhu       2017-02-20  3401  
8bcdc4f3a Roopa Prabhu       2017-02-20  3402  	/* if changelink operation, start with old existing cfg */
8bcdc4f3a Roopa Prabhu       2017-02-20  3403  	if (changelink)
8bcdc4f3a Roopa Prabhu       2017-02-20  3404  		memcpy(conf, &vxlan->cfg, sizeof(*conf));
0dfbdf410 Thomas Graf        2015-07-21  3405  
8bcdc4f3a Roopa Prabhu       2017-02-20  3406  	if (data[IFLA_VXLAN_ID]) {
8bcdc4f3a Roopa Prabhu       2017-02-20  3407  		__be32 vni = cpu_to_be32(nla_get_u32(data[IFLA_VXLAN_ID]));
e277de5f3 Jesse Gross        2015-10-16  3408  
87801e838 Roopa Prabhu       2018-11-28  3409  		if (changelink && (vni != conf->vni)) {
87801e838 Roopa Prabhu       2018-11-28  3410  			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_ID],
87801e838 Roopa Prabhu       2018-11-28  3411  					    "Cannot change vni");
8bcdc4f3a Roopa Prabhu       2017-02-20  3412  			return -EOPNOTSUPP;
87801e838 Roopa Prabhu       2018-11-28  3413  		}
8bcdc4f3a Roopa Prabhu       2017-02-20  3414  		conf->vni = cpu_to_be32(nla_get_u32(data[IFLA_VXLAN_ID]));
8bcdc4f3a Roopa Prabhu       2017-02-20  3415  	}
0dfbdf410 Thomas Graf        2015-07-21  3416  
0dfbdf410 Thomas Graf        2015-07-21  3417  	if (data[IFLA_VXLAN_GROUP]) {
87801e838 Roopa Prabhu       2018-11-28  3418  		if (changelink && (conf->remote_ip.sa.sa_family != AF_INET)) {
87801e838 Roopa Prabhu       2018-11-28  3419  			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_GROUP],
87801e838 Roopa Prabhu       2018-11-28  3420  					    "New group addr family does not match old group");
ce44a4aea Matthias Schiffer  2017-06-19  3421  			return -EOPNOTSUPP;
87801e838 Roopa Prabhu       2018-11-28  3422  		}
8bcdc4f3a Roopa Prabhu       2017-02-20  3423  		conf->remote_ip.sin.sin_addr.s_addr = nla_get_in_addr(data[IFLA_VXLAN_GROUP]);
ce44a4aea Matthias Schiffer  2017-06-19  3424  		conf->remote_ip.sa.sa_family = AF_INET;
0dfbdf410 Thomas Graf        2015-07-21  3425  	} else if (data[IFLA_VXLAN_GROUP6]) {
87801e838 Roopa Prabhu       2018-11-28  3426  		if (!IS_ENABLED(CONFIG_IPV6)) {
87801e838 Roopa Prabhu       2018-11-28  3427  			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_GROUP6],
87801e838 Roopa Prabhu       2018-11-28  3428  					    "IPv6 support not enabled in the kernel");
0dfbdf410 Thomas Graf        2015-07-21  3429  			return -EPFNOSUPPORT;
87801e838 Roopa Prabhu       2018-11-28  3430  		}
0dfbdf410 Thomas Graf        2015-07-21  3431  
87801e838 Roopa Prabhu       2018-11-28  3432  		if (changelink && (conf->remote_ip.sa.sa_family != AF_INET6)) {
87801e838 Roopa Prabhu       2018-11-28  3433  			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_GROUP6],
87801e838 Roopa Prabhu       2018-11-28  3434  					    "New group addr family does not match old group");
ce44a4aea Matthias Schiffer  2017-06-19  3435  			return -EOPNOTSUPP;
87801e838 Roopa Prabhu       2018-11-28  3436  		}
ce44a4aea Matthias Schiffer  2017-06-19  3437  
8bcdc4f3a Roopa Prabhu       2017-02-20  3438  		conf->remote_ip.sin6.sin6_addr = nla_get_in6_addr(data[IFLA_VXLAN_GROUP6]);
8bcdc4f3a Roopa Prabhu       2017-02-20  3439  		conf->remote_ip.sa.sa_family = AF_INET6;
0dfbdf410 Thomas Graf        2015-07-21  3440  	}
0dfbdf410 Thomas Graf        2015-07-21  3441  
0dfbdf410 Thomas Graf        2015-07-21  3442  	if (data[IFLA_VXLAN_LOCAL]) {
87801e838 Roopa Prabhu       2018-11-28  3443  		if (changelink && (conf->saddr.sa.sa_family != AF_INET)) {
87801e838 Roopa Prabhu       2018-11-28  3444  			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_LOCAL],
87801e838 Roopa Prabhu       2018-11-28  3445  					    "New local addr family does not match old");
ce44a4aea Matthias Schiffer  2017-06-19  3446  			return -EOPNOTSUPP;
87801e838 Roopa Prabhu       2018-11-28  3447  		}
ce44a4aea Matthias Schiffer  2017-06-19  3448  
8bcdc4f3a Roopa Prabhu       2017-02-20  3449  		conf->saddr.sin.sin_addr.s_addr = nla_get_in_addr(data[IFLA_VXLAN_LOCAL]);
8bcdc4f3a Roopa Prabhu       2017-02-20  3450  		conf->saddr.sa.sa_family = AF_INET;
0dfbdf410 Thomas Graf        2015-07-21  3451  	} else if (data[IFLA_VXLAN_LOCAL6]) {
87801e838 Roopa Prabhu       2018-11-28  3452  		if (!IS_ENABLED(CONFIG_IPV6)) {
87801e838 Roopa Prabhu       2018-11-28  3453  			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_LOCAL6],
87801e838 Roopa Prabhu       2018-11-28  3454  					    "IPv6 support not enabled in the kernel");
0dfbdf410 Thomas Graf        2015-07-21  3455  			return -EPFNOSUPPORT;
87801e838 Roopa Prabhu       2018-11-28  3456  		}
0dfbdf410 Thomas Graf        2015-07-21  3457  
87801e838 Roopa Prabhu       2018-11-28  3458  		if (changelink && (conf->saddr.sa.sa_family != AF_INET6)) {
87801e838 Roopa Prabhu       2018-11-28  3459  			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_LOCAL6],
87801e838 Roopa Prabhu       2018-11-28  3460  					    "New local6 addr family does not match old");
ce44a4aea Matthias Schiffer  2017-06-19  3461  			return -EOPNOTSUPP;
87801e838 Roopa Prabhu       2018-11-28  3462  		}
ce44a4aea Matthias Schiffer  2017-06-19  3463  
0dfbdf410 Thomas Graf        2015-07-21  3464  		/* TODO: respect scope id */
8bcdc4f3a Roopa Prabhu       2017-02-20  3465  		conf->saddr.sin6.sin6_addr = nla_get_in6_addr(data[IFLA_VXLAN_LOCAL6]);
8bcdc4f3a Roopa Prabhu       2017-02-20  3466  		conf->saddr.sa.sa_family = AF_INET6;
0dfbdf410 Thomas Graf        2015-07-21  3467  	}
0dfbdf410 Thomas Graf        2015-07-21  3468  
0dfbdf410 Thomas Graf        2015-07-21  3469  	if (data[IFLA_VXLAN_LINK])
8bcdc4f3a Roopa Prabhu       2017-02-20  3470  		conf->remote_ifindex = nla_get_u32(data[IFLA_VXLAN_LINK]);
0dfbdf410 Thomas Graf        2015-07-21  3471  
d342894c5 stephen hemminger  2012-10-01  3472  	if (data[IFLA_VXLAN_TOS])
8bcdc4f3a Roopa Prabhu       2017-02-20  3473  		conf->tos  = nla_get_u8(data[IFLA_VXLAN_TOS]);
d342894c5 stephen hemminger  2012-10-01  3474  
afb97186f Vincent Bernat     2012-10-30  3475  	if (data[IFLA_VXLAN_TTL])
8bcdc4f3a Roopa Prabhu       2017-02-20  3476  		conf->ttl = nla_get_u8(data[IFLA_VXLAN_TTL]);
afb97186f Vincent Bernat     2012-10-30  3477  
5b4a0054c Roopa Prabhu       2018-11-28  3478  	vxlan_nl2flag(conf, data, IFLA_VXLAN_TTL_INHERIT,
5b4a0054c Roopa Prabhu       2018-11-28  3479  		      VXLAN_F_TTL_INHERIT);
72f6d71e4 Hangbin Liu        2018-04-17  3480  
e7f70af11 Daniel Borkmann    2016-03-09  3481  	if (data[IFLA_VXLAN_LABEL])
8bcdc4f3a Roopa Prabhu       2017-02-20  3482  		conf->label = nla_get_be32(data[IFLA_VXLAN_LABEL]) &
e7f70af11 Daniel Borkmann    2016-03-09  3483  			     IPV6_FLOWLABEL_MASK;
e7f70af11 Daniel Borkmann    2016-03-09  3484  
5b4a0054c Roopa Prabhu       2018-11-28  3485  	if (data[IFLA_VXLAN_LEARNING])
5b4a0054c Roopa Prabhu       2018-11-28  3486  		vxlan_nl2flag(conf, data, IFLA_VXLAN_LEARNING,
5b4a0054c Roopa Prabhu       2018-11-28  3487  			      VXLAN_F_LEARN);
5b4a0054c Roopa Prabhu       2018-11-28  3488  	else if (!changelink)
8bcdc4f3a Roopa Prabhu       2017-02-20  3489  		/* default to learn on a new device */
8bcdc4f3a Roopa Prabhu       2017-02-20  3490  		conf->flags |= VXLAN_F_LEARN;
d342894c5 stephen hemminger  2012-10-01  3491  
40051c4dc Ido Schimmel       2018-11-21  3492  	if (data[IFLA_VXLAN_AGEING])
8bcdc4f3a Roopa Prabhu       2017-02-20  3493  		conf->age_interval = nla_get_u32(data[IFLA_VXLAN_AGEING]);
d342894c5 stephen hemminger  2012-10-01  3494  
5b4a0054c Roopa Prabhu       2018-11-28  3495  	vxlan_nl2flag(conf, data, IFLA_VXLAN_PROXY, VXLAN_F_PROXY);
5b4a0054c Roopa Prabhu       2018-11-28  3496  	vxlan_nl2flag(conf, data, IFLA_VXLAN_RSC, VXLAN_F_RSC);
5b4a0054c Roopa Prabhu       2018-11-28  3497  	vxlan_nl2flag(conf, data, IFLA_VXLAN_L2MISS, VXLAN_F_L2MISS);
5b4a0054c Roopa Prabhu       2018-11-28  3498  	vxlan_nl2flag(conf, data, IFLA_VXLAN_L3MISS, VXLAN_F_L3MISS);
e4f67addf David Stevens      2012-11-20  3499  
8bcdc4f3a Roopa Prabhu       2017-02-20  3500  	if (data[IFLA_VXLAN_LIMIT]) {
87801e838 Roopa Prabhu       2018-11-28  3501  		if (changelink) {
87801e838 Roopa Prabhu       2018-11-28  3502  			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_LIMIT],
87801e838 Roopa Prabhu       2018-11-28  3503  					    "Cannot change limit");
8bcdc4f3a Roopa Prabhu       2017-02-20  3504  			return -EOPNOTSUPP;
87801e838 Roopa Prabhu       2018-11-28  3505  		}
8bcdc4f3a Roopa Prabhu       2017-02-20  3506  		conf->addrmax = nla_get_u32(data[IFLA_VXLAN_LIMIT]);
8bcdc4f3a Roopa Prabhu       2017-02-20  3507  	}
d342894c5 stephen hemminger  2012-10-01  3508  
8bcdc4f3a Roopa Prabhu       2017-02-20  3509  	if (data[IFLA_VXLAN_COLLECT_METADATA]) {
87801e838 Roopa Prabhu       2018-11-28  3510  		if (changelink) {
87801e838 Roopa Prabhu       2018-11-28  3511  			NL_SET_ERR_MSG_ATTR(extack,
87801e838 Roopa Prabhu       2018-11-28  3512  					    tb[IFLA_VXLAN_COLLECT_METADATA],
87801e838 Roopa Prabhu       2018-11-28  3513  					    "Cannot change metadata flag");
8bcdc4f3a Roopa Prabhu       2017-02-20  3514  			return -EOPNOTSUPP;
87801e838 Roopa Prabhu       2018-11-28  3515  		}
5b4a0054c Roopa Prabhu       2018-11-28  3516  		vxlan_nl2flag(conf, data, IFLA_VXLAN_COLLECT_METADATA,
5b4a0054c Roopa Prabhu       2018-11-28  3517  			      VXLAN_F_COLLECT_METADATA);
8bcdc4f3a Roopa Prabhu       2017-02-20  3518  	}
f8a9b1bc1 Alexei Starovoitov 2015-07-30  3519  
05f47d69c stephen hemminger  2012-10-09  3520  	if (data[IFLA_VXLAN_PORT_RANGE]) {
8bcdc4f3a Roopa Prabhu       2017-02-20  3521  		if (!changelink) {
05f47d69c stephen hemminger  2012-10-09  3522  			const struct ifla_vxlan_port_range *p
05f47d69c stephen hemminger  2012-10-09  3523  				= nla_data(data[IFLA_VXLAN_PORT_RANGE]);
8bcdc4f3a Roopa Prabhu       2017-02-20  3524  			conf->port_min = ntohs(p->low);
8bcdc4f3a Roopa Prabhu       2017-02-20  3525  			conf->port_max = ntohs(p->high);
87801e838 Roopa Prabhu       2018-11-28 @3526  		else {
87801e838 Roopa Prabhu       2018-11-28  3527  			NL_SET_ERR_MSG_ATTR(extack,
87801e838 Roopa Prabhu       2018-11-28  3528  					    tb[IFLA_VXLAN_PORT_RANGE],
87801e838 Roopa Prabhu       2018-11-28  3529  					    "Cannot change port range");
8bcdc4f3a Roopa Prabhu       2017-02-20  3530  			return -EOPNOTSUPP;
8bcdc4f3a Roopa Prabhu       2017-02-20  3531  		}
8bcdc4f3a Roopa Prabhu       2017-02-20  3532  	}
8bcdc4f3a Roopa Prabhu       2017-02-20  3533  
8bcdc4f3a Roopa Prabhu       2017-02-20 @3534  	if (data[IFLA_VXLAN_PORT]) {
87801e838 Roopa Prabhu       2018-11-28  3535  		if (changelink) {
87801e838 Roopa Prabhu       2018-11-28 @3536  			NL_SET_ERR_MSG_ATTR(extack,
87801e838 Roopa Prabhu       2018-11-28  3537  					    tb[IFLA_VXLAN_PORT],
87801e838 Roopa Prabhu       2018-11-28  3538  					    "Cannot change port");
8bcdc4f3a Roopa Prabhu       2017-02-20 @3539  			return -EOPNOTSUPP;
87801e838 Roopa Prabhu       2018-11-28  3540  		}
8bcdc4f3a Roopa Prabhu       2017-02-20  3541  		conf->dst_port = nla_get_be16(data[IFLA_VXLAN_PORT]);
8bcdc4f3a Roopa Prabhu       2017-02-20  3542  	}
8bcdc4f3a Roopa Prabhu       2017-02-20  3543  
8bcdc4f3a Roopa Prabhu       2017-02-20  3544  	if (data[IFLA_VXLAN_UDP_CSUM]) {
87801e838 Roopa Prabhu       2018-11-28  3545  		if (changelink) {
87801e838 Roopa Prabhu       2018-11-28  3546  			NL_SET_ERR_MSG_ATTR(extack,
87801e838 Roopa Prabhu       2018-11-28  3547  					    tb[IFLA_VXLAN_UDP_CSUM],
87801e838 Roopa Prabhu       2018-11-28  3548  					    "Cannot change udp csum");
8bcdc4f3a Roopa Prabhu       2017-02-20  3549  			return -EOPNOTSUPP;
87801e838 Roopa Prabhu       2018-11-28  3550  		}
8bcdc4f3a Roopa Prabhu       2017-02-20  3551  		if (!nla_get_u8(data[IFLA_VXLAN_UDP_CSUM]))
8bcdc4f3a Roopa Prabhu       2017-02-20  3552  			conf->flags |= VXLAN_F_UDP_ZERO_CSUM_TX;
8bcdc4f3a Roopa Prabhu       2017-02-20  3553  	}
8bcdc4f3a Roopa Prabhu       2017-02-20  3554  
5b4a0054c Roopa Prabhu       2018-11-28  3555  	vxlan_nl2flag(conf, data, IFLA_VXLAN_UDP_ZERO_CSUM6_TX,
5b4a0054c Roopa Prabhu       2018-11-28  3556  		      VXLAN_F_UDP_ZERO_CSUM6_TX);
8bcdc4f3a Roopa Prabhu       2017-02-20  3557  
5b4a0054c Roopa Prabhu       2018-11-28  3558  	vxlan_nl2flag(conf, data, IFLA_VXLAN_UDP_ZERO_CSUM6_RX,
5b4a0054c Roopa Prabhu       2018-11-28  3559  		      VXLAN_F_UDP_ZERO_CSUM6_RX);
8bcdc4f3a Roopa Prabhu       2017-02-20  3560  
5b4a0054c Roopa Prabhu       2018-11-28  3561  	vxlan_nl2flag(conf, data, IFLA_VXLAN_REMCSUM_TX,
5b4a0054c Roopa Prabhu       2018-11-28  3562  		      VXLAN_F_REMCSUM_TX);
8bcdc4f3a Roopa Prabhu       2017-02-20  3563  
5b4a0054c Roopa Prabhu       2018-11-28  3564  	vxlan_nl2flag(conf, data, IFLA_VXLAN_REMCSUM_RX,
5b4a0054c Roopa Prabhu       2018-11-28  3565  		      VXLAN_F_REMCSUM_RX);
8bcdc4f3a Roopa Prabhu       2017-02-20  3566  
5b4a0054c Roopa Prabhu       2018-11-28  3567  	vxlan_nl2flag(conf, data, IFLA_VXLAN_GBP,
5b4a0054c Roopa Prabhu       2018-11-28  3568  		      VXLAN_F_GBP);
8bcdc4f3a Roopa Prabhu       2017-02-20  3569  
5b4a0054c Roopa Prabhu       2018-11-28  3570  	vxlan_nl2flag(conf, data, IFLA_VXLAN_GPE,
5b4a0054c Roopa Prabhu       2018-11-28  3571  		      VXLAN_F_GPE);
8bcdc4f3a Roopa Prabhu       2017-02-20  3572  
5b4a0054c Roopa Prabhu       2018-11-28  3573  	vxlan_nl2flag(conf, data, IFLA_VXLAN_REMCSUM_NOPARTIAL,
5b4a0054c Roopa Prabhu       2018-11-28  3574  		      VXLAN_F_REMCSUM_NOPARTIAL);
8bcdc4f3a Roopa Prabhu       2017-02-20  3575  
8bcdc4f3a Roopa Prabhu       2017-02-20  3576  	if (tb[IFLA_MTU]) {
87801e838 Roopa Prabhu       2018-11-28  3577  		if (changelink) {
87801e838 Roopa Prabhu       2018-11-28  3578  			NL_SET_ERR_MSG_ATTR(extack,
87801e838 Roopa Prabhu       2018-11-28  3579  					    tb[IFLA_MTU],
87801e838 Roopa Prabhu       2018-11-28  3580  					    "Cannot change mtu");
8bcdc4f3a Roopa Prabhu       2017-02-20  3581  			return -EOPNOTSUPP;
87801e838 Roopa Prabhu       2018-11-28  3582  		}
8bcdc4f3a Roopa Prabhu       2017-02-20  3583  		conf->mtu = nla_get_u32(tb[IFLA_MTU]);
8bcdc4f3a Roopa Prabhu       2017-02-20 @3584  	}
8bcdc4f3a Roopa Prabhu       2017-02-20  3585  
b4d306978 Stefano Brivio     2018-11-08  3586  	if (data[IFLA_VXLAN_DF])
b4d306978 Stefano Brivio     2018-11-08  3587  		conf->df = nla_get_u8(data[IFLA_VXLAN_DF]);
b4d306978 Stefano Brivio     2018-11-08  3588  
8bcdc4f3a Roopa Prabhu       2017-02-20 @3589  	return 0;
05f47d69c stephen hemminger  2012-10-09  3590  }
05f47d69c stephen hemminger  2012-10-09  3591  
8bcdc4f3a Roopa Prabhu       2017-02-20  3592  static int vxlan_newlink(struct net *src_net, struct net_device *dev,
7a3f4a185 Matthias Schiffer  2017-06-25  3593  			 struct nlattr *tb[], struct nlattr *data[],
7a3f4a185 Matthias Schiffer  2017-06-25  3594  			 struct netlink_ext_ack *extack)
8bcdc4f3a Roopa Prabhu       2017-02-20  3595  {
8bcdc4f3a Roopa Prabhu       2017-02-20  3596  	struct vxlan_config conf;
8bcdc4f3a Roopa Prabhu       2017-02-20  3597  	int err;
8bcdc4f3a Roopa Prabhu       2017-02-20  3598  
87801e838 Roopa Prabhu       2018-11-28  3599  	err = vxlan_nl2conf(tb, data, dev, &conf, false, extack);
8bcdc4f3a Roopa Prabhu       2017-02-20  3600  	if (err)
8bcdc4f3a Roopa Prabhu       2017-02-20 @3601  		return err;
8bcdc4f3a Roopa Prabhu       2017-02-20  3602  
653ef6a3e Girish Moodalbail  2017-08-11 @3603  	return __vxlan_dev_create(src_net, dev, &conf, extack);
8bcdc4f3a Roopa Prabhu       2017-02-20  3604  }
359a0ea98 Tom Herbert        2014-06-04  3605  
8bcdc4f3a Roopa Prabhu       2017-02-20  3606  static int vxlan_changelink(struct net_device *dev, struct nlattr *tb[],
ad744b223 Matthias Schiffer  2017-06-25  3607  			    struct nlattr *data[],
ad744b223 Matthias Schiffer  2017-06-25  3608  			    struct netlink_ext_ack *extack)
8bcdc4f3a Roopa Prabhu       2017-02-20  3609  {
8bcdc4f3a Roopa Prabhu       2017-02-20  3610  	struct vxlan_dev *vxlan = netdev_priv(dev);
8bcdc4f3a Roopa Prabhu       2017-02-20  3611  	struct vxlan_rdst *dst = &vxlan->default_dst;
40051c4dc Ido Schimmel       2018-11-21  3612  	unsigned long old_age_interval;
8bcdc4f3a Roopa Prabhu       2017-02-20  3613  	struct vxlan_rdst old_dst;
8bcdc4f3a Roopa Prabhu       2017-02-20  3614  	struct vxlan_config conf;
0241b8367 Roopa Prabhu       2018-07-04  3615  	struct vxlan_fdb *f = NULL;
8bcdc4f3a Roopa Prabhu       2017-02-20  3616  	int err;
dfd8645ea Tom Herbert        2015-01-12  3617  
8bcdc4f3a Roopa Prabhu       2017-02-20  3618  	err = vxlan_nl2conf(tb, data,
87801e838 Roopa Prabhu       2018-11-28  3619  			    dev, &conf, true, extack);
8bcdc4f3a Roopa Prabhu       2017-02-20  3620  	if (err)
8bcdc4f3a Roopa Prabhu       2017-02-20  3621  		return err;
dfd8645ea Tom Herbert        2015-01-12  3622  
40051c4dc Ido Schimmel       2018-11-21  3623  	old_age_interval = vxlan->cfg.age_interval;
8bcdc4f3a Roopa Prabhu       2017-02-20  3624  	memcpy(&old_dst, dst, sizeof(struct vxlan_rdst));
3511494ce Thomas Graf        2015-01-15  3625  
653ef6a3e Girish Moodalbail  2017-08-11  3626  	err = vxlan_dev_configure(vxlan->net, dev, &conf, true, extack);
8bcdc4f3a Roopa Prabhu       2017-02-20  3627  	if (err)
8bcdc4f3a Roopa Prabhu       2017-02-20  3628  		return err;
e1e5314de Jiri Benc          2016-04-05  3629  
40051c4dc Ido Schimmel       2018-11-21  3630  	if (old_age_interval != vxlan->cfg.age_interval)
40051c4dc Ido Schimmel       2018-11-21  3631  		mod_timer(&vxlan->age_timer, jiffies);
40051c4dc Ido Schimmel       2018-11-21  3632  
8bcdc4f3a Roopa Prabhu       2017-02-20  3633  	/* handle default dst entry */
8bcdc4f3a Roopa Prabhu       2017-02-20 @3634  	if (!vxlan_addr_equal(&dst->remote_ip, &old_dst.remote_ip)) {
8bcdc4f3a Roopa Prabhu       2017-02-20  3635  		spin_lock_bh(&vxlan->hash_lock);
8bcdc4f3a Roopa Prabhu       2017-02-20  3636  		if (!vxlan_addr_any(&old_dst.remote_ip))
8bcdc4f3a Roopa Prabhu       2017-02-20  3637  			__vxlan_fdb_delete(vxlan, all_zeros_mac,
8bcdc4f3a Roopa Prabhu       2017-02-20  3638  					   old_dst.remote_ip,
8bcdc4f3a Roopa Prabhu       2017-02-20  3639  					   vxlan->cfg.dst_port,
8bcdc4f3a Roopa Prabhu       2017-02-20  3640  					   old_dst.remote_vni,
8bcdc4f3a Roopa Prabhu       2017-02-20  3641  					   old_dst.remote_vni,
0e6160f3f Petr Machata       2018-11-21  3642  					   old_dst.remote_ifindex,
0e6160f3f Petr Machata       2018-11-21  3643  					   true);
0ace2ca89 Tom Herbert        2015-02-10  3644  
8bcdc4f3a Roopa Prabhu       2017-02-20  3645  		if (!vxlan_addr_any(&dst->remote_ip)) {
0241b8367 Roopa Prabhu       2018-07-04  3646  			err = vxlan_fdb_create(vxlan, all_zeros_mac,
8bcdc4f3a Roopa Prabhu       2017-02-20  3647  					       &dst->remote_ip,
8bcdc4f3a Roopa Prabhu       2017-02-20  3648  					       NUD_REACHABLE | NUD_PERMANENT,
8bcdc4f3a Roopa Prabhu       2017-02-20  3649  					       vxlan->cfg.dst_port,
8bcdc4f3a Roopa Prabhu       2017-02-20  3650  					       dst->remote_vni,
8bcdc4f3a Roopa Prabhu       2017-02-20  3651  					       dst->remote_vni,
8bcdc4f3a Roopa Prabhu       2017-02-20  3652  					       dst->remote_ifindex,
0241b8367 Roopa Prabhu       2018-07-04  3653  					       NTF_SELF, &f);
8bcdc4f3a Roopa Prabhu       2017-02-20  3654  			if (err) {
8bcdc4f3a Roopa Prabhu       2017-02-20  3655  				spin_unlock_bh(&vxlan->hash_lock);
8bcdc4f3a Roopa Prabhu       2017-02-20  3656  				return err;
8bcdc4f3a Roopa Prabhu       2017-02-20  3657  			}
0e6160f3f Petr Machata       2018-11-21 @3658  			vxlan_fdb_notify(vxlan, f, first_remote_rtnl(f),
0e6160f3f Petr Machata       2018-11-21  3659  					 RTM_NEWNEIGH, true);
8bcdc4f3a Roopa Prabhu       2017-02-20  3660  		}
8bcdc4f3a Roopa Prabhu       2017-02-20  3661  		spin_unlock_bh(&vxlan->hash_lock);
8bcdc4f3a Roopa Prabhu       2017-02-20  3662  	}
ce577668a Chen Haiquan       2016-05-27  3663  
8bcdc4f3a Roopa Prabhu       2017-02-20  3664  	return 0;
afbd8bae9 Mike Rapoport      2013-06-25  3665  }
afbd8bae9 Mike Rapoport      2013-06-25  3666  
d342894c5 stephen hemminger  2012-10-01  3667  static void vxlan_dellink(struct net_device *dev, struct list_head *head)
d342894c5 stephen hemminger  2012-10-01  3668  {
d342894c5 stephen hemminger  2012-10-01  3669  	struct vxlan_dev *vxlan = netdev_priv(dev);
d342894c5 stephen hemminger  2012-10-01  3670  
8b3f9337e Roopa Prabhu       2017-01-23  3671  	vxlan_flush(vxlan, true);
8b3f9337e Roopa Prabhu       2017-01-23  3672  
58ce31cca Tom Herbert        2015-08-19 @3673  	gro_cells_destroy(&vxlan->gro_cells);
553675fb5 stephen hemminger  2013-05-16  3674  	list_del(&vxlan->next);
d342894c5 stephen hemminger  2012-10-01  3675  	unregister_netdevice_queue(dev, head);
d342894c5 stephen hemminger  2012-10-01  3676  }
d342894c5 stephen hemminger  2012-10-01  3677  
d342894c5 stephen hemminger  2012-10-01  3678  static size_t vxlan_get_size(const struct net_device *dev)
d342894c5 stephen hemminger  2012-10-01  3679  {
d342894c5 stephen hemminger  2012-10-01  3680  
d342894c5 stephen hemminger  2012-10-01  3681  	return nla_total_size(sizeof(__u32)) +	/* IFLA_VXLAN_ID */
e4c7ed415 Cong Wang          2013-08-31  3682  		nla_total_size(sizeof(struct in6_addr)) + /* IFLA_VXLAN_GROUP{6} */
d342894c5 stephen hemminger  2012-10-01  3683  		nla_total_size(sizeof(__u32)) +	/* IFLA_VXLAN_LINK */
e4c7ed415 Cong Wang          2013-08-31  3684  		nla_total_size(sizeof(struct in6_addr)) + /* IFLA_VXLAN_LOCAL{6} */
d342894c5 stephen hemminger  2012-10-01  3685  		nla_total_size(sizeof(__u8)) +	/* IFLA_VXLAN_TTL */
8fd780698 Hangbin Liu        2018-09-26  3686  		nla_total_size(sizeof(__u8)) +	/* IFLA_VXLAN_TTL_INHERIT */
d342894c5 stephen hemminger  2012-10-01  3687  		nla_total_size(sizeof(__u8)) +	/* IFLA_VXLAN_TOS */
b4d306978 Stefano Brivio     2018-11-08  3688  		nla_total_size(sizeof(__u8)) +	/* IFLA_VXLAN_DF */
e7f70af11 Daniel Borkmann    2016-03-09  3689  		nla_total_size(sizeof(__be32)) + /* IFLA_VXLAN_LABEL */
d342894c5 stephen hemminger  2012-10-01  3690  		nla_total_size(sizeof(__u8)) +	/* IFLA_VXLAN_LEARNING */
e4f67addf David Stevens      2012-11-20  3691  		nla_total_size(sizeof(__u8)) +	/* IFLA_VXLAN_PROXY */
e4f67addf David Stevens      2012-11-20  3692  		nla_total_size(sizeof(__u8)) +	/* IFLA_VXLAN_RSC */
e4f67addf David Stevens      2012-11-20  3693  		nla_total_size(sizeof(__u8)) +	/* IFLA_VXLAN_L2MISS */
e4f67addf David Stevens      2012-11-20  3694  		nla_total_size(sizeof(__u8)) +	/* IFLA_VXLAN_L3MISS */
da8b43c0e Alexei Starovoitov 2015-08-04  3695  		nla_total_size(sizeof(__u8)) +	/* IFLA_VXLAN_COLLECT_METADATA */
d342894c5 stephen hemminger  2012-10-01  3696  		nla_total_size(sizeof(__u32)) +	/* IFLA_VXLAN_AGEING */
d342894c5 stephen hemminger  2012-10-01  3697  		nla_total_size(sizeof(__u32)) +	/* IFLA_VXLAN_LIMIT */
05f47d69c stephen hemminger  2012-10-09  3698  		nla_total_size(sizeof(struct ifla_vxlan_port_range)) +
823aa873b stephen hemminger  2013-04-27  3699  		nla_total_size(sizeof(__be16)) + /* IFLA_VXLAN_PORT */
359a0ea98 Tom Herbert        2014-06-04  3700  		nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_UDP_CSUM */
359a0ea98 Tom Herbert        2014-06-04  3701  		nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_UDP_ZERO_CSUM6_TX */
359a0ea98 Tom Herbert        2014-06-04  3702  		nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_UDP_ZERO_CSUM6_RX */
dfd8645ea Tom Herbert        2015-01-12  3703  		nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_REMCSUM_TX */
dfd8645ea Tom Herbert        2015-01-12  3704  		nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_REMCSUM_RX */
d342894c5 stephen hemminger  2012-10-01  3705  		0;
d342894c5 stephen hemminger  2012-10-01  3706  }
d342894c5 stephen hemminger  2012-10-01  3707  
d342894c5 stephen hemminger  2012-10-01  3708  static int vxlan_fill_info(struct sk_buff *skb, const struct net_device *dev)
d342894c5 stephen hemminger  2012-10-01  3709  {
d342894c5 stephen hemminger  2012-10-01  3710  	const struct vxlan_dev *vxlan = netdev_priv(dev);
c7995c43f Atzm Watanabe      2013-04-16  3711  	const struct vxlan_rdst *dst = &vxlan->default_dst;
05f47d69c stephen hemminger  2012-10-09  3712  	struct ifla_vxlan_port_range ports = {
0dfbdf410 Thomas Graf        2015-07-21  3713  		.low =  htons(vxlan->cfg.port_min),
0dfbdf410 Thomas Graf        2015-07-21  3714  		.high = htons(vxlan->cfg.port_max),
05f47d69c stephen hemminger  2012-10-09  3715  	};
d342894c5 stephen hemminger  2012-10-01  3716  
54bfd872b Jiri Benc          2016-02-16 @3717  	if (nla_put_u32(skb, IFLA_VXLAN_ID, be32_to_cpu(dst->remote_vni)))
d342894c5 stephen hemminger  2012-10-01  3718  		goto nla_put_failure;
d342894c5 stephen hemminger  2012-10-01  3719  
e4c7ed415 Cong Wang          2013-08-31  3720  	if (!vxlan_addr_any(&dst->remote_ip)) {
e4c7ed415 Cong Wang          2013-08-31  3721  		if (dst->remote_ip.sa.sa_family == AF_INET) {
930345ea6 Jiri Benc          2015-03-29  3722  			if (nla_put_in_addr(skb, IFLA_VXLAN_GROUP,
e4c7ed415 Cong Wang          2013-08-31  3723  					    dst->remote_ip.sin.sin_addr.s_addr))
e4c7ed415 Cong Wang          2013-08-31  3724  				goto nla_put_failure;
e4c7ed415 Cong Wang          2013-08-31  3725  #if IS_ENABLED(CONFIG_IPV6)
e4c7ed415 Cong Wang          2013-08-31  3726  		} else {
930345ea6 Jiri Benc          2015-03-29  3727  			if (nla_put_in6_addr(skb, IFLA_VXLAN_GROUP6,
e4c7ed415 Cong Wang          2013-08-31  3728  					     &dst->remote_ip.sin6.sin6_addr))
d342894c5 stephen hemminger  2012-10-01  3729  				goto nla_put_failure;
e4c7ed415 Cong Wang          2013-08-31  3730  #endif
e4c7ed415 Cong Wang          2013-08-31  3731  		}
e4c7ed415 Cong Wang          2013-08-31  3732  	}
d342894c5 stephen hemminger  2012-10-01  3733  
c7995c43f Atzm Watanabe      2013-04-16  3734  	if (dst->remote_ifindex && nla_put_u32(skb, IFLA_VXLAN_LINK, dst->remote_ifindex))
d342894c5 stephen hemminger  2012-10-01  3735  		goto nla_put_failure;
d342894c5 stephen hemminger  2012-10-01  3736  
0dfbdf410 Thomas Graf        2015-07-21  3737  	if (!vxlan_addr_any(&vxlan->cfg.saddr)) {
0dfbdf410 Thomas Graf        2015-07-21  3738  		if (vxlan->cfg.saddr.sa.sa_family == AF_INET) {
930345ea6 Jiri Benc          2015-03-29  3739  			if (nla_put_in_addr(skb, IFLA_VXLAN_LOCAL,
0dfbdf410 Thomas Graf        2015-07-21  3740  					    vxlan->cfg.saddr.sin.sin_addr.s_addr))
e4c7ed415 Cong Wang          2013-08-31  3741  				goto nla_put_failure;
e4c7ed415 Cong Wang          2013-08-31  3742  #if IS_ENABLED(CONFIG_IPV6)
e4c7ed415 Cong Wang          2013-08-31  3743  		} else {
930345ea6 Jiri Benc          2015-03-29  3744  			if (nla_put_in6_addr(skb, IFLA_VXLAN_LOCAL6,
0dfbdf410 Thomas Graf        2015-07-21  3745  					     &vxlan->cfg.saddr.sin6.sin6_addr))
d342894c5 stephen hemminger  2012-10-01  3746  				goto nla_put_failure;
e4c7ed415 Cong Wang          2013-08-31  3747  #endif
e4c7ed415 Cong Wang          2013-08-31  3748  		}
e4c7ed415 Cong Wang          2013-08-31  3749  	}
d342894c5 stephen hemminger  2012-10-01  3750  
0dfbdf410 Thomas Graf        2015-07-21  3751  	if (nla_put_u8(skb, IFLA_VXLAN_TTL, vxlan->cfg.ttl) ||
8fd780698 Hangbin Liu        2018-09-26  3752  	    nla_put_u8(skb, IFLA_VXLAN_TTL_INHERIT,
8fd780698 Hangbin Liu        2018-09-26  3753  		       !!(vxlan->cfg.flags & VXLAN_F_TTL_INHERIT)) ||
0dfbdf410 Thomas Graf        2015-07-21  3754  	    nla_put_u8(skb, IFLA_VXLAN_TOS, vxlan->cfg.tos) ||
b4d306978 Stefano Brivio     2018-11-08  3755  	    nla_put_u8(skb, IFLA_VXLAN_DF, vxlan->cfg.df) ||
e7f70af11 Daniel Borkmann    2016-03-09  3756  	    nla_put_be32(skb, IFLA_VXLAN_LABEL, vxlan->cfg.label) ||
e4f67addf David Stevens      2012-11-20  3757  	    nla_put_u8(skb, IFLA_VXLAN_LEARNING,
dc5321d79 Matthias Schiffer  2017-06-19  3758  			!!(vxlan->cfg.flags & VXLAN_F_LEARN)) ||
e4f67addf David Stevens      2012-11-20  3759  	    nla_put_u8(skb, IFLA_VXLAN_PROXY,
dc5321d79 Matthias Schiffer  2017-06-19  3760  			!!(vxlan->cfg.flags & VXLAN_F_PROXY)) ||
dc5321d79 Matthias Schiffer  2017-06-19  3761  	    nla_put_u8(skb, IFLA_VXLAN_RSC,
dc5321d79 Matthias Schiffer  2017-06-19  3762  		       !!(vxlan->cfg.flags & VXLAN_F_RSC)) ||
e4f67addf David Stevens      2012-11-20  3763  	    nla_put_u8(skb, IFLA_VXLAN_L2MISS,
dc5321d79 Matthias Schiffer  2017-06-19  3764  			!!(vxlan->cfg.flags & VXLAN_F_L2MISS)) ||
e4f67addf David Stevens      2012-11-20  3765  	    nla_put_u8(skb, IFLA_VXLAN_L3MISS,
dc5321d79 Matthias Schiffer  2017-06-19  3766  			!!(vxlan->cfg.flags & VXLAN_F_L3MISS)) ||
da8b43c0e Alexei Starovoitov 2015-08-04  3767  	    nla_put_u8(skb, IFLA_VXLAN_COLLECT_METADATA,
dc5321d79 Matthias Schiffer  2017-06-19  3768  		       !!(vxlan->cfg.flags & VXLAN_F_COLLECT_METADATA)) ||
0dfbdf410 Thomas Graf        2015-07-21  3769  	    nla_put_u32(skb, IFLA_VXLAN_AGEING, vxlan->cfg.age_interval) ||
0dfbdf410 Thomas Graf        2015-07-21  3770  	    nla_put_u32(skb, IFLA_VXLAN_LIMIT, vxlan->cfg.addrmax) ||
0dfbdf410 Thomas Graf        2015-07-21  3771  	    nla_put_be16(skb, IFLA_VXLAN_PORT, vxlan->cfg.dst_port) ||
359a0ea98 Tom Herbert        2014-06-04  3772  	    nla_put_u8(skb, IFLA_VXLAN_UDP_CSUM,
dc5321d79 Matthias Schiffer  2017-06-19  3773  			!(vxlan->cfg.flags & VXLAN_F_UDP_ZERO_CSUM_TX)) ||
359a0ea98 Tom Herbert        2014-06-04  3774  	    nla_put_u8(skb, IFLA_VXLAN_UDP_ZERO_CSUM6_TX,
dc5321d79 Matthias Schiffer  2017-06-19  3775  			!!(vxlan->cfg.flags & VXLAN_F_UDP_ZERO_CSUM6_TX)) ||
359a0ea98 Tom Herbert        2014-06-04  3776  	    nla_put_u8(skb, IFLA_VXLAN_UDP_ZERO_CSUM6_RX,
dc5321d79 Matthias Schiffer  2017-06-19  3777  			!!(vxlan->cfg.flags & VXLAN_F_UDP_ZERO_CSUM6_RX)) ||
dfd8645ea Tom Herbert        2015-01-12  3778  	    nla_put_u8(skb, IFLA_VXLAN_REMCSUM_TX,
dc5321d79 Matthias Schiffer  2017-06-19  3779  			!!(vxlan->cfg.flags & VXLAN_F_REMCSUM_TX)) ||
dfd8645ea Tom Herbert        2015-01-12  3780  	    nla_put_u8(skb, IFLA_VXLAN_REMCSUM_RX,
dc5321d79 Matthias Schiffer  2017-06-19  3781  			!!(vxlan->cfg.flags & VXLAN_F_REMCSUM_RX)))
d342894c5 stephen hemminger  2012-10-01  3782  		goto nla_put_failure;
d342894c5 stephen hemminger  2012-10-01  3783  
05f47d69c stephen hemminger  2012-10-09  3784  	if (nla_put(skb, IFLA_VXLAN_PORT_RANGE, sizeof(ports), &ports))
05f47d69c stephen hemminger  2012-10-09  3785  		goto nla_put_failure;
05f47d69c stephen hemminger  2012-10-09  3786  
dc5321d79 Matthias Schiffer  2017-06-19  3787  	if (vxlan->cfg.flags & VXLAN_F_GBP &&
3511494ce Thomas Graf        2015-01-15  3788  	    nla_put_flag(skb, IFLA_VXLAN_GBP))
3511494ce Thomas Graf        2015-01-15  3789  		goto nla_put_failure;
3511494ce Thomas Graf        2015-01-15  3790  
dc5321d79 Matthias Schiffer  2017-06-19  3791  	if (vxlan->cfg.flags & VXLAN_F_GPE &&
e1e5314de Jiri Benc          2016-04-05  3792  	    nla_put_flag(skb, IFLA_VXLAN_GPE))
e1e5314de Jiri Benc          2016-04-05  3793  		goto nla_put_failure;
e1e5314de Jiri Benc          2016-04-05  3794  
dc5321d79 Matthias Schiffer  2017-06-19  3795  	if (vxlan->cfg.flags & VXLAN_F_REMCSUM_NOPARTIAL &&
0ace2ca89 Tom Herbert        2015-02-10  3796  	    nla_put_flag(skb, IFLA_VXLAN_REMCSUM_NOPARTIAL))
0ace2ca89 Tom Herbert        2015-02-10  3797  		goto nla_put_failure;
0ace2ca89 Tom Herbert        2015-02-10  3798  
d342894c5 stephen hemminger  2012-10-01  3799  	return 0;
d342894c5 stephen hemminger  2012-10-01  3800  
d342894c5 stephen hemminger  2012-10-01  3801  nla_put_failure:
d342894c5 stephen hemminger  2012-10-01  3802  	return -EMSGSIZE;
d342894c5 stephen hemminger  2012-10-01  3803  }
d342894c5 stephen hemminger  2012-10-01  3804  

:::::: The code at line 3526 was first introduced by commit
:::::: 87801e83818723ec4d39bd3fcff55eb8a0741a89 vxlan: extack support for some changelink cases

:::::: TO: Roopa Prabhu <roopa@...ulusnetworks.com>
:::::: CC: 0day robot <lkp@...el.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (66621 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ