Package: ifupdown Version: 0.7~alpha2 Severity: wishlist Hello!
Here's a bunch of patches to improve ifupdown 0.7~alpha2 (the current version in experimental). This fixes some minor issues like typos, finilizes the transition away from ifconfig/route, and (most importantly IMHO) reinstates the support for using "netmask" in /etc/network/interfaces for backwards compatibility purposes. Description for each patch available in the top of the file... (For additional backwards compatibility looking at #359618 might be interesting, since people might have those old pesky ethX:Y virtual interfaces in their /e/n/i which ifconfig required because it can't handle adding several ip-adresses to the same interface.) -- Regards, Andreas Henriksson
>From d374dc2554f92fcbdc27a05b0394844aed96f957 Mon Sep 17 00:00:00 2001 From: Andreas Henriksson <[EMAIL PROTECTED]> Date: Wed, 12 Dec 2007 20:26:23 +0100 Subject: [PATCH] Fix "aadr" typo --- ifupdown.nw | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/ifupdown.nw b/ifupdown.nw index 075cecc..1c8e6c8 100644 --- a/ifupdown.nw +++ b/ifupdown.nw @@ -4154,7 +4154,7 @@ method loopback This method may be used to define the IPv6 loopback interface. up ip link set dev %iface% up - ip aadr add dev %iface% ::1 + ip addr add dev %iface% ::1 down ip addr del dev %iface% ::1 ip link set dev %iface% down -- debian.1.5.3.7.1-dirty
>From b3f32a4456ebc734f164aec640c8110775cdcd26 Mon Sep 17 00:00:00 2001 From: Andreas Henriksson <[EMAIL PROTECTED]> Date: Wed, 12 Dec 2007 20:29:57 +0100 Subject: [PATCH] Add netmask option to inet static for backwards compability. Add a note about it being *obsolete* to the help text. Add a note to address help text about the posibility to specify netmask. Also add a versioned dependency on iproute 20071016-1, which was the first debian package version to support dotted-quad netmasks (which was previously the required format in /etc/network/interfaces). --- debian/control | 2 +- ifupdown.nw | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/debian/control b/debian/control index 9222ed3..95e80e4 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Build-Depends: debhelper (>= 4.1.68), nowebm, po-debconf Package: ifupdown Architecture: any -Depends: net-tools, iproute, debconf (>= 1.2.0) | debconf-2.0, lsb-base, ${shlibs:Depends} +Depends: net-tools, iproute (>= 20071016-1), debconf (>= 1.2.0) | debconf-2.0, lsb-base, ${shlibs:Depends} Suggests: dhcp3-client | dhcp-client, ppp Replaces: netbase (<< 4.00) Description: high level tools to configure network interfaces diff --git a/ifupdown.nw b/ifupdown.nw index 1c8e6c8..3611cd1 100644 --- a/ifupdown.nw +++ b/ifupdown.nw @@ -4001,7 +4001,8 @@ method static allocated IPv4 addresses. options - address address -- Address (dotted quad) *required* + address address -- Address (dotted quad/netmask) *required* + netmask mask -- Netmask (dotted quad or CIDR) *obsolete* broadcast broadcast_address -- Broadcast address (dotted quad) metric metric -- Routing metric for default gateway (integer) gateway address -- Default gateway (dotted quad) @@ -4011,7 +4012,7 @@ method static mtu size -- MTU size up - ip addr add %address% [[broadcast %broadcast%]] \ + ip addr add %address%[[/%netmask%]] [[broadcast %broadcast%]] \ [[peer %pointtopoint%]] dev %iface% ip link set dev %iface% [[mtu %mtu%]] [[address %lladdress%]] up -- debian.1.5.3.7.1-dirty
>From 882d34d30981f86eb781e0d80287267f41edad7c Mon Sep 17 00:00:00 2001 From: Andreas Henriksson <[EMAIL PROTECTED]> Date: Wed, 12 Dec 2007 21:05:17 +0100 Subject: [PATCH] Flush addresses when taking down a static inet interface. Addresses won't be automagically removed when taking a link down via iproute2. To not fail to add them next time ifup runs for this interface we flush all adresses on the interface before taking down the link. --- ifupdown.nw | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/ifupdown.nw b/ifupdown.nw index 3611cd1..0e68f00 100644 --- a/ifupdown.nw +++ b/ifupdown.nw @@ -4019,6 +4019,7 @@ method static [[ ip route add default via %gateway% [[metric %metric%]] dev %iface% ]] down + ip addr flush dev %iface% [[ ip route del default via %gateway% [[metric %metric%]] dev %iface% ]] ip link set dev %iface% down @ -- debian.1.5.3.7.1-dirty
>From ce4029bc1102a7f137c751abd6fe1912dd69f67f Mon Sep 17 00:00:00 2001 From: Andreas Henriksson <[EMAIL PROTECTED]> Date: Wed, 12 Dec 2007 22:01:07 +0100 Subject: [PATCH] Replace remaining ifconfig parts with iproute2 inet dhcp: - replace "hwaddress class address" with "lladdress address" - switch from ifconfig to iproute2 inet6 static: - drop support for setting media type (old deprecated driver-dependent interface in ifconfig doesn't have anything equal anywhere, people should use ethtool!) - replace "hwaddress class address" with "lladdress address" - switch from ifconfig to iproute2 --- ifupdown.nw | 20 ++++++++------------ 1 files changed, 8 insertions(+), 12 deletions(-) diff --git a/ifupdown.nw b/ifupdown.nw index 0e68f00..96e69cc 100644 --- a/ifupdown.nw +++ b/ifupdown.nw @@ -4052,12 +4052,10 @@ method dhcp leasetime leasetime -- Preferred lease time in seconds (dhcpcd) vendor vendor -- Vendor class identifier (dhcpcd) client client -- Client identifier (dhcpcd, udhcpc) - hwaddress class address -- Hardware Address. /class/ is one of \ - *ether*, *ax25*, *ARCnet* or *netrom*. \ - /address/ is dependent on this choice. + lladdress address -- Link local address. (Replaces hwaddress) up - [[ifconfig %iface% hw %hwaddress%]] + [[ip link set dev %iface% address %lladdress%]] dhclient3 -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface% \ if (execable("/sbin/dhclient3")) dhclient -e -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \ @@ -4170,18 +4168,16 @@ method static address address -- Address (colon delimited) *required* netmask mask -- Netmask (number of bits, eg 64) *required* gateway address -- Default gateway (colon delimited) - media type -- Medium type, driver dependent - hwaddress class address -- Hardware Address. /class/ is one of \ - *ether*, *ax25*, *ARCnet* or *netrom*. \ - /address/ is dependent on this choice. + lladdress address -- Link local address. (Replaces hwaddress) mtu size -- MTU size up - ifconfig %iface% [[media %media%]] [[hw %hwaddress%]] [[mtu %mtu%]] up - ifconfig %iface% add %address%/%netmask% - [[ route -A inet6 add ::/0 gw %gateway% %iface% ]] + ip link set dev %iface% [[mtu %mtu%]] [[address %lladdress%]] up + ip -6 addr add %address%[[/%netmask%]] dev %iface% + [[ ip -6 route add default via %gateway% dev %iface% ]] down - ifconfig %iface% down + ip -6 addr flush dev %iface% scope global + ip link set dev %iface% down method manual description -- debian.1.5.3.7.1-dirty
>From 4b843397a2542c22a768b9efc98aef80ee31202c Mon Sep 17 00:00:00 2001 From: Andreas Henriksson <[EMAIL PROTECTED]> Date: Wed, 12 Dec 2007 20:34:47 +0100 Subject: [PATCH] Update/fix tests for (obsolete) netmask support. --- debian/testbuild | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) mode change 100644 => 100755 debian/testbuild diff --git a/debian/testbuild b/debian/testbuild old mode 100644 new mode 100755 index f988697..1eee062 --- a/debian/testbuild +++ b/debian/testbuild @@ -16,7 +16,7 @@ cat >tests/up.1 <<EOF ====stderr==== Configuring interface eth0=eth0 (inet) run-parts --verbose /etc/network/if-pre-up.d -ip addr add 1.2.3.4 dev eth0 +ip addr add 1.2.3.4/255.255.255.0 dev eth0 ip link set dev eth0 up echo hi @@ -59,37 +59,37 @@ cat >tests/up.2 <<EOF ====stderr==== Configuring interface eth0=eth0 (inet) run-parts --verbose /etc/network/if-pre-up.d -ip addr add 1.2.3.4 dev eth0 +ip addr add 1.2.3.4/255.255.255.0 dev eth0 ip link set dev eth0 up run-parts --verbose /etc/network/if-up.d Configuring interface eth1=eth1 (inet) run-parts --verbose /etc/network/if-pre-up.d -ip addr add 1.3.4.5 dev eth1 +ip addr add 1.3.4.5/255.255.255.0 dev eth1 ip link set dev eth1 up run-parts --verbose /etc/network/if-up.d Configuring interface eth2=eth2 (inet) run-parts --verbose /etc/network/if-pre-up.d -ip addr add 1.4.5.6 dev eth2 +ip addr add 1.4.5.6/255.255.255.0 dev eth2 ip link set dev eth2 up run-parts --verbose /etc/network/if-up.d Configuring interface eth3=eth3 (inet) run-parts --verbose /etc/network/if-pre-up.d -ip addr add 1.5.6.7 dev eth3 +ip addr add 1.5.6.7/255.255.255.0 dev eth3 ip link set dev eth3 up run-parts --verbose /etc/network/if-up.d Configuring interface eth4=eth4 (inet) run-parts --verbose /etc/network/if-pre-up.d -ip addr add 1.7.8.9 dev eth4 +ip addr add 1.7.8.9/255.255.255.0 dev eth4 ip link set dev eth4 up run-parts --verbose /etc/network/if-up.d Configuring interface eth5=eth5 (inet) run-parts --verbose /etc/network/if-pre-up.d -ip addr add 1.8.9.10 dev eth5 +ip addr add 1.8.9.10/255.255.255.0 dev eth5 ip link set dev eth5 up run-parts --verbose /etc/network/if-up.d @@ -110,7 +110,7 @@ cat >tests/up.3 <<EOF ====stderr==== Configuring interface eth0=eth0 (inet) run-parts --verbose /etc/network/if-pre-up.d -ip addr add 1.2.3.4 dev eth0 +ip addr add 1.2.3.4/255.255.255.0 dev eth0 ip link set dev eth0 up run-parts --verbose /etc/network/if-up.d @@ -137,7 +137,7 @@ cat >tests/up.4 <<EOF ====stderr==== Configuring interface eth0=work (inet) run-parts --verbose /etc/network/if-pre-up.d -ip addr add 1.2.3.4 dev eth0 +ip addr add 1.2.3.4/255.255.255.0 dev eth0 ip link set dev eth0 up echo hi -- debian.1.5.3.7.1-dirty
>From 6a193abec8afd0e63f20358646596b7b9b7790ba Mon Sep 17 00:00:00 2001 From: Andreas Henriksson <[EMAIL PROTECTED]> Date: Wed, 12 Dec 2007 22:06:22 +0100 Subject: [PATCH] Update tests for inet6 static after conversion to iproute2 --- debian/testbuild | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/testbuild b/debian/testbuild index 1eee062..89910c7 100755 --- a/debian/testbuild +++ b/debian/testbuild @@ -116,8 +116,8 @@ ip link set dev eth0 up run-parts --verbose /etc/network/if-up.d Configuring interface eth0=eth0 (inet6) run-parts --verbose /etc/network/if-pre-up.d -ifconfig eth0 up -ifconfig eth0 add 3ffe:ffff:100:f101::1/64 +ip link set dev eth0 up +ip -6 addr add 3ffe:ffff:100:f101::1/64 dev eth0 run-parts --verbose /etc/network/if-up.d EOF -- debian.1.5.3.7.1-dirty
>From 1c4c493473304ff585f2c0f0e691224c23a6f1de Mon Sep 17 00:00:00 2001 From: Andreas Henriksson <[EMAIL PROTECTED]> Date: Wed, 12 Dec 2007 20:35:53 +0100 Subject: [PATCH] Rebuild sources by fakeroot debian/rules clean --- addrfam.c | 4 ++-- inet.defn | 12 ++++++------ inet6.defn | 16 +++++++--------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/addrfam.c b/addrfam.c index 9a6788b..e7fd4bd 100644 --- a/addrfam.c +++ b/addrfam.c @@ -6,7 +6,7 @@ extern address_family addr_inet; #line 4141 "ifupdown.nw" extern address_family addr_inet6; -#line 4224 "ifupdown.nw" +#line 4222 "ifupdown.nw" extern address_family addr_ipx; #line 448 "ifupdown.nw" @@ -16,7 +16,7 @@ address_family *addr_fams[] = { &addr_inet, #line 4145 "ifupdown.nw" &addr_inet6, -#line 4228 "ifupdown.nw" +#line 4226 "ifupdown.nw" &addr_ipx, #line 450 "ifupdown.nw" NULL diff --git a/inet.defn b/inet.defn index f877bc2..153d01a 100644 --- a/inet.defn +++ b/inet.defn @@ -16,7 +16,8 @@ method static allocated IPv4 addresses. options - address address -- Address (dotted quad) *required* + address address -- Address (dotted quad/netmask) *required* + netmask mask -- Netmask (dotted quad or CIDR) *obsolete* broadcast broadcast_address -- Broadcast address (dotted quad) metric metric -- Routing metric for default gateway (integer) gateway address -- Default gateway (dotted quad) @@ -26,13 +27,14 @@ method static mtu size -- MTU size up - ip addr add %address% [[broadcast %broadcast%]] \ + ip addr add %address%[[/%netmask%]] [[broadcast %broadcast%]] \ [[peer %pointtopoint%]] dev %iface% ip link set dev %iface% [[mtu %mtu%]] [[address %lladdress%]] up [[ ip route add default via %gateway% [[metric %metric%]] dev %iface% ]] down + ip addr flush dev %iface% [[ ip route del default via %gateway% [[metric %metric%]] dev %iface% ]] ip link set dev %iface% down method manual @@ -59,12 +61,10 @@ method dhcp leasetime leasetime -- Preferred lease time in seconds (dhcpcd) vendor vendor -- Vendor class identifier (dhcpcd) client client -- Client identifier (dhcpcd, udhcpc) - hwaddress class address -- Hardware Address. /class/ is one of \ - *ether*, *ax25*, *ARCnet* or *netrom*. \ - /address/ is dependent on this choice. + lladdress address -- Link local address. (Replaces hwaddress) up - [[ifconfig %iface% hw %hwaddress%]] + [[ip link set dev %iface% address %lladdress%]] dhclient3 -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface% \ if (execable("/sbin/dhclient3")) dhclient -e -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \ diff --git a/inet6.defn b/inet6.defn index 64530f4..3bde004 100644 --- a/inet6.defn +++ b/inet6.defn @@ -6,7 +6,7 @@ method loopback This method may be used to define the IPv6 loopback interface. up ip link set dev %iface% up - ip aadr add dev %iface% ::1 + ip addr add dev %iface% ::1 down ip addr del dev %iface% ::1 ip link set dev %iface% down @@ -20,18 +20,16 @@ method static address address -- Address (colon delimited) *required* netmask mask -- Netmask (number of bits, eg 64) *required* gateway address -- Default gateway (colon delimited) - media type -- Medium type, driver dependent - hwaddress class address -- Hardware Address. /class/ is one of \ - *ether*, *ax25*, *ARCnet* or *netrom*. \ - /address/ is dependent on this choice. + lladdress address -- Link local address. (Replaces hwaddress) mtu size -- MTU size up - ifconfig %iface% [[media %media%]] [[hw %hwaddress%]] [[mtu %mtu%]] up - ifconfig %iface% add %address%/%netmask% - [[ route -A inet6 add ::/0 gw %gateway% %iface% ]] + ip link set dev %iface% [[mtu %mtu%]] [[address %lladdress%]] up + ip -6 addr add %address%[[/%netmask%]] dev %iface% + [[ ip -6 route add default via %gateway% dev %iface% ]] down - ifconfig %iface% down + ip -6 addr flush dev %iface% scope global + ip link set dev %iface% down method manual description -- debian.1.5.3.7.1-dirty