En cuanto a la parte específica de Linux de esto, en las versiones recientes del kernel esto está definido por IFNAMSIZ
sea de 16 bytes, por lo que 15 bytes visibles para el usuario (suponiendo que incluya un nulo final). IFNAMSIZ
se usa para definir el campo de nombre de struct net_device aquí
.
Para probar empíricamente, puede usar lo siguiente para ver que 16 bytes fallan y 15 bytes funcionan:
# CLEAN SLATE
root# ip link ls dev 123456789012345
Device "123456789012345" does not exist.
root# ip link ls dev 1234567890123456
Device "1234567890123456" does not exist.
# FAIL
root# ip link add dev 1234567890123456 type dummy
Error: argument "1234567890123456" is wrong: "name" too long
root# ip link ls dev 1234567890123456
Device "1234567890123456" does not exist.
# PASS
root# ip link add dev 123456789012345 type dummy
root# ip link ls dev 123456789012345
40: 123456789012345: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default
link/ether ... brd ff:ff:ff:ff:ff:ff
# CLEAN UP
root# ip link del dev 123456789012345
(Suponiendo que tiene ip
del paquete iproute2 instalado, como es probable en cualquier distribución de Linux de la última década más o menos).