# Patent

## Title
Auto management of a virtual device context enabled network infrastructure

## Abstract

In some embodiments, a virtual device context (vDC) domain may be advertised to other network devices. If at least a partition of each device is determined to belong to the same vDC domain, the network interface communicating with the at least one device may be activated.

## Background
RELATED APPLICATION
This application is a Division of co-pending U.S. application Ser. No. 13/588,185, entitled “Auto Management of a Virtual Device Context Enabled Network Infrastructure” filed Aug. 17, 2012, which is incorporated herein by reference.


BACKGROUND
Virtual device context (vDC) features allow switches to be logically segmented into different virtual switches, or device contexts. The logical separation of single switch into multiple device contexts provides benefits such as administration and management separation, change and failure domain isolation from other virtual devices, and address and virtual network isolation. Conventional implementations, however, often place a burden on administrators to create the vDC, correctly allocate ports to the vDC, and ensure that cabling between vDCs is correct.



BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various embodiments of the present disclosure. In the drawings:
FIG. 1 is a block diagram of an operating environment;
FIG. 2 is a block diagram illustrating a link layer discovery protocol frame;
FIG. 3 is a flow chart illustrating a method for providing authoritative edge device synchronization; and
FIG. 4 is a block diagram illustrating components of a computing device.



DESCRIPTION OF EXAMPLE EMBODIMENTS
Overview
Consistent with embodiments of the present disclosure, systems and methods are disclosed for providing automated management of virtual device contexts.
In some embodiments, a virtual device context (vDC) domain may be advertised to other network devices. If at least a partition of each device is determined to belong to the same vDC domain, the network interface communicating with the at least one device may be activated.
It is to be understood that both the foregoing general description and the following detailed description are examples and explanatory only, and should not be considered to restrict the disclosure's scope, as described and claimed. Further, features and/or variations may be provided in addition to those set forth herein. For example, embodiments of the disclosure may be directed to various feature combinations and sub-combinations described in the detailed description.
Example Embodiments
The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar elements. While embodiments of the disclosure may be described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the methods described herein may be modified by substituting, reordering, or adding stages to the disclosed methods. Accordingly, the following detailed description does not limit the disclosure. Instead, the proper scope of the disclosure is defined by the appended claims.
Virtual Device Contexts (vDCs) allow switches to be logically segmented into different virtual switches. That is, a single physical switch may have network traffic for one vDC isolated from network traffic associated with other vDCs. These vDCs may cross multiple physical switches, such that physical ports linked between each switch participate in the same vDC.
FIG. 1 is a block diagram view of an operating environment 100 for providing automated management of virtual device contexts. Operating environment 100 may comprise a plurality of switches 110(A)-(C) each participating in a communications network 120. Plurality of switches 110(A)-(D) may be further in communication with other network devices (not shown) such as end user devices (e.g., laptop and desktop computers), servers, routers, etc.
In order to create the physical partitions of a network with VDCs, an administrator first sets up the VDC in a first switch, such as switch 110(A), through a management console interface. The administrator identifies which ports of switch 110(A) will be associated with a vDC. For example, the administrator may assign a plurality of ports 130(A)-(D) on switch 110(A) to a first vDC 135. Multiple vDCs may be set up at the same time, with each port of switch 110(A) allocated to one of the vDCs. Each port can be allocated to only one vDC. In some network devices, ports may be arranged in groups that comprise multiple physical interfaces and each interface of a particular port group may need to be assigned to the same vDC. During setup, the administrator also assigns a domain to uniquely identify the vDC on switch 110(A).
Multiple switches may be configured to participate in the same vDC by assigning the same domain as vDCs are created on the other switches. Each switch may have ports assigned to the vDC as described above. For example, in FIG. 1, a second plurality of ports 140(A)-(D) of switch 110(B) and a third plurality of ports 150(A)-(D) of switch 110(C) may also be assigned to first vDC 135.
Once the switches are configured to use the vDC(s), the ports must be physically cabled together. At least one port from each switch participating in a given vDC needs to be connected to a port on at least one other switch participating in the vDC to establish connectivity. For example, port 130(B) may be connected, via a first network cable 160(A), to port 140(B) and port 140(A) may be connected, via a second network cable 160(B), to port 150(A). Switches 110(A)-(C) may then all communicate as part of the same vDC.
The cable connections between switches must conform to the vDC assignments, however. An error here can result in network traffic unintentionally leaking to other partitions of the network. Consistent with embodiments of this disclosure, the switches may perform automated testing to ensure that all ports are connected to devices associated with the same vDC. By defining the vDC domain during set up, the connections may be validated.
To validate the network connections, the network may be placed in a special mode. In this mode all of the switches in the network (e.g., switches 110(A)-(C) in network 120) are informed of the impending partitioning, such as by broadcasting a secure message to all of the switches. This mode may initiate a physical topology discovery, such as by launching a link layer discovery protocol (LLDP) physical topology discovery.
As physical interfaces are activated in each vDC, a link level protocol such as LLDP advertises the assigned vDC domain to the interface's peer connection. For example, activating port 130(B) may result in an LLDP message to port 140(B) advertising its participation in the domain of vDC 135. The interface may be placed in an operational state only if the vDC domain matches on both sides of the link. The interface may instead be disabled in case of a mismatch on the vDC domains.
FIG. 2 is a block diagram illustrating an LLDP frame 200. LLDP frames offer one way to advertise assigned vDC domains between ports, but this is only an example is not intended to limit the methods described in this disclosure. LLDP frame 200 may comprise an Ethernet frame comprising a preamble field 210, a destination MAC address field 220, a source MAC address field 230, an ethertype field 240, a chassis identifier type-length-value (TLV) field 250, a port identifier TLV field 260, a time-to-live (TTL) field 270, one and/or more optional TLV fields 280, and a frame end TLV 290.
A TLV comprises a data element comprising a binary code type indicating the kind of field, a length of the value section, and a variable-sized value section comprising the TLV's data. For example, chassis identifier TLV field 250 may have a type of 1, port identifier TLV field 260 may have a type of 2, time-to-live (TTL) field 270 may have a type of 3, and frame end TLV 290 may have a type and length of 0. Organizationally specific TLV fields 280 may use a type of 127 while the value segment starts with a 24-bit organizationally unique identifier and a 1 byte organizationally specific subtype followed by the data, in this case the advertised vDC domain.
FIG. 3 illustrates a flow chart setting forth the general stages involved in a method 300 consistent with an embodiment of the disclosure for providing automated management of virtual device contexts. Method 300 may be implemented using the components illustrated in operating environment 100 as described above. Ways to implement the stages of method 300 will be described in greater detail below. Method 300 begins at starting block 305 and proceeds to stage 310 where computing device 400 assigns a virtual device context (vDC) domain. For example, an administrator may use a management console on switch 110(A) to assign ports 130(A)-(D) to vDC 135 comprising a domain name of “vDC Alpha”.
Method 300 then advances to stage 315 where computing device 400 initiates a network discovery. For example, switch 110(A) may initiate a network topology discovery via the link layer discovery protocol (LLDP). Consistent with embodiments of this disclosure, this discovery may occur on receipt of a command from an administrator and/or may be automatically initiated after a new vDC is assigned at stage 310. The initiation may take the form of a broadcast message to all devices connected to the same network as the initiating switch and may last for the duration of a time-to-live value included in the broadcast message.
Method 300 then advances to stage 320 where computing device 400 may transmit a frame advertising the assigned vDC. For example, port 130(B) may be assigned to vDC 135. An LLDP frame comprising the domain name (e.g., “vDC Alpha”) as an optional type-length-value segment may be transmitted on port 130(B) to its peer port, port 140(B) on switch 110(B) in the arrangement described in FIG. 1.
Method 300 then advances to stage 325 where computing device 400 may receive a frame advertising a peer port's vDC. For example, port 130(B) may receive an LLDP frame comprising the domain name of the vDC assigned to port 140(B) as part of the network topology discovery initiated at stage 315. Consistent with embodiments of this disclosure, switch 110(A) may receive an LLDP frame advertising an assigned vDC even without the network discovery first being initiated. Switch 110(A) may then respond to the vDC advertising frame by transmitting a frame advertising the vDC assigned to the receiving port as described above with respect to stage 320.
Method 300 then advances to stage 330 where computing device 400 determines whether the vDC domain assigned to the port and the vDC domain advertised by the received frame match. For example, port 130(B) may be assigned to the “vDC Alpha” domain. When port 130(B) receives the frame from its peer port 140(B), switch 110(A) may determine whether the vDC domain advertised by the received frame is also the “vDC Alpha” domain.
If the vDCs do not match, method 300 advances to stage 335 where computing device 400 may disable the interface. For example, switch 110(A) may disable port 130(B) if the frame received by peer port 140(B) at stage 325 advertises a different vDC domain than that assigned to port 130(B). Disabling the network interface for that port ensures that no regular network data is transmitted on that port. The disabled port may, in at least some embodiments, still be permitted to send and receive LLDP network frames. This may allow the port to monitor the vDC mismatch and determine whether the assigned domains have been corrected.
After disabling the interface, method 300 advances to stage 340 where computing device 400 may report the error. For example, switch 110(A) may display an error identifying the disabled port in a log and/or error viewing interface of the switch's management console.
Method 300 may then advance to stage 345 where computing device 400 may re-assign the vDC domain for the disabled port. For example, an administrator may re-configure the domain assigned to the disabled port on switch 110(A) to match the assigned domain of its peer port. Upon re-assigning the vDC domain, switch 110(A) may return to stage 320 and transmit another LLDP frame advertising the newly assigned vDC domain.
If the vDC domains match at stage 330, method 300 then advances to stage 350 where computing device 400 enables the network interface of the port. For example, switch 110(A) may permit port 130(B) and 140(B) to begin and/or resume exchanging network data associated with network devices within the assigned vDC. Method 300 then ends at stage 360.
FIG. 4 illustrates computing device 400 comprising a processing unit 410 and a memory unit 420. Memory 420 may include a executable software to provide a management console 430 that may allow users to configure computing device 400 and/or view information such as logs and errors. While executing on processing unit 410, these and other software modules and/or data sources may perform processes for providing redundancy elimination in web caching, for example, via one or more stages included in method 300 described above with respect to FIG. 3. Moreover, any one or more of the stages included in method 300 may be performed on any element shown in operating environment 100 and each of the elements illustrated in operating environment 100 may comprise a similar computing device to that illustrated by FIG. 4.
Computing device 400 may be implemented using a personal computer, a network computer, a mainframe, or other similar microcomputer-based workstation. The processor may comprise any computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. The processor may also be practiced in distributed computing environments where tasks are performed by remote processing devices. Furthermore, the processor may comprise a mobile terminal, such as a smart phone, a cellular telephone, a cellular telephone utilizing wireless application protocol (WAP), personal digital assistant (PDA), intelligent pager, portable computer, a hand held computer, a conventional telephone, a wireless fidelity (Wi-Fi) access point, or a facsimile machine. The aforementioned systems and devices are examples and the processor may comprise other systems or devices.
Embodiments of the present disclosure, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments of the disclosure. The functions/acts noted in the blocks may occur out of the order as shown in any flowchart. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
While certain embodiments of the disclosure have been described, other embodiments may exist. Furthermore, although embodiments of the present disclosure have been described as being associated with data stored in memory and other storage mediums, data can also be stored on or read from other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or a CD-ROM, a carrier wave from the Internet, or other forms of RAM or ROM. Further, the disclosed methods' stages may be modified in any manner, including by reordering stages and/or inserting or deleting stages, without departing from the disclosure.
All rights including copyrights in the code included herein are vested in and the property of the Applicant. The Applicant retains and reserves all rights in the code included herein, and grants permission to reproduce the material only in connection with reproduction of the granted patent and for no other purpose.
While the specification includes examples, the disclosure's scope is indicated by the following claims. Furthermore, while the specification has been described in language specific to structural features and/or methodological acts, the claims are not limited to the features or acts described above. Rather, the specific features and acts described above are disclosed as example for embodiments of the disclosure.

## Claims

1. An apparatus comprising:
a memory storage; and
a processor coupled to the memory storage, wherein the processor is configured to:
assign a virtual device context (vDC) domain to at least one of a plurality of network ports,
determine if the at least one of the plurality of network ports is currently in an active state, and
in response to determining that the at least one of the plurality of network ports is currently in an active state:
transmit a first network data frame advertising the assigned vDC domain on the at least one of the plurality of network ports;
receive a second network data frame on the at least one of the plurality of network ports;
determine whether the second network data frame is advertising the assigned vDC domain; and
in response to determining that the second network data frame is advertising the assigned vDC domain, maintain the active state of the at least one of the plurality of network ports.

2. The apparatus of claim 1, wherein the processor is further configured to:
in response to determining that the second network data frame is advertising a second vDC domain, deactivate the at least one of the plurality of network ports.

3. The apparatus of claim 1, wherein the first network data frame and the second network data frame each comprise a network topology discovery frame.

4. The apparatus of claim 1, wherein the processor is further configured to, in response to determining that the at least one of the plurality of network ports is not currently in an active state:
assign one of a plurality of virtual device contexts (vDCs) domain to each of the plurality of network ports;
initiate a topology discovery mode; and
transmit, from each of the plurality of network ports, a network topology discovery frame advertising the one of the plurality of vDC domains associated with each of the plurality of network ports.

5. The apparatus of claim 4, wherein the processor being configured to initiate the topology discovery comprises the processor being configured to broadcast a message on each of the plurality of network ports.

6. The apparatus of claim 5, wherein the processor is further configured to maintain the topology discovery mode on each of the plurality of network ports for a duration defined by a time-to-live field associated with the broadcast message.

7. A method comprising:
assigning a virtual device context (vDC) domain to at least one of a plurality of network ports;
determining that the at least one of the plurality of network ports is currently in an active state; and
in response to determining that the at least one of the plurality of network ports is currently in an active state:
transmitting a first network data frame advertising the assigned vDC domain on the at least one of the plurality of network ports,
receiving a second network data frame on the at least one of the plurality of network ports,
determine whether the second network data frame is advertising the assigned vDC domain, and
in response to determining that the second network data frame is advertising the assigned vDC domain, maintain the active state of the at least one of the plurality of network ports.

8. The method of claim 7, further comprising:
in response to determining that the second network data frame is advertising a second vDC domain, deactivate the at least one of the plurality of network ports.

9. The method of claim 7, wherein the first network data frame and the second network data frame each comprise a network topology discovery frame.

10. The method of claim 7, in response to determining that the at least one of the plurality of network ports is not currently in an active state, further comprising:
assigning one of a plurality of virtual device contexts (vDCs) domain to each of the plurality of network ports;
initiating a topology discovery mode; and
transmitting, from each of the plurality of network ports, a network topology discovery frame advertising the one of the plurality of vDC domains associated with each of the plurality of network ports.

11. The method of claim 10, wherein initiating the topology discovery comprises broadcasting a message on each of the plurality of network ports.

12. The method of claim 11, further comprising:
maintaining the topology discovery mode on each of the plurality of network ports for a duration defined by a time-to-live field associated with the broadcast message.

13. A non-transitory computer readable medium that stores a set of instructions which when executed perform a method executed by the set of instructions comprising:
assigning a virtual device context (vDC) domain to at least one of a plurality of network ports;
determining that the at least one of the plurality of network ports is currently in an active state; and
in response to determining that the at least one of the plurality of network ports is currently in an active state:
transmitting a first network data frame advertising the assigned vDC domain on the at least one of the plurality of network ports,
receiving a second network data frame on the at least one of the plurality of network ports,
determine whether the second network data frame is advertising the assigned vDC domain, and
in response to determining that the second network data frame is advertising the assigned vDC domain, maintain the active state of the at least one of the plurality of network ports.

14. The non-transitory computer readable medium of claim 13, further comprising:
in response to determining that the second network data frame is advertising a second vDC domain, deactivate the at least one of the plurality of network ports.

15. The non-transitory computer readable medium of claim 13, wherein the first network data frame and the second network data frame each comprise a network topology discovery frame.

16. The non-transitory computer readable medium of claim 13, in response to determining that the at least one of the plurality of network ports is not currently in an active state, further comprising:
assigning one of a plurality of virtual device contexts (vDCs) domain to each of the plurality of network ports;
initiating a topology discovery mode; and
transmitting, from each of the plurality of network ports, a network topology discovery frame advertising the one of the plurality of vDC domains associated with each of the plurality of network ports.

17. The non-transitory computer readable medium of claim 16, wherein initiating the topology discovery comprises broadcasting a message on each of the plurality of network ports.

18. The non-transitory computer readable medium of claim 17, further comprising:
maintaining the topology discovery mode on each of the plurality of network ports for a duration defined by a time-to-live field associated with the broadcast message.