[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <201811302339.t6cMDnYS%fengguang.wu@intel.com>
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