1234 Commits

Author SHA1 Message Date
Sam Tannous 45c264cd8d ifupdown2 defaults for link attributes are not applied
Ticket: CM-11718
Reviewed By: CCR-4931
Testing Done: Tested complete regression suite on hardnode in 3.0.

This patch fixes a problem in the ethtool addon module where a single iface stanza was
configured for a link-speed (1G) other then the default (10G). The link-speed config is then
removed or commented out but the link-speed is not restored to its default value (10G) because of
incorrect logic.
2016-07-07 17:16:22 -07:00
Julien Fortin 32a74516d1 addons: moving vxlan creation from iproute2 to netlink (via nlmanager)
Ticket: CM-8035
Reviewed By: CCR-4896
Testing Done: ifupdown smoke, -t vxlan tests

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-07-05 14:45:08 +02:00
Julien Fortin 182f5a1443 netlink: adding support for netlink vxlan call via nlmanager
Ticket: CM-8035
Reviewed By: CCR-4896
Testing Done: ifupdown smoke, -t vxlan tests

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-07-05 14:42:54 +02:00
Julien Fortin 3696839d82 python-nlamanger: importing vxlan creation support commit
Ticket: CM-8035
Reviewed By: CCR-4896
Testing Done: ifupdown smoke, -t vxlan tests

julien@hydra-01:~$ time runtests.sh -d cel-redxp-06 -r result_vxlan_all.txt -f . -T vxlan_all.log -l INFO -k $VM_BASE_KERNEL -i $VM_BASE_IMG $TESTS_HOME/tests/ -t vxlan

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-07-05 14:40:19 +02:00
Nikhil 4a41d24b35 addons: bridge: ifquery -c fix for port attributes
Ticket: CM-11195
Reviewed By: roopa, julien
Testing Done: used the configuration mentioned in bug description

Signed-off-by: Nikhil <nikhil@cumulusnetworks.com>

running values for bridge-portmcrouter, bridge-portmcfl, and bridge-portprios
were accessed using invalid keys.
2016-06-30 10:17:31 -07:00
Nikhil 0aa91758f4 addons: vrf: remove the FIB rules for vrf devices
Ticket: CM-11392
Reviewed By: roopa, dsa, julien
Testing Done: multiple vrf devices on dell-s3000-02

Now that the l3mdev FIB rule is in the CL3.1 kernel tree,
ifupdown2 no longer needs to manage FIB rules for VRF devices.

Signed-off-by: Nikhil <nikhil@cumulusnetworks.com>
2016-06-27 15:30:49 -07:00
Julien Fortin 26e7207b6b nlmanager: nlpacket: throw an error if the user of nlmanager tries to encode an attribute that we haven't added an encode() method for
+ adding one byte attribute class for protodown operations.

Ticket: CM-11581
Reviewed By: CCR-4721
Testing Done: Smoke + custom interface file with clag bond that requires protodown.

- nlmanager will now throw an exception if a user is trying to use the default
attribute class when in fact he should use a more specific attribute class.

- The protodown implementation needed to use a one byte attribute to set the protodown state

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-27 00:24:18 +01:00
Scott Emery f8ad40ceea ifupdown2: Disable IPv6 duplicate address detection on VRR interfaces
Ticket: CM-11511
Reviewed By: CCR-4890
Testing Done: Used "address-virtual" keyword to create VRR interface with IPv6
address. Checked sysctl and dad failures.

In a VRR setup, both switches are programmed with the same IPv6 address and that
address is active on both switches. This causes the IPv6 duplicate address
detection to kick in and diable the use of one of the address on one of the
switches. This patch causes duplicate address detection to be disabled on VRR
interfaces by setting the net.ipv6.conf.<ifname>.accept_dad and
net.ipv6.conf.<ifname>.dad_transmits sysctl's to 0. The only IPv6 addresses
which are defined on these interfaces are the virtual addresses and the link
local address (which is unused). No other operational IPv6 addresses should ever
be assigned to these interfaces. Instead, operational IPv6 addresses should be
assigned to the "base", or lower, interface of the VRR interface.
2016-06-24 10:49:27 -07:00
Julien Fortin 5b7f45794f 'this is an ACK' message should be log.debug() not log.info()
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-24 00:51:26 +01:00
Julien Fortin ea2bf79dcf Attribute 20 is not defined in Route.attribute_to_class
Ticket: CM-11515

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-24 00:48:13 +01:00
Julien Fortin 5aa9d20c8b Remove dependancy on tabulate
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   roopa@cumulusnetworks.com
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-21 22:07:49 +01:00
Julien Fortin d8a846b8ae Remove dependancy on tabulate
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   roopa@cumulusnetworks.com
2016-06-21 22:03:10 +01:00
Roopa Prabhu 13201c83ca man: fix merge errors
Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
2016-06-21 10:28:09 -07:00
Roopa Prabhu 4dff01cd4e delete generated stale files
Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
2016-06-21 10:25:14 -07:00
Julien Fortin 117d7654af addons: vlan: ifquery will try to get the vlan-id from the ifacename if vlan-id attr is missing
Ticket: CM-11485
Reviewed By: Roopa
Testing Done: config from the github issue

First reported here https://github.com/CumulusNetworks/ifupdown2/issues/10
ifquery just like ifupdown should try to get the vlan-id from the iface name
if vlan-id attr is not specified.

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-21 15:23:15 +01:00
Julien Fortin c9b929f97e addons: vrf: moving replacing rtnetlink_api call with the new netlink api
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:39:12 +01:00
Julien Fortin 3861c72cf6 addons: bond: reverting validvals "<mac>" change
Ticket: CM-11331
Reviewed By:
Testing Done:
2016-06-16 03:37:36 +01:00
Julien Fortin 594fb088e8 small easy: support (0|1) or (off|on) attribute while keeping backward compatibility
Ticket: CM-8866
Reviewed By: Roopa
Testing Done:

added support for:
* bond-lacp-bypass-allow (0|1)
* bond-use-carrier (0|1)
* bridge-mcqifaddr (0|1)
* bridge-mcquerier (0|1)
* bridge-mcrouter (0|1)
* bridge-mcsnoop (0|1)
* bridge-portmcrouter (0|1)
* link-autoneg (off|on)
* vxlan-learning (off|on)

these 2 are not yet supported by ifupdown2:
* bond-lacp-bypass-all-active (0|1)
* bond-lacp-fallback-allow (0|1)

This one is left untouched. yes/no doesn't make sense for this attribute.
* bond-lacp-rate (0|1)

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:37:36 +01:00
Daniel Walton c6370b563b Add validvals to addons, to be used by iface/ifedit wrapper
Ticket: CM-8669
Reviewed By: Julien
Testing Done:

<DETAILED DESCRIPTION (REPLACE)>
2016-06-16 03:37:35 +01:00
Julien Fortin 198ded6a35 Import python-nlmanager mirror copy
Ticket: CM-7360
Reviewed By: CCR-4721
Testing Done: smoke / testifreload / Tested on amd64 platform (by Sam)

For now, we use a mirror copy of nlmanager sources to make sure we don't
depend on it as an external package

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:37:35 +01:00
Julien Fortin 2864d6f361 Replace rtnetlink modules with python-nlmanager calls
Ticket: CM-7360
Reviewed By: CCR-4721
Testing Done: smoke / testifreload / Tested on amd64 platform (by Sam)

This patch replaces all calls to rtnetlink with python-nlmanager.

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:37:35 +01:00
Nikhil be27627277 addons: vrf: Fix to kill current ssh on 'sudo ifreload -a' to enable mgmt VRF
Ticket: CM-11080
Reviewed By: roopa, dsa, dave olson, daniel, julien
Testing Done: yes, with mgmt VRF configured

This patch parses '/usr/bin/pstree -Aps <pid>' output to find
the pid of current ssh session, and send 'sudo ifreload -a'
to background before killing itself.

Signed-off-by: Nikhil <nikhil@cumulusnetworks.com>
2016-06-16 03:37:35 +01:00
Julien Fortin 1a13da934b addons: bond: support for classical numerical bond modes
Ticket: CM-7965
Reviewed By: Roopa, Nikhil G
Testing Done: ifup/down/reload/query iface attr bond-mode with numerical/string values

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:37:35 +01:00
Julien Fortin d02acd0226 sbin: start-networking: support hotplug class from init script
Ticket: CM-9296
Reviewed By: Roopa
Testing Done:

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:37:35 +01:00
Roopa Prabhu 40804f1a07 addons: vrf: warn and continue on vrf-helper errors
Ticket: CM-11003
Reviewed By: dsa
Testing Done: tested ifup and ifdown of vrf dev

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
2016-06-16 03:37:34 +01:00
Nikhil e633ffbba2 addons: bridge: Fix for ifquery -c bridge pvid error to a valid config
Ticket: CM-8623
Reviewed By: Roopa Prabhu, Julien Fortin
Testing Done: yes, using the below mentioned config.

This patch fixes 'ifquery -c' error, bridge pvid error, which is an
unrelated error for the following valid config.

This patch also removes 'bridge-pvid', if configured, from 'bridge-vids' set.
In the below example, 510 is removed from the set bridge-vids 510-550.
The new bridge-vids set is 511-550.

auto swp1
iface swp1 inet6 dhcp
        address 14.0.0.5/30
        down ip addr flush dev swp1

auto Bridge1
iface Bridge1
        address 0.0.0.0/0
        down ip addr flush dev Bridge1
        bridge-vlan-aware yes
        bridge-ports swp1
        bridge-pvid 510
        bridge-vids 510-550
        bridge-stp on
        mstpctl-portnetwork swp1=yes

Signed-off-by: Nikhil <nikhil@cumulusnetworks.com>
2016-06-16 03:37:34 +01:00
Julien Fortin e909bd85c3 examples: generate interfaces: will fetch pci interfaces when porttab is missing
Ticket: CM-10751
Reviewed By: Roopa, Nikhil
Testing Done: exec script without porttab

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:37:34 +01:00
Julien Fortin 55d9fae146 ifupdownmain: fixing too many argument for format string
Ticket: None
Reviewed By:
Testing Done:

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:37:34 +01:00
Julien Fortin c326d03cc7 ifupdownbase: missing traceback import
Ticket: None
Reviewed By:
Testing Done:

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:37:34 +01:00
Sam Tannous 42ae783899 ifreload: address module always reconfigures (dels/adds) addresses when user
Ticket: CM-8561
Reviewed By: kanna, julien
Testing Done: Tested on amd64 switch

ifreload always deletes and adds back a host IP address
if that address is specified without a "/" and without a "netmask" config.

The problem is fixed so that _inet_address_convert_to_cidr() handles a missing
"/" and a missing "netmask" config. The host addresses is no longer added to a
list of addresses we will del/add. The patch was simply to add a case for the
missing "/" and a missing "netmask".
2016-06-16 03:37:34 +01:00
Nikhil e367482f2e debian: avoid zipping of generate_interfaces.py file
Ticket: CM-10751
Reviewed By: Roopa Prabhu, Julien Fortin
Testing Done: Yes, by extracting and installing .deb onto dell-s3000-02

Signed-off-by: Nikhil <nikhil@cumulusnetworks.com>
2016-06-16 03:37:34 +01:00
Julien Fortin fc68074fa5 ifupdown: iface: now trimming json values right after parsing
Ticket: None
Reviewed By: Roopa
Testing Done: smoke/testifupdown2.py:TestMakoJson

ifupdown2.TestMakoJson test was failing because the json values werent trimmed
Because of a trailing whitespace, a list of iface had an empty value, ifupdown2
was throwing an exception.

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:37:34 +01:00
Julien Fortin a193d8d1c0 performance fix: better handling fd to allow subprocess.close_fds=False and code re-organisation
Ticket: None
Reviewed By: CCR-4692
Testing Done: smoke + scale tests

If called with close_fds=True the subprocess module will try to close every fd
from 3 to MAXFD before executing the specified command. This is done in Python
not even with a C-implementation which truly affecting performances.

This patch aims to better handle the file descriptor used by ifupdown2. Either
by closing them after use or by setting the close-on-exec flag for the file
descriptor, which causes the file descriptor to be automatically
(and atomically) closed when any of the exec-family functions succeed.

With the actual patch all tests are passing, I can't think of any future issue
but if any a possible future modification might be to use the parameter
'preexec_fn', which allows us to set function which will be executed in the
child process before executing the command line. We can always manually close
any remaining open file descriptors with something like:

>>> os.listdir('/proc/self/fd/')
['0', '1', '2', ‘3’, etc..]
>>> for fd in os.listdir('/proc/self/fd/')
>>>    if int(fd) > 2:
>>>    	  os.close(fd)

This patch is also totally re-organising the use of subprocesses. By removing
all subprocess code redundancy.
2016-06-16 03:37:33 +01:00
Julien Fortin afe5125163 Fixing errors and typos
Ticket: None
Reviewed By: Roopa
Testing Done:

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:37:33 +01:00
Julien Fortin 6263596cd8 fixing typos in bonduitls.py and iproute2.py
Ticket: None
Reviewed By: Roopa
Testing Done:

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-16 03:37:33 +01:00
Nikhil 2e4dc7247c addons: mstpctl: bpdu filter and bpdu guard enabled by default for vxlan device
Ticket: CM-7678
Reviewed By: Roopa Prabhu
Testing Done: yes, with vlan aware/unaware bridge on dell-s3000-02

This patch enables bpdu filter and bpdu guard enabled for vxland device under
the bridge if these two attributes are unconfigured

Signed-off-by: Nikhil <nikhil@cumulusnetworks.com>
2016-06-16 03:37:31 +01:00
Roopa Prabhu d6dd6fe653 Merge remote-tracking branch 'cumulus/dev' 2016-06-06 13:18:39 -07:00
John Berezovik 9ef35dcd9f Merge pull request #3 in CRMC/ifupdown2 from dev to release/cl-stable
* commit '1cf891d101dab5569129c7f9d61d60bc53b67ffd':
  Staging cl3u3 version for merge to stable and release
  ifupdownaddons: iproute2: warn when using keywords and better parsing vlanid in ip link show output
  addons: vrf: error on no master only when ALL interfaces are being brought up
cl3u3
2016-06-05 09:05:13 -07:00
John Berezovik 1cf891d101 Staging cl3u3 version for merge to stable and release 2016-06-05 09:03:45 -07:00
Julien Fortin 79772050dd ifupdownaddons: iproute2: warn when using keywords and better parsing vlanid in ip link show output
Ticket: CM-11214
Reviewed By: Roopa
Testing Done: Tested with customer configuration

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2016-06-02 15:31:43 +01:00
Roopa Prabhu e0a7f7a413 addons: vrf: error on no master only when ALL interfaces are being
brought up

Ticket: CM-11016
Reviewed By: julien, nikhil
Testing Done: tested with config in the CM bug

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
2016-05-31 16:25:07 -07:00
Roopa Prabhu 4280a55299 Merge branch 'dev' into release/cl-stable cl3u2 2016-05-20 15:30:11 -07:00
Nikhil fffec8bbab addons: vrf: Correcting 'vrf-table' usage example
Ticket: CM-11041
Reviewed By: Roopa Prabhu
Testing Done: yes, all ifupdown2 commands for a vrf deive

<DETAILED DESCRIPTION (REPLACE)>

Signed-off-by: Nikhil <nikhil@cumulusnetworks.com>
2016-05-18 16:33:08 -07:00
Roopa Prabhu cd8a666eab Merge branch 'dev' into release/cl-stable 2016-05-16 21:24:22 -07:00
Roopa Prabhu 4e07a2d530 ifreload: --currently-up fixes
Ticket:
Review: julien, nikhil
Testing: tested reloading currently up interfaces

simplify code:
interfaces-to-reload = saved-interfaces - interfaces-not-present-in-interfaces-file

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
2016-05-16 17:00:39 -07:00
Roopa Prabhu 15b6bfed99 Merge branch 'dev' into release/cl-stable 2016-05-16 14:18:17 -07:00
Roopa Prabhu 666c614171 ifupdownmain: return proper error code on syntax check errors
Ticket: CM-7168
Reviewed By: julien
Testing Done: Tested ifupdown2 negative testcases and ran ifupdown2 smoke

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
2016-05-15 14:17:56 -07:00
Roopa Prabhu bf3eda91db addons: move some warns to errors and make sure all errors set the exit
code correctly

Ticket: CM-7168
Reviewed By: julien
Testing Done: Tested ifupdown2 negative testcases and ran ifupdown2 smoke

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
2016-05-15 13:54:53 -07:00
Roopa Prabhu 84414544de ifupdownaddons: iproute2: fix set_mtu api to return if --no-act (DRYRUN) is set
Ticket: CM-10965
Reviewed By: julien
Testing Done: Tested set mtu with dry run

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
2016-05-15 13:52:51 -07:00
Roopa Prabhu 5384c99e20 Merge branch 'dev' into release/cl-stable 2016-05-15 11:00:03 -07:00