Restricting UDP transmit rate for NDIS MAC driver

Hi,

I am currently maintaining a NDIS Mac lan-emulation driver for an
underlying ATM 155Mbps adapter for NT4.

I am returning a value of 155Mbps for OID_GEN_LINK_SPEED. Still, incase of
UDP traffic, the driver gets packets to be sent at a much higher rate than
155Mbps.

Maxim had said that there is no flow control in case of UDP traffic. So is
there no way for a MAC driver to restrict NDIS from sending data (to be
transmitted) at greater than link speed.

I tried returning different values for OID_GEN_TRANSMIT_BUFFER_SPACE in
the hope that the protocol layers will be using this value for sizing the
amount of transmit data per send. But this value doesn’t seem to have any
effect in case of UDP transfers.

Is something more to be done to shape UDP traffic to below link speed?

Thanks,
Vinay.

> Is something more to be done to shape UDP traffic to below link speed?

I don’t think so. UDP really has no flow control, and I have doubts that even TCP’s flow control will pay attention to link speed
OID. It is automatically adapted by TCP’s things like “slow start” and “congestion avoidance”, which IIRC do not use the local link
speed.

I hope NDIS will drop the “extra” packets if its queue (on the entrance to serialized MiniportSend) will grow too large.

Max