I notice that depending on the brand of the network card, interface names differ (driver dependent I suppose).
- Why does *BSD uses driver specific names for network interfaces?
- Does it mean there is no abstraction layer describing "a generic network interface" in the kernel, so each driver would be internally addressed via its own API?
- (how) does it affect subsystems like link aggregation, traffic shaping, QoS (ALTQ), filtering and others?
Precisely, it looks like under pfSense, I cannot use ALTQ with a link aggregation (LAG) virtual interface.
Is this a BSD internal limitation due to the lack of an appropriate abstraction layer?
Best Answer
It's just a historical choice. The letters in the name come from the driver that talks to the card, so they will be the same for two separate interfaces if they happen to use the same driver.
It does have one practical benefit: on BSD, the network drivers have their own manual pages in section 4. So,
dc(4)
tells you about the DEC 21143 driver, which would control thedc0
network adapter.You see this in other parts of BSD Unix as well, such as hard disks.
No.
For what it's worth, Linux is heading down a similar path. The days of simple naming rules for Ethernet adapters are disappearing, as networking gets more complicated.