Dynamically associating mobile devices with different logical networks implemented on a shared network fabric of a single entity
Some embodiments provide a novel method for dynamically associating mobile devices with different logical networks implemented on an entity's shared network fabric. At least two logical networks are implemented for at least two entity groups. At a first site, the method authenticates a mobile device and uses mobile device management (MDM) servers to identify an MDM group associated with the mobile device. The method uses the MDM group (1) to identify a first logical network over a shared network fabric at the first site to connect the mobile device to resources of the first site, and (2) to identify a logical network identifier (LNI) of a second logical network connecting a first edge gateway at the first site to a second edge gateway at a second site. The method inserts the LNI in an encapsulation header of data messages sent from the mobile device to resources at the second site.
Latest VMware LLC Patents:
- System to support native storage of a container image on a host operating system for a container running in a virtual machine
- Methods for revalidating FQDN rulesets in a firewall
- Dynamic use of multiple wireless network links to connect a vehicle to an SD-WAN
- Input/output operations per second (IOPS) recommendation for data volumes
- Dynamic traffic prioritization across data centers
At different physical sites of an entity (e.g., a corporation), data message flows of users' endpoints (e.g., wired and wireless devices) are not dynamically isolated from other data message flows of other users' endpoints based on user identity, user role within the entity, and endpoint identity. Methods and systems are needed for isolating traffic between different users of a shared network fabric of an entity.
BRIEF SUMMARYSome embodiments provide a novel method for dynamically associating mobile devices with different software-defined wide area networks (SD-WANs) implemented for different user groups of a single shared network fabric of a single entity. The method identifies a particular mobile device that is trying to connect to a managed network switch. The method uses a set of one or more mobile device management (MDM) servers to identify a set of attributes associated with the particular mobile device attempting to access the shared network fabric. The method uses the identified set of attributes to identify an SD-WAN tenant identifier (ID) associated with a particular SD-WAN established for a group of devices including the particular mobile device. The method provides the SD-WAN tenant ID to the managed network switch to store in encapsulating headers that the managed network switch uses to encapsulate data message flows from the particular mobile device before forwarding the data message flows to one or more resources in the shared network fabric.
Some embodiments establish different SD-WANs for different user groups in order to isolate traffic between the different user groups. The managed network switch in some embodiments encapsulates different data message flows from different wired and wireless devices, including the particular mobile device, to forward the different data message flows to different resources in the shared network fabric. In some embodiments, the shared network fabric includes at least one of datacenter sites, branch sites, and cloud sites. The particular mobile device in some embodiments resides in a particular branch site of the shared network fabric. In some embodiments, the MDM server set resides in the particular branch site along with the particular mobile device. In these embodiments, the MDM server set performs operations for each mobile device in the particular branch site. In other embodiments, the MDM server set resides in a cloud site of the shared network fabric. In these embodiments, the MDM server set performs operations for mobile devices in one or more branch sites that do not include an MDM server set.
The method of some embodiments identifies the particular mobile device by identifying a media access control (MAC) address of the particular mobile device. In such embodiments, the method supplies the MAC address of the particular mobile device to the MDM server set in order to retrieve the set of attributes. In some embodiments, the set of attributes includes a user group ID associated with a particular user group to which the particular mobile device belongs. In such embodiments, the method supplies the MAC address of the particular mobile device to the MDM server set to identify the user group ID. The user group ID is in some embodiments further associated with a particular user of the particular mobile device.
In some embodiments, in identifying the particular mobile device, the method also identifies authentication credentials of a particular user of the particular mobile device. The authentication credentials in some embodiments include a username and password for the particular user. Unique usernames and passwords are associated with each user of the shared network fabric in order to authenticate each user. In some embodiments, before using the MDM server set to identify the set of attributes, the method authenticates the particular user using the username and password. In some embodiments, this is performed using an authentication server, which resides in the particular branch site or in the cloud site of the shared network fabric.
In some embodiments, the MDM server set maintains mappings between MAC addresses and user group IDs including a particular mapping between the MAC address of the particular mobile device and the user group ID associated with the particular user group to which the particular mobile device belongs. These mappings are stored in some embodiments in a local storage or memory of the MDM server set. The MDM server set in other embodiments associates the MAC address of the particular mobile device to the user group ID using a set of policies defined by a network administrator of the shared network fabric.
In some embodiments, the set of attributes also includes a user subgroup ID for a particular user subgroup of the particular user of the particular mobile device. In such embodiments, users are segmented into both groups and subgroups in order to further isolate traffic between users. The method of some embodiments uses the user subgroup ID to identify a virtual local area network (VLAN) tag for the particular user subgroup. This VLAN tag specifies a particular VLAN of the particular SD-WAN for the particular user subgroup.
The method of some embodiments provides, along with the SD-WAN tenant ID, the VLAN tag to the managed network switch to store in the encapsulating headers that the managed network switch uses to encapsulate the data message flows. In some embodiments, the managed network switch encapsulates the SD-WAN tenant ID and the VLAN tag in different encapsulating headers of the data message flows. In other embodiments, the managed network switch encapsulates the SD-WAN tenant ID and the VLAN tag in a same encapsulating header of the data message flows.
Some embodiments provide a novel method for dynamically associating mobile devices with different SD-WANs implemented on a shared network fabric of an entity. At least two different SD-WANs are implemented for at least two different groups of the entity. At a first site of the entity connected to a second site of the entity through the SD-WANs, the method identifies a particular mobile device that needs to connect to an SD-WAN. The method uses a set of one or more MDM servers to identify an MDM group with which the particular mobile device is associated. The method uses the identified MDM group to identify a particular local area network (LAN) at the first site for the particular mobile device to connect to network resources of the first site that are connected to the particular LAN. The method uses the identified MDM group to identify a particular SD-WAN for the particular mobile device to use to connect to a second site to have access to a set of one or more network resources at the second site.
In some embodiments, using the identified MDM group to identify the particular LAN at the first site for the particular mobile device to connect to the network resources of the first site includes inserting in a first encapsulating header, which is used to send a first set of encapsulated data messages between the particular mobile device and the network resources of the first site, a LAN identifier associated with the LAN. By encapsulating data messages sent between the particular mobile device and the network resources of the first site with the LAN identifier, the data messages will be sent through the LAN. In some embodiments, the LAN identifier is inserted into encapsulating headers by an SD-WAN edge appliance operating at the first site to forward the encapsulated data message flows to the network resources of the first site.
Using the identified MDM group to identify the particular SD-WAN for the particular mobile device to use to connect to the second site in some embodiments includes inserting in a second encapsulating header, which is used to send a second set of encapsulated data messages between the particular mobile device and the set of network resources at the second site, an SD-WAN identifier associated with the particular SD-WAN. By encapsulating data messages sent between the particular mobile device and the set of network resources at the second site with the SD-WAN identifier, the data messages will be sent through the SD-WAN. In some embodiments, the SD-WAN identifier is inserted into encapsulating headers by an SD-WAN edge appliance operating at the first site to forward the encapsulated data message flows to an orchestration service operating at the second site. In some embodiments, the LAN identifier is different from the SD-WAN identifier. In other embodiments, the LAN identifier and the SD-WAN identifier are the same identifier.
The method of some embodiments is performed by a set of software-defined edge network (SDEN) servers implementing an SDEN control plane at the first site. In such embodiments, an SDEN management plane operates in the second site along with an orchestration service (e.g., a VeloCloud® orchestration service) to connect to the first site. In some embodiments, the network resources include one or more of servers (e.g., virtual machines (VMs), containers, Pods, etc.), applications, middlebox services (e.g., firewall services, network address translation services, load balancing services, etc.), and forwarding elements (e.g., routers, switches, etc.).
At least two different SD-WANs are implemented for at least two different groups of the entity in some embodiments. These groups are in some embodiments different user groups of the entity. These groups in other embodiments are different device groups of the entity. The groups in other embodiments are a combination of user and device groups of the entity. The first site in some embodiments is a branch site of the entity, while the second site is a cloud site of the entity.
In some embodiments, the MDM group is identified by using the set of MDM servers to identify a device group to which the particular mobile device belongs. In such embodiments, the SDEN control plane provides the device's MAC address to the MDM server set to determine the device group. A device group is in some embodiments defined based on the device type, such as a first group for laptops, a second group for smartphones, a third group for tablets, etc.
In other embodiments, the SDEN control plane determines to which user group the user of the mobile device belongs. In such embodiments, the SDEN control plane provides the user's credentials to the MDM server set to determine the user group. The SDEN control plane of some embodiments also provides the device's MAC address along with the user's credentials to identify the user group. In some embodiments, a user group is a group of members of the entity that share a set of characteristics. The set of characteristics in some embodiments include at least one of a shared responsibility for the entity, a shared role within the entity, and a shared subgroup of the entity.
The particular LAN of some embodiments is a first logical network of several logical networks implemented at the first site for several different groups of mobile devices. These logical networks are implemented in some embodiments to isolate data message flows between the different groups.
Some embodiments provide a novel method for dynamically associating mobile devices with different logical networks implemented on a shared network fabric of an entity. At least two different logical networks are implemented for at least two different groups of the entity. At a first site of the entity, the method authenticates a particular mobile device. The method uses a set of one or more MDM servers to identify an MDM group with which the particular mobile device is associated. The method uses the identified MDM group to identify a first logical network that is defined over a shared network fabric at the first site for the particular mobile device to connect to network resources of the first site that are connected to the first logical network. The method uses the identified MDM group to identify a logical network identifier (LNI) associated with a second logical network connecting a first edge gateway at the first site to a second edge gateway at a second site of the entity. The method inserts the LNI in an encapsulation header that encapsulates data messages sent from the particular mobile device to a set of one or more network resources at the second site.
The second logical network identified by the LNI in some embodiments (1) spans the first and second sites and (2) connects the particular mobile device at the first site to the set of one or more network resources at the second site. In some embodiments, the encapsulation header is a tunnel header used to send the data messages from the first edge gateway to the second edge gateway through a tunnel established between the first and second edge gateways. This tunnel connects the first and second sites so that the particular mobile device is able to access the set of network resources at the second site. Because the data messages sent from the particular mobile device are sent using a secure connection (i.e., a tunnel), the particular mobile device can be seen as in the same overlay network as the set of network resources in the second site.
In some embodiments, the LNI is inserted into the encapsulating header by a tier-0 (T0) router operating at the first site to forward the encapsulated data messages to an edge node (or another T0 router) at the second site. The first logical network in some embodiments also has an associated LNI. In some embodiments, the first logical network LNI is the same as the second logical network LNI, as the first and second logical networks are one network. In other embodiments, the first logical network LNI is different than the second logical network LNI, as the first and second logical networks are two different logical networks with the first logical network being a logical local area network (LAN) and the second logical network being a logical wide area network (WAN). The logical LAN spans only the first site, while the logical WAN spans at least the first and second sites.
The encapsulation header used to send the data messages from the first edge gateway to the second edge gateway is in some embodiments a first tunnel header, and the data messages sent to the second site are in some embodiments a first set of data messages. In such embodiments, the method also inserts the first logical network LNI in a second encapsulation header that encapsulates a second set of data messages sent from the particular mobile device to the network resources of the first site. The second encapsulation header is also a tunnel header used to send the second set of data messages through a tunnel or a secure connection in some embodiments.
The method of some embodiments is performed by a set of SDEN servers implementing an SDEN control plane at the first site. In such embodiments, an SDEN management plane operates in the second site along with a software-defined network (SDN) management plane, an SDN control plane, and an SDN edge gateway to connect to the first site. In some embodiments, the network resources include one or more of servers (e.g., VMs, containers, Pods, etc.), applications, middlebox services (e.g., firewall services, network address translation services, load balancing services, etc.), and forwarding elements (e.g., routers, switches, etc.).
At least two different logical networks are implemented for at least two different groups of the entity in some embodiments. These groups are in some embodiments different user groups of the entity. These groups in other embodiments are different device groups of the entity. The groups in other embodiments are a combination of user and device groups of the entity. The first site in some embodiments is a branch site of the entity, while the second site is a cloud site of the entity.
In some embodiments, the particular mobile device is authenticated by receiving a set of authentication credentials from the particular mobile device and using the set of authentication credentials to authenticate the particular mobile device. The set of authentication credentials in some embodiments includes a username and password of a user of the particular mobile device. In some embodiments, the method directs an authentication server operating at the first site to authenticate the particular mobile device. In other embodiments, the method directs an authentication server operating at the second site to authenticate the particular mobile device by providing the set of authentication credentials to the authentication server.
In some embodiments, the MDM group is identified by using the set of MDM servers to identify a device group to which the particular mobile device belongs. In such embodiments, the SDEN control plane provides the device's MAC address to the MDM server set to determine the device group. A device group is in some embodiments defined based on the device type, such as a first group for laptops, a second group for smartphones, a third group for tablets, etc. In other embodiments, the SDEN control plane determines to which user group the user of the mobile device belongs. In such embodiments, the SDEN control plane provides the user's credentials to the MDM server set to determine the user group. The SDEN control plane of some embodiments also provides the device's MAC address along with the user's credentials to identify the user group.
The preceding Summary is intended to serve as a brief introduction to some embodiments of the invention. It is not meant to be an introduction or overview of all inventive subject matter disclosed in this document. The Detailed Description that follows and the Drawings that are referred to in the Detailed Description will further describe the embodiments described in the Summary as well as other embodiments. Accordingly, to understand all the embodiments described by this document, a full review of the Summary, Detailed Description, the Drawings, and the Claims is needed. Moreover, the claimed subject matters are not to be limited by the illustrative details in the Summary, Detailed Description, and Drawings.
The novel features of the invention are set forth in the appended claims. However, for purposes of explanation, several embodiments of the invention are set forth in the following figures.
In the following detailed description of the invention, numerous details, examples, and embodiments of the invention are set forth and described. However, it will be clear and apparent to one skilled in the art that the invention is not limited to the embodiments set forth and that the invention may be practiced without some of the specific details and examples discussed.
Some embodiments provide a novel method for dynamically associating mobile devices with different software-defined wide area networks (SD-WANs) implemented for different user groups of a single shared network fabric of a single entity. The method identifies a particular mobile device that is trying to connect to a managed network switch. The method uses a set of one or more mobile device management (MDM) servers to identify a set of attributes associated with the particular mobile device attempting to access the shared network fabric. The method uses the identified set of attributes to identify an SD-WAN tenant identifier (ID) associated with a particular SD-WAN established for a group of devices including the particular mobile device. The method provides the SD-WAN tenant ID to the managed network switch to store in encapsulating headers that the managed network switch uses to encapsulate data message flows from the particular mobile device before forwarding the data message flows to one or more resources in the shared network fabric.
Some embodiments establish different SD-WANs for different user groups in order to isolate traffic between the different user groups. The managed network switch in some embodiments encapsulates different data message flows from different wired and wireless devices, including the particular mobile device, to forward the different data message flows to different resources in the shared network fabric. In some embodiments, the shared network fabric includes at least one of datacenter sites, branch sites, and cloud sites. The particular mobile device in some embodiments resides in a particular branch site of the shared network fabric. In some embodiments, the MDM server set resides in the particular branch site along with the particular mobile device. In these embodiments, the MDM server set performs operations for each mobile device in the particular branch site. In other embodiments, the MDM server set resides in a cloud site of the shared network fabric. In these embodiments, the MDM server set performs operations for mobile devices in one or more branch sites that do not include an MDM server set.
The method of some embodiments identifies the particular mobile device by identifying a media access control (MAC) address of the particular mobile device. In such embodiments, the method supplies the MAC address of the particular mobile device to the MDM server set in order to retrieve the set of attributes. In some embodiments, the set of attributes includes a user group ID associated with a particular user group to which the particular mobile device belongs. In such embodiments, the method supplies the MAC address of the particular mobile device to the MDM server set to identify the user group ID. The user group ID is in some embodiments further associated with a particular user of the particular mobile device.
In some embodiments, the set of attributes also includes a user subgroup ID for a particular user subgroup of the particular user of the particular mobile device. In such embodiments, users are segmented into both groups and subgroups in order to further isolate traffic between users. The method of some embodiments uses the user subgroup ID to identify a virtual local area network (VLAN) tag for the particular user subgroup. This VLAN tag specifies a particular VLAN of the particular SD-WAN for the particular user subgroup.
The method of some embodiments provides, along with the SD-WAN tenant ID, the VLAN tag to the managed network switch to store in the encapsulating headers that the managed network switch uses to encapsulate the data message flows. In some embodiments, the managed network switch encapsulates the SD-WAN tenant ID and the VLAN tag in different encapsulating headers of the data message flows. In other embodiments, the managed network switch encapsulates the SD-WAN tenant ID and the VLAN tag in a same encapsulating header of the data message flows.
Some embodiments provide a novel method for dynamically associating mobile devices with different SD-WANs implemented on a shared network fabric of an entity. At least two different SD-WANs are implemented for at least two different groups of the entity. At a first site of the entity connected to a second site of the entity through the SD-WANs, the method identifies a particular mobile device that needs to connect to an SD-WAN. The method uses a set of one or more MDM servers to identify an MDM group with which the particular mobile device is associated. The method uses the identified MDM group to identify a particular local area network (LAN) at the first site for the particular mobile device to connect to network resources of the first site that are connected to the particular LAN. The method uses the identified MDM group to identify a particular SD-WAN for the particular mobile device to use to connect to a second site to have access to a set of one or more network resources at the second site.
In some embodiments, using the identified MDM group to identify the particular LAN at the first site for the particular mobile device to connect to the network resources of the first site includes inserting in a first encapsulating header, which is used to send a first set of encapsulated data messages between the particular mobile device and the network resources of the first site, a LAN identifier associated with the LAN. By encapsulating data messages sent between the particular mobile device and the network resources of the first site with the LAN identifier, the data messages will be sent through the LAN. In some embodiments, the LAN identifier is inserted into encapsulating headers by an SD-WAN edge appliance operating at the first site to forward the encapsulated data message flows to the network resources of the first site.
Using the identified MDM group to identify the particular SD-WAN for the particular mobile device to use to connect to the second site in some embodiments includes inserting in a second encapsulating header, which is used to send a second set of encapsulated data messages between the particular mobile device and the set of network resources at the second site, an SD-WAN identifier associated with the particular SD-WAN. By encapsulating data messages sent between the particular mobile device and the set of network resources at the second site with the SD-WAN identifier, the data messages will be sent through the SD-WAN. In some embodiments, the SD-WAN identifier is inserted into encapsulating headers by an SD-WAN edge appliance operating at the first site to forward the encapsulated data message flows to an orchestration service operating at the second site. In some embodiments, the LAN identifier is different from the SD-WAN identifier. In other embodiments, the LAN identifier and the SD-WAN identifier are the same identifier.
The method of some embodiments is performed by a set of software-defined edge network (SDEN) servers implementing an SDEN control plane at the first site. In such embodiments, an SDEN management plane operates in the second site along with an orchestration service (e.g., a VeloCloud® orchestration service) to connect to the first site. In some embodiments, the network resources include one or more of servers (e.g., virtual machines (VMs), containers, Pods, etc.), applications, middlebox services (e.g., firewall services, network address translation services, load balancing services, etc.), and forwarding elements (e.g., routers, switches, etc.).
The particular LAN of some embodiments is a first logical network of several logical networks implemented at the first site for several different groups of mobile devices. These logical networks are implemented in some embodiments to isolate data message flows between the different groups.
Some embodiments provide a novel method for dynamically associating mobile devices with different logical networks implemented on a shared network fabric of an entity. At least two different logical networks are implemented for at least two different groups of the entity. At a first site of the entity, the method authenticates a particular mobile device. The method uses a set of one or more MDM servers to identify an MDM group with which the particular mobile device is associated. The method uses the identified MDM group to identify a first logical network that is defined over a shared network fabric at the first site for the particular mobile device to connect to network resources of the first site that are connected to the first logical network. The method uses the identified MDM group to identify a logical network identifier (LNI) associated with a second logical network connecting a first edge gateway at the first site to a second edge gateway at a second site of the entity. The method inserts the LNI in an encapsulation header that encapsulates data messages sent from the particular mobile device to a set of one or more network resources at the second site.
The second logical network identified by the LNI in some embodiments (1) spans the first and second sites and (2) connects the particular mobile device at the first site to the set of one or more network resources at the second site. In some embodiments, the encapsulation header is a tunnel header used to send the data messages from the first edge gateway to the second edge gateway through a tunnel established between the first and second edge gateways. This tunnel connects the first and second sites so that the particular mobile device is able to access the set of network resources at the second site. Because the data messages sent from the particular mobile device are sent using a secure connection (i.e., a tunnel), the particular mobile device can be seen as in the same overlay network as the set of network resources in the second site.
In some embodiments, the LNI is inserted into the encapsulating header by a tier-0 (T0) router operating at the first site to forward the encapsulated data messages to an edge node (or another T0 router) at the second site. The first logical network in some embodiments also has an associated LNI. In some embodiments, the first logical network LNI is the same as the second logical network LNI, as the first and second logical networks are one network. In other embodiments, the first logical network LNI is different than the second logical network LNI, as the first and second logical networks are two different logical networks with the first logical network being a logical local area network (LAN) and the second logical network being a logical wide area network (WAN). The logical LAN spans only the first site, while the logical WAN spans at least the first and second sites.
The encapsulation header used to send the data messages from the first edge gateway to the second edge gateway is in some embodiments a first tunnel header, and the data messages sent to the second site are in some embodiments a first set of data messages. In such embodiments, the method also inserts the first logical network LNI in a second encapsulation header that encapsulates a second set of data messages sent from the particular mobile device to the network resources of the first site. The second encapsulation header is also a tunnel header used to send the second set of data messages through a tunnel or a secure connection in some embodiments.
The method of some embodiments is performed by a set of SDEN servers implementing an SDEN control plane at the first site. In such embodiments, an SDEN management plane operates in the second site along with a software-defined network (SDN) management plane, an SDN control plane, and an SDN edge gateway to connect to the first site. In some embodiments, the network resources include one or more of servers (e.g., VMs, containers, Pods, etc.), applications, middlebox services (e.g., firewall services, network address translation services, load balancing services, etc.), and forwarding elements (e.g., routers, switches, etc.).
The datacenter sites 120 and the branch sites 130 in some embodiments each include a set of resources, which may include servers, hosts, routers, switches, and/or other physical or logical elements (e.g., VM, containers, etc.). The resources may communicate with resources of other branches and/or other resources outside of their own site through forwarding elements (e.g., edge nodes, gateways, etc.). A datacenter forwarding node is referred to as a hub node because in some embodiments this forwarding node can be used to connect (e.g., through a virtual private network (VPN) tunnel) to other edge forwarding nodes of the branch sites 130. A hub node in some embodiments provides services (e.g., middlebox services) for data messages that it forwards from one branch site to another branch site. A hub node in some embodiments also provides access to the datacenter's resources.
In some embodiments, the cloud 140 spans each physical site of the datacenter sites 120 and branch sites 130. In this example, the shared network fabric 100 includes one cloud 140. However, in other embodiments, the shared network fabric 100 includes multiple clouds. The cloud 140 of some embodiments includes a set of one or more cloud resources, such as a cloud gateway (CGW). The CGW in some embodiments connects the datacenter sites 120 and branch sites 130 (e.g., using VPN tunnels).
In some embodiments, one branch site 130 includes a set of one or more mobile devices 150, a secure wireless access point (WAP) 155, a network fabric 160 including a managed wireless network (MWN) switch 165, a set of one or more SDN servers 170, a set of one or more SDEN servers 175, an authentication server 180, a set of one or more mobile device management (MDM) servers 185, a set of compute management/configuration servers 190, and a set of one or more machines 195 executing on a set of one or more host computers 197. Each branch site 130 can include any number of each of these components. In other embodiments, different branch sites include at least a subset of the components 150-197. The compute management/configuration server set 190 in some embodiments manages and configures the machines 195 executing on the hosts 197. The machines 195 can include one or more of VMs, containers, pods, etc.
In some embodiments, the SDN server set 170 includes one or more managers and/or one or more controllers responsible for configuring the network fabric 160 of the branch site, including the managed wireless network switch 165. The managed wireless network switch 165 is in some embodiments a hardware switch, and, in other embodiments, is a software or virtual switch. In some embodiments, it is a wired switch connected by a physical link to the secure WAP 155. In other embodiments, it is a wireless switch connected, e.g., by a secure tunnel, to the secure WAP 155.
The shared network fabric 100 is used by several users of a single entity. For example, the shared network fabric 100 in some embodiments is used by employees of a single enterprise or corporation. In order to isolate traffic of different user groups (e.g., of different departments of the corporation), the shared network fabric 100 in some embodiments implements a different SD-WAN 110 for each user group that uses the shared network fabric 100. Any number of SD-WANs may be created for any number of user groups. In some embodiments, one SD-WAN is created for each user group. In other embodiments, at least one user group has multiple SD-WANs created for it.
In some embodiments, each device of each user in a user group is associated with a tenant identifier (ID). For instance, each device associated with a first SD-WAN is associated with a first set of one or more tenant IDs for the first SD-WAN, while each device associated with a second SD-WAN is associated with a second set of one or more tenant IDs for the second SD-WAN. In some embodiments, each user and each device for a particular user group is associated with the same tenant ID for the SD-WAN of the user group. In other embodiments, different tenant IDs are associated with the different users, meaning that all devices of a particular user are associated with a user-specific tenant ID for the SD-WAN of the user group. Still, in other embodiments, different tenant IDs are associated with different types of devices, meaning that each different type of device (e.g., desktop computer, laptop computer, mobile phone, etc.) of one user is associated with a different tenant ID for one SD-WAN of the user group. In such embodiments, the same type of device for different users is associated with the same tenant ID in some embodiments, while, in other embodiments, same-type devices of different users are associated with different tenant IDs.
To associate user devices with an SD-WAN, some embodiments use a set of SDEN servers 175. As shown, the SDEN server set 175 of some embodiments is deployed in a branch site 130. An SDEN server set 175 of some embodiments allows for users of the shared network fabric 100 to be automatically recognized based on user and/or device identity and added to the correct SD-WAN. For example, a mobile device 150 sends a request to access the shared network fabric 100 to the secure WAP 155. The secure WAP 155 verifies a signature of the mobile device 150. In some embodiments, the secure WAP 155 verifies the signature of a particular application used by the mobile device to provide user credentials (e.g., a username and password). Once the secure WAP 155 verifies the mobile device's signature, the secure WAP 155 instantiates a secure (e.g., encrypted) channel between the secure WAP 155 and the mobile device 150 to collect user attributes, such as the user's ID, a password, and/or a media access control (MAC) address of the mobile device. In some embodiments, the collected MAC address is the source MAC address of the mobile device 150.
Then, the secure WAP 155 sends the collected user attributes to the SDEN server set 175 through the managed wireless network switch 165. Using the user's attributes, the SDEN server set 175 authenticates the user using the authentication server 180. In some embodiments, the authentication server 180 is a Remote Authentication Dial-In User Service (RADIUS) server. Once the user has been authenticated, the SDEN server set 175 supplies the collected user attributes (e.g., the user ID and/or MAC address) to the MDM server set 185. In some embodiments, an MDM server set is deployed in each branch site 130. In other embodiments, one MDM server set is deployed in the cloud 140 for each branch site 130. Still, in other embodiments, a subset of branch sites deploy their own MDM server set, while another subset of branch sites use an MDM server set in the cloud 140.
The MDM server set 185 in some embodiments provides one or more MDM attributes for the mobile device 150, the user (of the mobile device), and/or application (executing on the mobile device) requesting access to the shared network fabric 100. The MDM server set 185 in some embodiments is the server set that also provisions mobile devices for accessing the resources of the shared network fabric 100. Provisioning in different embodiments involves different combinations of the following operations: (1) adding the mobile device's identifier to a list of mobile devices that can have remote access, (2) adding a user identifier to identify one or more users that can have remote access through the mobile device, (3) providing VPN access software and/or settings to the mobile device so that the mobile device can set up secure VPN remote access with the datacenter, and (4) defining tenant information, like corporation identifier, user entitlements, etc.
After receiving the user attributes, the MDM server set 185 of some embodiments determines one or more user group attributes of a particular user group to which the user of the mobile device 150 belongs. In some embodiments, the MDM server set 185 maintains mappings between user attributes and user group attributes. The MDM server set 185 of some embodiments maintains mappings between MAC addresses of devices 150 and user group IDs. These mappings are stored in a local storage or memory of the MDM server set 185, in some embodiments. The MDM server set 185 of some embodiments associates user attributes (e.g., MAC addresses) to user group attributes (e.g., user group IDs) using a set of policies defined by a network administrator of the shared network fabric 100.
The SDEN server set 175 receives one or more user group attributes from the MDM server set 185. For example, the SDEN server set 175 of some embodiments receives a user group ID corresponding to the particular department of the corporation to which the user of the mobile device 150 belongs. Using the obtained user group attributes, the SDEN server set 175 identifies a tenant ID for the user and/or the user group. This tenant ID specifies which SD-WAN 110 the user should be placed. After identifying the tenant ID, the SDEN server set 175 provides the SD-WAN tenant ID to the managed wireless network switch 165. Then, the managed wireless network switch 165 encapsulates communications sent from the mobile device 150 through the secure WAP 155 with the tenant ID (e.g., in an encapsulating header) to forward to other resources in the branch site 130, a datacenter site 120, other branch sites, or the cloud 140.
The process 200 begins by receiving (at 205) a set of user/device attributes for the particular user using the particular mobile device to request access to a shared network fabric of an entity. In some embodiments, the SDEN server set receives a MAC address of the particular mobile device, and authentication credentials (e.g., a username and password) for the particular user from a managed wireless network switch in the branch site. The managed wireless network switch in some embodiments receives these attributes from a secure WAP that enables communication between the particular mobile device and the managed wireless network switch.
Next, the process 200 determines (at 210) whether the particular user is allowed to access the shared network fabric. In some embodiments, the shared network fabric is only able to be accessed by authorized users (i.e., employees or authorized guests) of the corporation. In such embodiments, the SDEN server set uses an authentication server (e.g., a RADIUS server) to authenticate the user's authentication credentials. If the process 200 determines that the particular user is not allowed to access the shared network fabric, the process 200 denies (at 215) access of the particular mobile device to the shared network fabric, and the process 200 ends. In some embodiments, the SDEN server set sends a notification of access denial to the managed wireless network switch, which provides the notification to the particular mobile device through the secure WAP.
If the process 200 determines that the particular user is allowed to access the shared network fabric, the process 200 supplies (at 220) the received user/device attributes to an MDM server set. In some embodiments, the MDM server set resides in the same branch site as the SDEN server set and the particular mobile device. In other embodiments, the MDM server set resides in a cloud site of the shared network fabric. The SDEN server set of some embodiments provides the particular mobile device's MAC address to the MDM server set in order to determine the user group to which the particular user group belongs. In other embodiments, the SDEN server set also provides the particular user's authentication credentials to determine the user group.
At 225, the process 200 receives one or more user group attributes for a particular user group to which the particular user belongs. The SDEN server set receives, from the MDM server set, an ID corresponding to the user group (e.g., the department of the corporation) to which the particular user belongs. In some embodiments, the MDM server set maintains a mapping table mapping device MAC addresses to user group IDs. For example, if the particular mobile device belonging to the particular user is part of a finance department of the corporation, the MDM server set maintains a mapping between the particular mobile device's MAC address and an ID identifying the finance department.
After receiving the one or more user group attributes, the process 200 uses (at 230) the received user group attributes to identify an SD-WAN tenant ID for the particular user group specifying a particular SD-WAN belonging to the particular user group. After receiving identification of the particular user's user group, the SDEN server set identifies the SD-WAN for the user group by identifying a tenant ID for the user group. In some embodiments, the same tenant ID is used for all users of the user group. In other embodiments, a set of tenant IDs is used for the user group such that at least two different users of the user group have their own unique tenant ID.
Lastly, the process 200 provides (at 235) the identified SD-WAN tenant ID to the managed wireless network switch to encapsulate data message flows, sent from the particular mobile device to other resources in the shared network fabric, with the SD-WAN tenant ID. After identifying the SD-WAN tenant ID for the particular user group (and, therefore, for the particular user), the SDEN server set provides it to the managed wireless network switch. The managed wireless network switch of some embodiments encapsulates each data message sent from the particular mobile device with an encapsulating header that includes the SD-WAN tenant ID so that all data message flows sent by the particular mobile device are sent through the correct SD-WAN.
In some embodiments, the managed wireless network switch stores the SD-WAN tenant ID in a local storage or memory. For example, the managed wireless network switch of some embodiments maintains, in a local storage, a mapping table that includes mappings between each mobile device it exchanges data message flows for and the tenant ID associated with each mobile device. After providing the SD-WAN tenant ID to the managed wireless network switch, the process 200 ends.
In some embodiments, a mobile device requesting access to a shared network fabric does not belong to a user group with an already established SD-WAN. In such embodiments, the SDEN server set creates a new SD-WAN tenant ID for the user group to create a new SD-WAN for the group. In other embodiments, the mobile device does not belong to any user group. In these embodiments, the MDM server set creates a new user group ID for the user and sends the new user group ID to the SDEN server set. Then, the SDEN server set creates a new SD-WAN tenant ID for the new user group ID to establish a new SD-WAN for the new user group.
In addition to dynamically associating mobile devices with different SD-WANs implemented for different user groups of a single shared network fabric of a single entity, some embodiments associate mobile devices with different virtual local area networks (VLANs) within each SD-WAN for different user subgroups of the shared network fabric in order to further segment each SD-WAN. In such embodiments, the SDEN server set receives, from the MDM server set, (1) user group attributes in order to determine the correct SD-WAN and (2) user subgroup attributes in order to determine the correct VLAN of the SD-WAN.
Using the user group attributes, the SDEN server set determines an SD-WAN tenant ID for the user group. Using the user subgroup attributes, the SDEN server set determines a VLAN tag for the user subgroup. In some embodiments, the SDEN server set also determines an Internet Protocol (IP) subnet for the user subgroup and assigns an IP address from that subnet to the mobile device. Then, the SDEN server set provides the SD-WAN tenant ID, the VLAN tag, and the assigned IP address to the managed wireless network switch for forwarding flows sent from the mobile device to other resources. In some embodiments, the managed wireless network switch places both the tenant ID and VLAN tag in a single encapsulating header of each data message sent from the mobile device. In other embodiments, the managed wireless network switch places the tenant ID and VLAN tag in separate encapsulating headers of each data message sent from the mobile device. Even as the mobile device moves to different branch sites and to different physical locations, the assigned SD-WAN tenant ID, VLAN tag, and IP subnet remains the same.
As discussed previously, different user groups of an entity (e.g., a corporation) are associated with different SD-WANs of a shared network fabric in order to isolate traffic between each user group. An SD-WAN can include any number of branch sites, datacenter sites, and cloud sites of the shared network fabric. Different SD-WANs in some embodiments include different sites located in different geographic locations. For example, a first SD-WAN for an engineering department of some embodiments includes sites in a first set of geographic locations, while a second SD-WAN for a legal department includes sites in a second set of geographic locations. The first and second sets of geographic locations in some embodiments include at least one same geographic site.
The edge nodes in some embodiments are edge machines (e.g., VMs, containers, programs executing on computers, etc.) and/or standalone appliances that operate at multi-computer locations of the particular entity (e.g., at an office or datacenter of the entity) to connect the computers at their respective locations to other nodes, hubs, etc. in the virtual network. In some embodiments, the edge nodes are clusters of nodes at each of the branch sites. In other embodiments, the edge nodes are deployed to each of the branch sites as high-availability pairs such that one edge node in the pair is the active node and the other edge node in the pair is the standby node that can take over as the active edge node in case of failover.
Each edge node 330-334 in some embodiments includes one or more of edge appliances, broadband routers, and customer edge (CE) routers. In such embodiments, each edge node includes multiple components, and connects to each other site (branch sites, 320-324, datacenter 350, and cloud gateway 340) through one or more links. These multiple links in some embodiments include LAN links connecting to resources within the branch site and/or WAN links connecting to the other sites.
In some embodiments, each edge node, hub, and cloud gateway in an SD-WAN (such as the edge nodes 330-334, the datacenter hub 345, and the cloud gateway 340 of the SD-WAN 300) includes a router that performs the data message forwarding operations of the edge node, hub, or cloud gateway. In such embodiments, the next-hop forwarding records of these edge nodes, hubs, and cloud gateways are routing records used by the routers to forward data messages through the SD-WAN.
Each edge node 330-334 in some embodiments connects to an external network through two or more forwarding devices (e.g., an MPLS (multiprotocol label switching) device, a cable modem router, a 5G router) of two or more communication service providers (e.g., a telephone company provider of an MPLS network, a cable modem provider of an ISP (Internet Service Provider), a wireless provider for the 5G connectivity). In some of these embodiments, each edge node 330-334 connects to the forwarding devices of the service providers through two or more physical ports of the edge node.
An example of an entity for which such a virtual network can be established includes a business entity (e.g., a corporation), a non-profit entity (e.g., a hospital, a research organization, etc.), an education entity (e.g., a university, a college, etc.), or any other type of entity. In some embodiments, multiple virtual networks are established for a single entity. For example, for a business entity in some embodiments, a first SD-WAN is established for an engineering department of the business entity, a second SD-WAN is established for a finance department of the business entity, a third SD-WAN is established for a legal department of the business entity, etc. In some embodiments, each of these different SD-WANs differs from each other.
For example, the first SD-WAN for the engineering department in some embodiments connects two of the business entity's branch sites and a datacenter site (i.e., the first SD-WAN includes the edge nodes of the two branch sites along with the cloud gateway and the datacenter hub), while the second SD-WAN for the finance department connects all of the business entity's branch sites and not the datacenter site (i.e., the SD-WAN includes the edge nodes of all branch sites along with the cloud gateway). In such embodiments, when a wireless device used by a particular user belonging to a particular department requests to connect to an SD-WAN of the business entity, the wireless device is placed in the correct SD-WAN corresponding to the user's particular department.
Examples of public cloud providers include Amazon Web Services® (AWS), Google Cloud Platform™ (GCP), Microsoft Azure®, etc., while examples of entities include a company (e.g., corporation, partnership, etc.), an organization (e.g., a school, a non-profit, a government entity, etc.), etc. In other embodiments, hubs like the hub 345 can also be deployed in private cloud datacenters of a virtual WAN provider that hosts hubs to establish SD-WANs for different entities.
In the example SD-WAN 300, the hub 345 is a multi-tenant forwarding element that is deployed on the premises of the datacenter 350. The hub 345 can be used to establish secure connection links (e.g., tunnels) with edge nodes at the particular entity's multi-computer sites, such as branch sites 320-324, third-party datacenters (not shown), etc. For example, the hub 345 can be used to provide access from each branch site 320-324 to each other branch site 320-324 (e.g., via the connection links 360 that terminate at the hub 345) as well as to the resources 355 of the datacenter 350. These multi-computer sites are often at different physical locations (e.g., different buildings, different cities, different states, etc.), according to some embodiments. In some embodiments, hubs can be deployed as physical nodes or virtual nodes. Additionally, hubs in some embodiments can be deployed on a cloud (e.g., as a set of virtual edges configured as a cluster).
In the SD-WAN 300, the hub 345 also provides access to the resources 355 of the datacenter 350 as mentioned above. The resources 355 in the datacenter 350 and the resources 336-338 in the branch sites 320-324 in some embodiments include a set of one or more servers (e.g., web servers, database servers, etc.) within a microservices container (e.g., a pod). Conjunctively, or alternatively, some embodiments include multiple such microservices containers, each accessible through a different set of one or more hubs of the datacenter (not shown). The resources, as well as the hubs, are within the datacenter premises, according to some embodiments. While not shown, some embodiments include multiple different Software-as-a-Service (SaaS) datacenters, which may each be accessed via different sets of hubs, according to some embodiments. In some embodiments, the SaaS datacenters include datacenters for video conferencing SaaS providers, for middlebox (e.g., firewall) service providers, for storage service providers, etc.
Additional examples of resources 355 in the datacenter 350 and resources 336-338 in the branch sites 320-324, in some embodiments, include compute machines (e.g., virtual machines and/or containers providing server operations), storage machines (e.g., database servers), and middlebox service operations (e.g., firewall services, load balancing services, encryption services, etc.). Within each branch site 320-324, edge nodes in some embodiments connect to their resources using links, which are the LANs within the branch site. In some embodiments, the connections 360 between the branch sites 320-324 and the hub 345 are secure encrypted connections that encrypt data messages exchanged between the edge nodes 330-334 of the branch sites 320-324 and the hub 345. Examples of secure encrypted connections used in some embodiments include VPN (virtual private network) connections, or secure IPsec (Internet Protocol security) connections.
In some embodiments, multiple secure connection links (e.g., multiple secure tunnels) can be established between an edge node and the hub 345. When multiple such links are defined between a node and a hub, each secure connection link, in some embodiments, is associated with a different physical network link between the node and an external network. For instance, to access external networks in some embodiments, a node has one or more commercial broadband Internet links (e.g., a cable mode and a fiber optic link) to access the Internet, a wireless cellular link (e.g., a 5G LTE network), etc. The collection of the edge nodes, gateway, datacenter hub, controller, and secure connections between the edge nodes, gateway, datacenter hub, and controller form the SD-WAN 300.
The controller 310 of some embodiments communicates with each of the nodes 330-334 at the branch sites 320-324 to assign a tenant ID to the SD-WAN 300. While illustrated as individual connection links, the links 370A-370E are sets of multiple connection links, according to some embodiments. In addition to the connection links 370A-370E and 360, edge nodes 332 and 334 are connected via connection link 364, while edge nodes 330 and 332 are connected to the gateway 340 via connection links 362. The gateway 340 in this example is responsible for relaying information between edge nodes (e.g., edge nodes 330 and 332, which do not share a direct connection). Also, the gateway 340 in some embodiments is used to set up direct edge-to-edge connections. In some embodiments, the gateway 340 can be used to provide the edge nodes with access to cloud resources (e.g., compute, storage, and service resources of a cloud datacenter).
The wireless devices 411 and 421 in some embodiments include wireless mobile devices of users in the branch office 400, such as laptops, mobile phones, tablets, etc. The wireless devices 411 and 421 also include, in some embodiments, shared wireless devices, such as a thermostat for the business office 410. In some embodiments, the wired devices 412 inside the business office 410 include devices used by individual users in the branch office 400, such as desktop computers. The wired devices 412 in some embodiments include wired devices used by one or more users inside the business office 410, such as servers, printers, televisions, projectors, and desk phones. The wired devices 422 in the outdoor lounge 420 in some embodiments include wired devices used by one or more users in the outdoor lounge 420, such as security cameras.
The wireless devices 411 inside the business office 410 connect to one or more indoor access points 414. In some embodiments, all wireless devices 411 connect to the same indoor access point. In other embodiments, a first subset of the wireless devices 411 connect to a first indoor access point, while a second subset of the wireless devices 411 connect to a second indoor access point. The guest Wi-Fi 413 also connects to one of the indoor access points 414. By connecting to the indoor access points 414, the wireless devices 411 and guest Wi-Fi 413 can communicate with the network switch 415.
The wired devices 412 of some embodiments connect directly to the network switch 415. The network switch 415 connects to a modem 430 in order to connect to the Internet 440. The network switch 415 allows the wireless devices 411, wired devices 412, and guest Wi-Fi 413 to exchange data message flows with other branch sites through the Internet 440.
The wireless devices 421 out in the outdoor lounge 420 connect to one or more outdoor access points 423. In some embodiments, all wireless devices 421 connect to the same outdoor access point. In other embodiments, a first subset of the wireless devices 421 connect to a first outdoor access point, while a second subset of the wireless devices 421 connect to a second outdoor access point. By connecting to the outdoor access points 423, the wireless devices 421 can communicate with the network switch 415. The wired devices 422 of some embodiments connect directly to the network switch 415. The network switch 415 allows the wireless devices 421 and wired devices 422 to exchange data message flows with other branch sites through the Internet 440.
All of the wireless devices 411 and 421 and the wired devices 412 and 422 are in some embodiments part of one or more SD-WANs established for the branch office's entity. For instance, a first wireless device of the business office wireless devices 411 is in some embodiments part of a first SD-WAN, while a second wireless device of the business office wireless devices 411 is part of a second SD-WAN. While both devices reside in the same physical location (i.e., the same branch site 400), they may be in different virtual networks based on the identity of the user using that device.
In some embodiments, the SD-WAN edge appliance 510 includes two or more edge devices, with each edge device connected to the datacenter sites and clouds 502 through different communication service providers (e.g., an MPLS device, a cable modem router, a 5G router, etc.). In some of these embodiments, the edge devices of the SD-WAN edge appliance 510 connect to each other using a physical cable link.
The branch site 500 also communicates with the Internet 504. Data message flows received from the datacenter sites and cloud sites 502 (through the SD-WAN edge appliance 510) and the Internet 504 are sent through one or more firewall processes 515. In some embodiments, one or more cloud sites 502 include one or more MDM servers (not shown) for use by the branch site 500.
After being processed by the firewall processes 515, allowed data message flows are sent to a Tier-0 (T0) router 520 of the branch site 500, and then to a core switch 530. The core switch 530 is connected to a wireless access controller 535. In some embodiments, the wireless access controller 535 configures the WAP 553 and controls policies used by the WAP 553. In such embodiments, the wireless access controller 535 sends WAP policies to the WAP 553 through the core switch 530. Any number of WAPs may execute in the branch site 500.
The core switch 530 connects to a rack switch 540, a managed wireless network switch 550, and an access switch 560 that connect to different types of endpoints in the branch site 500 and are configured by SDN servers (e.g., SDN managers and controllers) (not shown) operating at the branch site 500. The rack switch 540 connects to one or more servers 545. The managed wireless network switch 550 connects to a WAP 553, which provides communication between the managed wireless network switch 550 and wireless devices 555 at the branch site 500. The access switch 560 is a managed wired network switch (i.e., a switch that is managed by a set of SDN managers and controllers and that has physical ports for receiving Ethernet cables) that connects to the wired devices 565 at the branch site 500. The core switch 530 enables all endpoints 545, 555, and 565 to exchange data message flows with each other and with resources outside the branch site 500 (e.g., resources residing at the datacenter sites and clouds 502 and resources reachable over the Internet 504).
All of the wireless devices 555 and the wired devices 565 are in some embodiments part of one or more SD-WANs established for the branch office's entity. For instance, a first wireless device is in some embodiments part of a first SD-WAN, while a second wireless device is part of a second SD-WAN. While both devices reside in the same physical location (i.e., the same branch site 500), they may be in different virtual networks based on the identity of the user using that device.
In the branch site 610, the endpoints 611 include one or more of wireless devices and wired devices used by users in the branch site 610 (e.g., employees of the corporation at the branch site location). The endpoints 611 connect to the infrastructure switches 612. The infrastructure switches 612 are in some embodiments a set of managed switches configured by SDN servers (e.g., SDN managers and controllers) (not shown) operating at the branch site 610. The infrastructure switches 612 include in some embodiments, an MWN switch (e.g., through a secure WAP), a rack switch, an access switch (i.e., a managed wired network switch), and/or a core switch (such as the switches 530, 540, 550, and 560 in
The infrastructure switches 612 communicate with the SDEN control plane 616, which includes a cluster of one or more SDEN controllers for dynamically associating the endpoints 611 with different SD-WANs implemented for different user groups. For instance, an MWN switch of the infrastructure switches 612 in some embodiments requests the SDEN control plane 616 to retrieve MDM attributes (e.g., SD-WAN tenant IDs) from the MDM server 627 in the cloud 620. The SDEN control plane 616 provides the MDM attributes to the MWN switch for the MWN switch to embed them (e.g., encapsulate) them onto data message flows sent by wireless devices of the endpoints 611. As another example, an access switch (e.g., a managed wired network switch) of the infrastructure switches 612 in some embodiments requests the SDEN control plane 616 to retrieve MDM attributes (e.g., SD-WAN tenant IDs) from the MDM server 627 in the cloud 620. The SDEN control plane 616 provides the MDM attributes to the access switch for the access switch to embed them (e.g., encapsulate) them onto data message flows sent by wired devices of the endpoints 611.
In some embodiments, the SDEN control plane 616 allows for communications between the MDM server 627 and the SDN components 621-623. The SDEN control plane 616 communicates with the authentication server 625 in the cloud 620 to authenticate a user of one or more endpoints 611. The SDEN control plane 616 and authentication server 625 in some embodiments operate similarly to the SDEN servers 175 and authentication server 180 of
The authentication server 625 uses user identity information stored in the data store 626 to authenticate a user. In some embodiments, the data store 626 is a directory server (e.g., an Active Directory (AD) offered by Microsoft® Corporation) that stores directory service information, such as user and device information. The data store 626 is in some embodiments a centralized and hierarchical database. The authentication server 625 of some embodiments uses a protocol (e.g., Lightweight Directory Access Protocol (LDAP)) to access the data store 626.
The SDEN control plane 616 is managed by the SDEN management plane 628 residing in the cloud 620. In some embodiments, the SDEN management plane 628 includes a cluster of one or more management servers that manage the SDEN control plane 616 based on configuration data received from a network administrator. In some embodiments, the SDEN management plane 628 also manages the data store 626 and the MDM server 627. In the cloud 620, the SDN management plane 623 manages the SDN control plane 622 and the SDN edge node 621.
The infrastructure switches 612 also communicate with the router 613 in some embodiments. For instance, a core switch of the infrastructure switches 612 in some embodiments communicates directly with the router 613 for an MWN switch, rack switch, and access switch to communicate with the router 613. The router 613 connects to the edge appliance 615 to connect to the orchestration service 624. This connection provides a way for implementing multiple SD-WANs using the SDEN control plane 616 in the branch site 610 and the SDEN management plane 628 in the cloud 620. Further information regarding this connection will be described below. The edge appliance 615 is in some embodiments one part of an edge node (e.g., edge nodes 330-334) along with CE routers and/or broadband routers that use routing records to forward data messages to the cloud 520.
In some embodiments, the edge appliance 615 also connects to the SDN edge node 621 using a secure connection (e.g., a tunnel). While the edge appliance 615 is shown in this figure as connecting to components in a cloud site 620, in other embodiments, the edge appliance 615 connects to other edge nodes (e.g., edge appliances, T0 routers, etc.) in other branch sites, hub nodes in datacenter sites, and cloud gateways in other cloud sites.
In some embodiments, the router 613 connects to a T0 router 614 for implementing multiple logical networks. For instance, once the SDEN control plane 616 uses the MDM server 627 to identify which group to associate a particular endpoint 611. Using this information, the SDEN control plane 616 notifies the SDEN management plane 628 that the particular endpoint 611 needs logical network access to the cloud 620, so the SDEN management plane 628 relays this to the SDN management plane 623.
The SDN management plane 623 uses the SDN control plane 622 and the SDN edge node 621 to create a logical network connection (e.g., a secure channel, a tunnel (such as a Geneve tunnel)) between the SDN edge node 621 and the T0 router 614 at the branch site 610. In such embodiments, the branch site 610 communicates with the cloud 620 using this connection instead of communicating between the edge appliance 615 and the orchestration service 624. Although the T0 router 614 is illustrated here as communicating via a tunnel with an SDN edge node 621 in a cloud site 620, the T0 router 614 in other embodiments connect to other T0 routers or edge nodes in other branch sites, to bun nodes in datacenter sites, and to cloud gateways in cloud sites. These connections are in some embodiments established using tunnels (like the connection between the T0 router 614 and the SDN edge node 621) between the T0 router 614 and the other edge nodes, hub nodes, and cloud gateways in the other sites.
In some embodiments, the SDEN management plane 628 and the SDN management plane 623 are implemented as a single management plane in the cloud 620. Further information regarding this connection will be described below.
As described above, endpoints 611 of a branch site 610 can connect to an entity's shared network fabric using components residing in a cloud 620. In some embodiments, wired endpoints and wireless endpoints connect differently. Both scenarios will be further described below using specific examples. One of ordinary skill would understand that the flow of components described below is only an example way for the components to interact. Other permutations may be performed.
At 701, the wired endpoint 720 sends an Extensible Authentication Protocol (EAPOL) start request to the L3 switch 730. In some embodiments, the L3 switch 730 is a core switch of the branch site that the endpoint 720 accesses through an access switch (e.g., a managed wired network switch). The EAPOL start request is sent by the wired endpoint 720 when it wants to request access to the shared network fabric but does not know the MAC address of the authenticator (i.e., the SDEN controller cluster 740 in this example). After receiving the EAPOL start request, at 702, the L3 switch 730 provides an access request for the endpoint 720 to the SDEN controller cluster 740. In some embodiments, the SDEN controller cluster 740 is a set of one or more controllers operating as the SDEN control plane at the same branch site as the wired endpoint 720. The access request in some embodiments includes a set of attributes related to the wired endpoint 720 and/or the user using the endpoint. For instance, the set of attributes can include a MAC address of the endpoint 720 and a set of credentials (e.g., a username and password) for the user.
After receiving the access request, at 703, the SDEN controller cluster 740 sends a network policy request to the SDEN management plane 750. The SDEN management plane 750 of some embodiments resides in a cloud of the shared network fabric (such as the SDEN management plane 628 of
At 704, the SDEN management plane 750 sends an identity request to the MDM server set 760. The MDM server set 760 resides in the cloud along with the SDEN management plane 750. In some embodiments, the identity request includes the MAC address of the wired endpoint 720 for the MDM server set 760 to determine which group the endpoint belongs. In other embodiments, the identity request includes the user's credentials for the MDM server set 760 to determine which group the user belongs. Still, in other embodiments, the identity request includes both the endpoint's MAC address and the user's credentials for the MDM server set 760 to determine which group the user and the endpoint belong.
At 705, the MDM server set 760 provides an identity response to the SDEN management plane 750. In some embodiments, the identity response includes a group ID specifying the user and/or endpoint's group. After receiving the identity response, at 706, the SDEN management plane 750 uses the group ID to determine the network policy for the wired endpoint 720, and provides the network policy to the SDEN controller 740.
Using the received network policy, at 707, the SDEN controller cluster 740 updates the network policy. For example, the SDEN controller cluster 740 of some embodiments, updates a mapping between the endpoint's MAC address and an SD-WAN tenant ID associated with the received group ID. The SDEN controller cluster 740 of some embodiments also updates an access control list (ACL) and/or a Quality-of-Service (QOS) associated with the network policy.
At 708, the SDEN controller cluster 740 sends an access accept message to the L3 switch 730 to notify that the endpoint's access request has been accepted. In some embodiments, the SDEN controller cluster 740 also provides an ACL and/or QoS update to the L3 switch 730. Lastly, at 709, the L3 switch 730 sends an EAPOL success message to the wired endpoint 720. After this message has been sent, the wired endpoint 720 is able to connect to the shared network fabric using the correct virtual network with which it is associated.
In some embodiments, wireless endpoints connect to the shared network fabric differently than wired endpoints.
At 801, the wireless endpoint 820 sends an EAPOL start request to the L3 switch 830. In some embodiments, the L3 switch 830 is a core switch of the branch site that the endpoint 820 accesses through a WAP and a managed wireless network switch. The EAPOL start request is sent by the wireless endpoint 820 when it wants to request access to the shared network fabric but does not know the MAC address of the authenticator (i.e., the authentication server 850 in this example). After receiving the EAPOL start request, at 802, the L3 switch 830 provides an access request for the endpoint 820 to the SDEN controller cluster 840. In some embodiments, the SDEN controller cluster 840 is a set of one or more controllers operating as the SDEN control plane at the same branch site as the wireless endpoint 820. The access request in some embodiments includes a set of attributes related to the wireless endpoint 820 and/or the user using the endpoint. For instance, the set of attributes can include a MAC address of the endpoint 820 and a set of credentials (e.g., a username and password) for the user.
At 803, the SDEN controller cluster 840 sends an access request to the authentication server 850. In some embodiments, the authentication server 850 resides in a cloud site of the shared network fabric (such as the authentication server 625 of
After receiving the access accept message, at 805, the SDEN controller cluster 840 sends a network policy request to the SDEN management plane 860. The SDEN management plane 860 of some embodiments resides in a cloud along with the authentication server 850 (such as the SDEN management plane 628 of
At 806, the SDEN management plane 860 sends an identity request to the MDM server set 870. The MDM server set 870 resides in the cloud along with the SDEN management plane 860 and the authentication server 850. In some embodiments, the identity request includes the MAC address of the wireless endpoint 820 for the MDM server set 870 to determine which group the endpoint belongs. In other embodiments, the identity request includes the user's credentials for the MDM server set 870 to determine which group the user belongs. Still, in other embodiments, the identity request includes both the endpoint's MAC address and the user's credentials for the MDM server set 870 to determine which group the user and the endpoint belong.
At 807, the MDM server set 870 provides an identity response to the SDEN management plane 860. In some embodiments, the identity response includes a group ID specifying the user and/or endpoint's group. After receiving the identity response, at 808, the SDEN management plane 860 uses the group ID to determine the network policy for the wireless endpoint 820, and provides the network policy to the SDEN controller cluster 840.
Using the received network policy, at 809, the SDEN controller cluster 840 updates the network policy. For example, the SDEN controller cluster 840 of some embodiments, updates a mapping between the endpoint's MAC address and an SD-WAN tenant ID associated with the received group ID. The SDEN controller cluster 840 of some embodiments also updates an ACL and/or a QoS associated with the network policy.
At 810, the SDEN controller cluster 840 sends an access accept message to the L3 switch 830 to notify that the endpoint's access request has been accepted. In some embodiments, the SDEN controller cluster 840 also provides an ACL and/or QoS update to the L3 switch 830. Lastly, at 811, the L3 switch 830 sends an EAPOL success message to the wireless endpoint 820. After this message has been sent, the wireless endpoint 820 is able to connect to the shared network fabric using the correct virtual network with which it is associated.
In some embodiments, a simpler branch site or a home office of the shared network fabric does not include many of the same components as a larger branch site (such as the branch site 500 of
In this example, the remote site 900 communicates with one or more datacenter sites and one or more cloud sites 902 through a broadband router 910. In some embodiments, the broadband router 910 is a standalone physical router or customer premises equipment (CPE) to connect to other resources in other sites or the Internet 904. In other embodiments, it is a software router executing on a host computer in the remote site 900. The remote site 900 also communicates with the Internet 904. In some embodiments, one or more cloud sites 902 include one or more MDM servers (not shown) for use by the remote site 900.
The broadband router 910 of some embodiments connects directly to non-entity devices 920 residing in the remote site 900. Non-entity devices 920 in some embodiments include wired and/or wireless personal devices of the user (i.e., not authorized for use of the datacenter sites and clouds 902 by the user) or devices of non-users at the remote site 900 (e.g., guests or family members of the user). The broadband router 910 connects to an SD-WAN edge appliance 930 in the remote site 900. In some embodiments, the SD-WAN edge appliance 930 operates as a standalone computer. In other embodiments, it runs as a software edge node on a host computer in the remote site 900.
In some embodiments, the SD-WAN edge appliance 930 includes a router that performs the data message forwarding operations of the SD-WAN edge appliance. In such embodiments, the next-hop forwarding records of the SD-WAN edge appliance 930 are routing records used by the router to forward data messages to the datacenter sites and clouds 902.
In some embodiments, the SD-WAN edge appliance 930 includes two or more edge devices, with each edge device connected to the datacenter sites and clouds 902 through different communication service providers (e.g., an MPLS device, a cable modem router, a 5G router, etc.). In some of these embodiments, the edge devices of the SD-WAN edge appliance 930 connect to each other using a physical cable link.
The SD-WAN edge appliance 930 connects to entity devices 940 residing in the remote site 900. Entity devices 940 in some embodiments include wired and/or wireless devices that are authorized to access the datacenter sites and cloud sites 902 of the entity. For example, work-designated devices of an employee of a corporation are entity devices.
The entity devices 940 are in some embodiments part of one or more SD-WANs established for the remote office's entity. For instance, a first entity device is in some embodiments part of a first SD-WAN, while a second entity device is part of a second SD-WAN. While both devices reside in the same physical location (i.e., the same remote site 900), they may be in different virtual networks based on the identity of the user using that device. In some embodiments, non-entity devices 920 are also part of one or more SD-WANs established for the remote office's entity. For example, the entity of some embodiments includes one or more SD-WANs for devices not belonging to the entity in order to isolate entity traffic from non-entity traffic.
In the remote site 1010, the endpoints 1011 include one or more of wired devices and wireless devices used by users in the remote site 1010. The endpoints 1011 connect to the edge appliance 1012. In some embodiments, the endpoints 1011 are placed in an SD-WAN based on the endpoint's MAC address and/or the user's group identity (e.g., the user's responsibility and role within the corporation). User group identities are maintained by the MDM server 1027 in the cloud 1020.
The edge appliance 1012 communicates with the SDEN control plane 1014, which includes a cluster of one or more SDEN controllers for dynamically associating the endpoints 1011 with different SD-WANs implemented for different user groups. In some embodiments, the SDEN control plane 1014 allows for communications between the MDM server 1027 and the SDN components 1021-1023. The SDEN control plane 1014 communicates with the authentication server 1025 in the cloud 1020 to authenticate a user of one or more endpoints 1011. The SDEN control plane 1014 and authentication server 1025 in some embodiments operate similarly to the SDEN servers 175 and authentication server 180 of
The authentication server 1025 uses user identity information stored in the data store 1026 to authenticate a user. In some embodiments, the data store 1026 is a directory server (e.g., an AD offered by Microsoft® Corporation) that stores directory service information, such as user and device information. The data store 1026 is in some embodiments a centralized and hierarchical database. The authentication server 1025 of some embodiments uses a protocol (e.g., (LDAP) to access the data store 1026.
The SDEN control plane 1014 is managed by the SDEN management plane 1028 residing in the cloud 1020. In some embodiments, the SDEN management plane 1028 includes a cluster of one or more management servers that manage the SDEN control plane 1014 based on configuration data received from a network administrator. In some embodiments, the SDEN management plane 1028 also manages the data store 1026 and the MDM server 1027. In the cloud 1020, the SDN management plane 1023 manages the SDN control plane 1022 and the SDN edge node 1021.
The edge appliance 1012 also connects to the orchestration service 1024. This connection provides a way for implementing multiple SD-WANs using the SDEN control plane 1014 in the remote site 1010 and the SDEN management plane 1028 in the cloud 1020. Further information regarding this connection will be described below.
In some embodiments, the edge appliance 1012 includes a router that performs the data message forwarding operations of the edge appliance. In such embodiments, the next-hop forwarding records of the edge appliance 1012 are routing records used by the router to forward data messages to the cloud 1020.
In some embodiments, the edge appliance 1012 includes two or more edge devices, with each edge device connected to the cloud 1020 through different communication service providers (e.g., an MPLS device, a cable modem router, a 5G router, etc.). In some of these embodiments, the edge devices of the edge appliance 1012 connect to each other using a physical cable link.
In some embodiments, the edge appliance 1012 connects to a T0 router 1013 for implementing multiple logical networks. For instance, once the SDEN control plane 1014 uses the MDM server 1027 to identify which group to associate a particular endpoint 1011. Using this information, the SDEN control plane 1014 notifies the SDEN management plane 1028 that the particular endpoint 1011 needs logical network access to the cloud 1020, so the SDEN management plane 1028 relays this to the SDN management plane 1023.
The SDN management plane 1023 uses the SDN control plane 1022 and the SDN edge node 1021 to create a logical network connection (e.g., a secure channel, a tunnel (such as a Geneve tunnel)) between the SDN edge node 1021 and the T0 router 1013 at the remote site 1010. In such embodiments, the remote site 1010 communicates with the cloud using this connection instead of communicating between the edge appliance 1012 and the orchestration service 1024. In some of these embodiments, the SDEN management plane 1028 and the SDN management plane 1023 are implemented as a single management plane in the cloud 1020. Further information regarding this connection will be described below.
As described above, endpoints 1011 of a remote site 1010 can connect to an entity's shared network fabric using components residing in a cloud 1020. In some embodiments, wired endpoints and wireless endpoints of a remote site connect differently. Both scenarios will be further described below using specific examples. One of ordinary skill would understand that the flow of components described below is only an example way for the components to interact. Other permutations may be performed.
At 1101, the wired endpoint 1120 sends an EAPOL start request to the SD-WAN edge appliance 1130. The EAPOL start request is sent by the wired endpoint 1120 when it wants to request access to the shared network fabric but does not know the MAC address of the authenticator (i.e., the SDEN controller cluster 1140 in this example). After receiving the EAPOL start request, at 1102, the SD-WAN edge appliance 1130 provides an access request for the endpoint 1120 to the SDEN controller cluster 1140. In some embodiments, the SDEN controller cluster 1140 is a set of one or more controllers operating as the SDEN control plane at the same branch site as the wired endpoint 1120. The access request in some embodiments includes a set of attributes related to the wired endpoint 1120 and/or the user using the endpoint. For instance, the set of attributes can include a MAC address of the endpoint 1120 and a set of credentials (e.g., a username and password) for the user.
After receiving the access request, at 1103, the SDEN controller cluster 1140 sends a network policy request to the SDEN management plane 1150. The SDEN management plane 1150 of some embodiments resides in a cloud of the shared network fabric (such as the SDEN management plane 1028 of
At 1104, the SDEN management plane 1150 sends an identity request to the MDM server set 1160. The MDM server set 1160 resides in the cloud along with the SDEN management plane 1150. In some embodiments, the identity request includes the MAC address of the wired endpoint 1120 for the MDM server set 1160 to determine which group the endpoint belongs. In other embodiments, the identity request includes the user's credentials for the MDM server set 1160 to determine which group the user belongs. Still, in other embodiments, the identity request includes both the endpoint's MAC address and the user's credentials for the MDM server set 1160 to determine which group the user and the endpoint belong.
At 1105, the MDM server set 1160 provides an identity response to the SDEN management plane 1150. In some embodiments, the identity response includes a group ID specifying the user and/or endpoint's group. After receiving the identity response, at 1106, the SDEN management plane 1150 provides the policy request to the SD-WAN orchestrator 1170. The SD-WAN orchestrator 1170 of some embodiments resides in a cloud of the shared network fabric along with the SDEN management plane 1150. In some embodiments, the policy request sent at 1106 includes the group ID determined by the MDM server set 1160. At 1107, the SD-WAN orchestrator 1170 determines the network policy for the endpoint 1120 and provides a policy response to the SDEN management plane 1150 and the SD-WAN edge appliance 1130.
At 1108, the SDEN management plane 1150 provides the policy response to the SDEN controller cluster 1140. Using the received network policy, at 1109, the SDEN controller cluster 1140 updates the network policy. For example, the SDEN controller cluster 1140 of some embodiments, updates a mapping between the endpoint's MAC address and an SD-WAN tenant ID associated with the received group ID. The SDEN controller cluster 1140 of some embodiments also updates an ACL and/or a QoS associated with the network policy.
At 1110, the SDEN controller cluster 1140 sends an access accept message to the SD-WAN edge appliance 1130 to notify that the endpoint's access request has been accepted. In some embodiments, the SDEN controller cluster 1140 also provides an ACL and/or QoS update to the SD-WAN edge appliance 1130. Lastly, at 1111, the SD-WAN edge appliance 1130 sends an EAPOL success message to the wired endpoint 1120. After this message has been sent, the wired endpoint 1120 is able to connect to the shared network fabric using the correct virtual network with which it is associated.
In some embodiments, wireless endpoints of a remote site connect to the shared network fabric differently than wired endpoints.
At 1201, the wireless endpoint 1220 sends an EAPOL start request to the SD-WAN edge appliance 1230. The EAPOL start request is sent by the wireless endpoint 1220 when it wants to request access to the shared network fabric but does not know the MAC address of the authenticator (i.e., the authentication server 1250 in this example). After receiving the EAPOL start request, at 1202, the SD-WAN edge appliance 1230 provides an access request for the endpoint 1220 to the SDEN controller cluster 1240. In some embodiments, the SDEN controller cluster 1240 is a set of one or more controllers operating as the SDEN control plane at the same remote site as the wireless endpoint 1220. The access request in some embodiments includes a set of attributes related to the wireless endpoint 1220 and/or the user using the endpoint. For instance, the set of attributes can include a MAC address of the endpoint 1220 and a set of credentials (e.g., a username and password) for the user.
At 1203, the SDEN controller cluster 1240 sends an access request to the authentication server 1250. In some embodiments, the authentication server 1250 resides in a cloud site of the shared network fabric (such as the authentication server 1025 of
After receiving the access accept message, at 1205, the SDEN controller cluster 1240 sends a network policy request to the SDEN management plane 1260. The SDEN management plane 1260 of some embodiments resides in a cloud along with the authentication server 1250 (such as the SDEN management plane 1028 of
At 1206, the SDEN management plane 1260 sends an identity request to the MDM server set 1270. The MDM server set 1270 resides in the cloud along with the SDEN management plane 1260 and the authentication server 1250. In some embodiments, the identity request includes the MAC address of the wireless endpoint 1220 for the MDM server set 1270 to determine which group the endpoint belongs. In other embodiments, the identity request includes the user's credentials for the MDM server set 1270 to determine which group the user belongs. Still, in other embodiments, the identity request includes both the endpoint's MAC address and the user's credentials for the MDM server set 1270 to determine which group the user and the endpoint 1220 belong.
At 1207, the MDM server set 1270 provides an identity response to the SDEN management plane 1260. In some embodiments, the identity response includes a group ID specifying the user and/or endpoint's group. After receiving the identity response, at 1208, the SDEN management plane 1260 provides the policy request to the SD-WAN orchestrator 1280. The SD-WAN orchestrator 1280 of some embodiments resides in a cloud of the shared network fabric along with the SDEN management plane 1260. In some embodiments, the policy request sent at 1208 includes the group ID determined by the MDM server set 1270. At 1209, the SD-WAN orchestrator 1280 determines the network policy for the endpoint 1220 and provides a policy response to the SDEN management plane 1260 and the SD-WAN edge appliance 1230.
At 1210, the SDEN management plane 1260 provides the policy response to the SDEN controller cluster 1240. Using the received network policy, at 1211, the SDEN controller cluster 1240 updates the network policy. For example, the SDEN controller cluster 1240 of some embodiments, updates a mapping between the endpoint's MAC address and an SD-WAN tenant ID associated with the received group ID. The SDEN controller cluster 1240 of some embodiments also updates an ACL and/or a QoS associated with the network policy.
At 1212, the SDEN controller cluster 1240 sends an access accept message to the SD-WAN edge appliance 1230 to notify that the endpoint's access request has been accepted. In some embodiments, the SDEN controller cluster 1240 also provides an ACL and/or QoS update to the SD-WAN edge appliance 1230. Lastly, at 1213, the SD-WAN edge appliance 1230 sends an EAPOL success message to the wireless endpoint 1220. After this message has been sent, the wireless endpoint 1220 is able to connect to the shared network fabric using the correct virtual network with which it is associated.
As discussed previously, a site (e.g., a branch site, a remote site, etc.) of some embodiments, that implements multiple SD-WANs, connects to a cloud site using an edge appliance and an orchestration service facilitated by an SDN management plane in the cloud and an SDN control plane at the site.
In some embodiments, at least two different SD-WANs are implemented for at least two different groups of the entity. These groups are in some embodiments different user groups of the entity. These groups in other embodiments are different device groups of the entity. The groups in other embodiments are a combination of user and device groups of the entity. The process 1300 will be described in relation to the components of
The process 1300 begins by identifying (at 1305) a particular mobile device that needs to connect to an SD-WAN of the shared network fabric. In some embodiments, the SDEN control plane 616 receives, through the set of infrastructure switches 612 (e.g., through an MWN switch), a request from the particular mobile device (i.e., an endpoint 611) to connect to the entity's shared network fabric. This request includes at least one of a MAC address of the mobile device and a set of user credentials (e.g., a username and password) for the user of the mobile device.
Next, the process 1300 authenticates (at 1310) the particular mobile device. In some embodiments, the SDEN control plane 616 uses the authentication server 625 in the cloud 620 to authenticate the mobile device. In other embodiments, the SDEN control plane 616 uses a different authentication server operating in the branch site 610. The mobile device is authenticated in some embodiments based on its MAC address. For instance, the authentication server 625 can use the data store 626 to retrieve a policy associated with the MAC address to determine whether the device itself is allowed to access the shared network fabric.
In other embodiments, the authentication server 625 uses the user's authentication credentials to determine (e.g., based on a policy stored in the data store 626) whether the user is allowed to access the shared network fabric. Still, in other embodiments, the authentication server 625 uses both the MAC address and the user's authentication credentials to authenticate the mobile device. In some embodiments, authentication of the mobile device is not necessary, and the step 1310 is not performed.
At 1315, the process 1300 uses a set of one or more MDM servers to identify an MDM group with which the particular mobile device is associated. Using the MDM server set 627, the SDEN control plane 616 of some embodiments determines to which device group the mobile device belongs. In such embodiments, the SDEN control plane 616 provides the device's MAC address to the MDM server set 627 to determine the device group. A device group is in some embodiments defined based on the device type, such as a first group for laptops, a second group for smartphones, a third group for tablets, etc.
In other embodiments, the SDEN control plane 616 determines to which user group the user of the mobile device belongs. In such embodiments, the SDEN control plane 616 provides the user's credentials to the MDM server set 627 to determine the user group. The SDEN control plane 616 also provides the device's MAC address along with the user's credentials to identify the user group. In some embodiments, a user group is a group of members of the entity that share a set of characteristics. The set of characteristics in some embodiments include at least one of a shared responsibility for the entity, a shared role within the entity, and a shared subgroup of the entity.
After identifying the MDM group, the process 1300 uses (at 1320) the identified MDM group to identify a particular LAN at the first site for the particular mobile device to connect to network resources of the first site that are connected to the particular LAN. In some embodiments, the particular LAN includes the infrastructure switch set 612, the router 613, and the edge appliance 615 of the branch site 610. Using these components, the mobile device is able to connect to network resources within the branch site 610. In some embodiments, the network resources include one or more of servers (e.g., VMs, containers, Pods, etc.), applications, middlebox services (e.g., firewall services, network address translation services, load balancing services, etc.), and forwarding elements (e.g., routers, switches, etc.).
Lastly, the process 1300 uses (at 1325) the identified MDM group to identify a particular SD-WAN for the particular mobile device to use to connect to the second site to have access to a set of one or more network resources at the second site. In some embodiments, the SDEN control plane 616 uses the SDEN management plane 628 to connect the edge appliance 615 in the branch site 610 to the orchestration server 624 in the cloud 620 in order to connect the two sites. In such embodiments, the SDEN control plane 616 notifies the SDEN management plane 628 that the mobile device needs an SD-WAN connection to connect to the cloud 620, and the SDEN management plane 628 directs the orchestration service 624 to connect to the edge appliance 615. The particular LAN is in some embodiments a first logical network of several logical networks implemented at the branch site for several different groups of mobile devices. These logical networks are implemented in some embodiments to isolate data message flows between the different groups. After identifying the particular SD-WAN to connect the particular mobile device to the second site, the process 1300 ends.
In some embodiments, a first site (e.g., a branch site, a remote site, etc.), that implements multiple logical networks, connects to a second site using a connection between a TO router and an SDN edge node facilitated by an SDN management plane in the second site and an SDN control plane at the first site.
In some embodiments, at least two different logical networks are implemented for at least two different groups of the entity. These groups are in some embodiments different user groups of the entity. These groups in other embodiments are different device groups of the entity. The groups in other embodiments are a combination of user and device groups of the entity. The process 1400 will be described in relation to the components of
The process 1400 begins by identifying (at 1405) a particular mobile device that needs to connect to a logical network of the shared network fabric of an entity. In some embodiments, the SDEN control plane 616 receives, through the set of infrastructure switches 612 (e.g., through an MWN switch), a request from the particular mobile device (i.e., an endpoint 611) to connect to the entity's shared network fabric. This request includes at least one of a MAC address of the mobile device and a set of user credentials (e.g., a username and password) for the user of the mobile device.
Next, the process 1400 authenticates (at 1410) the particular mobile device. In some embodiments, the SDEN control plane 616 uses the authentication server 625 in the cloud 620 to authenticate the mobile device. In other embodiments, the SDEN control plane 616 uses a different authentication server operating in the branch site 610. The mobile device is authenticated in some embodiments based on its MAC address. For instance, the authentication server 625 can use the data store 626 to retrieve a policy associated with the MAC address to determine whether the device itself is allowed to access the shared network fabric.
In other embodiments, the authentication server 625 uses the user's authentication credentials to determine (e.g., based on a policy stored in the data store 626) whether the user is allowed to access the shared network fabric. Still, in other embodiments, the authentication server 625 uses both the MAC address and the user's authentication credentials to authenticate the mobile device. In some embodiments, authentication of the mobile device is not necessary, and the step 1410 is not performed.
At 1415, the process 1400 uses a set of one or more MDM servers to identify an MDM group with which the particular mobile device is associated. Using the MDM server set 627, the SDEN control plane 616 of some embodiments determines to which device group the mobile device belongs. In such embodiments, the SDEN control plane 616 provides the device's MAC address to the MDM server set 627 to determine the device group. A device group is in some embodiments defined based on the device type, such as a first group for laptops, a second group for smartphones, a third group for tablets, etc.
In other embodiments, the SDEN control plane 616 determines to which user group the user of the mobile device belongs. In such embodiments, the SDEN control plane 616 provides the user's credentials to the MDM server set 627 to determine the user group. The SDEN control plane 616 also provides the device's MAC address along with the user's credentials to identify the user group. In some embodiments, a user group is a group of members of the entity that share a set of characteristics. The set of characteristics in some embodiments include at least one of a shared responsibility for the entity, a shared role within the entity, and a shared subgroup of the entity.
After identifying the MDM group, the process 1400 uses (at 1420) the identified MDM group to identify a first LNI associated with a first logical network that is defined over a shared network fabric at the first site for the particular mobile device to connect to network resources of the first site that are connected to the first logical network. In some embodiments, in identifying the MDM group, the SDEN control plane 616 receives from the MDM server set 627 an MDM group ID for the MDM group. In such embodiments, the SDEN control plane 616 uses the MDM group ID to identify the first LNI for the first logical network associated with that group.
In some embodiments, the identified first logical network includes the infrastructure switch set 612, router 613, and T0 router 614. Using these components, the mobile device is able to connect to network resources (e.g., using a secure connection or a tunnel) within the branch site 610. In some embodiments, the network resources include one or more of servers (e.g., VMs, containers, Pods, etc.), applications, middlebox services (e.g., firewall services, network address translation services, load balancing services, etc.), and forwarding elements (e.g., routers, switches, etc.).
At 1425, the process 1400 uses the identified MDM group to identify a second LNI associated with a second logical network connecting a first edge gateway at the first site to a second edge gateway at a second site of the entity. The second logical network identified by the second LNI in some embodiments (1) spans the first and second sites and (2) connects the mobile device at the first site to the set of network resources at the second site. In some embodiments, the first LNI is the same as the second LNI, as the first and second logical networks are one network. In other embodiments, the first LNI is different than the second LNI, as the first and second logical networks are two different logical networks with the first logical network being a logical LAN and the second logical network being a logical WAN. The logical LAN spans only the first site (i.e., the branch site 610), while the logical WAN spans at least the first and second sites (i.e., the branch site 610 and the cloud site 620).
This step 105 is in some embodiments facilitated by the SDEN control plane 616 using the SDEN management plane 628 and the SDN management plane 623. For example, the SDEN control plane 616 of some embodiments notifies the SDEN management plane 628 of the second logical network needed to connect the branch site 610 to the cloud site 620. The SDEN management plane 628 notifies the SDN management plane 623 that the mobile device needs logical network access to the cloud 620.
The SDN management plane 623 uses the SDN control plane 622 and the SDN edge node 621 to create the second logical network between the SDN edge node 621 and the TO router 614 at the branch site 610. In some of these embodiments, the SDEN management plane 628 and the SDN management plane 623 are implemented as a single management plane in the cloud 620. In some embodiments, the second logical network connects the particular mobile device to a set of one or more network resources at the cloud site. Such network resources in some embodiments include servers, applications, middlebox services, and forwarding elements in the cloud 620. Because data message flows associated with the mobile device are routed between the T0 router 614 and the SDN edge node 621, the mobile device can be seen as in the same overlay network as the network resources in the cloud 620.
Lastly, the process 1400 inserts (at 1430) the second LNI in an encapsulation header that encapsulates data messages sent from the particular mobile device to a set of one or more network resources at the second site. In some embodiments, the encapsulation header is a tunnel header used to send the data messages from the first edge gateway (i.e., the T0 router 614) to the second edge gateway (i.e., the SDN edge node 621) through a tunnel established between the first and second edge gateways. This tunnel connects the first and second sites so that the mobile device is able to access the set of network resources at the second site. Because the data messages sent from the mobile device are sent using a secure connection (i.e., a tunnel), the mobile device can be seen as in the same overlay network as the set of network resources in the second site.
In some embodiments, the second LNI is inserted into the encapsulating header by the T0 router 614 operating at the branch site 610 to forward the encapsulated data messages to the SDN edge node 621 at the cloud site 620. In some embodiments, this encapsulation header is a first tunnel header and the data messages sent to the second site are a first set of data messages. In such embodiments, the process 1400 also inserts the first LNI in a second encapsulation header that encapsulates a second set of data messages sent from the mobile device to the network resources of the first site. The second encapsulation header is also a tunnel header used to send the second set of data messages through a tunnel or a secure connection in some embodiments. After inserting the second LNI to send data messages from the mobile device to the network resources at the second site, the process 1400 ends.
Many of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium). When these instructions are executed by one or more processing unit(s) (e.g., one or more processors, cores of processors, or other processing units), they cause the processing unit(s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, RAM chips, hard drives, EPROMs, etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage, which can be read into memory for processing by a processor. Also, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described here is within the scope of the invention. In some embodiments, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
The bus 1505 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the computer system 1500. For instance, the bus 1505 communicatively connects the processing unit(s) 1510 with the read-only memory 1530, the system memory 1525, and the permanent storage device 1535.
From these various memory units, the processing unit(s) 1510 retrieve instructions to execute and data to process in order to execute the processes of the invention. The processing unit(s) may be a single processor or a multi-core processor in different embodiments. The read-only-memory (ROM) 1530 stores static data and instructions that are needed by the processing unit(s) 1510 and other modules of the computer system. The permanent storage device 1535, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the computer system 1500 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 1535.
Other embodiments use a removable storage device (such as a flash drive, etc.) as the permanent storage device. Like the permanent storage device 1535, the system memory 1525 is a read-and-write memory device. However, unlike storage device 1535, the system memory is a volatile read-and-write memory, such a random access memory. The system memory stores some of the instructions and data that the processor needs at runtime. In some embodiments, the invention's processes are stored in the system memory 1525, the permanent storage device 1535, and/or the read-only memory 1530. From these various memory units, the processing unit(s) 1510 retrieve instructions to execute and data to process in order to execute the processes of some embodiments.
The bus 1505 also connects to the input and output devices 1540 and 1545. The input devices enable the user to communicate information and select commands to the computer system. The input devices 1540 include alphanumeric keyboards and pointing devices (also called “cursor control devices”). The output devices 1545 display images generated by the computer system. The output devices include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD). Some embodiments include devices such as a touchscreen that function as both input and output devices.
Finally, as shown in
Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra-density optical discs, and any other optical or magnetic media. The computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some embodiments are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself.
As used in this specification, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification, the terms “computer readable medium,” “computer readable media,” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral or transitory signals.
While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. In addition, a number of the figures (including
Claims
1. A method for dynamically associating mobile devices with different logical networks implemented on a shared network fabric of an entity, wherein at least two different logical networks are implemented for at least two different groups of the entity, the method comprising:
- at a first site of the entity: authenticating a particular mobile device; using one or more mobile device management (MDM) servers to identify an MDM group with which the particular mobile device is associated, wherein using the one or more MDM servers to identify the MDM group comprises providing a media access control (MAC) address of the particular mobile device to the one or more MDM servers to identify a device group to which the particular mobile device belongs; using the identified MDM group to identify a first logical network that is defined over the shared network fabric at the first site for the particular mobile device to connect to network resources of the first site that are connected to the first logical network; using the identified MDM group to identify a logical network identifier (LNI) associated with a second logical network connecting a first edge gateway at the first site to a second edge gateway at a second site of the entity; and inserting the LNI in an encapsulation header that encapsulates data messages sent from the particular mobile device to one or more network resources at the second site.
2. The method of claim 1, wherein the encapsulation header is a tunnel encapsulation header that is used to send the data messages from the first edge gateway to the second edge gateway through a tunnel established between the first and second edge gateways.
3. The method of claim 1, wherein the first logical network has an associated LNI and the first logical network LNI is the same as the second logical network LNI, as the first and second logical networks are one network.
4. The method of claim 1, wherein the first logical network has an associated LNI and the first logical network LNI is different than the second logical network LNI, as the first and second logical networks are two different logical networks with the first logical network being a logical local area network (LAN) and the second logical network being a logical wide area network (WAN).
5. The method of claim 4, wherein the encapsulation header is a first encapsulation header and the data messages are a first set of data messages, the method further comprising inserting the first logical network LNI in a second encapsulation header that encapsulates a second set of data messages sent from the particular mobile device to the network resources of the first site.
6. The method of claim 4, wherein using the one or more MDM servers to identify the MDM group further comprises receiving an MDM group identifier (ID) for the MDM group from the one or more MDM servers.
7. The method of claim 6, wherein:
- using the identified MDM group to identify the first logical network comprises determining that the MDM group ID is associated with the first logical network LNI, and
- using the identified MDM group to identify the second logical network LNI associated with the second logical network comprises determining that the MDM group ID is associated with the second logical network LNI.
8. The method of claim 1, wherein authenticating the particular mobile device comprises:
- receiving a set of authentication credentials from the particular mobile device; and
- using the set of authentication credentials to authenticate the particular mobile device.
9. The method of claim 8, wherein the set of authentication credentials comprises a username and password of a user of the particular mobile device.
10. The method of claim 8, wherein authenticating the particular mobile device comprises directing an authentication server operating at the first site to authenticate the particular mobile device.
11. The method of claim 8, wherein authenticating the particular mobile device comprises providing the set of authentication credentials to an authentication server operating at the second site to authenticate the particular mobile device.
12. The method of claim 1, wherein the network resources of the first site and the one or more network resources at the second site each comprise one or more of servers, applications, middlebox services, and forwarding elements.
13. The method of claim 1, wherein the at least two different groups of the entity comprise different user groups of the entity.
14. The method of claim 1, wherein the at least two different groups of the entity comprise different device groups of the entity.
15. The method of claim 1, wherein the device group comprises devices of a same type.
16. The method of claim 15, wherein the same type is one of a laptop, smartphone, or tablet.
17. The method of claim 1, wherein using the one or more MDM servers to identify the MDM group further comprises providing a set of authentication credentials associated with a user of the particular mobile device to the one or more MDM servers to identify a user group to which the user belongs.
18. The method of claim 1, wherein the first site is a branch site of the entity and the second site is a cloud site of the entity.
19. A non-transitory machine readable medium storing a program for execution by at least one processing unit for dynamically associating mobile devices with different logical networks implemented on a shared network fabric of an entity, wherein at least two different logical networks are implemented for at least two different groups of the entity, the program comprising sets of instructions for:
- at a first site of the entity: authenticating a particular mobile device; using one or more mobile device management (MDM) servers to identify an MDM group with which the particular mobile device is associated, using the one or more MDM servers to identify the MDM group comprising providing a media access control (MAC) address of the particular mobile device to the one or more MDM servers to identify a device group to which the particular mobile device belongs; using the identified MDM group to identify a first logical network that is defined over the shared network fabric at the first site for the particular mobile device to connect to network resources of the first site that are connected to the first logical network; using the identified MDM group to identify a logical network identifier (LNI) associated with a second logical network connecting a first edge gateway at the first site to a second edge gateway at a second site of the entity; and inserting the LNI in an encapsulation header that encapsulates data messages sent from the particular mobile device to one or more network resources at the second site.
20. The non-transitory machine readable medium of claim 19, wherein the encapsulation header is a tunnel encapsulation header that is used to send the data messages from the first edge gateway to the second edge gateway through a tunnel established between the first and second edge gateways.
| 5652751 | July 29, 1997 | Sharony |
| 5909553 | June 1, 1999 | Campbell et al. |
| 6154465 | November 28, 2000 | Pickett |
| 6157648 | December 5, 2000 | Voit et al. |
| 6201810 | March 13, 2001 | Masuda et al. |
| 6363378 | March 26, 2002 | Conklin et al. |
| 6445682 | September 3, 2002 | Weitz |
| 6744775 | June 1, 2004 | Beshai et al. |
| 6976087 | December 13, 2005 | Westfall et al. |
| 7003481 | February 21, 2006 | Banka et al. |
| 7280476 | October 9, 2007 | Anderson |
| 7313629 | December 25, 2007 | Nucci et al. |
| 7320017 | January 15, 2008 | Kurapati et al. |
| 7373660 | May 13, 2008 | Guichard et al. |
| 7581022 | August 25, 2009 | Griffin et al. |
| 7680925 | March 16, 2010 | Sathyanarayana et al. |
| 7681236 | March 16, 2010 | Tamura et al. |
| 7751409 | July 6, 2010 | Carolan |
| 7962458 | June 14, 2011 | Holenstein et al. |
| 8094575 | January 10, 2012 | Vadlakonda et al. |
| 8094659 | January 10, 2012 | Arad |
| 8111692 | February 7, 2012 | Ray |
| 8141156 | March 20, 2012 | Mao et al. |
| 8224971 | July 17, 2012 | Miller et al. |
| 8228928 | July 24, 2012 | Parandekar et al. |
| 8243589 | August 14, 2012 | Trost et al. |
| 8259566 | September 4, 2012 | Chen et al. |
| 8274891 | September 25, 2012 | Averi et al. |
| 8301749 | October 30, 2012 | Finklestein et al. |
| 8385227 | February 26, 2013 | Downey |
| 8516129 | August 20, 2013 | Skene |
| 8566452 | October 22, 2013 | Goodwin, III et al. |
| 8588066 | November 19, 2013 | Goel et al. |
| 8630291 | January 14, 2014 | Shaffer et al. |
| 8661295 | February 25, 2014 | Khanna et al. |
| 8724456 | May 13, 2014 | Hong et al. |
| 8724503 | May 13, 2014 | Johnsson et al. |
| 8745177 | June 3, 2014 | Kazerani et al. |
| 8797874 | August 5, 2014 | Yu et al. |
| 8799504 | August 5, 2014 | Capone et al. |
| 8804745 | August 12, 2014 | Sinn |
| 8806482 | August 12, 2014 | Nagargadde et al. |
| 8855071 | October 7, 2014 | Sankaran et al. |
| 8856339 | October 7, 2014 | Mestery et al. |
| 8964548 | February 24, 2015 | Keralapura et al. |
| 8989199 | March 24, 2015 | Sella et al. |
| 9009217 | April 14, 2015 | Nagargadde et al. |
| 9015299 | April 21, 2015 | Shah |
| 9055000 | June 9, 2015 | Ghosh et al. |
| 9060025 | June 16, 2015 | Xu |
| 9071607 | June 30, 2015 | Twitchell, Jr. |
| 9075771 | July 7, 2015 | Gawali et al. |
| 9100329 | August 4, 2015 | Jiang et al. |
| 9135037 | September 15, 2015 | Petrescu-Prahova et al. |
| 9137334 | September 15, 2015 | Zhou |
| 9154327 | October 6, 2015 | Marino et al. |
| 9203764 | December 1, 2015 | Shirazipour et al. |
| 9225591 | December 29, 2015 | Beheshti-Zavareh et al. |
| 9306949 | April 5, 2016 | Richard et al. |
| 9323561 | April 26, 2016 | Ayala et al. |
| 9336040 | May 10, 2016 | Dong et al. |
| 9354983 | May 31, 2016 | Yenamandra et al. |
| 9356943 | May 31, 2016 | Lopilato et al. |
| 9379981 | June 28, 2016 | Zhou et al. |
| 9413724 | August 9, 2016 | Xu |
| 9419878 | August 16, 2016 | Asiao et al. |
| 9432245 | August 30, 2016 | Sorenson, III et al. |
| 9438566 | September 6, 2016 | Zhang et al. |
| 9450817 | September 20, 2016 | Bahadur et al. |
| 9450852 | September 20, 2016 | Chen et al. |
| 9462010 | October 4, 2016 | Stevenson |
| 9467478 | October 11, 2016 | Khan et al. |
| 9485163 | November 1, 2016 | Fries et al. |
| 9521067 | December 13, 2016 | Michael et al. |
| 9525564 | December 20, 2016 | Lee |
| 9542219 | January 10, 2017 | Bryant et al. |
| 9559951 | January 31, 2017 | Sajassi et al. |
| 9563423 | February 7, 2017 | Pittman |
| 9602389 | March 21, 2017 | Maveli et al. |
| 9608917 | March 28, 2017 | Anderson et al. |
| 9608962 | March 28, 2017 | Chang |
| 9614748 | April 4, 2017 | Battersby et al. |
| 9621460 | April 11, 2017 | Mehta et al. |
| 9641551 | May 2, 2017 | Kariyanahalli |
| 9648547 | May 9, 2017 | Hart et al. |
| 9665432 | May 30, 2017 | Kruse et al. |
| 9686127 | June 20, 2017 | Ramachandran et al. |
| 9692714 | June 27, 2017 | Nair et al. |
| 9715401 | July 25, 2017 | Devine et al. |
| 9717021 | July 25, 2017 | Hughes et al. |
| 9722815 | August 1, 2017 | Mukundan et al. |
| 9747249 | August 29, 2017 | Cherian et al. |
| 9755965 | September 5, 2017 | Yadav et al. |
| 9787559 | October 10, 2017 | Schroeder |
| 9807004 | October 31, 2017 | Koley et al. |
| 9819540 | November 14, 2017 | Bahadur et al. |
| 9819565 | November 14, 2017 | Djukic et al. |
| 9825822 | November 21, 2017 | Holland |
| 9825911 | November 21, 2017 | Brandwine |
| 9825992 | November 21, 2017 | Xu |
| 9832128 | November 28, 2017 | Ashner et al. |
| 9832205 | November 28, 2017 | Santhi et al. |
| 9875355 | January 23, 2018 | Williams |
| 9906401 | February 27, 2018 | Rao |
| 9923826 | March 20, 2018 | Murgia |
| 9930011 | March 27, 2018 | Clemons, Jr. et al. |
| 9935829 | April 3, 2018 | Miller et al. |
| 9942787 | April 10, 2018 | Tillotson |
| 9996370 | June 12, 2018 | Khafizov et al. |
| 10038601 | July 31, 2018 | Becker et al. |
| 10057183 | August 21, 2018 | Salle et al. |
| 10057294 | August 21, 2018 | Xu |
| 10116593 | October 30, 2018 | Sinn et al. |
| 10135789 | November 20, 2018 | Mayya et al. |
| 10142226 | November 27, 2018 | Wu et al. |
| 10178032 | January 8, 2019 | Freitas |
| 10178037 | January 8, 2019 | Appleby et al. |
| 10187289 | January 22, 2019 | Chen et al. |
| 10200264 | February 5, 2019 | Menon et al. |
| 10229017 | March 12, 2019 | Zou et al. |
| 10237123 | March 19, 2019 | Dubey et al. |
| 10250498 | April 2, 2019 | Bales et al. |
| 10263832 | April 16, 2019 | Ghosh |
| 10320664 | June 11, 2019 | Nainar et al. |
| 10320691 | June 11, 2019 | Matthews et al. |
| 10326830 | June 18, 2019 | Singh |
| 10348767 | July 9, 2019 | Lee et al. |
| 10355989 | July 16, 2019 | Panchal et al. |
| 10425382 | September 24, 2019 | Mayya et al. |
| 10454708 | October 22, 2019 | Mibu |
| 10454714 | October 22, 2019 | Mayya et al. |
| 10461993 | October 29, 2019 | Turabi et al. |
| 10498652 | December 3, 2019 | Mayya et al. |
| 10511546 | December 17, 2019 | Singarayan et al. |
| 10523539 | December 31, 2019 | Mayya et al. |
| 10550093 | February 4, 2020 | Ojima et al. |
| 10554538 | February 4, 2020 | Spohn et al. |
| 10560431 | February 11, 2020 | Chen et al. |
| 10565464 | February 18, 2020 | Han et al. |
| 10567519 | February 18, 2020 | Mukhopadhyaya et al. |
| 10574482 | February 25, 2020 | Oréet al. |
| 10574528 | February 25, 2020 | Mayya et al. |
| 10594516 | March 17, 2020 | Cidon et al. |
| 10594591 | March 17, 2020 | Houjyo et al. |
| 10594659 | March 17, 2020 | El-Moussa et al. |
| 10608844 | March 31, 2020 | Cidon et al. |
| 10630505 | April 21, 2020 | Rubenstein et al. |
| 10637889 | April 28, 2020 | Ermagan et al. |
| 10666460 | May 26, 2020 | Cidon et al. |
| 10666497 | May 26, 2020 | Tahhan et al. |
| 10686625 | June 16, 2020 | Cidon et al. |
| 10693739 | June 23, 2020 | Naseri et al. |
| 10708144 | July 7, 2020 | Mohan et al. |
| 10715427 | July 14, 2020 | Raj et al. |
| 10749711 | August 18, 2020 | Mukundan et al. |
| 10778466 | September 15, 2020 | Cidon et al. |
| 10778528 | September 15, 2020 | Mayya et al. |
| 10778557 | September 15, 2020 | Ganichev et al. |
| 10805114 | October 13, 2020 | Cidon et al. |
| 10805272 | October 13, 2020 | Mayya et al. |
| 10819564 | October 27, 2020 | Turabi et al. |
| 10826775 | November 3, 2020 | Moreno et al. |
| 10841131 | November 17, 2020 | Cidon et al. |
| 10911374 | February 2, 2021 | Kumar et al. |
| 10938693 | March 2, 2021 | Mayya et al. |
| 10951529 | March 16, 2021 | Duan et al. |
| 10958479 | March 23, 2021 | Cidon et al. |
| 10959098 | March 23, 2021 | Cidon et al. |
| 10992558 | April 27, 2021 | Silva et al. |
| 10992568 | April 27, 2021 | Michael et al. |
| 10999100 | May 4, 2021 | Cidon et al. |
| 10999137 | May 4, 2021 | Cidon et al. |
| 10999165 | May 4, 2021 | Cidon et al. |
| 10999197 | May 4, 2021 | Hooda et al. |
| 11005684 | May 11, 2021 | Cidon |
| 11018995 | May 25, 2021 | Cidon et al. |
| 11044190 | June 22, 2021 | Ramaswamy et al. |
| 11050588 | June 29, 2021 | Mayya et al. |
| 11050644 | June 29, 2021 | Hegde et al. |
| 11071005 | July 20, 2021 | Shen et al. |
| 11089111 | August 10, 2021 | Markuze et al. |
| 11095612 | August 17, 2021 | Oswal et al. |
| 11102032 | August 24, 2021 | Cidon et al. |
| 11108595 | August 31, 2021 | Knutsen et al. |
| 11108851 | August 31, 2021 | Kurmala et al. |
| 11115347 | September 7, 2021 | Gupta et al. |
| 11115426 | September 7, 2021 | Pazhyannur et al. |
| 11115480 | September 7, 2021 | Markuze et al. |
| 11121962 | September 14, 2021 | Michael et al. |
| 11121985 | September 14, 2021 | Cidon et al. |
| 11128492 | September 21, 2021 | Sethi et al. |
| 11146632 | October 12, 2021 | Rubenstein |
| 11153230 | October 19, 2021 | Cidon et al. |
| 11171885 | November 9, 2021 | Cidon et al. |
| 11212140 | December 28, 2021 | Mukundan et al. |
| 11212238 | December 28, 2021 | Cidon et al. |
| 11223514 | January 11, 2022 | Mayya et al. |
| 11245641 | February 8, 2022 | Ramaswamy et al. |
| 11252079 | February 15, 2022 | Michael et al. |
| 11252105 | February 15, 2022 | Cidon et al. |
| 11252106 | February 15, 2022 | Cidon et al. |
| 11258728 | February 22, 2022 | Cidon et al. |
| 11303633 | April 12, 2022 | Williams |
| 11310170 | April 19, 2022 | Cidon et al. |
| 11323307 | May 3, 2022 | Mayya et al. |
| 11349722 | May 31, 2022 | Mayya et al. |
| 11363124 | June 14, 2022 | Markuze et al. |
| 11374904 | June 28, 2022 | Mayya et al. |
| 11375005 | June 28, 2022 | Rolando et al. |
| 11381474 | July 5, 2022 | Kumar et al. |
| 11381499 | July 5, 2022 | Ramaswamy et al. |
| 11388086 | July 12, 2022 | Ramaswamy et al. |
| 11394640 | July 19, 2022 | Ramaswamy et al. |
| 11418997 | August 16, 2022 | Devadoss et al. |
| 11438789 | September 6, 2022 | Devadoss et al. |
| 11444865 | September 13, 2022 | Ramaswamy et al. |
| 11444872 | September 13, 2022 | Mayya et al. |
| 11477127 | October 18, 2022 | Ramaswamy et al. |
| 11489720 | November 1, 2022 | Kempanna et al. |
| 11489783 | November 1, 2022 | Ramaswamy et al. |
| 11509571 | November 22, 2022 | Ramaswamy et al. |
| 11516049 | November 29, 2022 | Cidon et al. |
| 11522780 | December 6, 2022 | Wallace et al. |
| 11526434 | December 13, 2022 | Brooker et al. |
| 11533248 | December 20, 2022 | Mayya et al. |
| 11552874 | January 10, 2023 | Pragada et al. |
| 11575591 | February 7, 2023 | Ramaswamy et al. |
| 11575600 | February 7, 2023 | Markuze et al. |
| 11582144 | February 14, 2023 | Ramaswamy et al. |
| 11582298 | February 14, 2023 | Hood et al. |
| 11601356 | March 7, 2023 | Gandhi et al. |
| 11606225 | March 14, 2023 | Cidon et al. |
| 11606286 | March 14, 2023 | Michael et al. |
| 11606314 | March 14, 2023 | Cidon et al. |
| 11606712 | March 14, 2023 | Devadoss et al. |
| 11611507 | March 21, 2023 | Ramaswamy et al. |
| 11637768 | April 25, 2023 | Ramaswamy et al. |
| 11677720 | June 13, 2023 | Mayya et al. |
| 11689959 | June 27, 2023 | Devadoss et al. |
| 11700196 | July 11, 2023 | Michael et al. |
| 11706126 | July 18, 2023 | Silva et al. |
| 11706127 | July 18, 2023 | Michael et al. |
| 11709710 | July 25, 2023 | Markuze et al. |
| 11716286 | August 1, 2023 | Ramaswamy et al. |
| 11722925 | August 8, 2023 | Devadoss et al. |
| 11729065 | August 15, 2023 | Ramaswamy et al. |
| 20020049687 | April 25, 2002 | Helsper et al. |
| 20020075542 | June 20, 2002 | Kumar et al. |
| 20020085488 | July 4, 2002 | Kobayashi |
| 20020087716 | July 4, 2002 | Mustafa |
| 20020152306 | October 17, 2002 | Tuck |
| 20020186682 | December 12, 2002 | Kawano et al. |
| 20020198840 | December 26, 2002 | Banka et al. |
| 20030050061 | March 13, 2003 | Wu et al. |
| 20030061269 | March 27, 2003 | Hathaway et al. |
| 20030088697 | May 8, 2003 | Matsuhira |
| 20030112766 | June 19, 2003 | Riedel et al. |
| 20030112808 | June 19, 2003 | Solomon |
| 20030126468 | July 3, 2003 | Markham |
| 20030161313 | August 28, 2003 | Jinmei et al. |
| 20030189919 | October 9, 2003 | Gupta et al. |
| 20030202506 | October 30, 2003 | Perkins et al. |
| 20030219030 | November 27, 2003 | Gubbi |
| 20040059831 | March 25, 2004 | Chu et al. |
| 20040068668 | April 8, 2004 | Lor et al. |
| 20040165601 | August 26, 2004 | Liu et al. |
| 20040224771 | November 11, 2004 | Chen et al. |
| 20050078690 | April 14, 2005 | DeLangis |
| 20050149604 | July 7, 2005 | Navada |
| 20050154790 | July 14, 2005 | Nagata et al. |
| 20050172161 | August 4, 2005 | Cruz et al. |
| 20050195754 | September 8, 2005 | Nosella |
| 20050210479 | September 22, 2005 | Andjelic |
| 20050265255 | December 1, 2005 | Kodialam et al. |
| 20060002291 | January 5, 2006 | Alicherry et al. |
| 20060034335 | February 16, 2006 | Karaoguz et al. |
| 20060114838 | June 1, 2006 | Mandavilli et al. |
| 20060171365 | August 3, 2006 | Borella |
| 20060182034 | August 17, 2006 | Klinker et al. |
| 20060182035 | August 17, 2006 | Vasseur |
| 20060193247 | August 31, 2006 | Naseh et al. |
| 20060193252 | August 31, 2006 | Naseh et al. |
| 20060195605 | August 31, 2006 | Sundarrajan et al. |
| 20060245414 | November 2, 2006 | Susai et al. |
| 20070050594 | March 1, 2007 | Augsburg et al. |
| 20070064604 | March 22, 2007 | Chen et al. |
| 20070064702 | March 22, 2007 | Bates et al. |
| 20070083727 | April 12, 2007 | Johnston et al. |
| 20070091794 | April 26, 2007 | Filsfils et al. |
| 20070103548 | May 10, 2007 | Carter |
| 20070115812 | May 24, 2007 | Hughes |
| 20070121486 | May 31, 2007 | Guichard et al. |
| 20070130325 | June 7, 2007 | Lesser |
| 20070162619 | July 12, 2007 | Aloni et al. |
| 20070162639 | July 12, 2007 | Chu et al. |
| 20070177511 | August 2, 2007 | Das et al. |
| 20070195797 | August 23, 2007 | Patel et al. |
| 20070237081 | October 11, 2007 | Kodialam et al. |
| 20070260746 | November 8, 2007 | Mirtorabi et al. |
| 20070268882 | November 22, 2007 | Breslau et al. |
| 20080002670 | January 3, 2008 | Bugenhagen et al. |
| 20080049621 | February 28, 2008 | McGuire et al. |
| 20080055241 | March 6, 2008 | Goldenberg et al. |
| 20080080509 | April 3, 2008 | Khanna et al. |
| 20080095187 | April 24, 2008 | Jung et al. |
| 20080117930 | May 22, 2008 | Chakareski et al. |
| 20080144532 | June 19, 2008 | Chamarajanagar et al. |
| 20080168086 | July 10, 2008 | Miller et al. |
| 20080175150 | July 24, 2008 | Bolt et al. |
| 20080181116 | July 31, 2008 | Kavanaugh et al. |
| 20080219276 | September 11, 2008 | Shah |
| 20080240121 | October 2, 2008 | Xiong et al. |
| 20080263218 | October 23, 2008 | Beerends et al. |
| 20090013210 | January 8, 2009 | McIntosh et al. |
| 20090028092 | January 29, 2009 | Rothschild |
| 20090125617 | May 14, 2009 | Klessig et al. |
| 20090141642 | June 4, 2009 | Sun |
| 20090154463 | June 18, 2009 | Hines et al. |
| 20090182874 | July 16, 2009 | Morford et al. |
| 20090247204 | October 1, 2009 | Sennett et al. |
| 20090268605 | October 29, 2009 | Campbell et al. |
| 20090274045 | November 5, 2009 | Meier et al. |
| 20090276657 | November 5, 2009 | Wetmore et al. |
| 20090303880 | December 10, 2009 | Maltz et al. |
| 20100008361 | January 14, 2010 | Guichard et al. |
| 20100017802 | January 21, 2010 | Lojewski |
| 20100046532 | February 25, 2010 | Okita |
| 20100061379 | March 11, 2010 | Parandekar et al. |
| 20100080129 | April 1, 2010 | Strahan et al. |
| 20100088440 | April 8, 2010 | Banks et al. |
| 20100091782 | April 15, 2010 | Hiscock |
| 20100091823 | April 15, 2010 | Retana et al. |
| 20100107162 | April 29, 2010 | Edwards et al. |
| 20100118727 | May 13, 2010 | Draves et al. |
| 20100118886 | May 13, 2010 | Saavedra |
| 20100128600 | May 27, 2010 | Srinivasmurthy et al. |
| 20100165985 | July 1, 2010 | Sharma et al. |
| 20100191884 | July 29, 2010 | Holenstein et al. |
| 20100223621 | September 2, 2010 | Joshi et al. |
| 20100226246 | September 9, 2010 | Proulx |
| 20100290422 | November 18, 2010 | Haigh et al. |
| 20100309841 | December 9, 2010 | Conte |
| 20100309912 | December 9, 2010 | Mehta et al. |
| 20100322255 | December 23, 2010 | Hao et al. |
| 20100332657 | December 30, 2010 | Elyashev et al. |
| 20110001604 | January 6, 2011 | Ludlow et al. |
| 20110007752 | January 13, 2011 | Silva et al. |
| 20110032939 | February 10, 2011 | Nozaki et al. |
| 20110035187 | February 10, 2011 | DeJori et al. |
| 20110040814 | February 17, 2011 | Higgins |
| 20110075674 | March 31, 2011 | Li et al. |
| 20110078783 | March 31, 2011 | Duan et al. |
| 20110107139 | May 5, 2011 | Middlecamp et al. |
| 20110110370 | May 12, 2011 | Moreno et al. |
| 20110141877 | June 16, 2011 | Xu et al. |
| 20110142041 | June 16, 2011 | Imai |
| 20110153909 | June 23, 2011 | Dong |
| 20110235509 | September 29, 2011 | Szymanski |
| 20110255397 | October 20, 2011 | Kadakia et al. |
| 20110302663 | December 8, 2011 | Prodan et al. |
| 20120008630 | January 12, 2012 | Ould-Brahim |
| 20120027013 | February 2, 2012 | Napierala |
| 20120039309 | February 16, 2012 | Evans et al. |
| 20120099601 | April 26, 2012 | Haddad et al. |
| 20120136697 | May 31, 2012 | Peles et al. |
| 20120140935 | June 7, 2012 | Kruglick |
| 20120157068 | June 21, 2012 | Eichen et al. |
| 20120173694 | July 5, 2012 | Yan et al. |
| 20120173919 | July 5, 2012 | Patel et al. |
| 20120182940 | July 19, 2012 | Taleb et al. |
| 20120221955 | August 30, 2012 | Raleigh et al. |
| 20120227093 | September 6, 2012 | Shatzkamer et al. |
| 20120240185 | September 20, 2012 | Kapoor et al. |
| 20120250682 | October 4, 2012 | Vincent et al. |
| 20120250686 | October 4, 2012 | Vincent et al. |
| 20120266026 | October 18, 2012 | Chikkalingaiah et al. |
| 20120281706 | November 8, 2012 | Agarwal et al. |
| 20120287818 | November 15, 2012 | Corti et al. |
| 20120300615 | November 29, 2012 | Kempf et al. |
| 20120307659 | December 6, 2012 | Yamada |
| 20120317270 | December 13, 2012 | Vrbaski et al. |
| 20120317291 | December 13, 2012 | Wolfe |
| 20130007505 | January 3, 2013 | Spear |
| 20130019005 | January 17, 2013 | Hui et al. |
| 20130021968 | January 24, 2013 | Reznik et al. |
| 20130044764 | February 21, 2013 | Casado et al. |
| 20130051237 | February 28, 2013 | Ong |
| 20130051399 | February 28, 2013 | Zhang et al. |
| 20130054763 | February 28, 2013 | Merwe et al. |
| 20130086267 | April 4, 2013 | Gelenbe et al. |
| 20130097304 | April 18, 2013 | Asthana et al. |
| 20130103729 | April 25, 2013 | Cooney et al. |
| 20130103834 | April 25, 2013 | Dzerve et al. |
| 20130117530 | May 9, 2013 | Kim et al. |
| 20130124718 | May 16, 2013 | Griffith et al. |
| 20130124911 | May 16, 2013 | Griffith et al. |
| 20130124912 | May 16, 2013 | Griffith et al. |
| 20130128889 | May 23, 2013 | Mathur et al. |
| 20130142201 | June 6, 2013 | Kim et al. |
| 20130170354 | July 4, 2013 | Takashima et al. |
| 20130173768 | July 4, 2013 | Kundu et al. |
| 20130173788 | July 4, 2013 | Song |
| 20130182712 | July 18, 2013 | Aguayo et al. |
| 20130185446 | July 18, 2013 | Zeng et al. |
| 20130185729 | July 18, 2013 | Vasic et al. |
| 20130191688 | July 25, 2013 | Agarwal et al. |
| 20130223226 | August 29, 2013 | Narayanan et al. |
| 20130223454 | August 29, 2013 | Dunbar et al. |
| 20130235870 | September 12, 2013 | Tripathi et al. |
| 20130238782 | September 12, 2013 | Zhao et al. |
| 20130242718 | September 19, 2013 | Zhang |
| 20130254599 | September 26, 2013 | Katkar et al. |
| 20130258839 | October 3, 2013 | Wang et al. |
| 20130258847 | October 3, 2013 | Zhang et al. |
| 20130266015 | October 10, 2013 | Qu et al. |
| 20130266019 | October 10, 2013 | Qu et al. |
| 20130283364 | October 24, 2013 | Chang et al. |
| 20130286846 | October 31, 2013 | Atlas et al. |
| 20130297611 | November 7, 2013 | Moritz et al. |
| 20130297770 | November 7, 2013 | Zhang |
| 20130301469 | November 14, 2013 | Suga |
| 20130301642 | November 14, 2013 | Radhakrishnan et al. |
| 20130308444 | November 21, 2013 | Sem-Jacobsen et al. |
| 20130315242 | November 28, 2013 | Wang et al. |
| 20130315243 | November 28, 2013 | Huang et al. |
| 20130329548 | December 12, 2013 | Nakil et al. |
| 20130329601 | December 12, 2013 | Yin et al. |
| 20130329734 | December 12, 2013 | Chesla et al. |
| 20130346470 | December 26, 2013 | Obstfeld et al. |
| 20140016464 | January 16, 2014 | Shirazipour et al. |
| 20140019604 | January 16, 2014 | Twitchell, Jr. |
| 20140019750 | January 16, 2014 | Dodgson et al. |
| 20140040975 | February 6, 2014 | Raleigh et al. |
| 20140064283 | March 6, 2014 | Balus et al. |
| 20140071832 | March 13, 2014 | Johnsson et al. |
| 20140092907 | April 3, 2014 | Sridhar et al. |
| 20140108665 | April 17, 2014 | Arora et al. |
| 20140112171 | April 24, 2014 | Pasdar |
| 20140115584 | April 24, 2014 | Mudigonda et al. |
| 20140122559 | May 1, 2014 | Branson et al. |
| 20140123135 | May 1, 2014 | Huang et al. |
| 20140126418 | May 8, 2014 | Brendel et al. |
| 20140156818 | June 5, 2014 | Hunt |
| 20140156823 | June 5, 2014 | Liu et al. |
| 20140157363 | June 5, 2014 | Banerjee |
| 20140160935 | June 12, 2014 | Zecharia et al. |
| 20140164560 | June 12, 2014 | Ko et al. |
| 20140164617 | June 12, 2014 | Jalan et al. |
| 20140164718 | June 12, 2014 | Schaik et al. |
| 20140173113 | June 19, 2014 | Vemuri et al. |
| 20140173331 | June 19, 2014 | Martin et al. |
| 20140181824 | June 26, 2014 | Saund et al. |
| 20140189074 | July 3, 2014 | Parker |
| 20140208317 | July 24, 2014 | Nakagawa |
| 20140219135 | August 7, 2014 | Li et al. |
| 20140223507 | August 7, 2014 | Xu |
| 20140229210 | August 14, 2014 | Sharifian et al. |
| 20140244851 | August 28, 2014 | Lee |
| 20140258535 | September 11, 2014 | Zhang |
| 20140269690 | September 18, 2014 | Tu |
| 20140279862 | September 18, 2014 | Dietz et al. |
| 20140280499 | September 18, 2014 | Basavaiah et al. |
| 20140310282 | October 16, 2014 | Sprague et al. |
| 20140317440 | October 23, 2014 | Biermayr et al. |
| 20140321277 | October 30, 2014 | Lynn, Jr. et al. |
| 20140321430 | October 30, 2014 | Bakker |
| 20140337500 | November 13, 2014 | Lee |
| 20140337674 | November 13, 2014 | Ivancic et al. |
| 20140341109 | November 20, 2014 | Cartmell et al. |
| 20140355441 | December 4, 2014 | Jain |
| 20140365834 | December 11, 2014 | Stone et al. |
| 20140372582 | December 18, 2014 | Ghanwani et al. |
| 20150003240 | January 1, 2015 | Drwiega et al. |
| 20150016249 | January 15, 2015 | Mukundan et al. |
| 20150029864 | January 29, 2015 | Raileanu et al. |
| 20150039744 | February 5, 2015 | Niazi et al. |
| 20150046572 | February 12, 2015 | Cheng et al. |
| 20150052247 | February 19, 2015 | Threefoot et al. |
| 20150052517 | February 19, 2015 | Raghu et al. |
| 20150056960 | February 26, 2015 | Egner et al. |
| 20150058917 | February 26, 2015 | Xu |
| 20150088942 | March 26, 2015 | Shah |
| 20150089628 | March 26, 2015 | Lang |
| 20150092603 | April 2, 2015 | Aguayo et al. |
| 20150096011 | April 2, 2015 | Watt |
| 20150100958 | April 9, 2015 | Banavalikar et al. |
| 20150106809 | April 16, 2015 | Reddy et al. |
| 20150124603 | May 7, 2015 | Ketheesan et al. |
| 20150134777 | May 14, 2015 | Onoue |
| 20150139238 | May 21, 2015 | Pourzandi et al. |
| 20150146539 | May 28, 2015 | Mehta et al. |
| 20150163152 | June 11, 2015 | Li |
| 20150169340 | June 18, 2015 | Haddad et al. |
| 20150172121 | June 18, 2015 | Farkas et al. |
| 20150172169 | June 18, 2015 | DeCusatis et al. |
| 20150188823 | July 2, 2015 | Williams et al. |
| 20150189009 | July 2, 2015 | Bemmel |
| 20150195178 | July 9, 2015 | Bhattacharya et al. |
| 20150201036 | July 16, 2015 | Nishiki et al. |
| 20150222543 | August 6, 2015 | Song |
| 20150222638 | August 6, 2015 | Morley |
| 20150236945 | August 20, 2015 | Michael et al. |
| 20150236962 | August 20, 2015 | Veres et al. |
| 20150244617 | August 27, 2015 | Nakil et al. |
| 20150249644 | September 3, 2015 | Xu |
| 20150257081 | September 10, 2015 | Ramanujan et al. |
| 20150264055 | September 17, 2015 | Budhani et al. |
| 20150271056 | September 24, 2015 | Chunduri et al. |
| 20150271104 | September 24, 2015 | Chikkamath et al. |
| 20150271303 | September 24, 2015 | Neginhal et al. |
| 20150281004 | October 1, 2015 | Kakadia et al. |
| 20150312142 | October 29, 2015 | Barabash et al. |
| 20150312760 | October 29, 2015 | O'Toole |
| 20150317169 | November 5, 2015 | Sinha et al. |
| 20150326426 | November 12, 2015 | Luo et al. |
| 20150334025 | November 19, 2015 | Rader |
| 20150334696 | November 19, 2015 | Gu et al. |
| 20150341271 | November 26, 2015 | Gomez |
| 20150349978 | December 3, 2015 | Wu et al. |
| 20150350907 | December 3, 2015 | Timariu et al. |
| 20150358232 | December 10, 2015 | Chen et al. |
| 20150358236 | December 10, 2015 | Roach et al. |
| 20150363221 | December 17, 2015 | Terayama et al. |
| 20150363733 | December 17, 2015 | Brown |
| 20150365323 | December 17, 2015 | Duminuco et al. |
| 20150372943 | December 24, 2015 | Hasan et al. |
| 20150372982 | December 24, 2015 | Herle et al. |
| 20150381407 | December 31, 2015 | Wang et al. |
| 20150381462 | December 31, 2015 | Choi et al. |
| 20150381493 | December 31, 2015 | Bansal et al. |
| 20160019317 | January 21, 2016 | Pawar et al. |
| 20160020844 | January 21, 2016 | Hart et al. |
| 20160021597 | January 21, 2016 | Hart et al. |
| 20160035183 | February 4, 2016 | Buchholz et al. |
| 20160036924 | February 4, 2016 | Koppolu et al. |
| 20160036938 | February 4, 2016 | Aviles et al. |
| 20160037434 | February 4, 2016 | Gopal et al. |
| 20160072669 | March 10, 2016 | Saavedra |
| 20160072684 | March 10, 2016 | Manuguri et al. |
| 20160080268 | March 17, 2016 | Anand et al. |
| 20160080502 | March 17, 2016 | Yadav et al. |
| 20160105353 | April 14, 2016 | Cociglio |
| 20160105392 | April 14, 2016 | Thakkar et al. |
| 20160105471 | April 14, 2016 | Nunes et al. |
| 20160105488 | April 14, 2016 | Thakkar et al. |
| 20160117185 | April 28, 2016 | Fang et al. |
| 20160134461 | May 12, 2016 | Sampath et al. |
| 20160134527 | May 12, 2016 | Kwak et al. |
| 20160134528 | May 12, 2016 | Lin et al. |
| 20160134591 | May 12, 2016 | Liao et al. |
| 20160142373 | May 19, 2016 | Ossipov |
| 20160147607 | May 26, 2016 | Dornemann et al. |
| 20160150055 | May 26, 2016 | Choi |
| 20160164832 | June 9, 2016 | Bellagamba et al. |
| 20160164914 | June 9, 2016 | Madhav et al. |
| 20160173338 | June 16, 2016 | Wolting |
| 20160191363 | June 30, 2016 | Haraszti et al. |
| 20160191374 | June 30, 2016 | Singh et al. |
| 20160192403 | June 30, 2016 | Gupta et al. |
| 20160197834 | July 7, 2016 | Luft |
| 20160197835 | July 7, 2016 | Luft |
| 20160198003 | July 7, 2016 | Luft |
| 20160205071 | July 14, 2016 | Cooper et al. |
| 20160210209 | July 21, 2016 | Verkaik et al. |
| 20160212773 | July 21, 2016 | Kanderholm et al. |
| 20160218947 | July 28, 2016 | Hughes et al. |
| 20160218951 | July 28, 2016 | Vasseur et al. |
| 20160234099 | August 11, 2016 | Jiao |
| 20160234161 | August 11, 2016 | Banerjee et al. |
| 20160255169 | September 1, 2016 | Kovvuri et al. |
| 20160255542 | September 1, 2016 | Hughes et al. |
| 20160261493 | September 8, 2016 | Li |
| 20160261495 | September 8, 2016 | Xia et al. |
| 20160261506 | September 8, 2016 | Hegde et al. |
| 20160261639 | September 8, 2016 | Xu |
| 20160269298 | September 15, 2016 | Li et al. |
| 20160269926 | September 15, 2016 | Sundaram |
| 20160285736 | September 29, 2016 | Gu |
| 20160299775 | October 13, 2016 | Madapurath et al. |
| 20160301471 | October 13, 2016 | Kunz et al. |
| 20160308762 | October 20, 2016 | Teng et al. |
| 20160315912 | October 27, 2016 | Mayya et al. |
| 20160323377 | November 3, 2016 | Einkauf et al. |
| 20160328159 | November 10, 2016 | Coddington et al. |
| 20160330111 | November 10, 2016 | Manghirmalani et al. |
| 20160337202 | November 17, 2016 | Ben-Itzhak et al. |
| 20160352588 | December 1, 2016 | Subbarayan et al. |
| 20160353268 | December 1, 2016 | Senarath et al. |
| 20160359738 | December 8, 2016 | Sullenberger et al. |
| 20160366187 | December 15, 2016 | Kamble |
| 20160371153 | December 22, 2016 | Dornemann |
| 20160378527 | December 29, 2016 | Zamir |
| 20160380886 | December 29, 2016 | Blair et al. |
| 20160380906 | December 29, 2016 | Hodique et al. |
| 20170005986 | January 5, 2017 | Bansal et al. |
| 20170006499 | January 5, 2017 | Hampel et al. |
| 20170012870 | January 12, 2017 | Blair et al. |
| 20170019428 | January 19, 2017 | Cohn |
| 20170024260 | January 26, 2017 | Chandrasekaran et al. |
| 20170026273 | January 26, 2017 | Yao et al. |
| 20170026283 | January 26, 2017 | Williams et al. |
| 20170026355 | January 26, 2017 | Mathaiyan et al. |
| 20170034046 | February 2, 2017 | Cai et al. |
| 20170034052 | February 2, 2017 | Chanda et al. |
| 20170034129 | February 2, 2017 | Sawant et al. |
| 20170048296 | February 16, 2017 | Ramalho et al. |
| 20170053258 | February 23, 2017 | Carney et al. |
| 20170055131 | February 23, 2017 | Kong et al. |
| 20170063674 | March 2, 2017 | Maskalik et al. |
| 20170063782 | March 2, 2017 | Jain et al. |
| 20170063783 | March 2, 2017 | Yong et al. |
| 20170063787 | March 2, 2017 | Kwok |
| 20170063794 | March 2, 2017 | Jain et al. |
| 20170064005 | March 2, 2017 | Lee |
| 20170075710 | March 16, 2017 | Prasad et al. |
| 20170093625 | March 30, 2017 | Pera et al. |
| 20170097841 | April 6, 2017 | Chang et al. |
| 20170104653 | April 13, 2017 | Badea et al. |
| 20170104755 | April 13, 2017 | Arregoces et al. |
| 20170109212 | April 20, 2017 | Gaurav et al. |
| 20170118067 | April 27, 2017 | Vedula |
| 20170118173 | April 27, 2017 | Arramreddy et al. |
| 20170123939 | May 4, 2017 | Maheshwari et al. |
| 20170126475 | May 4, 2017 | Mahkonen et al. |
| 20170126516 | May 4, 2017 | Tiagi et al. |
| 20170126564 | May 4, 2017 | Mayya et al. |
| 20170134186 | May 11, 2017 | Mukundan et al. |
| 20170134520 | May 11, 2017 | Abbasi et al. |
| 20170139789 | May 18, 2017 | Fries et al. |
| 20170142000 | May 18, 2017 | Cai et al. |
| 20170149637 | May 25, 2017 | Banikazemi et al. |
| 20170155557 | June 1, 2017 | Desai et al. |
| 20170155566 | June 1, 2017 | Martinsen et al. |
| 20170155590 | June 1, 2017 | Dillon et al. |
| 20170163473 | June 8, 2017 | Sadana et al. |
| 20170171024 | June 15, 2017 | Anerousis et al. |
| 20170171310 | June 15, 2017 | Gardner |
| 20170180220 | June 22, 2017 | Leckey et al. |
| 20170181210 | June 22, 2017 | Nadella et al. |
| 20170195161 | July 6, 2017 | Ruel et al. |
| 20170195169 | July 6, 2017 | Mills et al. |
| 20170201568 | July 13, 2017 | Hussam et al. |
| 20170201585 | July 13, 2017 | Doraiswamy et al. |
| 20170207976 | July 20, 2017 | Rovner et al. |
| 20170214545 | July 27, 2017 | Cheng et al. |
| 20170214701 | July 27, 2017 | Hasan |
| 20170223117 | August 3, 2017 | Messerli et al. |
| 20170236060 | August 17, 2017 | Ignatyev |
| 20170237710 | August 17, 2017 | Mayya et al. |
| 20170242784 | August 24, 2017 | Heorhiadi et al. |
| 20170257260 | September 7, 2017 | Govindan et al. |
| 20170257309 | September 7, 2017 | Appanna |
| 20170264496 | September 14, 2017 | Ao et al. |
| 20170279717 | September 28, 2017 | Bethers et al. |
| 20170279741 | September 28, 2017 | Elias et al. |
| 20170279803 | September 28, 2017 | Desai et al. |
| 20170280474 | September 28, 2017 | Vesterinen et al. |
| 20170288987 | October 5, 2017 | Pasupathy et al. |
| 20170289002 | October 5, 2017 | Ganguli et al. |
| 20170289027 | October 5, 2017 | Ratnasingham |
| 20170295264 | October 12, 2017 | Touitou et al. |
| 20170302501 | October 19, 2017 | Shi et al. |
| 20170302565 | October 19, 2017 | Ghobadi et al. |
| 20170310641 | October 26, 2017 | Jiang et al. |
| 20170310691 | October 26, 2017 | Vasseur et al. |
| 20170317945 | November 2, 2017 | Guo et al. |
| 20170317954 | November 2, 2017 | Masurekar et al. |
| 20170317969 | November 2, 2017 | Masurekar et al. |
| 20170317974 | November 2, 2017 | Masurekar et al. |
| 20170324628 | November 9, 2017 | Dhanabalan |
| 20170337086 | November 23, 2017 | Zhu et al. |
| 20170339022 | November 23, 2017 | Hegde et al. |
| 20170339054 | November 23, 2017 | Yadav et al. |
| 20170339070 | November 23, 2017 | Chang et al. |
| 20170346722 | November 30, 2017 | Smith et al. |
| 20170364419 | December 21, 2017 | Lo |
| 20170366445 | December 21, 2017 | Nemirovsky et al. |
| 20170366467 | December 21, 2017 | Martin et al. |
| 20170373950 | December 28, 2017 | Szilagyi et al. |
| 20170374174 | December 28, 2017 | Evens et al. |
| 20180006995 | January 4, 2018 | Bickhart et al. |
| 20180007005 | January 4, 2018 | Chanda et al. |
| 20180007123 | January 4, 2018 | Cheng et al. |
| 20180013636 | January 11, 2018 | Seetharamaiah et al. |
| 20180014051 | January 11, 2018 | Phillips et al. |
| 20180020035 | January 18, 2018 | Boggia et al. |
| 20180034668 | February 1, 2018 | Mayya et al. |
| 20180041425 | February 8, 2018 | Zhang |
| 20180062875 | March 1, 2018 | Tumuluru |
| 20180062914 | March 1, 2018 | Boutros et al. |
| 20180062917 | March 1, 2018 | Chandrashekhar et al. |
| 20180063036 | March 1, 2018 | Chandrashekhar et al. |
| 20180063193 | March 1, 2018 | Chandrashekhar et al. |
| 20180063233 | March 1, 2018 | Park |
| 20180063743 | March 1, 2018 | Tumuluru et al. |
| 20180069924 | March 8, 2018 | Tumuluru et al. |
| 20180074909 | March 15, 2018 | Bishop et al. |
| 20180077081 | March 15, 2018 | Lauer et al. |
| 20180077202 | March 15, 2018 | Xu |
| 20180084081 | March 22, 2018 | Kuchibhotla et al. |
| 20180091370 | March 29, 2018 | Arai |
| 20180097725 | April 5, 2018 | Wood et al. |
| 20180114569 | April 26, 2018 | Strachan et al. |
| 20180123910 | May 3, 2018 | Fitzgibbon |
| 20180123946 | May 3, 2018 | Ramachandran et al. |
| 20180131608 | May 10, 2018 | Jiang et al. |
| 20180131615 | May 10, 2018 | Zhang |
| 20180131720 | May 10, 2018 | Hobson et al. |
| 20180145899 | May 24, 2018 | Rao |
| 20180159796 | June 7, 2018 | Wang et al. |
| 20180159856 | June 7, 2018 | Gujarathi |
| 20180167378 | June 14, 2018 | Kostyukov et al. |
| 20180176073 | June 21, 2018 | Dubey et al. |
| 20180176082 | June 21, 2018 | Katz et al. |
| 20180176130 | June 21, 2018 | Banerjee et al. |
| 20180176252 | June 21, 2018 | Nimmagadda et al. |
| 20180181423 | June 28, 2018 | Gunda et al. |
| 20180205746 | July 19, 2018 | Boutnaru et al. |
| 20180213472 | July 26, 2018 | Ishii et al. |
| 20180219765 | August 2, 2018 | Michael et al. |
| 20180219766 | August 2, 2018 | Michael et al. |
| 20180234300 | August 16, 2018 | Mayya et al. |
| 20180248790 | August 30, 2018 | Tan et al. |
| 20180260125 | September 13, 2018 | Botes et al. |
| 20180261085 | September 13, 2018 | Liu et al. |
| 20180262468 | September 13, 2018 | Kumar et al. |
| 20180270104 | September 20, 2018 | Zheng et al. |
| 20180278541 | September 27, 2018 | Wu et al. |
| 20180287907 | October 4, 2018 | Kulshreshtha et al. |
| 20180295101 | October 11, 2018 | Gehrmann |
| 20180295529 | October 11, 2018 | Jen et al. |
| 20180302286 | October 18, 2018 | Mayya et al. |
| 20180302321 | October 18, 2018 | Manthiramoorthy et al. |
| 20180307851 | October 25, 2018 | Lewis |
| 20180316606 | November 1, 2018 | Sung et al. |
| 20180351855 | December 6, 2018 | Sood et al. |
| 20180351862 | December 6, 2018 | Jeganathan et al. |
| 20180351863 | December 6, 2018 | Vairavakkalai et al. |
| 20180351882 | December 6, 2018 | Jeganathan et al. |
| 20180359323 | December 13, 2018 | Madden |
| 20180367445 | December 20, 2018 | Bajaj |
| 20180373558 | December 27, 2018 | Chang et al. |
| 20180375744 | December 27, 2018 | Mayya et al. |
| 20180375824 | December 27, 2018 | Mayya et al. |
| 20180375967 | December 27, 2018 | Pithawala et al. |
| 20190013883 | January 10, 2019 | Vargas et al. |
| 20190014038 | January 10, 2019 | Ritchie |
| 20190020588 | January 17, 2019 | Twitchell, Jr. |
| 20190020627 | January 17, 2019 | Yuan |
| 20190021085 | January 17, 2019 | Mochizuki et al. |
| 20190028378 | January 24, 2019 | Houjyo et al. |
| 20190028552 | January 24, 2019 | Johnson et al. |
| 20190036808 | January 31, 2019 | Shenoy et al. |
| 20190036810 | January 31, 2019 | Michael et al. |
| 20190036813 | January 31, 2019 | Shenoy et al. |
| 20190046056 | February 14, 2019 | Khachaturian et al. |
| 20190058657 | February 21, 2019 | Chunduri et al. |
| 20190058709 | February 21, 2019 | Kempf et al. |
| 20190068470 | February 28, 2019 | Mirsky |
| 20190068493 | February 28, 2019 | Ram et al. |
| 20190068500 | February 28, 2019 | Hira |
| 20190075083 | March 7, 2019 | Mayya et al. |
| 20190081894 | March 14, 2019 | Yousaf et al. |
| 20190103990 | April 4, 2019 | Cidon et al. |
| 20190103991 | April 4, 2019 | Cidon et al. |
| 20190103992 | April 4, 2019 | Cidon et al. |
| 20190103993 | April 4, 2019 | Cidon et al. |
| 20190104035 | April 4, 2019 | Cidon et al. |
| 20190104049 | April 4, 2019 | Cidon et al. |
| 20190104050 | April 4, 2019 | Cidon et al. |
| 20190104051 | April 4, 2019 | Cidon et al. |
| 20190104052 | April 4, 2019 | Cidon et al. |
| 20190104053 | April 4, 2019 | Cidon et al. |
| 20190104063 | April 4, 2019 | Cidon et al. |
| 20190104064 | April 4, 2019 | Cidon et al. |
| 20190104109 | April 4, 2019 | Cidon et al. |
| 20190104111 | April 4, 2019 | Cidon et al. |
| 20190104413 | April 4, 2019 | Cidon et al. |
| 20190109769 | April 11, 2019 | Jain et al. |
| 20190132221 | May 2, 2019 | Boutros et al. |
| 20190132234 | May 2, 2019 | Dong et al. |
| 20190132322 | May 2, 2019 | Song et al. |
| 20190140889 | May 9, 2019 | Mayya et al. |
| 20190140890 | May 9, 2019 | Mayya et al. |
| 20190149525 | May 16, 2019 | Gunda et al. |
| 20190158371 | May 23, 2019 | Dillon et al. |
| 20190158605 | May 23, 2019 | Markuze et al. |
| 20190199539 | June 27, 2019 | Deng et al. |
| 20190220703 | July 18, 2019 | Prakash et al. |
| 20190222499 | July 18, 2019 | Chen et al. |
| 20190238364 | August 1, 2019 | Boutros et al. |
| 20190238446 | August 1, 2019 | Barzik et al. |
| 20190238449 | August 1, 2019 | Michael et al. |
| 20190238450 | August 1, 2019 | Michael et al. |
| 20190238483 | August 1, 2019 | Marichetty et al. |
| 20190238497 | August 1, 2019 | Tourrilhes et al. |
| 20190268421 | August 29, 2019 | Markuze et al. |
| 20190268973 | August 29, 2019 | Bull |
| 20190278631 | September 12, 2019 | Bernat et al. |
| 20190280962 | September 12, 2019 | Michael et al. |
| 20190280963 | September 12, 2019 | Michael et al. |
| 20190280964 | September 12, 2019 | Michael et al. |
| 20190288875 | September 19, 2019 | Shen et al. |
| 20190306197 | October 3, 2019 | Degioanni |
| 20190306282 | October 3, 2019 | Masputra et al. |
| 20190313278 | October 10, 2019 | Liu |
| 20190313907 | October 17, 2019 | Khachaturian et al. |
| 20190319847 | October 17, 2019 | Nahar et al. |
| 20190319881 | October 17, 2019 | Maskara et al. |
| 20190327109 | October 24, 2019 | Guichard et al. |
| 20190334786 | October 31, 2019 | Dutta et al. |
| 20190334813 | October 31, 2019 | Raj et al. |
| 20190334820 | October 31, 2019 | Zhao |
| 20190342201 | November 7, 2019 | Singh |
| 20190342219 | November 7, 2019 | Liu et al. |
| 20190356736 | November 21, 2019 | Narayanaswamy et al. |
| 20190364099 | November 28, 2019 | Thakkar et al. |
| 20190364456 | November 28, 2019 | Yu |
| 20190372888 | December 5, 2019 | Michael et al. |
| 20190372889 | December 5, 2019 | Michael et al. |
| 20190372890 | December 5, 2019 | Michael et al. |
| 20190394081 | December 26, 2019 | Tahhan et al. |
| 20200014609 | January 9, 2020 | Hockett et al. |
| 20200014615 | January 9, 2020 | Michael et al. |
| 20200014616 | January 9, 2020 | Michael et al. |
| 20200014661 | January 9, 2020 | Mayya et al. |
| 20200014663 | January 9, 2020 | Chen et al. |
| 20200021514 | January 16, 2020 | Michael et al. |
| 20200021515 | January 16, 2020 | Michael et al. |
| 20200036624 | January 30, 2020 | Michael et al. |
| 20200044943 | February 6, 2020 | Bor-Yaliniz et al. |
| 20200044969 | February 6, 2020 | Hao et al. |
| 20200059420 | February 20, 2020 | Abraham |
| 20200059457 | February 20, 2020 | Raza et al. |
| 20200059459 | February 20, 2020 | Abraham et al. |
| 20200067831 | February 27, 2020 | Spraggins et al. |
| 20200092207 | March 19, 2020 | Sipra et al. |
| 20200097327 | March 26, 2020 | Beyer et al. |
| 20200099625 | March 26, 2020 | Yigit et al. |
| 20200099659 | March 26, 2020 | Cometto et al. |
| 20200106696 | April 2, 2020 | Michael et al. |
| 20200106706 | April 2, 2020 | Mayya et al. |
| 20200119952 | April 16, 2020 | Mayya et al. |
| 20200127905 | April 23, 2020 | Mayya et al. |
| 20200127911 | April 23, 2020 | Gilson et al. |
| 20200153701 | May 14, 2020 | Mohan et al. |
| 20200153736 | May 14, 2020 | Liebherr et al. |
| 20200159661 | May 21, 2020 | Keymolen et al. |
| 20200162407 | May 21, 2020 | Tillotson |
| 20200169473 | May 28, 2020 | Rimar et al. |
| 20200177503 | June 4, 2020 | Hooda et al. |
| 20200177550 | June 4, 2020 | Valluri et al. |
| 20200177629 | June 4, 2020 | Hooda et al. |
| 20200186471 | June 11, 2020 | Shen et al. |
| 20200195557 | June 18, 2020 | Duan et al. |
| 20200204460 | June 25, 2020 | Schneider et al. |
| 20200213212 | July 2, 2020 | Dillon et al. |
| 20200213224 | July 2, 2020 | Cheng et al. |
| 20200218558 | July 9, 2020 | Sreenath et al. |
| 20200235990 | July 23, 2020 | Janakiraman et al. |
| 20200235999 | July 23, 2020 | Mayya et al. |
| 20200236046 | July 23, 2020 | Jain et al. |
| 20200241927 | July 30, 2020 | Yang et al. |
| 20200244721 | July 30, 2020 | S et al. |
| 20200252234 | August 6, 2020 | Ramamoorthi et al. |
| 20200259700 | August 13, 2020 | Bhalla et al. |
| 20200267184 | August 20, 2020 | Vera-Schockner |
| 20200267203 | August 20, 2020 | Jindal et al. |
| 20200280587 | September 3, 2020 | Janakiraman et al. |
| 20200287819 | September 10, 2020 | Theogaraj et al. |
| 20200287976 | September 10, 2020 | Theogaraj et al. |
| 20200296011 | September 17, 2020 | Jain et al. |
| 20200296026 | September 17, 2020 | Michael et al. |
| 20200301764 | September 24, 2020 | Thoresen et al. |
| 20200314006 | October 1, 2020 | Mackie et al. |
| 20200314614 | October 1, 2020 | Moustafa et al. |
| 20200322230 | October 8, 2020 | Natal et al. |
| 20200322287 | October 8, 2020 | Connor et al. |
| 20200336336 | October 22, 2020 | Sethi et al. |
| 20200344089 | October 29, 2020 | Motwani et al. |
| 20200344143 | October 29, 2020 | Faseela et al. |
| 20200344163 | October 29, 2020 | Gupta et al. |
| 20200351188 | November 5, 2020 | Arora et al. |
| 20200358878 | November 12, 2020 | Bansal et al. |
| 20200366530 | November 19, 2020 | Mukundan et al. |
| 20200366562 | November 19, 2020 | Mayya et al. |
| 20200382345 | December 3, 2020 | Zhao et al. |
| 20200382387 | December 3, 2020 | Pasupathy et al. |
| 20200403821 | December 24, 2020 | Dev et al. |
| 20200412483 | December 31, 2020 | Tan et al. |
| 20200412576 | December 31, 2020 | Kondapavuluru et al. |
| 20200413283 | December 31, 2020 | Shen et al. |
| 20210006482 | January 7, 2021 | Hwang et al. |
| 20210006490 | January 7, 2021 | Michael et al. |
| 20210021538 | January 21, 2021 | Meck et al. |
| 20210029019 | January 28, 2021 | Kottapalli |
| 20210029088 | January 28, 2021 | Mayya et al. |
| 20210036888 | February 4, 2021 | Makkalla et al. |
| 20210036987 | February 4, 2021 | Mishra et al. |
| 20210037159 | February 4, 2021 | Shimokawa |
| 20210049191 | February 18, 2021 | Masson et al. |
| 20210067372 | March 4, 2021 | Cidon et al. |
| 20210067373 | March 4, 2021 | Cidon et al. |
| 20210067374 | March 4, 2021 | Cidon et al. |
| 20210067375 | March 4, 2021 | Cidon et al. |
| 20210067407 | March 4, 2021 | Cidon et al. |
| 20210067427 | March 4, 2021 | Cidon et al. |
| 20210067442 | March 4, 2021 | Sundararajan et al. |
| 20210067461 | March 4, 2021 | Cidon et al. |
| 20210067464 | March 4, 2021 | Cidon et al. |
| 20210067467 | March 4, 2021 | Cidon et al. |
| 20210067468 | March 4, 2021 | Cidon et al. |
| 20210073001 | March 11, 2021 | Rogers et al. |
| 20210092062 | March 25, 2021 | Dhanabalan et al. |
| 20210099360 | April 1, 2021 | Parsons et al. |
| 20210105199 | April 8, 2021 | H et al. |
| 20210111998 | April 15, 2021 | Saavedra |
| 20210112034 | April 15, 2021 | Sundararajan et al. |
| 20210126830 | April 29, 2021 | R. et al. |
| 20210126853 | April 29, 2021 | Ramaswamy et al. |
| 20210126854 | April 29, 2021 | Guo et al. |
| 20210126860 | April 29, 2021 | Ramaswamy et al. |
| 20210144091 | May 13, 2021 | H et al. |
| 20210160169 | May 27, 2021 | Shen et al. |
| 20210160813 | May 27, 2021 | Gupta et al. |
| 20210176255 | June 10, 2021 | Hill et al. |
| 20210184952 | June 17, 2021 | Mayya et al. |
| 20210184966 | June 17, 2021 | Ramaswamy et al. |
| 20210184983 | June 17, 2021 | Ramaswamy et al. |
| 20210194814 | June 24, 2021 | Roux et al. |
| 20210226880 | July 22, 2021 | Ramamoorthy et al. |
| 20210234728 | July 29, 2021 | Cidon et al. |
| 20210234775 | July 29, 2021 | Devadoss et al. |
| 20210234786 | July 29, 2021 | Devadoss et al. |
| 20210234804 | July 29, 2021 | Devadoss et al. |
| 20210234805 | July 29, 2021 | Devadoss et al. |
| 20210235312 | July 29, 2021 | Devadoss et al. |
| 20210235313 | July 29, 2021 | Devadoss et al. |
| 20210266262 | August 26, 2021 | Subramanian et al. |
| 20210279069 | September 9, 2021 | Salgaonkar et al. |
| 20210314289 | October 7, 2021 | Chandrashekhar et al. |
| 20210314385 | October 7, 2021 | Pande et al. |
| 20210328835 | October 21, 2021 | Mayya et al. |
| 20210336880 | October 28, 2021 | Gupta et al. |
| 20210377109 | December 2, 2021 | Shrivastava et al. |
| 20210377156 | December 2, 2021 | Michael et al. |
| 20210392060 | December 16, 2021 | Silva et al. |
| 20210392070 | December 16, 2021 | Tootaghaj et al. |
| 20210399920 | December 23, 2021 | Sundararajan et al. |
| 20210399978 | December 23, 2021 | Michael et al. |
| 20210400113 | December 23, 2021 | Markuze et al. |
| 20210400512 | December 23, 2021 | Agarwal et al. |
| 20210409277 | December 30, 2021 | Jeuk et al. |
| 20220006726 | January 6, 2022 | Michael et al. |
| 20220006751 | January 6, 2022 | Ramaswamy et al. |
| 20220006756 | January 6, 2022 | Ramaswamy et al. |
| 20220029902 | January 27, 2022 | Shemer et al. |
| 20220035673 | February 3, 2022 | Markuze et al. |
| 20220038370 | February 3, 2022 | Vasseur et al. |
| 20220038557 | February 3, 2022 | Markuze et al. |
| 20220045927 | February 10, 2022 | Liu et al. |
| 20220052928 | February 17, 2022 | Sundararajan et al. |
| 20220061059 | February 24, 2022 | Dunsmore et al. |
| 20220086035 | March 17, 2022 | Devaraj et al. |
| 20220094644 | March 24, 2022 | Cidon et al. |
| 20220123961 | April 21, 2022 | Mukundan et al. |
| 20220131740 | April 28, 2022 | Mayya et al. |
| 20220131807 | April 28, 2022 | Srinivas et al. |
| 20220131898 | April 28, 2022 | Hooda et al. |
| 20220141184 | May 5, 2022 | Oswal et al. |
| 20220158923 | May 19, 2022 | Ramaswamy et al. |
| 20220158924 | May 19, 2022 | Ramaswamy et al. |
| 20220158926 | May 19, 2022 | Wennerström et al. |
| 20220166713 | May 26, 2022 | Markuze et al. |
| 20220191719 | June 16, 2022 | Roy |
| 20220198229 | June 23, 2022 | López et al. |
| 20220210035 | June 30, 2022 | Hendrickson et al. |
| 20220210041 | June 30, 2022 | Gandhi et al. |
| 20220210042 | June 30, 2022 | Gandhi et al. |
| 20220210122 | June 30, 2022 | Levin et al. |
| 20220217015 | July 7, 2022 | Vuggrala et al. |
| 20220231949 | July 21, 2022 | Ramaswamy et al. |
| 20220231950 | July 21, 2022 | Ramaswamy et al. |
| 20220232411 | July 21, 2022 | Vijayakumar et al. |
| 20220239596 | July 28, 2022 | Kumar et al. |
| 20220294701 | September 15, 2022 | Mayya et al. |
| 20220335027 | October 20, 2022 | Seshadri et al. |
| 20220337553 | October 20, 2022 | Mayya et al. |
| 20220353152 | November 3, 2022 | Ramaswamy |
| 20220353171 | November 3, 2022 | Ramaswamy et al. |
| 20220353175 | November 3, 2022 | Ramaswamy et al. |
| 20220353182 | November 3, 2022 | Ramaswamy et al. |
| 20220353190 | November 3, 2022 | Ramaswamy et al. |
| 20220360500 | November 10, 2022 | Ramaswamy et al. |
| 20220407773 | December 22, 2022 | Kempanna et al. |
| 20220407774 | December 22, 2022 | Kempanna et al. |
| 20220407790 | December 22, 2022 | Kempanna et al. |
| 20220407820 | December 22, 2022 | Kempanna et al. |
| 20220407915 | December 22, 2022 | Kempanna et al. |
| 20230006929 | January 5, 2023 | Mayya et al. |
| 20230025586 | January 26, 2023 | Rolando et al. |
| 20230026330 | January 26, 2023 | Rolando et al. |
| 20230026865 | January 26, 2023 | Rolando et al. |
| 20230028872 | January 26, 2023 | Ramaswamy |
| 20230039869 | February 9, 2023 | Ramaswamy et al. |
| 20230041916 | February 9, 2023 | Zhang et al. |
| 20230054961 | February 23, 2023 | Ramaswamy et al. |
| 20230105680 | April 6, 2023 | Simlai et al. |
| 20230121871 | April 20, 2023 | Mayya et al. |
| 20230179445 | June 8, 2023 | Cidon et al. |
| 20230179502 | June 8, 2023 | Ramaswamy et al. |
| 20230179521 | June 8, 2023 | Markuze et al. |
| 20230179543 | June 8, 2023 | Cidon et al. |
| 20230216768 | July 6, 2023 | Zohar et al. |
| 20230216801 | July 6, 2023 | Markuze et al. |
| 20230216804 | July 6, 2023 | Zohar et al. |
| 20230221874 | July 13, 2023 | Markuze et al. |
| 20230224356 | July 13, 2023 | Markuze et al. |
| 20230224759 | July 13, 2023 | Ramaswamy |
| 20230231845 | July 20, 2023 | Manoharan et al. |
| 20230239234 | July 27, 2023 | Zohar et al. |
| 20230261974 | August 17, 2023 | Ramaswamy et al. |
| 1926809 | March 2007 | CN |
| 102577270 | July 2012 | CN |
| 102811165 | December 2012 | CN |
| 104956329 | September 2015 | CN |
| 106230650 | December 2016 | CN |
| 106656847 | May 2017 | CN |
| 106998284 | August 2017 | CN |
| 110447209 | November 2019 | CN |
| 111198764 | May 2020 | CN |
| 1912381 | April 2008 | EP |
| 2538637 | December 2012 | EP |
| 2763362 | August 2014 | EP |
| 3041178 | July 2016 | EP |
| 3297211 | March 2018 | EP |
| 3509256 | July 2019 | EP |
| 3346650 | November 2019 | EP |
| 2002368792 | December 2002 | JP |
| 2010233126 | October 2010 | JP |
| 2014200010 | October 2014 | JP |
| 2017059991 | March 2017 | JP |
| 2017524290 | August 2017 | JP |
| 20170058201 | May 2017 | KR |
| 2574350 | February 2016 | RU |
| 03073701 | September 2003 | WO |
| 2005071861 | August 2005 | WO |
| 2007016834 | February 2007 | WO |
| 2012167184 | December 2012 | WO |
| 2015092565 | June 2015 | WO |
| 2016061546 | April 2016 | WO |
| 2016123314 | August 2016 | WO |
| 2017083975 | May 2017 | WO |
| 2019070611 | April 2019 | WO |
| 2019094522 | May 2019 | WO |
| 2020012491 | January 2020 | WO |
| 2020018704 | January 2020 | WO |
| 2020091777 | May 2020 | WO |
| 2020101922 | May 2020 | WO |
| 2020112345 | June 2020 | WO |
| 2021040934 | March 2021 | WO |
| 2021118717 | June 2021 | WO |
| 2021150465 | July 2021 | WO |
| 2021211906 | October 2021 | WO |
| 2022005607 | January 2022 | WO |
| 2022082680 | April 2022 | WO |
| 2022154850 | July 2022 | WO |
| 2022159156 | July 2022 | WO |
| 2022231668 | November 2022 | WO |
| 2022235303 | November 2022 | WO |
| 2022265681 | December 2022 | WO |
| 2023009159 | February 2023 | WO |
- Yap, Kok-Kiong, et al., “Taking the Edge off with Espresso: Scale, Reliability and Programmability for Global Internet Peering,” SIGCOMM '17: Proceedings of the Conference of the ACM Special Interest Group on Data Communication, Aug. 21-25, 2017, 14 pages, Los Angeles, CA.
- Zakurdaev, Gieorgi, et al., “Dynamic On-Demand Virtual Extensible LAN Tunnels via Software-Defined Wide Area Networks,” 2022 IEEE 12th Annual Computing and Communication Workshop and Conference, Jan. 26-29, 2022, 6 pages, IEEE, Las Vegas, NV, USA.
- Alsaeedi, Mohammed, et al., “Toward Adaptive and Scalable OpenFlow-SDN Flow Control: A Survey,” IEEE Access, Aug. 1, 2019, 34 pages, vol. 7, IEEE, retrieved from https://ieeexplore.ieee.org/document/8784036.
- Alvizu, Rodolfo, et al., “SDN-Based Network Orchestration for New Dynamic Enterprise Networking Services,” 2017 19th International Conference on Transparent Optical Networks, Jul. 2-6, 2017, 4 pages, IEEE, Girona, Spain.
- Author Unknown, “VeloCloud Administration Guide: VMware SD-WAN by VeloCloud 3.3,” Month Unknown 2019, 366 pages, VMware, Inc., Palo Alto, CA, USA.
- Barozet, Jean-Marc, “Cisco SD-WAN as a Managed Service,” BRKRST-2558, Jan. 27-31, 2020, 98 pages, Cisco, Barcelona, Spain, retrieved from https://www.ciscolive.com/c/dam/r/ciscolive/emea/docs/2020/pdf/BRKRST-2558.pdf.
- Barozet, Jean-Marc, “Cisco SDWAN,” Deep Dive, Dec. 2017, 185 pages, Cisco, Retreived from https://www.coursehero.com/file/71671376/Cisco-SDWAN-Deep-Divepdf/.
- Bertaux, Lionel, et al., “Software Defined Networking and Virtualization for Broadband Satellite Networks,” IEEE Communications Magazine, Mar. 18, 2015, 7 pages, vol. 53, IEEE, retrieved from https://ieeexplore.ieee.org/document/7060482.
- Cox, Jacob H., et al., “Advancing Software-Defined Networks: A Survey,” IEEE Access, Oct. 12, 2017, 40 pages, vol. 5, IEEE, retrieved from https://ieeexplore.ieee.org/document/8066287.
- Del Piccolo, Valentin, et al., “A Survey of Network Isolation Solutions for Multi-Tenant Data Centers,” IEEE Communications Society, Apr. 20, 2016, vol. 18, No. 4, 37 pages, IEEE.
- Duan, Zhenhai, et al., “Service Overlay Networks: SLAs, QoS, and Bandwidth Provisioning,” IEEE/ACM Transactions on Networking, Dec. 2003, 14 pages, vol. 11, IEEE, New York, NY, USA.
- Fortz, Bernard, et al., “Internet Traffic Engineering by Optimizing OSPF Weights,” Proceedings IEEE Infocom 2000, Conference on Computer Communications, Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies, Mar. 26-30, 2000, 11 pages, IEEE, Tel Aviv, Israel, Israel.
- Francois, Frederic, et al., “Optimizing Secure SDN-enabled Inter-Data Centre Overlay Networks through Cognitive Routing,” 2016 IEEE 24th International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems (MASCOTS), Sep. 19-21, 2016, 10 pages, IEEE, London, UK.
- Funabiki, Nobuo, et al., “A Frame Aggregation Extension of Routing Algorithm for Wireless Mesh Networks,” 2014 Second International Symposium on Computing and Networking, Dec. 10-12, 2014, 5 pages, IEEE, Shizuoka, Japan.
- Guo, Xiangyi, et al., U.S. Appl. No. 62/925,193, filed Oct. 23, 2019, 26 pages.
- Huang, Cancan, et al., “Modification of Q.SD-WAN,” Rapporteur Group Meeting—Doc, Study Period 2017-2020, Q4/11-DOC1 (190410), Study Group 11, Apr. 10, 2019, 19 pages, International Telecommunication Union, Geneva, Switzerland.
- Jivorasetkul, Supalerk, et al., “End-to-End Header Compression over Software-Defined Networks: a Low Latency Network Architecture,” 2012 Fourth International Conference on Intelligent Networking and Collaborative Systems, Sep. 19-21, 2012, 2 pages, IEEE, Bucharest, Romania.
- Lasserre, Marc, et al., “Framework for Data Center (DC) Network Virtualization,” RFC 7365, Oct. 2014, 26 pages, IETF.
- Li, Shengru, et al., “Source Routing with Protocol-oblivious Forwarding (POF) to Enable Efficient e-Health Data Transfers,” 2016 IEEE International Conference on Communications (ICC), May 22-27, 2016, 6 pages, IEEE, Kuala Lumpur, Malaysia.
- Lin, Weidong, et al., “Using Path Label Routing in Wide Area Software-Defined Networks with Open Flow,” 2016 International Conference on Networking and Network Applications, Jul. 2016, 6 pages, IEEE.
- Long, Feng, “Research and Application of Cloud Storage Technology in University Information Service,” Chinese Excellent Masters' Theses Full-text Database, Mar. 2013, 72 pages, China Academic Journals Electronic Publishing House, China.
- Michael, Nithin, et al., “HALO: Hop-by-Hop Adaptive Link-State Optimal Routing,” IEEE/ACM Transactions on Networking, Dec. 2015, 14 pages, vol. 23, No. 6, IEEE.
- Ming, Gao, et al., “A Design of SD-WAN-Oriented Wide Area Network Access,” 2020 International Conference on Computer Communication and Network Security (CCNS), Aug. 21-23, 2020, 4 pages, IEEE, Xi'an, China.
- Mishra, Mayank, et al., “Managing Network Reservation for Tenants in Oversubscribed Clouds,” 2013 IEEE 21st International Symposium on Modelling, Analysis and Simulation of Computer and Telecommunication Systems, Aug. 14-16, 2013, 10 pages, IEEE, San Francisco, CA, USA.
- Mudigonda, Jayaram, et al., “NetLord: A Scalable Multi-Tenant Network Architecture for Virtualized Datacenters,” Proceedings of the ACM SIGCOMM 2011 Conference, Aug. 15-19, 2011, 12 pages, ACM, Toronto, Canada.
- Non-Published Commonly Owned U.S. Appl. No. 17/833,555, filed Jun. 6, 2022, 34 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 17/833,566, filed Jun. 6, 2022, 35 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 17/976,717, filed Oct. 28, 2022, 37 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/100,369, filed Jan. 23, 2023, 55 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/100,381, filed Jan. 23, 2023, 55 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/100,397, filed Jan. 23, 2023, 55 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/126,989, filed Mar. 27, 2023, 83 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/126,990, filed Mar. 27, 2023, 84 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/126,991, filed Mar. 27, 2023, 84 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/126,992, filed Mar. 27, 2023, 84 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/197,090, filed May 14, 2023, 36 pages, Nicira, Inc.
- Non-Published Commonly Owned Related U.S. Appl. No. 18/208,352 with similar specification, filed Jun. 12, 2023, 69 pages, VMware, Inc.
- Non-Published Commonly Owned Related U.S. Appl. No. 18/208,356 with similar specification, filed Jun. 12, 2023, 69 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/211,568, filed Jun. 19, 2023, 37 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/222,864, filed Jul. 17, 2023, 350 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/222,868, filed Jul. 17, 2023, 22 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/224,466, filed Jul. 20, 2023, 56 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 18/235,879, filed Aug. 20, 2023, 173 pages, VMware, Inc.
- Non-Published Commonly Owned U.S. Appl. No. 15/803,964, filed Nov. 6, 2017, 15 pages, The Mode Group.
- Noormohammadpour, Mohammad, et al., “DCRoute: Speeding up Inter-Datacenter Traffic Allocation while Guaranteeing Deadlines,” 2016 IEEE 23rd International Conference on High Performance Computing (HiPC), Dec. 19-22, 2016, 9 pages, IEEE, Hyderabad, India.
- Ray, Saikat, et al., “Always Acyclic Distributed Path Computation,” University of Pennsylvania Department of Electrical and Systems Engineering Technical Report, May 2008, 16 pages, University of Pennsylvania ScholarlyCommons.
- Sarhan, Soliman Abd Elmonsef, et al., “Data Inspection in SDN Network,” 2018 13th International Conference on Computer Engineering and Systems (ICCES), Dec. 18-19, 2018, 6 pages, IEEE, Cairo, Egypt.
- Taleb, Tarik, “D4.1 Mobile Network Cloud Component Design,” Mobile Cloud Networking, Nov. 8, 2013, 210 pages, MobileCloud Networking Consortium, retrieved from http://www.mobile-cloud-networking.eu/site/index.php?process=download&id=127&code=89d30565cd2ce087d3f8e95f9ad683066510a61f.
- Tootaghaj, Diman Zad, et al., “Homa: An Efficient Topology and Route Management Approach in SD-WAN Overlays,” IEEE Infocom 2020—IEEE Conference on Computer Communications, Jul. 6-9, 2020, 10 pages, IEEE, Toronto, ON, Canada.
- Valtulina, Luca, “Seamless Distributed Mobility Management (DMM) Solution in Cloud Based LTE Systems,” Master Thesis, Nov. 2013, 168 pages, University of Twente, retrieved from http://essay.utwente.nl/64411/1/Luca_Valtulina_MSc_Report_final.pdf.
- Webb, Kevin C., et al., “Blender: Upgrading Tenant-Based Data Center Networking,” 2014 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS), Oct. 20-21, 2014, 11 pages, IEEE, Marina del Rey, CA, USA.
- Xie, Junfeng, et al., A Survey of Machine Learning Techniques Applied to Software Defined Networking (SDN): Research Issues and Challenges, IEEE Communications Surveys & Tutorials, Aug. 23, 2018, 38 pages, vol. 21, Issue 1, IEEE.
Type: Grant
Filed: Jun 12, 2023
Date of Patent: Jun 16, 2026
Patent Publication Number: 20240414520
Assignee: VMware LLC (Palo Alto, CA)
Inventor: Guang Lu (Beijing)
Primary Examiner: Eunsook Choi
Application Number: 18/208,358
International Classification: H04W 8/18 (20090101); H04L 69/22 (20220101); H04W 12/37 (20210101); H04W 76/12 (20180101); H04W 92/02 (20090101);