On Sun, Feb 11, 2024 at 09:29:22PM +0000, Jonathan Stone wrote:
> I don;t want to re-create the hack of having two different initialisers for 
> the IEE 802 (sic) [*] portions of "struct ethercom'.
> A cleaner solution is to declare a new struct with all the members of 'struct 
> ethercom', except the  'struct  ifnet ec_if;
> 'struct ethercom' then becomes a struct with two members: a struct ifnet, and 
> the new struct (struct iee802_common?).
> That allows clean separation of code which manipulates the additions in 
> today's "struct ethercom', from code which also manipulates struct ifnet.

We have a simmilar problem with net80211, where we are required to have a
(mostly unused) struct ethercom for each virtual interface (in the new stack)
just because of initialization and to be able to use vlan(4) on a
wifi interface, see the thread (if you can call it that) on tech-net
from September 2022, Subject: (non-)Equivalence of if_type == IFT_ETHER and
(struct ethercom*) == (struct ifnet*)

        https://mail-index.netbsd.org/tech-net/2022/09/28/msg008338.html

Now I don't know if vlan(4) is important for FFDI and probably bpf(4) users
are not expecting ethernet frames from it, so things might be easier.

Anyway, I am all for a cleaner overall separation of struct ethercom all over
our network code.

Martin

Reply via email to