Software-Defined Network (SDN) is an emerging architecture that is dynamic, manageable, cost-effective, and adaptable, making it ideal for the high-bandwidth, dynamic nature of applications. This architecture decouples the network control and forwarding functions enabling the network control to become directly programmable and the underlying infrastructure to be abstracted for applications and network services. In the SDN, network control is directly programmable because it is decoupled from forwarding functions. Abstracting control from forwarding in the SDN lets administrators dynamically adjust network-wide traffic flow to meet changing needs. Network intelligence in the SDN is logically centralized in software-based SDN controllers that maintain a global view of the network, which appears to applications and policy engines as a single, logical switch. The SDN lets network managers configure, manage, secure, and optimize network resources very quickly via dynamic, automated SDN programs, which they can write themselves because the programs do not depend on proprietary software.
In one embodiment, the disclosure includes a method for network configuration. The method comprises providing representation of a software defined network (SDN) comprising a plurality of switches located in separate locations, wherein each switch has a selection likelihood and one or more assignment likelihoods, the selection likelihood to indicate how likely a controller is located with the switch, each assignment likelihood of the switch to indicate how likely a separate one of the switches is assigned to a controller located with the switch; identifying possible values of the selection likelihood and the assignment likelihoods of each switch subject to allocation constraint imposed on one or more controllers of the SDN; comparing values of an objective measure of the switches among the possible values of the selection likelihood, wherein the objective measure indicates number of the controllers for the SDN; selecting, based on the comparison, a set of values from the possible values of the selection likelihood and the assignment likelihoods of each switch; rounding the set of values selected to integer values respectively in a randomized rounding manner, wherein the integer values indicate where each controller is located among the separate locations, and wherein the integer values indicate which of the controllers each switch is assigned to; and allocating, based on the integer values, the controllers in the SDN.
In one embodiment, the disclosure includes a placement server, comprising: transceiver units; a processor; and a memory coupled to the processor, wherein the memory comprises instructions. When implemented by the processor, the instructions may cause the server to identify possible values of selection likelihood and assignment likelihoods of each switch in a software defined network (SDN) subject to allocation constraint imposed on one or more controllers of the SDN, where each switch has a selection likelihood and one or more assignment likelihoods, the selection likelihood to indicate how likely a controller is located with the switch, each assignment likelihood of the switch to indicate how likely a separate one of the switches is assigned to a controller located with the switch; compare values of an objective measure of the switches among the possible values of the selection likelihood, wherein the objective measure indicates number of the controllers for the SDN; select, based on the comparison, a set of values from the possible values of the selection likelihood and the assignment likelihoods of each switch; round the set of values selected to integer values respectively in a randomized rounding manner, wherein the integer values indicate where each controller is located among the separate locations, and wherein the integer values indicate which of the controllers each switch is assigned to; and allocate, based on the integer values, the controllers in the SDN.
In one embodiment, the disclosure includes a non-transitory computer-readable medium, storing instructions. When the instructions are executed by a processor, the instructions cause the processor to identify possible values of selection likelihood and assignment likelihoods of each switch in a software defined network (SDN) subject to allocation constraint imposed on one or more controllers of the SDN, where each switch has a selection likelihood and one or more assignment likelihoods, the selection likelihood to indicate how likely a controller is located with the switch, each assignment likelihood of the switch to indicate how likely a separate one of the switches is assigned to a controller located with the switch; compare values of an objective measure of the switches among the possible values of the selection likelihood, wherein the objective measure indicates number of the controllers for the SDN; select, based on the comparison, a set of values from the possible values of the selection likelihood and the assignment likelihoods of each switch; round the set of values selected to integer values respectively in a randomized rounding manner, wherein the integer values indicate where each controller is located among the separate locations, and wherein the integer values indicate which of the controllers each switch is assigned to; and allocate, based on the integer values, the controllers in the SDN.
For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.
It should be understood at the outset that although an illustrative implementation of one or more embodiments are provided below, the disclosed systems and/or methods may be implemented using any number of techniques, whether currently known or in existence. The disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the exemplary designs and implementations illustrated and described herein, but may be modified within the scope of the appended claims along with their full scope of equivalents.
Disclosed herein are various embodiments for a framework of network controller placement. The framework can achieve substantially optimal network planning, good load balancing, and efficient link utilization. Traffic-driven design is important to provide optimal controller placement in software-defined networks. Further, traffic-driven designs provide good planning for out-band and necessary design for in-band SDNs. A method is provided that jointly considers controller placement and control traffic engineering for the multiple controllers. An efficient and effective approximation algorithm is employed to achieve good solution as compared with the optimal one within a few iterations. A linear-fast convergent algorithm is employed to achieve optimal solution within a few iterations and to provide a sub-optimal solution for each of the iterations for real-time application. Due to computational efficiency and low time complexities, various embodiments may be applied to generic large-scale SDNs with different traffic statistics.
Software-defined networks (SDNs) decouple network forwarding infrastructure from the supporting management applications to provide high flexibility for better network architecture planning. The global information visibility of SDNs, such as real-time network and traffic states, facilitates new control traffic engineering, which is particularly crucial for in-band SDNs. The framework of this application for network controllers can address the joint consideration of network planning with control traffic balancing, which serves as the prerequisite of on-line and adaptive data traffic engineering in SDNs. For in-band SDNs, control messages are greatly affected by the existing data traffic and the link serving capacity, and thus such a joint consideration is important. For out-band SDNs. The framework of this application can provide network architecture planning for out-band SDNs with extra control channels dedicated for control messages. Out-band SDNs may serve as a special case of In-band modes.
In addition to “pure” facility allocation that considers the optimal network planning for the minimum required facilities, the framework of this application can take into account the impact on the traffic performance from the given allocation. Further, the framework of this application can be adapted to balance and forward data traffic in data plane as well as the in-band control traffic. Existing. The framework of this application can also determine an optimal (or substantially optimal) multi-controller placement together with determining a minimum (or substantially minimum) required number of controllers, controller locations, and control domain assignments.
In some embodiments, the framework of this application can identify the optimal forwarding paths between switches and controllers to minimize the average (or maximum) delay of control traffic. Considerations of the delays of control traffic may have a higher priority than the delays of data traffic in controller placement. The framework of this application can be applicable for a single-controller network, a multiple-controller network or other applicable network configurations. The framework of this application can support network planning jointly considering the topological resource allocation and the traffic performance through the information of global network states and dynamic traffic statics.
In an embodiment, a controller (e.g., an SDN controller) may be configured to generate the framework that jointly considers the controller placement with traffic performance. Multiple-controller placements with respect to controller serving capacity and localized control domain may be considered concurrently with the impact of control traffic from data traffic and link serving capability. The controller provides a framework that allows reliable controller placement, allows real-time control traffic transmission, allows fast re-routing of control traffic, serves as the foundation for designing traffic-driven controller architecture, and provides the performance benchmark for any other control polices afterwards.
For example, the framework may provide high transmission quality by minimizing the queuing latency of control traffic regarding in-band transmissions with existing data flows. Additionally, the framework may be highly scalable by providing fast, and possibly parallel, computations to ensure low complexity for practical large system implementation. The framework may be robust and achieves consistent good performance under a variety of traffic scenarios and different network topologies via traffic statistics driven designs. The framework may be easily implemented in centrally controlled SDN. For optimal multiple-controller placement an approximation algorithm with provable performance bounds is provided. For optimal control traffic forwarding with large network size and vast decision space a fast and parallel algorithm is also provided.
The framework applies a queuing network model and traffic statistics to the joint optimized traffic-driven controller placement problem. For example, an approximated randomized rounding method is used to decide the placement of multiple controllers based on queuing network model and Markovian traffic statistics. An efficient transmission methodology and real-time re-routing of control traffic are then applied to yield the fast convergence to the optimal solution by employing the Alternating Direction Method of Multipliers (ADMM) with respect to multiple controllers.
A non-linear multi-objective optimization is formulated to minimize the required number of controllers and/or to minimize the average (or maximum) network delay. The non-linear multi-objective optimization may have topology constraints, capacity constraints, and traffic constraints. Examples of constraints may include, but are not limited to, localized domain assignment requirements, a dedicated controller to each switch, controller serving capacity constraints, flow conservation (possible automatic route selection), link serving capacity constraints, and bandwidth guarantees of data traffic.
A non-linear multi-objective (mixed integer and continuous) optimization framework is included to find the optimal controller placement and optimal control traffic forwarding among links at the same time. A randomized rounding approximation algorithm is provided to obtain a feasible assignment solution for controller locations. In an embodiment, the expected number of iterations is at most 2 for a “good” solution. A polynomial-time algorithm is provided to yield optimal solutions with pre-specified accuracy for control traffic forwarding. For example, the polynomial-time algorithm is a fast convergent algorithm O(1/cm) of primal-dual rules that is enforced to enable fast transmission and real-time re-routing of control traffic. The randomized rounding approximation algorithm and the polynomial-time algorithm can be implemented iteratively to provide adaptive control for continuous system performance improvement.
Two approaches may develop control channels: dedicated out-band control or in-band control. Dedicated out-band control may use a dedicated network to establish direct control links between each switch and its responsible controller. Such an approach is cost-prohibitive and not suitable for large-scale networks, such as metropolitan-area-networks that span a city. On the contrary, in-band control may allow control and data messages to share the same forwarding infrastructure and thus is more cost-efficient. Therefore, in-band control may be preferred in some embodiments.
For example, network 100B may include a graph G=(V, J) representing a network, such as an SDN or a queuing network. V may denote the set of OF-switches with total n switches (i.e., |V|=n) and J may denote the set of links with total |J| links. A controller can be placed at any location among all OF-switches. The set of SDN controllers can be denoted as K⊂V with a total of C controllers, and the serving time capability of the kth controller can be modeled as an exponential distribution with a mean time value 1/μCk, ∀kεK.
Network 100B may be based on a representation generated by an SDN controller. In one embodiment, network 100B includes one or more controllers, such as controllers 108A and 108B and comprises a plurality of switches, such as switches 106A-106H. The controllers 108 and the switches 106 are interconnected using links (e.g., physical links or virtual links) and/or tunnels (e.g., multiprotocol label switching (MPLS) tunnels). Each link has a link capacity, which is shown as a solid line Sj. Links 110 are configured to support, for example, control flows 102 and data flows 104. Control flows 102 are shown as dashed arrowed lines Bj. Data flows 204 are shown as solid arrowed lines Ai. Network 100B may be configured as shown or in any other suitable configuration. Network 100B may be the queuing network system in the embodiments associated with
In one embodiment, regenerative stochastic processes for generic traffic models that generalize Internet traffic models can include alternating renewal processes, recurrent Markov chains, and reflected Brownian motion. Without loss of generality, both control and data flows may be modeled by regenerative processes. In particular, the control traffic of each switch i is modeled by a regenerative arrival process Ai a mean value σi. For the jth link and jεJ, the existing data flow follows a regenerative arrival process Bj with mean value and link serving time follows another regenerative process with mean time 1/μj
In one embodiment, SDN configuration module 131 may generate or receive requirement, specifications or configuration data of an SDN, such as quantity of switches, data forwarding speed, packet loss rate and so on. Allocation module 132 may allocate controllers based on controller placement result generated by or received from control placement generation module 134. Network interface module 133 may communicate data packets or control packets with other apparatus in the SDN and out of the SDN, such as an SDN switch, an SDN controller, a gateway, a base station or a router. Controller placement generation module 134 may generate a controller placement result for an SDN. The result may indicate how many controllers are needed, where the controllers are located, and/or which controller each switch should be assigned.
In one embodiment, allocation module 132 may deliver or transmit controller placement (or activation) and switch assignment instructions to targeted controller/switches according to a result of controller placement. For example, these instructions may dynamically activate/deactivate already installed controller devices/components collocated with switches to dynamically update controller placement/assignment for an SDN in real time. Alternatively or optionally, allocation module 132 may generate a user interface representation of the placement result to be presented, for example, via user interface module 135. A graphic user interface of the placement result may display (e.g. in a screen) topology of the SDN, amount of controllers to be allocated, the position of the controllers and some other applicable information.
Controller placement generation module 134 may a plurality of sub-modules. For example, network modeling sub-module 134A may provide representation of the SDN. In one embodiment, each switch has a selection likelihood and one or more assignment likelihoods in the representation of the SDN. The representation may allow formulation of the controller placement decisions as search/optimization operations based on an objective measure. For example, control placement generation module 134 may be configured with constraints settings 134F specifying required relationships among possible assignment/selection values for each switch.
The search/optimization operations may be performed by sub-modules of controller placement generation module 134. For example, possible values identification sub-module 134B can identify possible values of the selection likelihood and the assignment likelihoods of each switch subject to allocation constraint imposed on one or more controllers of the SDN. Constraint settings 134F can include requirements or constraints, such as allocation constraint or other applicable constraints, for determining controller placements. Value comparison sub-module 134C may compare values of an objective measure of the switches among the possible values of the selection likelihood. Value selection sub-module 134D may select, based on the comparison result of sub-module 134C, a set of values from the possible values of the selection likelihood and the assignment likelihoods of each switch.
Control placement generation module 134 may include rounding sub-module 134E to determine whether a controller should be located with a switch and which controller a switch should be assigned to, based on the result of search/optimization operations, by rounding the set of values selected to integer values respectively in a randomized rounding manner.
At step 208, process 200 constructs a queuing network system based on the collected topological information and traffic statistics. A queuing network system can be a data structure representing a network relationship, as illustrated in an exemplary queuing network system 100B. Process 200 also formulates a traffic-driven optimal network planning problem. A jointly optimized traffic-driven optimal controller placement problem may be based on the system model, placement indicators, and/or traffic matrices. At step 210, process 200 applies a randomized rounding approximation algorithm to decide the placement of multiple controllers. The SDN may obtain good plans for the minimum number of required controllers, decisions for the locations of the controllers, and controller domain assignments. At step 212, process 200 applies a primal-dual update rules to decide optimal forwarding paths for control traffic. For example, process 200 may apply fast and/or parallel algorithms to balancing the control traffic. Process 200 may also activate an adaptive feedback control for continuous system performance improvements. If the placement and routing policies generate a suitable solution, then the SDN controller returns to step 210; otherwise, the SDN controller proceeds to step 214. At step 214, process 200 obtains a minimum network delay and statistical delay guaranteed throughput.
At step 302, process 300 may yield or generate a representation for a feasible placement solution based on a randomized rounding approximation algorithm. The randomized rounding approximation algorithm can be employed one or more times iteratively. The randomized rounding approximation algorithm is an approximation algorithm based on randomized rounding. The randomized rounding approximation algorithm provides fast convergence, for example, on average the randomized rounding approximation algorithm may yield a solution in two rounds. The randomized rounding approximation algorithm yields a solution of O(log n) OPT with high probability, where OPT is the optimal solution and n is the number of switches. Table 1 is an embodiment of a randomized rounding approximation algorithm.
At step 304, process 300 obtains a multiple-controller placement representation for maintaining controller serving capacity and localized control domain assignment.
ik ← 0, ∀i ∈ V, k ∈ V
At step 306, process 300 updates the multiple-controller placement representation to generate optimal and sub-optimal placement solution via a fast iterative algorithm. The fast iterative algorithm can be employed one or more times iteratively and sub-optimal solutions can be obtained for each iteration. The fast iterative algorithm alternates between executing primal-dual update rules, for example, via Alternating Direction Method of Multiplier (ADMM). The fast iterative algorithm converges to optimal value within a few iterations and can be stopped at any time to get a solution for real-time applications. For example, primal-dual update rules converge to the optimal solutions with rate O(1/cm), where c>1 is a constant and m is the number of iterations. At step 308, process 300 obtains the optimal and sub-optimal forwarding route or forwarding path along which control traffic is forwarded for real-time applications.
At step 322, process 320 can provide a software defined network (SDN), such as network 100A of
For example, process 320 can provide an SDN, such as network 100A of
In one example, when the switch 106 refers to switch 106A, assignment likelihoods of the switch 106 may include a likelihood of assigning switch 106B to a controller located with switch 106A, a likelihood of assigning switch 106C to the controller located with switch 106A, a likelihood of assigning switch 106D to the controller located with switch 106A, a likelihood of assigning switch 106E to the controller located with switch 106A, a likelihood of assigning switch 106F to the controller located with switch 106A, a likelihood of assigning switch 106G to the controller located with switch 106A and a likelihood of assigning switch 106H to the controller located with switch 106A. When the switch 106 refers to switch 106B, assignment likelihoods of the switch 106 may include a likelihood of assigning switch 106A to a controller located with switch 106B, a likelihood of assigning switch 106C to the controller located with switch 106B, a likelihood of assigning switch 106D to the controller located with switch 106B, a likelihood of assigning switch 106E to the controller located with switch 106B, a likelihood of assigning switch 106F to the controller located with switch 106B, a likelihood of assigning switch 106G to the controller located with switch 106B, a likelihood of assigning switch 106H to the controller located with switch 106B.
Step 322 may be performed by network modeling sub-module 134A.
At step 324, process 320 can identify possible values of the selection likelihood and the assignment likelihoods of each switch subject to one or more constraints in constraint settings 134F. For example, the constraints may include an allocation constraint imposed on one or more controllers of the SDN to limit, for example, distances among where these controllers are located, how the switches are to be assigned to the controllers etc. In one embodiment, the selection likelihood of a switch may be related to the assignment likelihoods of this switch. Thus, a possible value of the selection likelihood of the switch may be associated with possible values of the assignment likelihoods of the switch. A possible value may be a number no smaller than 0 and no bigger than 1.
In one embodiment, the allocation constraint in constraint settings 134F may indicate (or include) each or any combination of the following requirement (or constraint) 1 to requirement 4. For example, the allocation constraint may indicate requirement 1, requirement 2, requirement 3 or requirement 4. The allocation constraint may also indicate the combination of requirement 1 and requirement 2, the combination of requirement 2 and requirement 4 and the combination of requirement 1, requirement 3 and requirement 4, etc.
For example, referring to
Requirement 2 may indicate that a distance between one of the switches (e.g. switch 106 of
Requirement 3 may indicate that an assignment likelihood of a switch may be no more than a selection likelihood of the switch. In a network including N switches, one switch may have N−1 assignment likelihoods. For example, in network 100B with 8 switches in
Selection likelihood of a switch 106 may indicate how likely a controller 108 is located with the switch 106 (e.g. located within the same data center with the switch). For example, selection likelihood of the switch 106A may indicate how likely a controller, such as the controller 108A, is located with the switch 106D. Selection likelihood of the switch 106A may indicate how likely a controller is located with the switch 106A. In one embodiment, each of assignment likelihoods of switch 106A, such as each of the 7 assignment likelihoods of switch 106A, may be of a value no more than the value of the selection likelihood of the switch 106A.
Requirement 4 may indicate that the amount of control traffic generated from the switches assigned to a controller (e.g. all the switches assigned to the controller) in a network should not exceed the processing capacity of the controller. In one example in
In one embodiment, location of a controller may be represented by location of a switch with which the controller is located. For example, referring to
Switch i and switch k may be respectively used to represent a switch in an SDN, where i and k represent respectively any natural number no more than a pre-configured number V, may be expressed as iε and kεV, i and k are different from each other, and consequently switch i is independent from switch k. yk may represent whether a controller may be located with switch k or whether a controller may choose switch k's location. In one example, when a controller may be located with switch k, yk=1, and when a controller may not be located with switch k, yk=0. yk′ may be no smaller than 0 and no more than 1, representing selection likelihood of switch k. zik may represent whether switch i may be assigned to switch k. In one example, when switch i may be assigned to switch k, zik=1, and when switch i may not be assigned to switch k, zik=0. zik′ may be no smaller than 0 and no more than 1, representing how likely how likely switch i is assigned to controller k. Iik may represent whether distance between switch I and controller k, denoted as Distance (i, k), may be no more than a pre-configured distance value. When Distance (i, k) may be no more than the pre-configured distance value, Iik=1, and when Distance (i, k) may not be no more than the pre-configured distance value, Iik=0. Based on yk, zik and Iik, the foregoing requirements 1-4 may be represented as follows equations:
Requirement 1:
∀iεV;
Requirement 2: Iik=1;
Requirement 3: yk=1−ΠeεV(1−zikIik) and yk≧zikIik ∀iεV, kεV.
Requirement 4:
∀kεK⊂V
Requirements 1-4 may be stored in constraint sub-module, σi may represent a mean speed rate value of a control flow brought by switch i, μCk may represent serving capability the controller k.
In order to obtain identify possible values of the selection likelihood and the assignment likelihoods of each switch, yk and zik in the forgoing equations may be replaced by yk′ and zik′.
The selection likelihood of each switch may be assigned to one of a range or a set of possible values. For example, referring to
The assignment likelihoods of each switch may have a plurality of possible values. For example, referring to
The possible values of the selection likelihood of each switch, such as switch 106A of
Step 324 may be performed by possible values identification sub-module 134B.
At step 326, process 320 may compare values of an objective measure of the switches among the possible values of the selection likelihood. An objective measure may provide an indication or a value of number of the controllers required for the SDN, for example, based on values assigned to selection likelihoods and/or assignment likelihoods of the switches of in the SDN.
In one embodiment, when each switch can have n possible values of the selection likelihood, the objective measure may have n values of the objective measure. Process 320 compare the n values of the objective measure with each other. In one example, each switch may have 2 possible values of the selection likelihood in an SDN network. For example, switch 106A may have a selection value a1, switch 106B may have a selection value b1, switch 106C may have a selection value c1, switch 106D may have a selection value d1, switch 106E may have a selection value e1, switch 106F may have a selection value f1, switch 106G may have a selection value g1 and switch 106H may have a selection value h1, where a selection value means a value of the selection likelihood. It further means that switch 106A may have a selection value a2, switch 106B may have a selection value b2, switch 106C may have a selection value c2, switch 106D may have a selection value d2, switch 106E may have a selection value e2, switch 106F may have a selection value f2, switch 106G may have a selection value g2 and switch 106H may have a selection value h2. The above 8 selection values a1 to g1 satisfy each or any combination of the above requirements 1 to 4. The above 8 selection values a2 to g2 also satisfy each or any combination of the above requirements 1 to 4. A placement server performing process 320 may obtain a first value of the objective measure based on the above 8 selection values A1 to G1. The first value may indicate number of controllers to be deployed in the SDN. The placement server based on process 320 may also obtain a second value of the objective measure based on the above 8 selection values a2 to g2. The second value also indicates number of controllers to be deployed in the SDN.
Step 326 may be performed by value comparison sub-module 134C.
At step 328, process 320 may select, based on the comparison, a set of values from the possible values of the selection likelihood and the assignment likelihoods of each switch. The selected set of values from the possible values of the selection likelihood of each switch may cause a value of the objective measure to satisfy a requirement or a constraint. The requirement may be based on the value of the objective measure. For example, the selected set of values may correspond to the smallest one among all values of the objective measure applied among the possible values of the selection likelihood. In one example, referring to
After the set of values from the possible values of the selection likelihood of each switch are selected, the set of values from the possible values of the assignment likelihoods of each switch may be selected based on the selected values from the possible values of the selection likelihood of each switch and the allocation constraint. The selected set of values from the possible values of the selection likelihood of each switch and the selected set of values from the possible values of the assignment likelihoods of each switch may be subject to the allocation constraint.
Step 328 may be performed by value selection sub-module 134D.
At step 330, process 320 may round (or perform rounding operations for) the set of values selected to integer values respectively in a randomized rounding manner. The integer values may indicate where each controller should be located among the separate locations of the switches. Each integer value may also indicate which of the controllers each switch should be assigned to.
In one embodiment, process 320 may perform the rounding operations with an ending condition or termination condition. The ending condition may be employed for determining when the rounding operations should stop or end. The ending condition may be based on number of the switches in the network system. The rounding operations may result in generating indicators for the switches. For example, the indicators may include one or more 0 and one or more 1. An indicator may correspond to a selection likelihood of a switch or a likelihood of assigning a switch to a controller located in or with another switch.
For example, when the selection likelihood of a switch is 0, it may mean that no controller may be located with the switch, and when the selection likelihood of the switch is 1, it may mean that a controller may be located with the switch. When the likelihood of assigning a switch, such as switch 106A of
In one embodiment, process 320 may perform rounding operations for rounding the set of values selected to integer values according to an algorithm shown as foregoing table 1. The placement of controllers may be formulated as follows:
What is formulated above may be input of the algorithm in table 1. Algorithm in table 1 may work as follows. First, relaxed linear programming may be solved to get an optimal fractional solution (OPT), denoted as yk′, zik′, ∀iεV, kεV. Next, these fractional solutions are rounded to integer values, denoted as
Step 330 may be performed by rounding sub-module 134E.
At step 332, process 320 may allocate, based on the integer values generated via the rounding operations, the controllers in the SDN. The integer values can indicate where each controller is located among the separate locations, and which of the controllers each switch should be assigned to. In some embodiments, SDN controllers may be dedicated hardware devices or hardware devices having both the function of SDN controller and other functions, such as determining topology or structure of SDN, allocation of SDN controllers in an SDN, etc. In an SDN, controllers may be hardware devices separated from switches in an SDN. An SDN may include a plurality of switches and a plurality of controllers, where controllers may be less than switches. Each controller in the SDN may be coupled with several switches. For example, in network 100B, controller 108A may be coupled with switches 106A, 106B and 106D.
When a controller needs to be located with an identified switch, process 320 may send allocation instructions and/or assignment instructions to the identified switches/controllers according to the integer values generated. The instructions may be used to establish communicative connection between the identified switch and a controller to be located with the identified switch. The controller may only receive control messages from this communicative connection. For example, when controller 108A is allocated to switch 106B, process 320 may send allocation instructions and/or assignment instructions to controller 108A. With the instructions, controller 108A may establish connection with switch 106B. Controller 108A may receive control messages through the connection from 106B. When switch 106A or 106D sends control messages to controller 108A, the control messages need to be sent to switch 106B and then sent to controller 108A via the connection between controller 108A and switch 106B.
In one embodiment, process 320 may generate a user interface presenting the result of allocation/assignment decisions based on the integer values. Process 320 may send a message to designated targets with the allocation/assignment results. In one embodiment, process 320 may monitor whether corresponding allocation/assignment have been complemented in the SDN.
Step 332 may be performed by allocation module 132.
The processor 430 may be implemented by hardware and software. The processor 430 may be implemented as one or more central processing unit (CPU) chips, logic units, cores (e.g., as a multi-core processor), field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and digital signal processors (DSPs). The processor 430 is in communication with the ports 410, Tx/Rx 420, and memory 440.
The memory 440 comprises one or more of disks, tape drives, and solid-state drives and may be used as an over-flow data storage device, to store programs when such programs are selected for execution, and to store instructions and data that are read during program execution. The memory 440 may be volatile and non-volatile and may be read-only memory (ROM), random-access memory (RAM), ternary content-addressable memory (TCAM), and static random-access memory (SRAM). Network configuration module 450 is implemented by processor 430 to execute the instructions for implementing various embodiments previously discussed.
Some portions of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is generally conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as those set forth in the claims below, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The processes or methods depicted in the preceding figures may be performed by processing logic that comprises hardware (e.g. circuitry, dedicated logic, etc.), software (e.g., embodied on a non-transitory computer readable medium), or a combination of both. Although the processes or methods are described above in terms of some sequential operations, it should be appreciated that some of the operations described may be performed in a different order. Moreover, some operations may be performed in parallel rather than sequentially
While several embodiments have been provided in the represent disclosure, it should be understood that the disclosed systems and methods might be embodied in many other specific forms without departing from the spirit or scope of the represent disclosure. The representing examples are to be considered as illustrative and not restrictive, and the intention is not to be limited to the details given herein. For example, the various elements or components may be combined or integrated in another system or certain features may be omitted, or not implemented.
In addition, techniques, systems, subsystems, and methods described and illustrated in the various embodiments as discrete or separate may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the represent disclosure. Other items shown or discussed as coupled or directly coupled or communicating with each other may be indirectly coupled or communicating through some interface, device, or intermediate component whether electrically, mechanically, or otherwise. Other examples of changes, substitutions, and alterations are ascertainable by one skilled in the art and could be made without departing from the spirit and scope disclosed herein.
The present application claims priority to U.S. Non-Provisional Patent Application No. 62/154,566 filed Apr. 29, 2015 by Min Luo et al. and titled “Traffic-Driven and Capacity Constraint Network Controller Placement in Software-Defined Networks,” which is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
62154566 | Apr 2015 | US |