Any possible reason for multicast receive failing ?

I am trying to pass HLK multicastaddress Test for virtual miniport driver . I have a virtual miniport driver and a filter driver too .

I am handling 32 size OID_802_3_MAXIMUM_LIST_SIZE in miniport driver .

I am setting MAC OID Options with

NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE | NDIS_MAC_OPTION_NO_LOOPBACK | NDIS_MAC_OPTION_FULL_DUPLEX | NDIS_MAC_OPTION_8021P_PRIORITY ;

And the packet filter as

==================================
CurrentPacketFilter =
NDIS_PACKET_TYPE_DIRECTED |
NDIS_PACKET_TYPE_MULTICAST |
NDIS_PACKET_TYPE_BROADCAST |
NDIS_PACKET_TYPE_PROMISCUOUS |
NDIS_PACKET_TYPE_ALL_MULTICAST |
NDIS_PACKET_TYPE_SOURCE_ROUTING |
NDIS_PACKET_TYPE_SMT |
NDIS_PACKET_TYPE_GROUP |
NDIS_PACKET_TYPE_FUNCTIONAL |
NDIS_PACKET_TYPE_ALL_FUNCTIONAL |
NDIS_PACKET_TYPE_MAC_FRAME;

==========================================
and i am passing this to MiniportAdapterGeneralAttributes as


ndisMiniportAdapterGeneralAttributes.SupportedPacketFilters = Miniport::obj_Miniport->CurrentPacketFilter;

I am handling OID_GEN_CURRENT_PACKET_FILTER set request with updation of CurrentPacketFilter as :


CurrentPacketFilter = *(PULONG) OidRequest->DATA.SET_INFORMATION.InformationBuffer;

and finally i am handling OID_802_3_MULTICAST_LIST also .

But HLK Test able to set multicast address list . But i can see the test failing with the ero packet receive . This is the log :


Receive less than expected packet of send :
we expected 247 packets ( 99 percent of 250 expected packet sent )
Destination 01-02-03-04-00-00 on test adapter Virtual network Driver received 0 of 250 packets .

Any thing am missing ? what are the possible reasons for receive multicast address failing ?

You know, some of the packet filter types you listed do not apply to Ethernet packets, they were for things like Token Ring networks.

Jan

On 3/9/17, 6:12 AM, “xxxxx@lists.osr.com on behalf of xxxxx@gmail.com” wrote:

I am trying to pass HLK multicastaddress Test for virtual miniport driver . I have a virtual miniport driver and a filter driver too .

I am handling 32 size OID_802_3_MAXIMUM_LIST_SIZE in miniport driver .

I am setting MAC OID Options with

NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE | NDIS_MAC_OPTION_NO_LOOPBACK | NDIS_MAC_OPTION_FULL_DUPLEX | NDIS_MAC_OPTION_8021P_PRIORITY ;

And the packet filter as

==================================
CurrentPacketFilter =
NDIS_PACKET_TYPE_DIRECTED |
NDIS_PACKET_TYPE_MULTICAST |
NDIS_PACKET_TYPE_BROADCAST |
NDIS_PACKET_TYPE_PROMISCUOUS |
NDIS_PACKET_TYPE_ALL_MULTICAST |
NDIS_PACKET_TYPE_SOURCE_ROUTING |
NDIS_PACKET_TYPE_SMT |
NDIS_PACKET_TYPE_GROUP |
NDIS_PACKET_TYPE_FUNCTIONAL |
NDIS_PACKET_TYPE_ALL_FUNCTIONAL |
NDIS_PACKET_TYPE_MAC_FRAME;

==========================================
and i am passing this to MiniportAdapterGeneralAttributes as

---------------------------------------------------------------------
ndisMiniportAdapterGeneralAttributes.SupportedPacketFilters = Miniport::obj_Miniport->CurrentPacketFilter;
------------------------------------------------------------------------

I am handling OID_GEN_CURRENT_PACKET_FILTER set request with updation of CurrentPacketFilter as :

--------------------------------------------------------------
CurrentPacketFilter = *(PULONG) OidRequest->DATA.SET_INFORMATION.InformationBuffer;
-------------------------------------------------------------

and finally i am handling OID_802_3_MULTICAST_LIST also .

But HLK Test able to set multicast address list . But i can see the test failing with the ero packet receive . This is the log :

------------------------------------------------------------

Receive less than expected packet of send :
we expected 247 packets ( 99 percent of 250 expected packet sent )
Destination 01-02-03-04-00-00 on test adapter Virtual network Driver received 0 of 250 packets .

Any thing am missing ? what are the possible reasons for receive multicast address failing ?


NTDEV is sponsored by OSR

Visit the list online at: http:

MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
Details at http:

To unsubscribe, visit the List Server section of OSR Online at http:</http:></http:></http:>

Thanks for suggestions . But if i handle the Ethernet packet filter alone , still i am getting same error. Any other reason ?

During multicast receive , what will be the entire process of virtual driver ? Is it only set packet filters or any other things should NDIS handle during receive ?

Is your “virtual driver” a filter over something physical? Can you get a sniffer and see what actually goes to/from ? Or, can you intercept and print (?) packets sent by the test on the sending side?

– pa

Yeah exactly Pavel A . A filter driver is binding over each physical NIC.

I have VPN miniports that operate at layer-2 will install a second driver an NDIS MUX filter driver that sends and receives data from the real physical miniport. Then the virtual miniport talks to the driver whenever it needs to get packets off the machine.

This is what i am doing . But i didn’t receive any multicast packets on this virtual miniport .