mirror of
git://git.proxmox.com/git/pve-common.git
synced 2025-01-10 09:17:37 +03:00
etc_network_interfaces : add uplink-id option
uplink-id is an integer it's used to abstract the interface name (could be different on differents hosts) and map it to a transportzone. uplink-id is only allowed on physical interfaces (bond,eth,vlan) as it's used for traffic to external example: auto eth0 iface eth0 inet manual uplink-id 1 Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
This commit is contained in:
parent
c5c5812e23
commit
d949babe56
@ -955,6 +955,7 @@ sub __read_etc_network_interfaces {
|
||||
'bridge-multicast-flood' => 1,
|
||||
'bond_miimon' => 1,
|
||||
'bond_xmit_hash_policy' => 1,
|
||||
'uplink-id' => 1,
|
||||
'vlan-protocol' => 1,
|
||||
'vxlan-id' => 1,
|
||||
'vxlan-svcnodeip' => 1,
|
||||
@ -1183,7 +1184,7 @@ sub __interface_to_string {
|
||||
comments => 1, autostart => 1, options => 1,
|
||||
address => 1, netmask => 1, gateway => 1, broadcast => 1,
|
||||
method6 => 1, families => 1, options6 => 1,
|
||||
address6 => 1, netmask6 => 1, gateway6 => 1, broadcast6 => 1 };
|
||||
address6 => 1, netmask6 => 1, gateway6 => 1, broadcast6 => 1, 'uplink-id' => 1 };
|
||||
|
||||
if (!$first_block) {
|
||||
# not printing out options
|
||||
@ -1487,6 +1488,21 @@ sub __write_etc_network_interfaces {
|
||||
}
|
||||
}
|
||||
|
||||
# check uplink
|
||||
my $uplinks = {};
|
||||
foreach my $iface (keys %$ifaces) {
|
||||
my $d = $ifaces->{$iface};
|
||||
if (my $uplinkid = $d->{'uplink-id'}) {
|
||||
die "iface '$iface' - uplink-id $uplinkid is only allowed on physical and linux bond interfaces\n"
|
||||
if $d->{type} ne 'eth' && $d->{type} ne 'bond';
|
||||
|
||||
die "iface '$iface' - uplink-id $uplinkid is already assigned on '$uplinks->{$uplinkid}'\n"
|
||||
if $uplinks->{$uplinkid};
|
||||
|
||||
$uplinks->{$uplinkid} = $iface;
|
||||
}
|
||||
}
|
||||
|
||||
# check bridgeport option
|
||||
my $bridgeports = {};
|
||||
my $bridges = {};
|
||||
|
Loading…
Reference in New Issue
Block a user