BACKGROUND

A wide area network (WAN) may extend across multiple network sites (e.g. geographical, logical). Sites of the WAN are interconnected so that devices at one site can access resources at another site. In some topologies, many services and resources are installed at core sites (e.g. datacenters, headquarters), and many branch sites (e.g. regional offices, retail stores) connect client devices (e.g. laptops, smartphones, internet of things devices) to the WAN. These types of topologies are often used by enterprises in establishing their corporate network.

Each network site has its own local area network (LAN) that is connected to the other LANs of the other sites to form the WAN. Networking infrastructure, such as switches and routers are used to forward network traffic through each of the LANs, through the WAN as a whole, and between the WAN and the Internet. Each network site's LAN is connected to the wider network (e.g. to the WAN, to the Internet) through a gateway router. Branch gateways (BGs) connect branch sites to the wider network, and headend gateways (also known as virtual internet gateways) connect core sites to the wider network.

Often, WANs are implemented using software defined wide area network (SD-WAN) technology. SD-WAN decouples (logically or physically) the control aspects of switching and routing from the physical routing of the network traffic. In some SD-WAN implementations, each gateway (BGs and head-end gateways) controls certain aspects of routing for their respective LAN, but a network orchestrator controls the overall switching and routing across the WAN.

One of the tradeoffs when switching from private, managed links (e.g. MPLS) to public, unmanaged links (e.g. DSL, cellular, broadband, etc.) is that the performance of the public links is not guaranteed. Having a network administrator manually assign the application data flows to links may work successfully for periods of time, but often leads to network degradation and outages when the assumptions made by the network administrator do not apply. As a simple example, a branch office network configured by the administrator to route video conferencing data traffic through a certain uplink may operate properly in normal operating circumstances (a relatively low number of video conferencing streams active at any one time). However, the static configuration may not operate well when the entire branch office is participating in company-wide conference call due to the large number of active video conferencing streams overwhelming the assigned uplink. Service level agreements (SLAs), which are network health and bandwidth threshold requirements for transacting data associated with certain applications, may be put in place by the network administrator, and the uplink's violation of the SLAs for video conferencing is alerted to the network administrator for manual reconfiguration.

Dynamic path selection (DPS) introduces adaptiveness to the routing decision. Rather than requiring the network administrator to foresee all different network traffic conditions, the network administrator can configure the SLAs for the applications, but instead of merely alerting when the SLA is violated, the network (usually via a network orchestrator or a branch gateway) may reorganize the data traffic in a way that rebalances or otherwise resolves an impending or occurring SLA violation.

