OpenSolaris

Printable Version Enter a New Search
Bug ID 6645812
Synopsis GLD packets are not flagged correctly as multicast/broadcast
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:tcp-ip
Keywords
Responsible Engineer Darren Reed
Reported Against
Duplicate Of
Introduced In solaris_10
Commit to Fix snv_82
Fixed In snv_82
Release Fixed solaris_nevada(snv_82)
Related Bugs 6442753 , 6451644 , 6633786
Submit Date 28-December-2007
Last Update Date 31-January-2008
Description
For non-M_DATA mblks that ip_input() receives, it calls ip_rput_process_notdata() to see if it has a multicast/broadcast packet.

Now with GLDv3, M_DATA messages are passed into IP via ip_input() and mac_header_info is used to convey the information that was previously in the M_PROTO.

However, it would seem that the introduction of mac_header_info as an argument to ip_input() has forgotten to (for example) set ll_multicast in ip_input().

There's another impact here: drivers *must* pass in mac_header_info and some appear not to - e.g. qfe/hme.
I don't quite understand this bug. ip_input() does not use the mac_header_info
argument at all.

Note that the multicast data processing in GLDv3 is incorrect though. See bug
6451644.
IP needs to use the mac_header_info_t to correctly set ll_multicast.

If I read 6451644 correctly, multicast handling isn't incorrect, it's broken, which might make fixing this impossible (at present.)
If we come into ip_input() via ip_soft_ring_assignment(), mhip will be non-NULL, although whether this brings with it multicast/broadcast packets isn't clear, but it does make adding code to make use of mhip almost worthwhile.
Work Around
N/A
Comments
N/A