diff options
author | zdc <zdc@users.noreply.github.com> | 2021-11-01 17:04:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-01 17:04:11 +0200 |
commit | 1b7c879b9fed2f4563477039bc6ddf4dc0db5829 (patch) | |
tree | a0ea609a933a4d2e54d5712e2b1671a19181c372 /python/vyos/ifconfig/interface.py | |
parent | 3fd2ff423b6c6e992b2ed531c7ba99fb9e1a2123 (diff) | |
parent | 85bf315f71b411e3cdcd19793c4f7e1e5efed917 (diff) | |
download | vyos-1x-1b7c879b9fed2f4563477039bc6ddf4dc0db5829.tar.gz vyos-1x-1b7c879b9fed2f4563477039bc6ddf4dc0db5829.zip |
Merge branch 'current' into T3350-sagitta
Diffstat (limited to 'python/vyos/ifconfig/interface.py')
-rwxr-xr-x | python/vyos/ifconfig/interface.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/python/vyos/ifconfig/interface.py b/python/vyos/ifconfig/interface.py index e6dbd861b..c73ffb634 100755 --- a/python/vyos/ifconfig/interface.py +++ b/python/vyos/ifconfig/interface.py @@ -461,15 +461,19 @@ class Interface(Control): # Get processor ID number cpu_id = self._cmd('sudo dmidecode -t 4 | grep ID | head -n1 | sed "s/.*ID://;s/ //g"') - # Get system eth0 base MAC address - every system has eth0 - eth0_mac = Interface('eth0').get_mac() + + # XXX: T3894 - it seems not all systems have eth0 - get a list of all + # available Ethernet interfaces on the system (without VLAN subinterfaces) + # and then take the first one. + all_eth_ifs = [x for x in Section.interfaces('ethernet') if '.' not in x] + first_mac = Interface(all_eth_ifs[0]).get_mac() sha = sha256() # Calculate SHA256 sum based on the CPU ID number, eth0 mac address and # this interface identifier - this is as predictable as an interface # MAC address and thus can be used in the same way sha.update(cpu_id.encode()) - sha.update(eth0_mac.encode()) + sha.update(first_mac.encode()) sha.update(self.ifname.encode()) # take the most significant 48 bits from the SHA256 string tmp = sha.hexdigest()[:12] |