diff --git a/libnetutil/netutil.cc b/libnetutil/netutil.cc index ade69e3a5..b75c8dfac 100644 --- a/libnetutil/netutil.cc +++ b/libnetutil/netutil.cc @@ -1204,6 +1204,8 @@ static int collect_dnet_interfaces(const struct intf_entry *entry, void *arg) { dcrn->ifaces[dcrn->numifaces].device_type = devt_other; } + dcrn->ifaces[dcrn->numifaces].ifindex = entry->intf_index; + dcrn->ifaces[dcrn->numifaces].mtu = entry->intf_mtu; /* Is the interface up and running? */ diff --git a/libnetutil/netutil.h b/libnetutil/netutil.h index 858091c5d..14fc8c4d0 100644 --- a/libnetutil/netutil.h +++ b/libnetutil/netutil.h @@ -259,6 +259,7 @@ struct interface_info { struct sockaddr_storage addr; u16 netmask_bits; /* CIDR-style. So 24 means class C (255.255.255.0)*/ devtype device_type; /* devt_ethernet, devt_loopback, devt_p2p, devt_other */ + unsigned int ifindex; /* index (as used by if_indextoname and sin6_scope_id) */ int device_up; /* True if the device is up (enabled) */ int mtu; /* Interface's MTU size */ u8 mac[6]; /* Interface MAC address if device_type is devt_ethernet */