COMMISSIONING OF OPTICAL SYSTEM WITH MULTIPLE MICROPROCESSORS

A network element is herein disclosed. The network element comprises a controller card and a pluggable card. The controller card comprises a first processor; a first memory, the first memory being a first non-transitory computer-readable medium storing computer-executable instructions comprising a common software stack and a first microservice stack; and a first device; wherein the first microservice stack includes a first microservice operable to manage the first device. The pluggable card comprises a second processor; a second memory, the second memory being a second non-transitory computer-readable medium storing computer-executable instructions comprising the common software stack and a second microservice stack; and a second device; wherein the second microservice stack includes a second microservice operable to manage the second device.

BACKGROUND

Optical communication systems typically include a first node that supplies optical signals carrying user information or data to a second node that receives such optical signals via an optical communication path that connects the first node to the second node. In certain optical communication systems, the first node is a so-called hub node that communicates with a plurality of second nodes, also referred to as leaf nodes. The optical communication paths that connect the hub with multiple leaf nodes may include one or more segments of optical fiber connected to one another by various optical components or sub-systems, such as optical amplifiers, optical splitters and combiners, optical multiplexers and demultiplexers, and optical switches, for example, wavelength selective switches (WSS). The optical communication path and its associated components may be referred to as a line system.

In each node, the various optical components or sub-systems and the various electrical components and subsystems may each include at least one microprocessor and each node may include at least one processor communicating with each microprocessor. Software development and board bring-up time is proportional to the number of microprocessors in an embedded system. Communication between the microprocessors and the software stack is fundamental for a quick bring-up and successful runtime of the node.

Traditional solutions to reducing development time and simplifying development on a multiprocessor embedded system includes identifying common reusable code blocks across the processor or treating each processor subsystem as an independent software block which is written to extract maximum efficiency from underlying microprocessor hardware without seeking commonality. However, traditional solutions result in difficulties in maintaining versioning and compatibility of reusable components as the number of subsystems increases and if each subsystem is treated as an independent software block, code duplication increases, which in turn increases the chance of bugs and other defects.

Therefore, a need exists for a system having a standardized interface and a common software stack executed on each processor while core subsystem functionality is maintained in a microservice software stack.

SUMMARY

The problem of having a standardized interface and a common software stack executed on each processor while core subsystem functionality is maintained in a microservice software stack is solved by a network element comprising a controller card and a pluggable card. The controller card comprises a first processor; a first memory, the first memory being a first non-transitory computer-readable medium storing computer-executable instructions comprising a common software stack and a first microservice stack; and a first device; wherein the first microservice stack includes a first microservice operable to manage the first device. The pluggable card comprises a second processor; a second memory, the second memory being a second non-transitory computer-readable medium storing computer-executable instructions comprising the common software stack and a second microservice stack; and a second device; wherein the second microservice stack includes a second microservice operable to manage the second device.

Implementations of the above techniques include methods, apparatus, systems, and computer program products. One such computer program product is suitably embodied in a non-transitory computer-readable medium that stores instructions executable by one or more processors. The instructions are configured to cause the one or more processors to perform the above-described actions.

The details of one or more implementations of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other aspects, features and advantages will become apparent from the description, the drawings, and the claims.

DETAILED DESCRIPTION

Before explaining at least one embodiment of the disclosure in detail, it is to be understood that the disclosure is not limited in its application to the details of construction, experiments, exemplary data, and/or the arrangement of the components set forth in the following description or illustrated in the drawings unless otherwise noted.

The disclosure is capable of other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for purposes of description and should not be regarded as limiting.

As used in the description herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having,” or any other variations thereof, are intended to cover a non-exclusive inclusion. For example, unless otherwise noted, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may also include other elements not expressly listed or inherent to such process, method, article, or apparatus.

Further, unless expressly stated to the contrary, “or” refers to an inclusive and not to an exclusive “or”. For example, a condition A or B is satisfied by one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).

In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the inventive concept. This description should be read to include one or more, and the singular also includes the plural unless it is obvious that it is meant otherwise. Further, use of the term “plurality” is meant to convey “more than one” unless expressly stated to the contrary.

As used herein, qualifiers like “substantially,” “about,” “approximately,” and combinations and variations thereof, are intended to include not only the exact amount or value that they qualify, but also some slight deviations therefrom, which may be due to computing tolerances, computing error, manufacturing tolerances, measurement error, wear and tear, stresses exerted on various parts, and combinations thereof, for example.

As used herein, any reference to “one embodiment,” “an embodiment,” “some embodiments,” “one example,” “for example,” or “an example” means that a particular element, feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment and may be used in conjunction with other embodiments. The appearance of the phrase “in some embodiments” or “one example” in various places in the specification is not necessarily all referring to the same embodiment, for example.

The use of ordinal number terminology (i.e., “first”, “second”, “third”, “fourth”, etc.) is solely for the purpose of differentiating between two or more items and, unless explicitly stated otherwise, is not meant to imply any sequence or order of importance to one item over another.

The use of the term “at least one” or “one or more” will be understood to include one as well as any quantity more than one. In addition, the use of the phrase “at least one of X, Y, and Z” will be understood to include X alone, Y alone, and Z alone, as well as any combination of X, Y, and Z.

Where a range of numerical values is recited or established herein, the range includes the endpoints thereof and all the individual integers and fractions within the range, and also includes each of the narrower ranges therein formed by all the various possible combinations of those endpoints and internal integers and fractions to form subgroups of the larger group of values within the stated range to the same extent as if each of those narrower ranges was explicitly recited. Where a range of numerical values is stated herein as being greater than a stated value, the range is nevertheless finite and is bounded on its upper end by a value that is operable within the context of the invention as described herein. Where a range of numerical values is stated herein as being less than a stated value, the range is nevertheless bounded on its lower end by a non-zero value. It is not intended that the scope of the invention be limited to the specific values recited when defining a range. All ranges are inclusive and combinable.

When values are expressed as approximations, e.g., by use of the antecedent “about,” it will be understood that the particular value forms another embodiment. Reference to a particular numerical value includes at least that particular value, unless the context clearly dictates otherwise. The term “about” when used in reference to numerical ranges, cutoffs, or specific values is used to indicate that the recited values may vary by up to as much as 10% from the listed value. Thus, the term “about” is used to encompass variations of ±10% or less, variations of ±5% or less, variations of ±1% or less, variations of ±0.5% or less, or variations of ±0.1% or less from the specified value.

Circuitry, as used herein, may be analog and/or digital components, or one or more suitably programmed processors (e.g., microprocessors) and associated hardware and software, or hardwired logic. Also, “components” may perform one or more functions. The term “component,” may include hardware, such as a processor (e.g., microprocessor), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a combination of hardware and software, and/or the like. The term “processor” as used herein means a single processor or multiple processors working independently or together to collectively perform a task.

Software may include one or more computer readable instruction that when executed by one or more component, e.g., a processor, causes the component to perform a specified function. It should be understood that the algorithms described herein may be stored on one or more non-transitory computer-readable medium. Exemplary non-transitory computer-readable mediums may include random access memory (RAM), a read only memory (ROM), a CD-ROM, a hard drive, a solid-state drive, a flash drive, a memory card, a DVD-ROM, a BluRay Disk, a disk, an optical drive, combinations thereof, and/or the like.

Such non-transitory computer-readable mediums may be electrically based, optically based, magnetically based, and/or the like. Further, the messages described herein may be generated by the components and result in various physical transformations.

As used herein, the terms “network-based,” “cloud-based,” and any variations thereof, are intended to include the provision of configurable computational resources on demand via interfacing with a computer and/or computer network, with software and/or data at least partially located on a computer and/or computer network.

As used herein, a “route” and/or an “optical route” may correspond to an optical path and/or an optical light-path. For example, an optical route may specify a path along which light is carried between two or more network entities.

Users of optical networks may want to determine information associated with the optical network. Optical network information may be difficult to obtain, aggregate, and display. Implementations described herein assist a user in obtaining and viewing aggregated optical network information, such as network information associated with network entities and optical links between the network entities.

As used herein, an optical link may be an optical fiber, an optical channel, an optical super-channel, a super-channel group, an optical carrier group, a set of spectral slices, an optical control channel (e.g., sometimes referred to herein as an optical supervisory channel, or an “OSC”), an optical data channel (e.g., sometimes referred to herein as “BAND”), and/or any other optical signal transmission link.

In some implementations, an optical link may be an optical super-channel. A super-channel may include multiple channels multiplexed together using wavelength-division multiplexing in order to increase transmission capacity. Various quantities of channels may be combined into super-channels using various modulation formats to create different super-channel types having different characteristics. Additionally, or alternatively, an optical link may be a super-channel group. A super-channel group may include multiple super-channels multiplexed together using wavelength-division multiplexing in order to increase transmission capacity.

Additionally, or alternatively, an optical link may be a set of spectral slices. A spectral slice (a “slice”) may represent a spectrum of a particular size in a frequency band (e.g., 12.5 gigahertz (“GHz”), 6.25 GHz, etc.). For example, a 4.8 terahertz (“THz”) frequency band may include 384 spectral slices, where each spectral slice may represent 12.5 GHz of the 4.8 THz spectrum. A super-channel may include a different quantity of spectral slices depending on the super-channel type.

The generation of laser beams for use as optical data carrier signals is explained, for example, in U.S. Pat. No. 8,155,531, entitled “Tunable Photonic Integrated Circuits”, issued Apr. 10, 2012, and U.S. Pat. No. 8,639,118, entitled “Wavelength division multiplexed optical communication system having variable channel spacings and different modulation formats,” issued Jan. 28, 2014, which are hereby fully incorporated in their entirety herein by reference.

Referring now to the drawings, and in particular toFIG.1, shown therein is a diagram of an exemplary embodiment of a system10for commissioning of optical systems with multiple microprocessors constructed in accordance with the present disclosure. A user14may interact with the system10using a user device18that may be used to communicate with one or more network element22, such as a first node22aand/or a second node22bof an optical network26. The user device18may communicate with the optical network26and/or a cloud-based server30via a network34.

In some embodiments, the cloud-based server30may comprise a processor and a memory having a data lake that may store copies of data such as sensor data, system data, metrics, logs, tracing, and/or the like. The data lake may include structured data from relational databases, semi-structured data, unstructured data, time-series data, and binary data. The data lake may be a data base, a remote accessible storage, or a distributed file system. The cloud-based server30is discussed in more detail below, in relation toFIG.3.

In some embodiments, the network34may be the Internet and/or other network. For example, if the network34is the Internet, a primary user interface of the system10may be delivered through a series of web pages or private internal web pages of a company or corporation, which may be written in hypertext markup language, and accessible by the user device18. It should be noted that the primary user interface of the system10may be another type of interface including, but not limited to, a Windows-based application, a tablet-based application, a mobile web interface, an application running on a mobile device, and/or the like.

The network34may be almost any type of network. For example, in some embodiments, the network34may be a version of an Internet network (e.g., exist in a TCP/IP-based network). In one embodiment, the network34is the Internet. It should be noted, however, that the network34may be almost any type of network and may be implemented as the World Wide Web (or Internet), a local area network (LAN), a wide area network (WAN), a metropolitan network, a wireless network, a cellular network, a Bluetooth network, a Global System for Mobile Communications (GSM) network, a code division multiple access (CDMA) network, a 3G network, a 4G network, an LTE network, a 5G network, a satellite network, a radio network, an optical network, a cable network, a public switched telephone network, an Ethernet network, combinations thereof, and/or the like. It is conceivable that in the near future, embodiments of the present disclosure may use more advanced networking topologies.

Optical network26may include any type of network that uses light as a transmission medium. For example, optical network26may include a fiber-optic based network, an optical transport network, a light-emitting diode network, a laser diode network, an infrared network, combinations thereof, and/or other types of optical networks.

The number of devices and/or networks illustrated inFIG.1is provided for explanatory purposes. In practice, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or differently arranged devices and/or networks than are shown inFIG.1. Furthermore, two or more of the devices illustrated inFIG.1may be implemented within a single device, or a single device illustrated inFIG.1may be implemented as multiple, distributed devices. Additionally, or alternatively, one or more of the devices of system10may perform one or more functions described as being performed by another one or more of the devices of the system10. Devices of the system10may interconnect via wired connections, wireless connections, or a combination thereof.

Referring now toFIG.2, shown therein is a diagram of an exemplary embodiment of the user device18of the system10constructed in accordance with the present disclosure. In some embodiments, the user device18may include, but is not limited to, implementations as a personal computer, a cellular telephone, a smart phone, a network-capable television set, a tablet, a laptop computer, a desktop computer, a network-capable handheld device, a server, a digital video recorder, a wearable network-capable device, a virtual reality/augmented reality device, and/or the like.

In some embodiments, the user device18may include one or more input device50(hereinafter “input device50”), one or more output device54(hereinafter “output device54”), one or more processor58(hereinafter “processor58”), one or more communication device62(hereinafter “communication device62”) capable of interfacing with the network34, one or more non-transitory computer-readable memory66(hereinafter “memory66”) storing processor-executable code and/or software application(s), for example including, a web browser capable of accessing a website and/or communicating information and/or data over a wireless or wired network (e.g., the network34), and/or the like. The input device50, output device54, processor58, communication device62, and memory66may be connected via a path70such as a data bus that permits communication among the components of user device18.

The memory66may store an application74that, when executed by the processor58causes the user device18to perform an action such as communicate with or control one or more component of the user device18and/or the network34.

The input device50may be capable of receiving information input from the user14and/or processor58, and transmitting such information to other components of the user device18and/or the network34. The input device50may include, but is not limited to, implementation as a keyboard, a touchscreen, a mouse, a trackball, a microphone, a camera, a fingerprint reader, an infrared port, a slide-out keyboard, a flip-out keyboard, a cell phone, a PDA, a remote control, a fax machine, a wearable communication device, a network interface, combinations thereof, and/or the like, for example.

The output device54may be capable of outputting information in a form perceivable by the user14and/or processor58. For example, implementations of the output device54may include, but are not limited to, a computer monitor, a screen, a touchscreen, a speaker, a website, a television set, a smart phone, a PDA, a cell phone, a fax machine, a printer, a laptop computer, a haptic feedback generator, combinations thereof, and the like, for example. It is to be understood that in some exemplary embodiments, the input device50and the output device54may be implemented as a single device, such as, for example, a touchscreen of a computer, a tablet, or a smartphone. It is to be further understood that as used herein the term user (e.g., the user14) is not limited to a human being, and may comprise a computer, a server, a website, a processor, a network interface, a user terminal, a virtual computer, combinations thereof, and/or the like, for example.

The network34may permit bi-directional communication of information and/or data between the user device18, the cloud-based server30, and/or the network element22. The network34may interface with the cloud-based server30, the user device18, and/or the network element22in a variety of ways. For example, in some embodiments, the network34may interface by optical and/or electronic interfaces, and/or may use a plurality of network topographies and/or protocols including, but not limited to, Ethernet, TCP/IP, circuit switched path, combinations thereof, and/or the like. The network34may utilize a variety of network protocols to permit bi-directional interface and/or communication of data and/or information between the cloud-based server30, the user device18and/or the network element22.

Referring now toFIG.3, shown therein is a diagram of an exemplary embodiment of cloud-based server30constructed in accordance with the present disclosure. In the illustrated embodiment, the cloud-based server30is provided with one or more processor88(hereinafter “processor88”) and a non-transitory computer-readable storage memory86(hereinafter “memory86”) accessible by the processor88of the cloud-based server30.

In some embodiments, the cloud-based server30may comprise one or more processor88working together, or independently to, execute processor-executable code stored on the memory86. Additionally, each cloud-based server30may include at least one input device90(hereinafter “input device90”) and at least one output device92(hereinafter “output device92”). Each element of the cloud-based server30may be partially or completely network-based or cloud-based, and may or may not be located in a single physical location. It is to be understood, that in certain embodiments using more than one processor88, the processors88may be located remotely from one another, located in the same location, or comprising a unitary multi-core processor. The processors88may be capable of reading and/or executing processor-executable code and/or capable of creating, manipulating, retrieving, altering, and/or storing data structures into the memory86.

Exemplary embodiments of the processor88may include, but are not limited to, a digital signal processor (DSP), a central processing unit (CPU), a field programmable gate array (FPGA), a microprocessor, a multi-core processor, an application specific integrated circuit (ASIC), combinations, thereof, and/or the like, for example. The processor88may be capable of communicating with the memory86via a path94(e.g., data bus). The processor88may be capable of communicating with the input device90and/or the output device92.

The processor88may be further capable of interfacing and/or communicating with the user device18and/or the network elements22via the network34using a communication device96. For example, the processor88may be capable of communicating via the network34by exchanging signals (e.g., analog, digital, optical, and/or the like) via one or more ports (e.g., physical or virtual ports) using a network protocol to provide information to the user device18.

The memory86may be implemented as a conventional non-transitory memory, such as for example, random access memory (RAM), CD-ROM, a hard drive, a solid-state drive, a flash drive, a memory card, a DVD-ROM, a disk, an optical drive, combinations thereof, and/or the like, for example.

In some embodiments, the memory86may be located in the same physical location as the cloud-based server30, and/or one or more memory86may be located remotely from the cloud-based server30. For example, the memory86may be located remotely from the cloud-based server30and communicate with the processor88via the network34. Additionally, when more than one memory86is used, a first memory86may be located in the same physical location as the processor88, and additional memory86may be located in a location physically remote from the processor88. Additionally, the memory86may be implemented as a “cloud” non-transitory computer-readable storage memory (i.e., one or more memory86may be partially or completely based on or accessed using the network34).

The input device90of the cloud-based server30may transmit data to the processor88and may be similar to the input device50of the user device18. The input device90may be located in the same physical location as the processor88, or located remotely and/or partially or completely network-based. The output device92of the cloud-based server30may transmit information from the processor88to the user12or a network element22, and may be similar to the output device54of the user device18. The output device92may be located with the processor88, or located remotely and/or partially or completely network-based.

The memory86may store processor-executable code and/or information comprising a database and a cloud server software.

Referring now toFIG.4, shown therein is a diagram of an exemplary embodiment of a node22, such as the first node22aand/or the second node22bofFIG.1, constructed in accordance with the present disclosure. The node22generally comprises an embedded device100(shown as embedded device100aand embedded device100b), a communication device104to allow one or more component of the node22to communicate to one or more other component of the node22or to another node22in the system10via the network34, and a controller card108.

Network element22may include one or more device that gathers, processes, stores, and/or provides information in response to a request in a manner described herein. For example, Network element22may include one or more optical data processing and/or traffic transfer device, such as an optical node, an optical amplifier (e.g., a doped fiber amplifier, an erbium doped fiber amplifier, a Raman amplifier, etc.), an optical add-drop multiplexer (“OADM”), a reconfigurable optical add-drop multiplexer (“ROADM”), a flexibly reconfigurable optical add-drop multiplexer module (“FRM”), an optical source component (e.g., a laser source, or optical laser), an optical source destination (e.g., a laser sink), an optical multiplexer, an optical demultiplexer, an optical transmitter, an optical receiver, an optical transceiver, a photonic integrated circuit, an integrated optical circuit, a computer, a server, a router, a bridge, a gateway, a modem, a firewall, a switch, a network interface card, a hub, and/or any type of device capable of processing and/or transferring optical traffic.

In some implementations, the network element22may include a OADM and/or a ROADM capable of being configured to add, drop, multiplex, and demultiplex optical signals. Network element22may process and transmit optical signals to another network element22throughout the optical network26in order to deliver optical transmissions.

Layer 1 specific embodiments of the network element22may optionally be provided with additional elements that are not shown in the Figures such as an optical transceiver, a digital signal processor (DSP), and additional high-speed integrated circuit (ASIC or FPGA) that is specialized to handle high-speed data frames/packets.

Layer 0 specific embodiments of network element22may optionally be provided with additional elements that are not shown in the Figures such as a Wavelength Selective Switch (WSS), Variable Optical Attenuator (VOA), Erbium Doped Fiber Amplifier (EDFA), or Raman amplifiers, and optical channel monitors, for instance.

In one embodiment, the embedded device100includes one or more digital coherent optics module having one or more coherent optical transceiver operable to receive a client data from an electrical signal and transmit the client data in an optical signal and/or receive the client data from an optical signal and transmit the client data in an electrical signal, or a combination thereof. In one embodiment, the embedded device100may include one or more of the Layer 1 elements and/or Layer 0 elements as detailed above. The embedded optical device may have one or more property affecting a function of the embedded device and one or more status indicative of a current state of at least one component of the embedded device.

In accordance with the present disclosure, the network element22may be a holder, like a chassis, or a contained/logical equipment, like an optical line card within the chassis. In one embodiment, the network element22may be a logical entity comprising one or more chassis101having one or more pluggable cards102that form the network element22, as shown inFIG.7and described in more detail below. For instance, pluggable cards may include traffic carrying (“data plane”) cards that may have customized silicon such as ASICs or FPGAs that process the data frames/packets, based on the functionality of the card. Another exemplary traffic carrying card is a router line-card which has packet processing ASICs or other specialized silicon. Another exemplary optical line card includes a DSP module and/or optical photonic circuits. Control cards108(“control and management plane”) do not process data packets but run all the software that implement the control plane (routing protocols) and management plane (management interfaces such as CLI, NETCONF, gRPC, DHCP etc.) such as the system applications208, the client applications212, and the microservices220described below in more detail. The control card108typically has an off-the-shelf CPU (such as Intel or ARM) and runs some variant of an operating system (more recently, Linux or QNX or BSD), described below in more detail. Other embedded devices100include common cards that may also be added such as fan trays, power entry modules, and others that provide auxiliary functions of the chassis.

It should be noted that the diagram of the node22inFIG.4is simplified to include one controller card108in communication with multiple embedded devices100. It is understood that the node22may include more than one controller card108, and each controller card108may be in communication with one or more embedded device100via the same or a different communication device104.

The number of devices illustrated inFIG.4is provided for explanatory purposes. In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than are shown inFIG.4. Furthermore, two or more of the devices illustrated inFIG.4may be implemented within a single device, or a single device illustrated inFIG.4may be implemented as multiple, distributed devices. Additionally, one or more of the devices illustrated inFIG.4may perform one or more functions described as being performed by another one or more of the devices illustrated inFIG.4. Devices illustrated inFIG.4may interconnect via wired connections (e.g., fiber-optic connections).

Referring now toFIG.5, shown therein is an exemplary embodiment of the embedded device100constructed in accordance with the present disclosure. In some embodiments, the embedded device100may include, but is not limited to, one or more input device120(hereinafter “input device120”), one or more output device124(hereinafter “output device124”), one or more processor128(hereinafter “processor128”), one or more communication device132(hereinafter “communication device132”) operable to interface with the communication device104, one or more non-transitory computer-readable medium136(hereinafter “memory136”) storing processor-executable code and/or software application(s) (described below in more detail). The input device120, output device124, processor128, communication device132, and memory136may be connected via a path144such as a data bus that permits communication among the components of the embedded device100.

The input device120may be capable of receiving client data and transmitting the client data to other components of the system10. The input device120may include, but is not limited to, implementation as an optical network interface, an electrical network interface, combinations thereof, and/or the like, for example.

The output device124may be capable of outputting client data. For example, implementations of the output device124may include, but are not limited to, implementation as an optical network interface, an electrical network interface, combinations thereof, and/or the like, for example.

Referring now toFIG.6, shown therein is an exemplary embodiment of the controller card108constructed in accordance with the present disclosure. In some embodiments, the controller card108may include, but is not limited to, one or more input device150(hereinafter “input device150”), one or more output device154(hereinafter “output device154”), one or more processor158(hereinafter “processor158”), one or more communication device162(hereinafter “communication device162”) operable to interface with the communication device104, one or more non-transitory memory166(hereinafter “memory166”) storing processor-executable code and/or software application(s) (described below in more detail). The input device150, output device154, processor158, communication device162, and memory166may be connected via a path170such as a data bus that permits communication among the components of the controller card108.

The input device150may be capable of receiving client data and transmitting the client data to other components of the system10. The input device150may include, but is not limited to, implementation as an optical network interface, an electrical network interface, combinations thereof, and/or the like, for example.

The output device154may be capable of outputting client data. For example, implementations of the output device154may include, but are not limited to, implementation as an optical network interface, an electrical network interface, combinations thereof, and/or the like, for example.

Referring now toFIG.7, shown therein is a functional diagram of the network element22constructed in accordance with the present disclosure. The network element22generally includes a chassis101having a controller card108(FIG.6) and at least one pluggable card102. The pluggable card102may include the embedded device100aand the embedded device100b,as shown. As used herein, a processor block may refer to a combination of components of a device including a memory, a processor, and a communication device. Thus, also shown is a processor block200aof the embedded device100acomprising a processor128a,a memory136a,and a communication device132a;a processor block200bof the embedded device100bcomprising a processor128b,a memory136b,and a communication device132b;and a processor block200cof the controller card108comprising the processor158, the memory166, and the communication device162.

As shown inFIG.7, each processor block200includes computer software stored on a memory. The computer software may include a common software stack204having one or more system application208a-nand one or more client application212a-n,and a microservice stack216comprising one or more microservice220a-n.In one embodiment, the microservice stack216, the one or more client application212, and, optionally, one or more system application208may be containerized applications and/or services that can communicate with each other via a virtualized network224. An exemplary container framework may include Docker, and the virtualized network224may be a docker network, for example.

In one embodiment, the one or more system applications208includes one or more of a Linux distribution208a,a boot configuration208b(such as Uboot, a File System), a networking configuration208c,an interface block208d,and system services208e(such as security services, watchdog, FDR, Host Daemons, virtualization infrastructure, systlog-ng, upgrade services, and a device microservice), for example. Each implementation of the common software stack204may include the same computer software having the same version on each processor block200having the common software stack204.

The Linux distribution208amay include, for example, Debian, Ubuntu, Arch, Fedora, and/or the like. The boot configuration208bmay ensure that the Filesystem design is replicated for each common software stack204and that a common boot procedure, such as Uboot, is implemented in each common software stack204.

The networking configuration208cmay ensure replication of networking setup between processor blocks200such that pluggable cards102use DHCP to acquire an IP address, e.g., from the communication device104and/or from the controller card108.

The interface block208dmay provide a secure entry-point to the common software stack204and/or other software stored on the memory, e.g., the memory166,136a,136b.The interface block208dmay be defined using protocol buffers, e.g., protobuf. The interface block208dmay implement gnmi compliant APIs, such as GET, SET, SUBSCRIBE, and CAPABILITIES). In some embodiments, the interface block208dis a data-driven interface and is scalable. In some embodiments, the interface block208dmaintains backwards compatibility with prior versions. In this way, security is maintained as the messaging server212a(below) is the entry point into systems in the processor block200and API validation and security are ensured through the messaging server212a.

In one embodiment, system services208e(such as security services, watchdog, FDR, Host Daemons, virtualization infrastructure, systlog-ng, and upgrade services) may be managed using a system service control application, such as ‘systemctl’.

In one embodiment, the one or more client application212includes one or more of the messaging server212aand a database212b,for example. In some embodiments, the messaging server212ais a REDIS server. In some embodiments, the database212bis a relational database or a non-relational database and is preferably a time-series database. Exemplary databases implemented as the database212bmay include DB2®, Microsoft® Access, Microsoft® SQL Server, Oracle®, mySQL, PostgreSQL, MongoDB, Apache Cassandra, InfluxDB, Prometheus, Redis, Elasticsearch, TimescaleDB, and/or the like. It should be understood that these examples have been provided for the purposes of illustration only and should not be construed as limiting the presently disclosed inventive concepts.

In one embodiment, other client applications212include a messaging server adapter212c,e.g., a grpc-adapter, and a database adapter212d,e.g., redis-adapter. Each client application212, for example, the messaging server212a,the database212b,the messaging server adapter212c,and the database adapter212d,may be common across all processor blocks200. The configuration of each of the messaging server212a,the database212b,the messaging server adapter212c,and the database adapter212dmay be tailored to a particular subsystem requirement through a change to a configuration file.

Additionally, when each of the messaging server212a,the database212b,the messaging server adapter212c,and the database adapter212dare implemented as containers in the processor block, container orchestration may be configured using a container configuration file, e.g., a ‘docker-compose.yml’ file when Docker is used for container implementation.

In one embodiment, the microservices220are processor block specific microservices, i.e., the microservices220stored in a memory of a particular processor block200are determined by each device228that may be in communication with the particular processor block200, as described below. Exemplary microservices220include: a board initialization microservice, a Hal Platform control plane microservice, a data plane microservice, a TOM Microservice, and a board microservice.

The board initialization microservice may, for example, bring up one or more interface on a board, e.g., the controller board108and/or the pluggable card102, and program a first state after power up or reboot of the board. The Hal Platform control plane microservice may determine a routing of data and manage network specific interfaces. The data plane microservice may manage and control data handling, processing, and forwarding. The TOM microservice may include optical module control such as control of one or more component on an optical plane such as an optical transceiver, for example. The board microservice may monitor one or more component of the board, e.g., the controller board108, the node22, and/or the pluggable card102, for faults, performance, and board status related actions.

In one embodiment, a third-party agent software232is shown executing in a third-party device236. The third-party device236may be one or more of the cloud-based server30and/or the user device18, for example.

As shown inFIG.7, the network element22generally includes one or more device228a-n,depicted as devices228a-g.Each processor block200in communication with a particular device228may include at least one microservice220to manage the particular device228. For example, the processor block200ain communication with the device228cand the device228dincludes a microservice220cand a microservice220dto manage the device228cand the device228d,respectively; the processor block200bin communication with the device228eincludes a microservice220eto manage the device228e;and the processor block200cin communication with the device228aand the device228bincludes a microservice220aand a microservice220bto manage the device228aand the device228b,respectively. Each microservice220may be unique for each processor block200.

Exemplary devices228may include, for example, customized silicon such as ASICs or FPGAs, a router line-card, a DSP module, an optical/photonic circuit, an optical transceiver, a WSS, a VOA, a EDFA, Layer 0 elements described above, Layer 1 elements described above, and other components necessary for functioning of the network element22, and the like. For example, as shown inFIG.7, the device228cmay be a first FPGA, the device228dmay be an ASIC, the device228emay be a second FPGA in communication with the device228d,the device228fmay be a DSP in communication with the device228c,and the device228gmay be an optical transceiver in communication with the device228d.

In one embodiment, each processor block200further includes a microservice220for a device228that is connected indirectly to the processor block200. While not shown inFIG.7for simplicity, the processor block200amay, in some embodiments, further include a microservice220f,a microservice220g,and a microservice220eto manage a device228f,a device228g,and the device228e,respectively, as the device228fis indirectly connected to the processor block200athrough the device228cand the devices228g,228eare indirectly connected to the processor block200athrough the device228d.Likewise, the processor block200bmay, in this embodiment, further include the microservice220dand the microservice220gto manage the devices228d,228grespectively as the device228gis indirectly connected to the processor block200bthrough the device228d,which is further indirectly connected to the processor block200bthrough the device228e,for example.

In some embodiments, the controller card108may include one or more microservice220, for example, microservice220h,to provide communication between the controller card108and one or more processor block200of the pluggable card102, such as via the communication device132bof the processor block200bas shown inFIG.7. In some embodiments, when the processor block200ccommunicates with the processor block200bvia the microservice220h,microservices220on the virtualized network224in the processor block200cmay communicate with one or more microservice220on the virtualized network224in the processor block200b.Here, the virtualized network224in the processor block200cand the virtualized network224in the processor block200bmay be the same virtualized network224.

In one embodiment, one or more of the microservices220may communicate with more than one device228. In another embodiment, a first microservice220may act as an intermediary between two or more devices228. In yet another embodiment, a first microservice220may act as an intermediary between a first device228and a second microservice220.

From the above description, it is clear that the inventive concept(s) disclosed herein are well adapted to carry out the objects and to attain the advantages mentioned herein, as well as those inherent in the inventive concept(s) disclosed herein. While the embodiments of the inventive concept(s) disclosed herein have been described for purposes of this disclosure, it will be understood that numerous changes may be made and readily suggested to those skilled in the art which are accomplished within the scope and spirit of the inventive concept(s) disclosed herein.