Re: ifupdown2: debconf followup

2016-08-17 Thread Martin Pitt
On Mon, 1 Aug 2016 12:40:37 +0200, Adam Borowski wrote:
> On Mon, Aug 01, 2016 at 12:31:14PM +0200, Marco d'Itri wrote:
> > We should also think hard about switching to a new default since 
> > currently many other major distributions are moving to NetworkManager 
> > and/or systemd-networkd (which nowadays is usable, works well for 
> > simpler use cases and will be installed on every Debian system anyway).
> 
> For the latter, "installable only with a certain init implementation, and
> not portable to any kernel but Linux" doesn't say "every Debian system" to
> me.

For the record, networkd does *not* depend on systemd as pid 1, it
happily works even in our initramfs without any (real) init. However,
it *is* Linux specific as it uses/offers Linux specific network device
types and uses Linux API like epoll().

Martin

P.S. Sorry if I broke the thread, hand-crafted In-Reply-To:. Please CC:
me, I'm not on the list.
-- 
Martin Pitt| http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)



Re: ifupdown2: debconf followup

2016-08-03 Thread Roopa Prabhu
On Wed, Aug 3, 2016 at 2:27 AM, Andrew Shadura  wrote:
> On 2 August 2016 at 08:47, Roopa Prabhu  wrote:
 I also heard about some existing mailing list or discussions around 
 solving ifupdown
 problems. We would like to be part of those discussions to see
 if ifupdown2 fits there.
>>>
>>> I don't know of such a mailing list... but there's always the BTS.
>>>
>>
>> ok, thanks Guus
>
> There actually is an Alioth project:
> https://alioth.debian.org/projects/ifupdown/ and an associated mailing
> list, but we never used it:
> https://alioth.debian.org/mail/?group_id=100843
>

ok, thanks.



Re: ifupdown2: debconf followup

2016-08-03 Thread Andrew Shadura
On 2 August 2016 at 08:47, Roopa Prabhu  wrote:
>>> I also heard about some existing mailing list or discussions around solving 
>>> ifupdown
>>> problems. We would like to be part of those discussions to see
>>> if ifupdown2 fits there.
>>
>> I don't know of such a mailing list... but there's always the BTS.
>>
>
> ok, thanks Guus

There actually is an Alioth project:
https://alioth.debian.org/projects/ifupdown/ and an associated mailing
list, but we never used it:
https://alioth.debian.org/mail/?group_id=100843


-- 
Cheers,
  Andrew



Re: ifupdown2: debconf followup

2016-08-03 Thread Vincent Lefevre
On 2016-08-01 16:43:27 +0100, Simon McVittie wrote:
> This seems reasonable. I think NM is a better choice than ifupdown for
> roaming client devices (e.g. laptops), and systemd-networkd is a good
> choice for "infrastructure" devices like servers and NAS boxes.

I don't have any problem with ifupdown on my laptops, where I can
use different configurations via virtual interfaces, depending on
the place I go (this is necessary due to broken modem-routers).
And for wifi, I want a GUI, so that I use wicd.

-- 
Vincent Lefèvre  - Web: 
100% accessible validated (X)HTML - Blog: 
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)



Re: ifupdown2: debconf followup

2016-08-01 Thread Roopa Prabhu
On Mon, Aug 1, 2016 at 12:00 AM, Guus Sliepen  wrote:
> On Sun, Jul 31, 2016 at 06:58:20PM -0700, Roopa Prabhu wrote:
>
>> And, we will be very happy to work towards making ifupdown2
>> the default in Debian. If there are ways to make that happen, please let us 
>> know.
>
> First, try to make it compatible with 99% of the non-trivial
> ifupdown configurations.

agree 100%

> Why? First, everyone with a trivial network
> configuration (like auto eth0; iface eth0 inet dhcp) will not care
> about what network configuration tool brings up their network. The
> people have a more complex setup will care, and if you make it hard for
> them to move to ifupdown2, I think they'll rather stick with ifupdown.
> You either have to be able to parse ifupdown's /etc/network/interfaces
> or have a way to convert it to whatever new format ifupdown2 requires.

sure. We are backward compatible with ifupdown's interfaces file.
There are some limitations in areas of different address families other than
inet and inet6, but they can be fixed if found important. Most other
configuration
should work. We started with supporting complex network
configurations that were already deployed with ifupdown. And over the
years we have
added new styles and new formats to just make it easier to the user (while
trying to maintain backward compatibility).

>
> I see one big drawback of ifupdown2, and that is that it's written in
> Python. Nothing wrong with that language, but it means it pulls in
> dependencies which a minimal install currently doesn't require, which is
> not so nice for people running small VMs or embedded devices.

sure, this has been raised before. And we have been looking at a possibility
of shipping it as a self contained executable. perhaps by compiling
them into .pyc.

And, from my lessons learnt, a scripting language
is much more easier and extensible for network configurations.
We re-purpose and re-use a lot of already available components which would
not have been possible if we re-wrote it in C.


>
> If ifupdown2 is meant as a drop-in replacement for ifupdown, just fixing
> some bugs or adding a few missing features of ifupdown, I'd rather see
> those issues addressed in ifupdown. But of course, as one of the
> maintainers of ifupdown I'm quite biased :)

sure, we all are :).

For the complex network configurations that we support, it will
be difficult to fix ifupdown.

>
>> I also heard about some existing mailing list or discussions around solving 
>> ifupdown
>> problems. We would like to be part of those discussions to see
>> if ifupdown2 fits there.
>
> I don't know of such a mailing list... but there's always the BTS.
>

ok, thanks Guus



Re: ifupdown2: debconf followup

2016-08-01 Thread Michael Biebl
Am 01.08.2016 um 12:48 schrieb Guus Sliepen:
> I'd say a good starting point would be to try to switch the installer to
> configuring NetworkManager or systemd-networkd, instead of generating a
> /etc/network/interfaces file.

It already does that if the network-manager packages is installed by
d-i, say you install a GNOME desktop which pulls in NM as preferred
network configuration.
Then d-i will not create a config for ifupdown but NM.
This works since wheezy, IIRC.

Regards,
Michael
-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?



signature.asc
Description: OpenPGP digital signature


Re: ifupdown2: debconf followup

2016-08-01 Thread Marc Haber
On Mon, 1 Aug 2016 12:42:39 +0200, m...@linux.it (Marco d'Itri) wrote:
>On Aug 01, Adam Borowski  wrote:
>
>> > We should also think hard about switching to a new default since 
>> > currently many other major distributions are moving to NetworkManager 
>> > and/or systemd-networkd (which nowadays is usable, works well for 
>> > simpler use cases and will be installed on every Debian system anyway).
>> For the latter, "installable only with a certain init implementation, and
>> not portable to any kernel but Linux" doesn't say "every Debian system" to
>> me.
>Sorry, what I actually meant was "every non-toy Debian system".

Please at least try to be not this derogatory.

-- 
-- !! No courtesy copies, please !! -
Marc Haber |   " Questions are the | Mailadresse im Header
Mannheim, Germany  | Beginning of Wisdom " | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834



Re: ifupdown2: debconf followup

2016-08-01 Thread Marc Haber
On Mon, 1 Aug 2016 12:48:26 +0200, Guus Sliepen 
wrote:
>On Mon, Aug 01, 2016 at 12:31:14PM +0200, Marco d'Itri wrote:
>> We should also think hard about switching to a new default since 
>> currently many other major distributions are moving to NetworkManager 
>> and/or systemd-networkd (which nowadays is usable, works well for 
>> simpler use cases and will be installed on every Debian system anyway).
>
>Last time I looked at it, systemd-networkd required several
>configuration files just to bring up a single interface. I can't say it
>was a very user-friendly experience. But perhaps things are better now?

I don't know when you have looked at systemd-networkd for the last
time, but ever since I looked at it, the trivial case just needs a
single file.

And the clear distinction between layers and interfaces is one of the
biggest advantages of systemd-networkd over ifupdown since it's
friendly to configuration management systems.

Greetings
Marc
-- 
-- !! No courtesy copies, please !! -
Marc Haber |   " Questions are the | Mailadresse im Header
Mannheim, Germany  | Beginning of Wisdom " | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834



Re: ifupdown2: debconf followup

2016-08-01 Thread Lars Wirzenius
On Mon, Aug 01, 2016 at 09:01:20PM +0200, Marco d'Itri wrote:
> On Aug 01, Lars Wirzenius  wrote:
> 
> > > Sorry, what I actually meant was "every non-toy Debian system".
> > we get that you have strong preferences. However, could you please
> > avoid inflammatory language when talking about anything that isn't
> > according to your preferences?
> Reasonable people should not get "inflamed": I like toys myself and 
> I have a lot of them, there is nothing intrinsecally bad in using a toy 
> or maintaining one.

It is not unreasonable to interpret your use of the word "toy" to
describe someone else's preferred system as an insult. You can try to
invent meanings and situations that explain away the insult, but I
don't think that changes anything.

If you want to actually work with people, you should try to be
constructive. Being dismissive of others' preferences is
anti-constructive.

It is possible that their opinion of what's good and what's not is
objectively wrong. In that case, you should give the objective
arguments for that. Instead, you say things that reasonable people
find insulting, and the reasonable conclusion is that you're not
interested in being constructive. That's reasonably unfortunate.

I don't want this to become a long subthread, so I'm ending my
participation in it with this mail.

-- 
Schrödinger's backup hypothesis: the condition of any backup is
undefined until a restore is attempted. -- andrewsh


signature.asc
Description: PGP signature


Re: ifupdown2: debconf followup

2016-08-01 Thread Marco d'Itri
On Aug 01, Guus Sliepen  wrote:

> The time spent writing such a hypothetical tool would then be better
> spent keeping support for ifupdown in the installer for the non-Linux
> platforms.
I agree: if the Hurd/kFreeBSD porters will be able to keep sysvinit on 
life support then continuing to use ifupdown will be a minor issue.

-- 
ciao,
Marco


signature.asc
Description: PGP signature


Re: ifupdown2: debconf followup

2016-08-01 Thread Marco d'Itri
On Aug 01, Lars Wirzenius  wrote:

> > Sorry, what I actually meant was "every non-toy Debian system".
> we get that you have strong preferences. However, could you please
> avoid inflammatory language when talking about anything that isn't
> according to your preferences?
Reasonable people should not get "inflamed": I like toys myself and 
I have a lot of them, there is nothing intrinsecally bad in using a toy 
or maintaining one.
But I also know that toys cannot get in the way of real work: there are 
a lot of people here for whom Debian is much more than a toy and I will 
not fail them by optimizing for a fringe use case.

-- 
ciao,
Marco


signature.asc
Description: PGP signature


Re: ifupdown2: debconf followup

2016-08-01 Thread Guus Sliepen
On Mon, Aug 01, 2016 at 04:43:27PM +0100, Simon McVittie wrote:

> > Last time I looked at it, systemd-networkd required several
> > configuration files just to bring up a single interface.
> 
> What were the others, beyond the .network file? This is live configuration
> from my home server, which has two network interfaces and I didn't want
> it to bring up the other:
> 
> # /etc/systemd/network/lan.network
> [Match]
> Path=pci-:03:00.0
> 
> [Network]
> DHCP=yes

Ah. Either I didn't know that, or things have improved since last time I
used it :)

> > I'd say a good starting point would be to try to switch the installer to
> > configuring NetworkManager or systemd-networkd, instead of generating a
> > /etc/network/interfaces file.
> 
> This seems reasonable. I think NM is a better choice than ifupdown for
> roaming client devices (e.g. laptops), and systemd-networkd is a good
> choice for "infrastructure" devices like servers and NAS boxes.

Although I personally use NM for my laptops, I know that there certainly
are users who don't like it, and it is perfectly possible to configure
wpa-supplicant and/or ifupdown to do whatever NM does. It's not even
very difficult.

> > How would it work on Hurd and kFreeBSD?
> 
> That's up to the people who want to support those non-default kernels,
> and I don't think it's reasonable to expect the rest of the distribution
> to do that work for them. One possible answer would be to write or adapt
> an ifupdown-like tool that works on those kernels and can consume (a
> sufficiently large subset of) systemd-networkd .network (and maybe .link)
> syntax, and/or NetworkManager /etc/NetworkManager/system-connections/
> syntax. If that tool also worked on Linux, as a non-default option for
> people who want a non-default init or just don't like the default
> tools, so much the better.

Well, that sounds like a bad idea to me. By the time you support all the
features of networkd for example, you've just about ported networkd to
that non-Linux platform. If you don't support all the features, having
it look like a systemd.network file is just confusing to users.

The time spent writing such a hypothetical tool would then be better
spent keeping support for ifupdown in the installer for the non-Linux
platforms.

> I think this might be a good opportunity to get away from the anti-pattern
> of defining a Debian-specific file format, which has a heavy risk of
> .

Eh, that comic applies more to systemd than to ifupdown.

Now might be a good time to look at distributions that have adopted
networkd as the default way to configure interfaces, and see how they
fare.

-- 
Met vriendelijke groet / with kind regards,
   Guus Sliepen 


signature.asc
Description: Digital signature


Re: ifupdown2: debconf followup

2016-08-01 Thread Simon McVittie
On Mon, 01 Aug 2016 at 12:48:26 +0200, Guus Sliepen wrote:
> Last time I looked at it, systemd-networkd required several
> configuration files just to bring up a single interface.

What were the others, beyond the .network file? This is live configuration
from my home server, which has two network interfaces and I didn't want
it to bring up the other:

# /etc/systemd/network/lan.network
[Match]
Path=pci-:03:00.0

[Network]
DHCP=yes

The simplest possible, for "be a DHCP client on all interfaces with
no match configured earlier than this in alphabetical order", is
something like this:

# /etc/systemd/network/zz_default_dhcp.network
[Match]
[Network]
DHCP=yes

I know systemd-networkd also reads *.link files, but they aren't necessary
in cases this simple. They might be needed for WLANs, but if you're dealing
with WLANs it's time to seriously consider NetworkManager (or possibly
ConnMan, but I'm not sure I'd recommend that as a default).

> I'd say a good starting point would be to try to switch the installer to
> configuring NetworkManager or systemd-networkd, instead of generating a
> /etc/network/interfaces file.

This seems reasonable. I think NM is a better choice than ifupdown for
roaming client devices (e.g. laptops), and systemd-networkd is a good
choice for "infrastructure" devices like servers and NAS boxes.

> How would it work on Hurd and kFreeBSD?

That's up to the people who want to support those non-default kernels,
and I don't think it's reasonable to expect the rest of the distribution
to do that work for them. One possible answer would be to write or adapt
an ifupdown-like tool that works on those kernels and can consume (a
sufficiently large subset of) systemd-networkd .network (and maybe .link)
syntax, and/or NetworkManager /etc/NetworkManager/system-connections/
syntax. If that tool also worked on Linux, as a non-default option for
people who want a non-default init or just don't like the default
tools, so much the better.

systemd-networkd syntax is better-documented and better-suited to a
mental model where you configure interfaces; NetworkManager syntax has
fewer files per network, and is better suited to a mental model where
you configure networks that you can roam to, and "the system" connects
whatever interfaces you have to the networks it can see.

I think this might be a good opportunity to get away from the anti-pattern
of defining a Debian-specific file format, which has a heavy risk of
.

S



Re: ifupdown2: debconf followup

2016-08-01 Thread Simon McVittie
On Mon, 01 Aug 2016 at 12:40:37 +0200, Adam Borowski wrote:
> On Mon, Aug 01, 2016 at 12:31:14PM +0200, Marco d'Itri wrote:
> > We should also think hard about switching to a new default since 
> > currently many other major distributions are moving to NetworkManager 
> > and/or systemd-networkd (which nowadays is usable, works well for 
> > simpler use cases and will be installed on every Debian system anyway).
> 
> For the latter, "installable only with a certain init implementation, and
> not portable to any kernel but Linux" doesn't say "every Debian system" to
> me.

"Every Debian system" was certainly overreaching, but Marco has a valid
point: default installations of Debian on its recommended kernel will have
systemd(-networkd). If you take steps to use a non-default init system,
or if you choose to install with a non-recommended kernel, then I think
it's reasonable to expect that other defaults will not necessarily suit
you either; but since you have already demonstrated that you are able
to choose non-default options, you can continue to do so.

Defaults should err on the side of the option we would recommend to
people who don't have (enough knowledge to have) special requirements
or a strong preference, because those are precisely the people who won't
or can't choose something more suitable for their needs.

S
(currently using ifupdown on remote server because I haven't got round
to changing it, systemd-networkd on home server, and NetworkManager
on everything with Debian and wifi)



Re: ifupdown2: debconf followup

2016-08-01 Thread Lars Wirzenius
On Mon, Aug 01, 2016 at 12:42:39PM +0200, Marco d'Itri wrote:
> Sorry, what I actually meant was "every non-toy Debian system".

Marco,

we get that you have strong preferences. However, could you please
avoid inflammatory language when talking about anything that isn't
according to your preferences?

-- 
Schrödinger's backup hypothesis: the condition of any backup is
undefined until a restore is attempted. -- andrewsh


signature.asc
Description: PGP signature


Re: ifupdown2: debconf followup

2016-08-01 Thread Adam Borowski
On Mon, Aug 01, 2016 at 12:42:39PM +0200, Marco d'Itri wrote:
> On Aug 01, Adam Borowski  wrote:
> 
> > > We should also think hard about switching to a new default since 
> > > currently many other major distributions are moving to NetworkManager 
> > > and/or systemd-networkd (which nowadays is usable, works well for 
> > > simpler use cases and will be installed on every Debian system anyway).
> > For the latter, "installable only with a certain init implementation, and
> > not portable to any kernel but Linux" doesn't say "every Debian system" to
> > me.
> Sorry, what I actually meant was "every non-toy Debian system".

As any non-toy system needs reliable, resilient and predictable init scripts
free of bugs like:
* force-unmounting your RAID when you manually mount it degraded
* killing properly backgrounded filesystem maintenance if you log off
  (intentionally or just due to a flaky network connection, etc)
I'm not sure what non-toy systems you're talking about.


(Sorry for responding to an obvious troll post -- responding just in case it
was actually somehow meant as serious.)


-- 
An imaginary friend squared is a real enemy.



Re: ifupdown2: debconf followup

2016-08-01 Thread Guus Sliepen
On Mon, Aug 01, 2016 at 12:31:14PM +0200, Marco d'Itri wrote:

> We should also think hard about switching to a new default since 
> currently many other major distributions are moving to NetworkManager 
> and/or systemd-networkd (which nowadays is usable, works well for 
> simpler use cases and will be installed on every Debian system anyway).

Last time I looked at it, systemd-networkd required several
configuration files just to bring up a single interface. I can't say it
was a very user-friendly experience. But perhaps things are better now?

I'd say a good starting point would be to try to switch the installer to
configuring NetworkManager or systemd-networkd, instead of generating a
/etc/network/interfaces file. Once there is such a pre-generated
configuration, a barrier has already been overcome; it's easier to tweak
something that's already there than to write it from scratch.

How would it work on Hurd and kFreeBSD?

Ideally, it would be nice to have something like "ifconfig-persistent",
equivalent to netfilter-persistent but remembering and restoring
interface configuration. It's quite a hard problem though; statically
configured interfaces are easy, but for dynamically configured ones
you'd have to track down which daemons are managing which interfaces
(dhclient, wpa-supplicant, network-manager etc.) and have do the right
thing to restart them at boot when necessary. Instead of managing this
problem itself, it could just create systemd-networkd or NetworkManager
configuration at shutdown time. The advantage would be that the user
doesn't need to know what the configuration paradigm du jour is, and can
just configure things once in whatever way they like, and be sure that
their settings are not lost on reboot.

-- 
Met vriendelijke groet / with kind regards,
  Guus Sliepen 


signature.asc
Description: Digital signature


Re: ifupdown2: debconf followup

2016-08-01 Thread Marco d'Itri
On Aug 01, Adam Borowski  wrote:

> > We should also think hard about switching to a new default since 
> > currently many other major distributions are moving to NetworkManager 
> > and/or systemd-networkd (which nowadays is usable, works well for 
> > simpler use cases and will be installed on every Debian system anyway).
> For the latter, "installable only with a certain init implementation, and
> not portable to any kernel but Linux" doesn't say "every Debian system" to
> me.
Sorry, what I actually meant was "every non-toy Debian system".

-- 
ciao,
Marco


signature.asc
Description: PGP signature


Re: ifupdown2: debconf followup

2016-08-01 Thread Adam Borowski
On Mon, Aug 01, 2016 at 12:31:14PM +0200, Marco d'Itri wrote:
> On Aug 01, Guus Sliepen  wrote:
> 
> > I see one big drawback of ifupdown2, and that is that it's written in
> > Python. Nothing wrong with that language, but it means it pulls in
> > dependencies which a minimal install currently doesn't require, which is
> > not so nice for people running small VMs or embedded devices. 
> Indeed. I strongly believe that this is bad enough to disqualify it as 
> the default implementation.
> 
> We should also think hard about switching to a new default since 
> currently many other major distributions are moving to NetworkManager 
> and/or systemd-networkd (which nowadays is usable, works well for 
> simpler use cases and will be installed on every Debian system anyway).

For the latter, "installable only with a certain init implementation, and
not portable to any kernel but Linux" doesn't say "every Debian system" to
me.

-- 
An imaginary friend squared is a real enemy.



Re: ifupdown2: debconf followup

2016-08-01 Thread Marco d'Itri
On Aug 01, Guus Sliepen  wrote:

> I see one big drawback of ifupdown2, and that is that it's written in
> Python. Nothing wrong with that language, but it means it pulls in
> dependencies which a minimal install currently doesn't require, which is
> not so nice for people running small VMs or embedded devices. 
Indeed. I strongly believe that this is bad enough to disqualify it as 
the default implementation.

We should also think hard about switching to a new default since 
currently many other major distributions are moving to NetworkManager 
and/or systemd-networkd (which nowadays is usable, works well for 
simpler use cases and will be installed on every Debian system anyway).

-- 
ciao,
Marco


signature.asc
Description: PGP signature


Re: ifupdown2: debconf followup

2016-08-01 Thread Guus Sliepen
On Sun, Jul 31, 2016 at 06:58:20PM -0700, Roopa Prabhu wrote:

> And, we will be very happy to work towards making ifupdown2
> the default in Debian. If there are ways to make that happen, please let us 
> know.

First, try to make it compatible with 99% of the non-trivial
ifupdown configurations. Why? First, everyone with a trivial network
configuration (like auto eth0; iface eth0 inet dhcp) will not care
about what network configuration tool brings up their network. The
people have a more complex setup will care, and if you make it hard for
them to move to ifupdown2, I think they'll rather stick with ifupdown.
You either have to be able to parse ifupdown's /etc/network/interfaces
or have a way to convert it to whatever new format ifupdown2 requires.

I see one big drawback of ifupdown2, and that is that it's written in
Python. Nothing wrong with that language, but it means it pulls in
dependencies which a minimal install currently doesn't require, which is
not so nice for people running small VMs or embedded devices. 

If ifupdown2 is meant as a drop-in replacement for ifupdown, just fixing
some bugs or adding a few missing features of ifupdown, I'd rather see
those issues addressed in ifupdown. But of course, as one of the
maintainers of ifupdown I'm quite biased :)

> I also heard about some existing mailing list or discussions around solving 
> ifupdown
> problems. We would like to be part of those discussions to see
> if ifupdown2 fits there.

I don't know of such a mailing list... but there's always the BTS.

-- 
Met vriendelijke groet / with kind regards,
  Guus Sliepen 


signature.asc
Description: Digital signature


ifupdown2: debconf followup

2016-07-31 Thread Roopa Prabhu
Hi,

I just wanted to follow up on some of the questions that were
raised during Juliens debconf talk on ifupdown2.

The interest to develop ifupdown2 openly is very
encouraging. It is being developed internally today
only because it started that way. We are very much
interested in developing it openly. We have started those conversations
internally and are waiting on some help on the logistics side of
things to start a community around it. We will announce it here once that
is ready. If there are suggestions/thoughts on doing that faster/earlier,
we will be happy to pursue those.

And, we will be very happy to work towards making ifupdown2
the default in Debian. If there are ways to make that happen, please let us 
know.

I also heard about some existing mailing list or discussions around solving 
ifupdown
problems. We would like to be part of those discussions to see
if ifupdown2 fits there.

Thank you,
Roopa

https://packages.debian.org/sid/ifupdown2
https://github.com/CumulusNetworks/ifupdown2