Skip to content

Latest commit

 

History

History
43 lines (31 loc) · 1.45 KB

TODO.md

File metadata and controls

43 lines (31 loc) · 1.45 KB

TODO List

Driver

Implement ECN support via the IP_ECN cmsg

Rework IOCTL to accept requests over 4gigs

  • The current ULONG is too small
  • We should switch to using METHOD_NEITHER
  • One param is a pointer to a ULONG64 length, the other the actual buffer

Rearrange and regroup WG_DEVICE

  • Most commonly used members should be at the top
  • Members used together should be next to each other
  • Holes should be minimized
  • Don't stretch cachelines

SAL Annotations

  • Figure out __rcu best practice with SAL
  • For the MuAcquireReleaseSharedExclusive functions, make SAL detect lock imbalance. e.g. a AcquireExclusive followed by a ReleaseShared.

Bugs with no solution

Forwarding/WeakHostSend breaks IP_PKTINFO

When forwarding or weakhostsend are enabled -- which can happen via Hotspot mode -- the routing logic ignores IP_PKTINFO. This seems like a bug, but one unlikely to be fixed. We'll need a opt-in setsockopt to make IP_PKTINFO choose the right behavior in this case.

Bug workarounds

Remove MTU polling

When NotifyIpInterfaceChange is fixed for MTU changes, adjust the dwBuildNumber check for the workaround thread polling.

Remove IP_OPTIONS/IPV6_RTHDR hack

Currently we tag on an empty options cmsg to work around a bug in recent Windows builds, where IP_PKTINFO gets stripped if it's passed alone.

Project

Enable /std:c17 once NDIS headers can handle it, and switch to using alignas from stdalign.h.