1
0
mirror of https://github.com/CumulusNetworks/ifupdown2.git synced 2024-05-06 15:54:50 +00:00

1511 Commits

Author SHA1 Message Date
4a888991da main: re-add lockFile check to avoid concurrent execution
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-06-18 18:15:24 +02:00
47090bf6df lib: iproute2: don't flush macvlan addresses but only removed addrs
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-06-18 18:13:46 +02:00
f00d0dcd8c addons: dhcp: enable syslog at boot & fix syslog log-level
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-06-18 17:48:18 +02:00
5cf3c6a196 main: nlcache: don't run netlink cleanup if it was never initialized
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-06-18 17:37:14 +02:00
2da842a9d7 Updated additional packages requirements 2020-06-18 14:56:57 +02:00
09cdf1c6dd Merge pull request #167 from aderumier/ovs_mtu3
address: don't process_mtu for openvswitch interfaces
2020-06-05 13:34:56 +02:00
8994bdd39a address: don't process_mtu for openvswitch interfaces
Openvswitch already manage mtu if ovs-mtu is defined.
(Ovs manage mtu in userland, and sync mtu for some interfaces in kernel).

If mtu is changed by address module, before the ovs userland mtu,
this give packets drop.
2020-06-05 08:07:04 +02:00
e665b9f166 Merge pull request #164 from aderumier/ovs_ports
addons: openvswitch: allow multiple ovs-ports + glob/regex
2020-05-29 15:02:53 +02:00
6cdb2b3d22 addons: openvswitch: allow multiple ovs-ports + glob/regex 2020-05-28 11:21:55 +02:00
76bb5414c0 README: add Alexandre Derumier in the contributor's list
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-27 15:55:41 +02:00
e7bb27f5fe Merge pull request #162 from aderumier/buffer_fix
nllistener: increase netlink buffer to 64k
2020-05-27 15:53:51 +02:00
523b347ad4 nllistener: increase netlink buffer to 64k
Currently 4k buffer is too small to handle some netlink messages

(Like bridge vlans for example, with 32k messages detected).
2020-05-27 15:49:49 +02:00
05e825a486 debian: changelog: update 3.0.0-1 entry for "ovs-ports-condone-regex" attribute
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-17 19:07:34 +02:00
8ac72bb5b7 Merge branch 'master' of github.com:CumulusNetworks/ifupdown2
* 'master' of github.com:CumulusNetworks/ifupdown2:
  addon: openvswitch : add ovs-ports-condone-regex option
  allow systemd to execute the helper script
2020-05-17 19:06:25 +02:00
4612f28b57 Merge pull request #157 from aderumier/ovs-fix
addon: openvswitch : add ovs-ports-condone-regex option
2020-05-17 19:05:12 +02:00
214cefb325 veth-peer-name: check if dependent interface exists in /e/n/i
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-17 19:01:35 +02:00
5efdf225e1 addon: openvswitch : add ovs-ports-condone-regex option
Like for bridge, add a option to skip delete a regex list of interfaces.
(can be usefull for hypervisor, when vm interfaces are dynamically plugged)
2020-05-16 08:11:22 +02:00
60edf8f14d Merge pull request #155 from bauen1/fix-start-networking-script
allow systemd to execute the helper script
2020-05-15 17:51:29 +02:00
100fab20b6 addons: link: use iproute2 to create custom devices (fixes #156)
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-15 17:49:56 +02:00
5cbe13d17a allow systemd to execute the helper script 2020-05-15 17:16:04 +02:00
406583375e addons: vxlan: add support for ipv6 attributes svcnodeip6 and mcastgrp6
vxlan-svcnodeip6": {
    "help": "vxlan svc node ip",
    "validvals": ["<ipv6>"],
    "example": ["vxlan-svcnodeip6 2001:DB8:8086:6502::"]
}

"vxlan-mcastgrp6": {
    "help": "vxlan multicast group",
    "validvals": ["<ip6>"],
    "example": ["vxlan-mcastgrp ff02::15c"],
}

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-15 04:32:38 +02:00
5890ab714e addons: link: porting 'veth-peer-name' attribute to python3 branch
original commit ported to the python3 branch:

commit bffa619b11ae7aa9e567c26c255c17ac6df2c495
Author: Maximilian Wilhelm <max@rfc2324.org>
Date:   Sat Jan 14 19:08:01 2017 +0100

    Add option 'veth-peer-name' to veth links and ensure proper configuration.

      The option »veth-peer-name« forces an veth peer link to be created with
      a specific interface name. As the interface name of the "local" part of
      the veth link pair already is defined by the name of the interface stanza
      this option is added to, now both sides are clearly named.

      As there is a bidirectional dependency of both link pairs - both cannot
      exist without the other - this presents a problem when setting up all
      interfaces. Depending on which interface is set up first there might be
      a problem when only on dependency is specified. Therefore adding the
      »veth-peer-name« option to both interface of the veth link pair ensures
      that regardless of which side is configured first the peer name will be
      set correctly. This intentionally creates a circular dependency which is
      handled accordingly.

      Fixing the config check for veth link-type while at it :)

    Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-14 04:08:04 +02:00
8a78cd07bc addons: bridge: fix NoneType is not iterable exception
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-14 02:55:30 +02:00
5564426d05 debian: changelog: update 3.0.0-1 entry
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-14 02:31:00 +02:00
e537a6e6d6 add support for single vxlan device (bridge-vlan-vni-map)
new attribute:

"bridge-vlan-vni-map": {
    "help": "Single vxlan support",
    "example": "bridge-vlan-vni-map 1000-1001=1000-1001",
}

example of config:

auto bridge
iface bridge
      bridge-vlan-aware yes
      bridge-ports vxlan0 swp1
      bridge-stp on
      bridge-vids 1000-1001
      bridge-pvid 1

auto vxlan0
iface vxlan0
      vxlan-local-tunnelip 27.0.0.9
      bridge-learning off
      # vlan 1000-1001 maps to vni 1000-1001
      bridge-vlan-vni-map 1000-1001=1000-1001

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-14 02:18:39 +02:00
7840bd2c09 addons: bridge: add support for new bridge-always-up attribute
Enabling this attribute on a bridge will
enslave a dummy interface to the bridge

example:

auto bridge
iface bridge
      bridge-vlan-aware yes
      bridge-always-up yes
      bridge-ports vni42

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-14 02:05:52 +02:00
4b706d71e2 addons: bond: fix es-sys-mac example
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-14 02:00:33 +02:00
b8ab3d5d7b main: catch ArgvParseError and don't display traceback
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-14 01:59:53 +02:00
4d9f4e59f3 addons: dchp: add debug logs and retry mechanism for dhclient (controled by policy)
ifupdown2 now tries to monitor the dhclient call to see if an ip address was
successfully assigned on the requested device. The number of retry can be
customized using the "dhclient_retry_on_failure" policy variable (which defaults to 0)

This commit also add debugging capabilities by automatically enabling sysloging when
configuring dhcp at boot (with PERFMODE option).

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-14 01:53:22 +02:00
9b451d11dc networking.service: use start-networking script to control start/stop/reload
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-13 20:47:47 +02:00
3101ff1d6f ifupdownmain: syntax-check: l2protocol-tunnel: replace regex with str.split()
Seems like the regex module might be behave a little bit different in python3.
The regexes used to validate l2protocol-tunnel were returning incorrect lists:

value=lldp,stp
regex=['', 'l', 'l', 'd', 'p', '', 's', 't', 'p', '']

the patch simplifies the code by using str.translate and str.split

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-13 20:42:19 +02:00
580a567b25 addressvirtual: fix argument of type 'IPv4Network' is not iterable
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-13 20:41:28 +02:00
c3a22da623 addons: addressvirtual: add link_kind check before deleting stale macvlan device
In the addressvirtual module we have some code that checks if stale macvlans should
be deleted (when the address-virtual or vrrp keywords are removed from the config).
To find those stale macvlans we basically do a glob search in /sys/class/net/ with
the macvlan prefix (ifname) defined by ifupdown2: '%s-v' % ifaceobj.name[0:13], which
for a device foo would create macvlans named foo-v0...foo-vN.

In this particular case we have a vxlan named: sha3szx4-vpn, which gets matched
and removed without actually checking if this device is a macvlan or not.

This commit adds a link_kind check to ensure that we are only removing macvlans.

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-13 20:40:33 +02:00
488b10cad9 ifupdownmain: fix NameError: name 'Set' is not defined
Set() is a python2 object, set is the python3 way

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-13 20:33:16 +02:00
9808982edf addons: bond: add support for es-sys-mac and es-bonds
ES bonds have the same "init state" requirements as CLAG bonds -
1. A bond needs to be designated as an "es-bond" for this purpose.
For clag-bonds we used "clag-id" attr (to designate a bond as a "clag-bond").
For ES bonds we will use "es-sys-mac" attr.

2. Slaves added to an "ES bond" must have protodown-on.
This is again similar to CLAG bonds

3. And vice-versa i.e. when a slave is removed from an "es-bond",
protodown-on must be cleared.

4. When es-sys-mac is first set on a bond, all the bond-slaves must be
placed in "protodown-on" state. This is needed whether FRR is running at that point or not.

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-13 20:27:21 +02:00
85d04bab16 addons: mstpctl: ifquery: add VXLAN check before processing bpdu-mstpctl attributes
When --with-defaults is provided we update the stanza-data structure without
making sure we are dealing with a vxlan intf.

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-13 20:24:49 +02:00
80f2b5535f addons: vrf-slave: keep vlan down if lower device has link-down yes
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-13 20:24:35 +02:00
a3df9e6930 addons: address: mtu: set bridge mtu with policy default
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-05-13 20:24:12 +02:00
004381f154 Merge pull request #153 from bauen1/add-missing-build-dep
add missing build dependency
2020-05-12 00:49:48 +02:00
95f029fde1 add missing build dependency
Signed-off-by: bauen1 <j2468h@gmail.com>
2020-05-11 20:56:37 +02:00
22a0d0ae7c Update README.rst 2020-04-25 15:40:25 +02:00
ff68815574 debian: control: bump Standards-Version
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-04-14 19:22:54 +02:00
74bac7e553 debian: changelog: update 3.0.0-1 entry
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-04-14 19:22:37 +02:00
bc2cf49ade nlmanager: ipnetwork: don't set prefixlen flag if prefix has default value
nlmanager: ipnetwork: fix 'IPv4Address' object has no attribute 'split' exception

nlpacket: use IP[v4|6]Address object when network mask is not provided or needed

nlpacket: AttributeIPAddress: fix decode handler for Routes

    During the python2 to 3 migration there was some refactoring
    Seems like some code specific to Route-decoding was removed
    This patch is fixing the issue by re-adding this code and
    tweaking it a little bit (to make it nice and clean :))

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-04-14 18:19:10 +02:00
dc74cedae4 addons: vxlan: ifquery-running: fix incorrect diplayed data
Signed-off-by: Scott Laffer <slaffer@cumulusnetworks.com>
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-04-14 18:11:14 +02:00
62d960cc1b completion: removing argcomplete support
this feature doesn't seem to be working anyway. This can be revisited in the
future but this allows us to drop the python3-argcomplete dependency for now

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-04-14 16:50:04 +02:00
9ddfbfff85 ifupdownmain: process addon alias translation right after user config
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-04-14 16:33:48 +02:00
6bc9fadc44 addons: bond: refactor get_bond_slaves function
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-04-14 16:33:48 +02:00
1f928890af addons: bond: refactor code to not use python3 set
Python3 sets are using the python hash seed to generate random hashes
which makes the sets ordering different everytime. In our case we need
to honor the user configuration (first device should be enslaved first)

https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHASHSEED

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-04-14 16:33:48 +02:00
db26516e01 addons: addressvirtual: fix byte/str exception
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2020-04-14 16:29:47 +02:00