Darren Reed wrote:
> Garrett D'Amore wrote:
>> Darren Reed wrote:
>>> The current design of mac_header_info() and its accompanying structure
>>> suggest that when it comes to the MAC header, a variable sized one, 
>>> where
>>> each packet may have a different MAC header length, was planned for.
>>>
>>>
>>> However the current implementation runs counter to that: all of the MAC
>>> types currently set the header length to a constant, which some may 
>>> consider
>>> to be a bug for ethernet as it would always exclude the VLAN header 
>>> if that
>>> were present.
>>>
>>> However, if we aren't going to implement per-packet variation of MAC
>>> header sizes, then doesn't it make sense to have the header length 
>>> also be
>>> a property of the MAC provider itself, rather than just a packet? 
>>> i.e. to
>>> have a mac_header_len() that is modeled after mac_addr_len().
>>>
>>> Is anyone aware of any MAC layer devices that are likely to run on
>>> Solaris that would have a variable size MAC header?
>>
>> I've seen devices where the MAC header was dependent on the type of 
>> packet -- anycast used one length, and unicast another. (Don't 
>> remember what the protocol, possibly ATM or HIPPI.)
>
> So nothing likely to actually run on Solaris :)

Do we know if IPoIB has a fixed header length?

>
>> The other thing is that there is work on things like RBridges, plus 
>> the VLAN protocols, to embed additional information into the headers 
>> and extend the header length.
>
> Both of which would at least have a "minimum" length, yes?

What do you mean by "minimum"?

>
> Should mac_header_len() return sizeof(struct ether_header) for packets 
> with the VLAN header intact?
> Or would that be a bug?

I don't know... I suspect its a bug, but that might depend on how the 
client is used.  I don't have any experience with the mac consumer API.  
(Whose job is it to do vlan tag insertion?  The mac layers, or the clients?)

    - Garrett


Reply via email to