Method and system for allowing a client to re-initiate DHCP request after undergoing VLAN change
10868698 ยท 2020-12-15
Assignee
Inventors
Cpc classification
H04L12/4625
ELECTRICITY
H04L2101/622
ELECTRICITY
H04L61/5014
ELECTRICITY
Y02D30/00
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
H04L12/4641
ELECTRICITY
H04L12/08
ELECTRICITY
International classification
H04L12/08
ELECTRICITY
Abstract
A method and system are devised of moving at a NAS (1) a client (12, 13) with a MAC address, from a first VLAN to a second VLAN. A leaf is comprised of at least one intermediate L2 bridge/switch (5, 9) being connected to the NAS (1). The client (12, 13) is being connected to one (9) of the at least one intermediate L2 bridge/switches (5, 9) in the leaf. The method and system involve sending at the NAS (1) a first message downlink (31, 36) to intermediate L2 bridge/switches (5) in the leaf directly connected to the NAS. They further involve at each intermediate L2 bridge/switch (5, 9) in the leaf: upon receiving the first message from uplink from the NAS (1) or an intermediate L2 bridge/switch (5, 9) in the leaf, determining whether the client (12, 13) is directly or indirectly connected to one of its ports; and if it is directly connected, bouncing the port to which the client (12, 13) is connected, and sending a second message uplink to the NAS (1) or an intermediate L2 bridge/switch (5, 9) in the leaf; if it is indirectly connected, sending the first message downlink on the port to which the client (12, 13) is indirectly connected to an intermediate L2 bridge/switches (5, 9) in the leaf; and if it is not connected, sending a third message uplink to the NAS (1) or an intermediate L2 bridge/switch (5, 9) in the leaf. They further involve at each intermediate L2 bridge/switch (5, 9) in the leaf: upon receiving the second or third message from downlink from an intermediate L2 bridge/switch (5, 9) in the leaf, forwarding it uplink to the NAS (1) or an intermediate L2 bridge/switch (5, 9) in the leaf. Finally the client (12, 13) may initiate a DHCP request in the second VLAN.
Claims
1. A method of moving, by a server, a client with a MAC address, from a first virtual local area network (VLAN) to a second VLAN, wherein a leaf comprised of a plurality of layer 2 (L2) bridges or switches is connected to the server, the method comprising the steps of: sending, by the server, a first message downlink to at least one L2 bridge or switch of the plurality of L2 bridges or switches; at each L2 bridge or switch in the plurality of L2 bridges or switches, after receiving the first message from the server or from another L2 bridge or switch of the plurality of L2 bridges or switches: determining whether the client is directly or indirectly connected to a port of the respective L2 bridge or switch, and if the client is directly connected, bouncing the port to which the client is connected, and sending a second message uplink to the server or to another L2 bridge or switch of the plurality of L2 bridges or switches, if the client is indirectly connected, sending the first message downlink, via the port to which the client is indirectly connected, to another L2 bridge or switch of the plurality of L2 bridges or switches, or if the client is not connected directly or indirectly to a port of the respective at least one intermediate L2 bridge or switch, sending a third message uplink to the server or another L2 bridge or switch of the plurality of L2 bridges or switches; and after receiving the second or third message from downlink, forwarding the second or third message uplink to the server or to another L2 bridge or switch in the leaf; and initiating, by the client, a dynamic host configuration protocol (DHCP) request in the second VLAN.
2. The method of claim 1, wherein the leaf is further comprised of at least one access point (AP) and the client is connected to one of the at least one AP, the method further comprising: at each AP of the at least one AP and after receiving the first message from uplink from the server or an L2 bridge or switch of the plurality of L2 bridges or switches: determining whether the client is directly connected to a port of the respective AP, and: if it is directly connected, disassociating then reassociating the MAC address of the client, and sending a second message uplink to the server or an L2 bridge or switch of the plurality of L2 bridges or switches; and if it is not directly connected, sending a third message uplink to the server or an L2 bridge or switch of the plurality of L2 bridges or switches.
3. The method of claim 1, wherein the first message comprises a link layer discovery protocol data unit (LLDPDU) with a Cmd-Type Request(0) and the MAC address.
4. The method of claim 1, wherein the second message comprises a LLDPDU with a Cmd-Type ACK(1) and the MAC address.
5. The method of claim 1, wherein the third message comprises a LLDPDU with a Cmd-Type NAK(2) and the MAC address.
6. The method of claim 1, in which the first message comprises a LLDPDU with a Cmd-Type Request(0) and the MAC address, the second message comprises a LLDPDU with a Cmd-Type ACK(1) and the MAC address, and the third message comprises a LLDPDU with a Cmd-Type NAK(2) and the MAC address, and wherein the Cmd-Type and the MAC address of the client are included in one of the TLV types 9-127 in a 802.1AB IEEE Standard LLDPDU.
7. The method of claim 1 in which the client is a non-supplicant client.
8. The method of claim 2, wherein the first message comprises a link layer discovery protocol data unit (LLDPDU) with a Cmd-Type Request(0) and the MAC address.
9. The method of claim 2, wherein the second message comprises a LLDPDU with a Cmd-Type ACK(1) and the MAC address.
10. The method of claim 2, wherein the third message comprises a LLDPDU with a Cmd-Type NAK(2) and the MAC address.
11. The method of claim 2 in which the client is a non-supplicant client.
12. A layer 2 (L2) bridge or switch in a leaf, the L2 bridge or switch comprising: at least one processor; a plurality of ports; and memory comprising executable instructions which, when executed by the at least one processor, cause the L2 bridge or switch to: after receiving a first message from uplink from a server connected to the leaf or from an intermediate uplink L2 bridge or switch in the leaf, determine whether a client corresponding to the first message is directly or indirectly connected to a port of the plurality of ports, and if the client is directly connected, bounce the port to which the client is connected, and send a second message uplink to the server or the intermediate uplink L2 bridge or switch in the leaf, if the client is indirectly connected, send the first message downlink on the port to which the client is indirectly connected, to a downlink intermediate L2 bridge or switch in the leaf, or if the client is not connected, send a third message uplink to the server or to the uplink intermediate L2 bridge or switch in the leaf; and after receiving the second or third message from the downlink intermediate L2 bridge or switch in the leaf, forwarding the second or third message uplink to the server or to the uplink intermediate L2 bridge or switch in the leaf.
13. The layer 2 (L2) bridge or switch of claim 12, wherein the first message comprises a link layer discovery protocol data unit (LLDPDU) with a Cmd-Type Request(0) and the MAC address.
14. The layer 2 (L2) bridge or switch of claim 12, wherein the second message comprises a LLDPDU with a Cmd-Type ACK(1) and the MAC address.
15. The layer 2 (L2) bridge or switch of claim 12, wherein the third message comprises a LLDPDU with a Cmd-Type NAK(2) and the MAC address.
16. The layer 2 (L2) bridge or switch of claim 12, in which the first message comprises a link layer discovery protocol data unit (LLDPDU) with a Cmd-Type Request(0) and the MAC address, the second message comprises a LLDPDU with a Cmd-Type ACK(1) and the MAC address, and the third message comprises a LLDPDU with a Cmd-Type NAK(2) and the MAC address, and wherein the Cmd-Type and the MAC address of the client are included in one of the TLV types 9-127 in a 802.1AB IEEE Standard LLDPDU.
17. A server comprising: at least one processor; and a memory comprising executable instructions which, when executed by the at least one processor, cause the server to: receive a request to move a client from a first virtual local area network (VLAN) to a second VLAN, wherein the client is associated with a media access control (MAC) address and wherein the request comprises the MAC address; after receiving the request to move the client, send a first message downlink to at least one of intermediate layer 2 (L2) bridges, switches, and access points (APs) in a leaf directly connected to the server; and receive, from downlink from any intermediate L2 bridge, switch, or AP in the leaf, a second message indicating that a port to which the client is connected was bounced, or that the MAC address was disassociated and re-associated after receiving, allowing the client to initiate a dynamic host configuration protocol (DHCP) request in the second VLAN.
18. The server of claim 17, wherein the first message comprises a link layer discovery protocol data unit (LLDPDU) with a Cmd-Type Request(0) and the MAC address.
19. The server of claim 17, wherein the second message comprises a LLDPDU with a Cmd-Type ACK(1) and the MAC address.
20. The server of claim 17, in which the first message comprises a link layer discovery protocol data unit (LLDPDU) with a Cmd-Type Request(0) and the MAC address, and the second message comprises a LLDPDU with a Cmd-Type ACK(1) and the MAC address, and wherein the Cmd-Type and the MAC address of the client are included in one of the TLV types 9-127 in a 802.1AB IEEE Standard LLDPDU.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) For a better understanding of the present technology, as well as other aspects and further features thereof, reference is made to the following description which is to be used in conjunction with the accompanying drawings, where:
(2)
(3)
(4)
(5)
(6) It should be noted that, unless otherwise explicitly specified herein, the drawings are not to scale. Finally, elements that are identical from one drawing to the other bear the same numeral reference across drawings.
DETAILED DESCRIPTION
(7) The examples and conditional language recited herein are principally intended to aid the reader in understanding the principles of the present technology and not to limit its scope to such specifically recited examples and conditions. It will be appreciated that those skilled in the art may devise various arrangements which, although not explicitly described or shown herein, nonetheless embody the principles of the present technology and are included within its spirit and scope.
(8) Furthermore, as an aid to understanding, the following description may describe relatively simplified implementations of the present technology. As persons skilled in the art would understand, various implementations of the present technology may be of a greater complexity.
(9) In some cases, what are believed to be helpful examples of modifications to the present technology may also be set forth. This is done merely as an aid to understanding, and, again, not to define the scope or set forth the bounds of the present technology. These modifications are not an exhaustive list, and a person skilled in the art may make other modifications while nonetheless remaining within the scope of the present technology. Further, where no examples of modifications have been set forth, it should not be interpreted that no modifications are possible and/or that what is described is the sole manner of implementing that element of the present technology.
(10) Moreover, all statements herein reciting principles, aspects, and implementations of the present technology, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof, whether they are currently known or developed in the future. Thus, for example, it will be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative circuitry embodying the principles of the present technology. Similarly, it will be appreciated that any flowcharts, flow diagrams, state transition diagrams, pseudo-code, and the like represent various processes which may be substantially represented in computer-readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
(11) The functions of the various elements shown in the figures, including any functional block, may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. In some embodiments of the present technology, the processor may be a general purpose processor, such as a central processing unit (CPU) or a processor dedicated to a specific purpose, such as a digital signal processor (DSP). In the aforementioned, explicit use of the term a processor should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read-only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage. Other hardware, conventional and/or custom, may also be included.
(12) Software modules, or simply modules which are implied to be software, may be represented herein as any combination of flowchart elements or other elements indicating performance of process steps and/or textual description. Such modules may be executed by hardware that is expressly or implicitly shown. Moreover, it should be understood that module may include for example, but without being limitative, computer program logic, computer program instructions, software, stack, firmware, hardware circuitry or a combination thereof which provides the required capabilities.
(13) With these fundamentals in place, we will now consider some non-limiting examples to illustrate various implementations of aspects of the present technology.
(14)
(15) A third client 14 is also illustrated in
(16) When the clients are non-supplicant, this means the clients are not running supplicant software and do not support 802.1x authentication and in particular Extensible Authentication Protocol over LAN, and as discussed above, creates particular technical challenges when a VLAN change is operated by the NAS. The present technology resolves these challenges and is transparent to even supplicant clients.
(17) As is known to the person skilled in the art, the information fields in each Link Layer Discovery Protocol (LLDP) frame are contained in a Link Layer Discovery Protocol Data Unit (LLDPDU) as a sequence of variable length information elements, that each include type, length, and value
(18) fields (known as TLVs). A new specific LLDP TLV has been devised to indicate Client Disconnect message for a given client MAC, exchanged between the NAS and the intermediate L2 bridges/switches. This new LLDP TLV mainly carries two categories of information: 1) Cmd-Type, with supported values: Request(0): this is originated from the NAS 1 towards the intermediate L2 bridges/switches 5, 9 connecting clients 12, 13, to request port bounce on any interface that is directly connected with the client; this is also originated from NAS 1 towards the intermediate L2 Bridge/Switch 5 and AP 8, to request client disassociation at the AP; ACK(1): this is a response from a leaf L2 switch/bridge or AP, towards uplink (where Request(0) was received from) which ultimately finds the client directly connected to one of its ports and bounces it (for example 2.sup.nd L2 bridge/switch 9 for 2.sup.nd client 13, or AP 8 for First client 12). Each uplink intermediate L2 switch/bridge receiving this ACK(1) in turn sends it uplink until the NAS 1 receives it; NAK(2): this is a response from a leaf intermediate L2 switch/bridge or AP towards uplink intermediate L2 switch/bridge (for example from 2.sup.nd L2 bridge/switch 9 to First L2 bridge/switch 5) if the client MAC address isn't found on any of their interfaces. 2) MAC-Address: this is the client MAC address whose Network Interface Controller (NIC) needs to be toggled upon the client's VLAN being changed at NAS 1.
(19) The LLDP TLV is exchanged between the NAS 1 and intermediate L2 bridges/switches 5, 9 hop-by-hop, until it reaches the final L2 switch/bridge or the AP to which the client is directly connected, and where port bounce is triggered on the interface directly connecting the client.
(20) According to IEEE Standard 802.1AB-2016, each LLDPDU contains, as shown in Table 1, three mandatory TLVs, and a number of optional TLVs:
(21) TABLE-US-00001 TABLE 1 TLV type TLV name Usage in LLDPDU 0 End of LLDPDU Optional 1 Chassis ID Mandatory 2 Port ID Mandatory 3 Time To Live Mandatory 4 Port Description Optional 5 System Name Optional 6 System Description Optional 7 System Capabilities Optional 8 Management Address Optional 9-126 Reserved for future standardization 127 Organizationally Optional Specific TLVs
(22) The TLV used according to the present technology may be the one with the type=127. Other types may be used such as types 9-126 in Table 1. The new LLDP TLV may be defined as per Table 2:
(23) TABLE-US-00002 TABLE 2 TLV Type TLV OUI Cmd MAC- 127 Len 11 OUI Sub-type Type address 7 bits 9 bits 3 bytes 1 byte 1 byte 6 bytes 0 2 5 6 7 TLV Header TLV Information String
(24) The name of the TLV may for example be: Client Disconnect.
(25) As regard the TLV Information String:
(26) the organizationally unique identifier (OUI) may for example be: 0080C2;
(27) a OUI Sub-type may for example be: G;
(28) the Cmd-Type may be as defined above, over the next one byte in the frame; and
(29) the MAC Address may be as defined above, over the next six bytes in the frame.
(30) It will be available to the person skilled in the art to know how to build a specific control plane implemented at the NAS 1 and the intermediate L2 bridges/switches 5, 9 in order to handshake Client Disconnect requests and ACK/NAK messages between them. The following constraints for that control plane apply:
(31) each of the intermediate L2 bridges/switches 5, 9 needs to maintain the following information for purposes of responding back with ACK back towards an uplink bridge/switch: the interface on which the LLDP TLV for Client Disconnect request was received; and the client MAC address.
(32) each of the NAS 1 and the intermediate L2 bridges/switches 5, 9 needs to determine whether the client with the client MAC address is directly or indirectly connected to any of its interfaces. For example if a bridge/switch has received a LLDP Media Endpoint Devices (MED) frame from a client with a MAC address, it can determine that such client, with the MAC address, is directly connected to it.
(33)
(34) at step 21, if the client MAC is directly connected to the NAS, the NAS simply bounces the port connecting client MAC; this is for example the case on
(35) at step 22, if not, the NAS may send Client Disconnect LLDP frames with TLV Request(0) to downlink L2 bridges/switches, for example to First L2 bridge/switch 5 on
(36) At First L2 bridge/switch 5, and generally at each intermediate L2 bridge/switch, a check is made, at step 23a, upon receiving from uplink a Client Disconnect LLDP frame with TLV Request(0), whether the client MAC is directly connected to the intermediate L2 bridge/switch:
(37) at step 23b, if the client MAC is directly connected to the intermediate L2 bridge/switch, the intermediate L2 bridge/switch simply bounces the port connecting client MAC, sends Client Disconnect LLDP frames with TLV CmdType ACK(1) to uplink intermediate L2 bridges/switches: this is for example the case on
(38) at step 23c, if the client MAC is found as assigned on one of the interfaces of the intermediate L2 bridge/switch (ie: indirectly connected), it sends Client Disconnect LLDP frames with TLV Request(0) to downlink intermediate L2 bridges/switches: this is for example the case on
(39) at step 23d, if the client MAC is not found assigned on any of the interfaces of the intermediate L2 bridge/switch (ie: not connected, either directly or indirectly), it sends Client Disconnect LLDP frames with TLV CmdType NAK(2) to uplink intermediate L2 bridges/switches: this is for example the case on
(40) At each intermediate L2 bridge/switch, at step 24, any Client Disconnect LLDP frame with TLV CmdType ACK(1) or NAK(2) received from downlink, is forwarded uplink. This is for example the case on
(41) If the NAS doesn't receive any Client Disconnect LLDP frame with TLV CmdType ACK(1) or NAK(2) within a predetermined timeout value, it may resend Client Disconnect LLDP frames with TLV Request(0) to downlink L2 bridges/switches. The number of retries may also be a predetermined number.
(42) The predetermination of either or both of these values may be in relation to the latency as it relates to a characteristic of the network and its topology.
(43) Similarly, it will be available to the person skilled in the art to know how to build a specific control plane implemented at the NAS 1, the intermediate L2 bridges/switches 5, 9 and the AP 8, in order to handshake Client Disconnect requests and ACK/NAK messages between it and the NAS 1 and/or the intermediate L2 bridges/switches 5, 9.
(44) The following constraints for that control plane apply:
(45) each of the intermediate L2 bridges/switches 5, 9 and AP 8 needs to maintain the following information for purposes of responding back with ACK back towards an uplink bridge/switch: the interface on which the LLDP TLV for Client Disconnect request was received; and the client MAC address.
(46) each of the NAS 1, the intermediate L2 bridges/switches 5, 9 and the AP 8 needs to determine whether the client with the client MAC address is directly or indirectly connected to any of its interfaces.
(47) The AP may then handle Client Disconnect LLDP frames as described above, as if an intermediate L2 bridge/switch, which may be leveraged equally for wireless clients where the clients are associated to a SSID.
(48) The DHCP lease request for the client MAC (wired/wireless) ultimately gets requested in the new VLAN to which the client MAC gets assigned after VLAN change, on the NAS port after port-bounce/client-disassociation at any intermediate L2 bridge/switch or AP to which the client is directly connected.
(49)
(50) on NAS 1: (i) all the client MACs ultimately get authenticated and assigned in a particular VLAN for network access, and (ii) client MACs get DHCP IP address leased in the assigned VLAN on NAS port 1/1/1;
(51) on 2nd L2 bridge/switch 9 a wired non-supplicant 2nd Client 13 is directly connected on port 3/1/1, whose MAC address: 00:00:00:00:00:01 gets assigned on NAS 1 in VLAN:10 on NAS port 1/1/1 initially;
(52) on AP 8 a wireless First Client 12 is associated to Open SSID=X, whose MAC address: 00:00:00:00:00:02 gets assigned on NAS 1 in VLAN:10 on NAS port 1/1/1 initially;
(53) traffic from both wired client MAC: 00:00:00:00:00:01 and wireless client MAC: 00:00:00:00:00:02 reaches NAS 1, where it initially gets assigned into a temporary guest VLAN:10 on port 1/1/1, and the client MAC initiates DHCP, and gets DHCP IP address leased in VLAN:10 subnet.
(54) As regard wired non-supplicant 2nd Client 13, the process involves the following steps, going downlink:
(55) at reference 30 on
(56) at reference 31, NAS 1 sends LLDP TLV Client Disconnect with (MAC=00:00:00:00:00:01, CmdType=Request(0)) out on Port 1/1/1;
(57) the First L2 bridge/switch 5 receives this LLDP TLV Client Disconnect message, and searches its L2 table for the MAC, where it finds the MAC assigned in VLAN: 1 on its port 2/1/2. Since First L2 bridge/switch 5 determines this MAC as being not directly connected to it (no LLDP MED received from the MAC), it sends out LLDP TLV (CmdType=Request(0), MAC=00:00:00:00:00:01) out on its port 2/1/2 at reference 32; and
(58) the 2nd L2 bridge/switch receives this LLDP TLV CmdType=Request(0) message, and searches its L2 table for the MAC, where it finds the MAC assigned in VLAN: 1 on its port 3/1/1. Since 2nd L2 bridge/switch determines this MAC as being directly connected (as it had received LLDP MED frame from the client MAC) to it, it bounces its port 3/1/1, thereby facilitating the client NIC to be toggled. This results in the client MAC getting re-assigned in the new VLAN: 20 on NAS 1, and the 2.sup.nd Client 13 initiating fresh DHCP IP address request in the new VLAN: 20.
(59) The process further involves the following steps, going uplink:
(60) at reference 33, 2nd L2 bridge/switch generates LLDP TLV (CmdType=ACK(1), MAC: 00:00:00:00:00:01) out of its port 3/1/2;
(61) First L2 bridge/switch 5 receives the LLDP TLV CmdType=ACK(1) message on its port 2/1/2, and generates LLDP TLV (CmdType=ACK(1), MAC: 00:00:00:00:00:01) out of its port 2/1/1 at reference 34;
(62) NAS 1 receives the LLDP TLV CmdType=ACK(1) message, and determines port bounce for the client MAC:00:00:00:00:00:01 was successful. It no longer retries sending LLDP TLV Client Disconnect.
(63) As regard wireless First Client 12, the process involves the following steps, going downlink:
(64) at reference 35 on
(65) First Client 12 getting successfully authenticated and assigned VLAN: 20 on NAS 1 port 1/1/1;
(66) at reference 36, NAS 1 sends LLDP TLV Client Disconnect with (MAC=00:00:00:00:00:02, CmdType=Request(0)) out on Port 1/1/1;
(67) the First L2 bridge/switch 5 receives this LLDP TLV Client Disconnect message, and searches its L2 table for the MAC, where it finds the MAC assigned in VLAN: 1 on its port 2/1/3. Since First L2 bridge/switch 5 determines this MAC as being not directly connected to it (no LLDP MED received from the MAC), it sends out LLDP TLV (CmdType=Request(0), MAC=00:00:00:00:00:02) out on its port 2/1/3 at reference 37; and
(68) AP 8 receives this LLDP TLV CmdType=Request(0) message, and searches its L2 table for the MAC, where it finds the MAC assigned in SSID=X. AP 8 determines this MAC as being directly connected (ie: associated in an SSID) to it. AP 8 disassociates the client MAC: 00:00:00:00:00:02. This lets the client NIC to be toggled, and results in the client MAC again attempting to associate to AP 8. Upon re-association at AP 8, the client MAC: 00:00:00:00:00:02 gets re-assigned in the new VLAN: 20 on NAS 1, and the First Client 12 initiates fresh DHCP IP address in the new VLAN:20.
(69) The process further involves the following steps, going uplink:
(70) at reference 38, AP 8 generates LLDP TLV (CmdType=ACK(1), MAC: 00:00:00:00:00:02) out of its port connecting to the First L2 bridge/switch 5;
(71) First L2 bridge/switch 5 receives the LLDP TLV CmdType=ACK(1) message on its port 2/1/3, and generates LLDP TLV (CmdType=ACK(1), MAC: 00:00:00:00:00:02) out of its port 2/1/1 at reference 39;
(72) NAS 1 receives the LLDP TLV CmdType=ACK(1) message, and determines port bounce for the client MAC:00:00:00:00:00:02 was successful. It no longer retries sending LLDP TLV Client Disconnect.
(73)
(74) In some embodiments, the computing environment 400 may also be a sub-system of one of the above-listed systems. In some other embodiments, the computing environment 400 may be an off the shelf generic computer system. In some embodiments, the computing environment 400 may also be distributed amongst multiple systems. The computing environment 400 may also be specifically dedicated to the implementation of the present technology. As a person in the art of the present technology may appreciate, multiple variations as to how the computing environment 400 is implemented may be envisioned without departing from the scope of the present technology.
(75) Communication between the various components of the computing environment 400 may be enabled by one or more internal and/or external buses 705 (e.g. a PCI bus, universal serial bus, IEEE 1394 Firewire bus, SCSI bus, Serial-ATA bus, ARINC bus, etc.), to which the various hardware components are electronically coupled.
(76) The input/output interface 404 may allow enabling networking capabilities such as wire or wireless access. As an example, the input/output interface 404 may comprise a networking interface such as, but not limited to, a network port, a network socket, a network interface controller and the like. Multiple examples of how the networking interface may be implemented will become apparent to the person skilled in the art of the present technology. For example, but without being limitative, the networking interface may implement specific physical layer and data link layer standard such as Ethernet, Fibre Channel, Wi-Fi or Token Ring. The specific physical layer and the data link layer may provide a base for a full network protocol stack, allowing communication among small groups of computers on the same local area network (LAN) and large-scale network communications through routable protocols, such as Internet Protocol (IP). According to implementations of the present technology, the solid-state drive 402 stores program instructions suitable for being loaded into the random-access memory 403 and executed by the processor 401 for executing operating data centers based on a generated machine learning pipeline. For example, the program instructions may be part of a library or an application.