Então, o que estou procurando é um índice de interface (ou nome), mas o real.
if_nametoindex(3)
e ioctl(2)
não parece me ajudar aqui. Agora, a única maneira de descobrir como fazer isso é via /sys
. Deixe-me demonstrar, por exemplo, o que eu preciso:
# cat /sys/class/net/bond0.1007/ifindex
26
# cat /sys/class/net/bond0.1007/iflink
23 <-- I need either this or a reference to bond0
# cat /sys/class/net/bond0/ifindex
23
Existe uma maneira de fazer isso com uma chamada de função ou a única maneira é sysfs
?
Veja também
—
Stéphane Chazelas
/proc/net/vlan/config
ou /proc/net/vlan/bond0.1007
se é uma interface vlan.
@ StéphaneChazelas Obrigado. Eu decidi continuar usando
—
UVV
/sys
. /proc
ou /sys
são mais ou menos os mesmos nesse sentido. Eu só queria verificar se existe um syscall para obter esse tipo de informação, acontece que não existe.
os syscalls seriam o sendmsg / recvmsg usando a API do soquete netlink.
—
Stéphane Chazelas
Documentação do rtnetlink: man7.org/linux/man-pages/man7/rtnetlink.7.html - emita a
—
23415 ecatmur
RTM_GETLINK
mensagem e procure o IFLA_LINK
atributo em resposta.
ip link show
faz (provavelmente usando a API do netlink)