Presentation is loading. Please wait.

Presentation is loading. Please wait.

NDIS LBFO Miniports (Load Balancing And Failover) Larry Cleeton Program Manager Windows Networking And Communications Microsoft Corporation.

Similar presentations


Presentation on theme: "NDIS LBFO Miniports (Load Balancing And Failover) Larry Cleeton Program Manager Windows Networking And Communications Microsoft Corporation."— Presentation transcript:

1 NDIS LBFO Miniports (Load Balancing And Failover) Larry Cleeton Program Manager Windows Networking And Communications Microsoft Corporation

2

3 Agenda  Overview of NDIS LBFO Miniports  How to write LBFO miniports  How to install LBFO miniports

4 Typical LBFO Scenario  Server machine attached to network with multiple links  More total bandwidth  Continue to work on failed NIC or cable cut

5 Overview  An NDIS LBFO miniport is a normal NDIS miniport driver plus:  Code to use multiple NICs together for load balancing network traffic  Code to manage a primary NIC and secondary NICs and manage a fail- over upon the failure of the primary

6 Overview  NDIS gives the miniport driver control over the designation of primary and secondary NICs, exposing only a single binding to protocols  Two key NDIS API calls:  NdisMSetMiniportSecondary  NdisMPromoteMiniport

7 Normal Binding Miniport TCP/IP Adapter 2 Adapter 1 Interface 2 Interface 1

8 LBFO Binding Miniport TCP/IP Adapter 2 Adapter 1 Interface 1 Second binding not established if Miniport calls NdisMSetSecondary in Adapter 2 MiniportInitialize

9 LBFO Data Flow (Normal) Miniport TCP/IP Adapter 2 Adapter 1 Interface 1

10 LBFO Data Flow (Failure) Miniport TCP/IP Adapter 2 Adapter 1 Interface 1

11 How To Implement LBFO  Design your LBFO strategy  Modify your miniport code  Modify your INF file

12 Design Your LBFO Strategy  Just failover or load balancing too?  How to run multiple ports as one load-sharing bundle? (Network issues)  Coordination with attached switch/router?

13 Modify Your Miniport Code  MiniportInitialize  MiniportSend/SendPackets  NdisMIndicateReceivePacket  Miniport(Query,Set)Information

14 MiniportInitialize  Read “BundleId” keyword using NdisReadConfiguraton  Search for other adapters that have the same BundleId value  If no match, do nothing, adapter defaults to primary  If match, set self to secondary using NdisMSetMiniportSecondary

15 MiniportSend/SendPackets  MiniportAdapterContext is always the primary NIC  Miniport code can redirect send to other NICs with it’s own logic  Always complete Send with original primary MiniportAdapterContext

16 NdisMIndicateReceivePacket  Regardless of adapter on which received, indicate with primary MiniportAdapterHandle

17 MiniportQuery/SetInformation  Process Query or Set OID for specific adapter referenced by MiniportAdapterContext  No change from normal behavior

18 MiniportHalt  Secondary Adapter  Normal halt handling  Primary Adapter  Promote secondary with NdisMPromoteMiniport

19 Sample  Pass-through sample in DDK implements failover  Although intermediate driver it shows the basic implementation requirements

20 Installing LBFO Miniports  Create net class INF for miniport  Add additional advanced property key “BundleId”  BundleId property’s existence is the trigger to the miniport to enable LBFO support and the string is the Bundle identifier  BundleId property can be optional

21 BundleId INF Example AddReg = example.advprop.reg [example.advprop.reg] ; BundleId for support of LBFO HKR, Ndi\params\BundleId, ParamDesc, 0, "LBFO Bundle ID" HKR, Ndi\params\BundleId, type, 0, "edit" HKR, Ndi\params\BundleId, LimitText, 0, "15" HKR, Ndi\params\BundleId, UpperCase, 0, "1" HKR, Ndi\params\BundleId, default, 0, "Bundle1" HKR, Ndi\params\BundleId, optional, 0, "1"

22 Demonstration

23 Limitations  Configuration is spread across multiple network connections  If a primary adapter is halted the new primary will have a new interface to IP with a potentially different IP configuration

24 Call To Action  Implement LBFO in your miniport  Simple, no config code necessary  Valuable feature without high cost  Test your LBFO scenarios with appropriate network devices

25 Discussion

26


Download ppt "NDIS LBFO Miniports (Load Balancing And Failover) Larry Cleeton Program Manager Windows Networking And Communications Microsoft Corporation."

Similar presentations


Ads by Google