+ my $if_type_hash = {
+ loopback => 10,
+ eth => 20,
+ bond => 30,
+ bridge => 40,
+ };
+
+ my $lookup_type_prio = sub {
+ my $iface = shift;
+
+ my $alias = 0;
+ if ($iface =~ m/^(\S+):\d+$/) {
+ $iface = $1;
+ $alias = 1;
+ }
+
+ my $pri;
+ if ($iface eq 'lo') {
+ $pri = $if_type_hash->{loopback};
+ } elsif ($iface =~ m/^eth\d+$/) {
+ $pri = $if_type_hash->{eth} + $alias;
+ } elsif ($iface =~ m/^bond\d+$/) {
+ $pri = $if_type_hash->{bond} + $alias;
+ } elsif ($iface =~ m/^vmbr\d+$/) {
+ $pri = $if_type_hash->{bridge} + $alias;
+ }
+
+ return $pri || ($if_type_hash->{unknown} + $alias);
+ };
+