loss of ping pkts on Tx??

Folks,

I have an intermediate MUX driver running on XP Sp2
IBM laptops…The driver is bound over a wireless
miniport…This test node is pinging another
node…Periodically I am not receving pings from the
uppper layer; But during that time I do receive
multicast packets from my winsock application. If I
run ethereal on the test node, I can see that the
sniffer is able to see the ping packet but my Mux
driver - SendPackets does not get them…(I verify
this my placing debug messages at the begining of the
fn)I end up having a loss of 2% of pings over a 10 min
run…

Is there any tool to figure out what is happening at
the layer above me ??? Ethereal confirms that the
packet is arriving at the layer above me but not to
me…

Will debug version of NDIS help me in this scenario??

My stack does not have any other 3rd party drivers
other than the ones that come with XP Sp2…

Thanks
Daniel


Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

Dan,

The debug version of NDIS might help but first, perhaps, you might share a
few more details of the setup you are working with.

Could you please describe the bindings in a bit more detail? Be sure to
identify where TCPIP, Ethereal, your Mux driver protocol edge, etc. are
bound.

How are you calculating the 2% loss of ‘pings’? Are you just using the
statistic from ping.exe itself?

When you say that “Ethereal confirms that the packet is arriving at the
layer above me but not to me…” I frankly am confused. Ethereal must be
bound to some miniport (or miniports). If it can confirm that the layer
above you (I take this to mean TCPIP.SYS bound to your virtual miniport) has
received the packet, it is rather hard to understand how that packet did not
come from your virtual miniport.

Is your Mux driver creating more than one virtual miniport per binding (on
the protocol edge)? If so, can you describe the functionality a bit more?
For instance, how are you managing MAC Addresses for the virtual miniports?
If it creates on a single miniport, why is it a Mux driver instead of a
filter style driver?

All of these clarifications will help to ferret out if you have
inadvertently created a scenario with multiple paths between the IP protocol
and the actual (physical) NIC.

Good Luck,
Dave Cattley
Consulting Engineer
Systems Software Development

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dan .
Sent: Tuesday, June 28, 2005 7:45 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] loss of ping pkts on Tx??

Folks,

I have an intermediate MUX driver running on XP Sp2
IBM laptops…The driver is bound over a wireless
miniport…This test node is pinging another
node…Periodically I am not receving pings from the
uppper layer; But during that time I do receive
multicast packets from my winsock application. If I
run ethereal on the test node, I can see that the
sniffer is able to see the ping packet but my Mux
driver - SendPackets does not get them…(I verify
this my placing debug messages at the begining of the
fn)I end up having a loss of 2% of pings over a 10 min
run…

Is there any tool to figure out what is happening at
the layer above me ??? Ethereal confirms that the
packet is arriving at the layer above me but not to
me…

Will debug version of NDIS help me in this scenario??

My stack does not have any other 3rd party drivers
other than the ones that come with XP Sp2…

Thanks
Daniel


Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@msn.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

David,

Answers below…

Could you please describe the bindings in a bit more
detail? Be sure to
identify where TCPIP, Ethereal, your Mux driver
protocol edge, etc. are
bound.

TCP/IP->Ethereal->MUX Vritual Miniport/MUX protocol ->
Wireless Miniport

How are you calculating the 2% loss of ‘pings’? Are
you just using the
statistic from ping.exe itself?

Yes…

When you say that “Ethereal confirms that the packet
is arriving at the
layer above me but not to me…” I frankly am
confused. Ethereal must be
bound to some miniport (or miniports). If it can
confirm that the layer
above you (I take this to mean TCPIP.SYS bound to
your virtual miniport) has
received the packet, it is rather hard to understand
how that packet did not
come from your virtual miniport.

Ethereal sits above the MUX virtual miniport…I have
debug messages in my MUX sendpackets and I don’t see
them…(the packets do not arrive at the virtual
miniport)

Is your Mux driver creating more than one virtual
miniport per binding (on
the protocol edge)? If so, can you describe the
functionality a bit more?
For instance, how are you managing MAC Addresses for
the virtual miniports?
If it creates on a single miniport, why is it a Mux
driver instead of a
filter style driver?

There are 2 interfaces but one of them is
disconnected/disabled…I can configure ethereal to
monitor on the interface in question…and I do see
that ethereal receives the pings but some of them do
not arrive at the mux driver…After the first couple
of mins there is a periodic timeout of pings and when
we started looking at where the problem is we found
out that the packet does not even get to the virtual
miniport…I confirm this by printing out the
destination Mac address of the peer the test node is
pinging at the first line of the send packets
fn…Whenever there is a ping timeout on the ping
console, the debug message does not print out the mac
address of the peer…

I have the same Mac address(address of the wireless
card) on both the interfaces…I don’t think this
should matter…You should be able to have multiple IP
addresses for the same Mac…

As for as why is it a MUX, I am just maintaining this
code…Maybe the team was planning to use multile
interfaces in future…

All of these clarifications will help to ferret out
if you have
inadvertently created a scenario with multiple paths
between the IP protocol
and the actual (physical) NIC.

Good Luck,
Dave Cattley
Consulting Engineer
Systems Software Development

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf
Of Dan .
Sent: Tuesday, June 28, 2005 7:45 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] loss of ping pkts on Tx??

Folks,

I have an intermediate MUX driver running on XP Sp2
IBM laptops…The driver is bound over a wireless
miniport…This test node is pinging another
node…Periodically I am not receving pings from
the
uppper layer; But during that time I do receive
multicast packets from my winsock application. If I
run ethereal on the test node, I can see that the
sniffer is able to see the ping packet but my Mux
driver - SendPackets does not get them…(I verify
this my placing debug messages at the begining of
the
fn)I end up having a loss of 2% of pings over a 10
min
run…

Is there any tool to figure out what is happening at
the layer above me ??? Ethereal confirms that the
packet is arriving at the layer above me but not to
me…

Will debug version of NDIS help me in this
scenario??

My stack does not have any other 3rd party drivers
other than the ones that come with XP Sp2…

Thanks
Daniel


Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam
protection around
http://mail.yahoo.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as:
xxxxx@msn.com
To unsubscribe send a blank email to
xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as:
xxxxx@yahoo.com
To unsubscribe send a blank email to
xxxxx@lists.osr.com


Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

You expect a wireless connection to have no packet loss?

Check stats on your wireless adapter miniport and see if its reporting
any errors over the connection first.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of David R. Cattley
Sent: Wednesday, June 29, 2005 7:27 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] loss of ping pkts on Tx??

Dan,

The debug version of NDIS might help but first, perhaps, you might share
a
few more details of the setup you are working with.

Could you please describe the bindings in a bit more detail? Be sure to
identify where TCPIP, Ethereal, your Mux driver protocol edge, etc. are
bound.

How are you calculating the 2% loss of ‘pings’? Are you just using the
statistic from ping.exe itself?

When you say that “Ethereal confirms that the packet is arriving at the
layer above me but not to me…” I frankly am confused. Ethereal must
be
bound to some miniport (or miniports). If it can confirm that the layer
above you (I take this to mean TCPIP.SYS bound to your virtual miniport)
has
received the packet, it is rather hard to understand how that packet did
not
come from your virtual miniport.

Is your Mux driver creating more than one virtual miniport per binding
(on
the protocol edge)? If so, can you describe the functionality a bit
more?
For instance, how are you managing MAC Addresses for the virtual
miniports?
If it creates on a single miniport, why is it a Mux driver instead of a
filter style driver?

All of these clarifications will help to ferret out if you have
inadvertently created a scenario with multiple paths between the IP
protocol
and the actual (physical) NIC.

Good Luck,
Dave Cattley
Consulting Engineer
Systems Software Development

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dan .
Sent: Tuesday, June 28, 2005 7:45 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] loss of ping pkts on Tx??

Folks,

I have an intermediate MUX driver running on XP Sp2
IBM laptops…The driver is bound over a wireless
miniport…This test node is pinging another
node…Periodically I am not receving pings from the
uppper layer; But during that time I do receive
multicast packets from my winsock application. If I
run ethereal on the test node, I can see that the
sniffer is able to see the ping packet but my Mux
driver - SendPackets does not get them…(I verify
this my placing debug messages at the begining of the
fn)I end up having a loss of 2% of pings over a 10 min
run…

Is there any tool to figure out what is happening at
the layer above me ??? Ethereal confirms that the
packet is arriving at the layer above me but not to
me…

Will debug version of NDIS help me in this scenario??

My stack does not have any other 3rd party drivers
other than the ones that come with XP Sp2…

Thanks
Daniel


Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@msn.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@nsisoftware.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Dan,

If you have the same MAC address associated with both (or more than one)
virtual miniport on the ‘top’ of the MUX, how do you decide which one of
those virtual miniports to ‘demultiplex’ a received packet into?

As for the bindings, please clarify something for me. Is Ethereal still
just a ‘protocol’ or has it become an IM driver? If it is just a protocol I
think your bindings are probably more like:

TCPIP NDISUIO ETHEREAL TCPIP NDISUIO ETHEREAL
| | | | | |
±-------±--------+ ±-------±--------+
| |
MUXMP1 MUXMP2 (disabled)


MUXPROTO
|


Are you sure that TCPIP is not also bound directly to too?

As for sharing the MAC address, I am not sure how TCPIP might react on
Win2K/XP with having two ARP interfaces on the same LAN with the same MAC
Address. It seems a bit strange, however.

From you answer below I know understand that it is the ICMP “Echo Request”
that you are not seeing in the MUX Miniport driver on the
MiniportSendPackets() handler. I thought you were missing the “Echo Reply”
on the ProtocolReceivePackets handler of the MUX Protocol edge.

Am I right to understand that you fail to see the ICMP “Echo Request” (send)
in the MUX_MP but you do see it on the wire (at host being pinged)?

Ping.exe reports packet loss by noting ICMP “Echo Replies” that don’t show
up within a timeout. That could be due to the “Echo Request” being lost on
the way to the receiver or to loss of the “Echo Reply” back to the sender.
I am still a bit confused by what the instrumentation (Ethereal) is telling
you is ‘present’ but your logging is telling you is ‘missing’.

Good Luck,
Dave Cattley
Consulting Engineer
Systems Software Development

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dan .
Sent: Wednesday, June 29, 2005 2:50 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] loss of ping pkts on Tx??

David,

Answers below…

> Could you please describe the bindings in a bit more
> detail? Be sure to
> identify where TCPIP, Ethereal, your Mux driver
> protocol edge, etc. are
> bound.

TCP/IP->Ethereal->MUX Vritual Miniport/MUX protocol ->
Wireless Miniport

> How are you calculating the 2% loss of ‘pings’? Are
> you just using the
> statistic from ping.exe itself?

Yes…

> When you say that “Ethereal confirms that the packet
> is arriving at the
> layer above me but not to me…” I frankly am
> confused. Ethereal must be
> bound to some miniport (or miniports). If it can
> confirm that the layer
> above you (I take this to mean TCPIP.SYS bound to
> your virtual miniport) has
> received the packet, it is rather hard to understand
> how that packet did not
> come from your virtual miniport.

Ethereal sits above the MUX virtual miniport…I have
debug messages in my MUX sendpackets and I don’t see
them…(the packets do not arrive at the virtual
miniport)

> Is your Mux driver creating more than one virtual
> miniport per binding (on
> the protocol edge)? If so, can you describe the
> functionality a bit more?
> For instance, how are you managing MAC Addresses for
> the virtual miniports?
> If it creates on a single miniport, why is it a Mux
> driver instead of a
> filter style driver?

There are 2 interfaces but one of them is
disconnected/disabled…I can configure ethereal to
monitor on the interface in question…and I do see
that ethereal receives the pings but some of them do
not arrive at the mux driver…After the first couple
of mins there is a periodic timeout of pings and when
we started looking at where the problem is we found
out that the packet does not even get to the virtual
miniport…I confirm this by printing out the
destination Mac address of the peer the test node is
pinging at the first line of the send packets
fn…Whenever there is a ping timeout on the ping
console, the debug message does not print out the mac
address of the peer…

I have the same Mac address(address of the wireless
card) on both the interfaces…I don’t think this
should matter…You should be able to have multiple IP
addresses for the same Mac…

As for as why is it a MUX, I am just maintaining this
code…Maybe the team was planning to use multile
interfaces in future…

> All of these clarifications will help to ferret out
> if you have
> inadvertently created a scenario with multiple paths
> between the IP protocol
> and the actual (physical) NIC.
>
> Good Luck,
> Dave Cattley
> Consulting Engineer
> Systems Software Development
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf
> Of Dan .
> Sent: Tuesday, June 28, 2005 7:45 PM
> To: Windows System Software Devs Interest List
> Subject: [ntdev] loss of ping pkts on Tx??
>
> Folks,
>
> I have an intermediate MUX driver running on XP Sp2
> IBM laptops…The driver is bound over a wireless
> miniport…This test node is pinging another
> node…Periodically I am not receving pings from
> the
> uppper layer; But during that time I do receive
> multicast packets from my winsock application. If I
> run ethereal on the test node, I can see that the
> sniffer is able to see the ping packet but my Mux
> driver - SendPackets does not get them…(I verify
> this my placing debug messages at the begining of
> the
> fn)I end up having a loss of 2% of pings over a 10
> min
> run…
>
> Is there any tool to figure out what is happening at
> the layer above me ??? Ethereal confirms that the
> packet is arriving at the layer above me but not to
> me…
>
> Will debug version of NDIS help me in this
> scenario??
>
> My stack does not have any other 3rd party drivers
> other than the ones that come with XP Sp2…
>
> Thanks
> Daniel
>
>
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam
> protection around
> http://mail.yahoo.com
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as:
> xxxxx@msn.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>


Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@msn.com
To unsubscribe send a blank email to xxxxx@lists.osr.com