First of all, CoE (through ACL) sends an update to
NEM (MSG 1), informing that a new NE was de-
tected. NEM publishes the event on a specific topic.
The service SCE Catalog, which subscribes to
this NEM topic, receives the information that a new
NE was plugged, and then it receives its MAC ad-
dress (MSG 1). SLE component also gets this up-
date, but its subsequent actions are out of the scope
of this paper. Then SCE Catalog service consults the
edge catalog.db table (on NDB) to verify if: (1) this
specific MAC address exists and is authorized, pro-
viding an additional security measure against unau-
thorized network intrusion, and, if so; (2) retrieving
the type and version of the NE. Then it starts the com-
mand parser service.
The command parser identifies every element be-
tween the NE on edge and its final destination NE (de-
termined by path engine service), relating every SDN
NE with their configuration syntax. For this, it uses
both syntax.db, which contains the commands gram-
mars for each NE network version for each edge NE
type, and resources.db, a resource pool where the ser-
vice may get available IP addresses, for example. It
mounts the OpenFlow commands, for example, and
send them to the NSB (MSG 2). The command field
in syntax.db may be defined using any compatible for-
mat, but in this work, Jinja2 is being used as a tem-
plate engine for describing the command’s syntaxes.
Finally, NSB will send the configuration com-
mands to the SDNC through the NBI (MSG 3).
SDNC responds, acknowledging the execution of the
commands. In case of legacy elements, NSB will send
non-SDN proper configuration commands directly to
these NEs.
In short, that is the primary communication flow
between all components during the self-configuration
process.
4.3 Possible Applications
In this subsection, we intend to demonstrate a high-
level application example for the self-configuration
procedures. We do not intend to enter specific Open-
Flow details, mobile network-specific protocols or
message analysis.
One typical application, presented here as an ex-
ample, is the network self-configuration when an eN-
odeB is plugged into a switch connected to this net-
work. We assume here that all the NEs are SDN com-
patible and an SDNC (not shown) is controlling all
the elements and it uses OpenFlow protocol on SBI.
Some of them may be, as mentioned before, Open
vSwitches VNFs if part of the infrastructure is cloud-
ified. Also, for simplification, the SONAr compo-
nents are not represented in the diagram. Since a 4G
eNodeB is considered for this example, the core ele-
ments may or may not be VNFs running on an NFV
structure. The example network, in a simplified topol-
ogy, is shown in Figure 4.
Just after the eNodeB is plugged on S1, the SDNC
receives an OFPT HELLO message, and the follow-
ing messages exchange will provide the SDNC with
the eNodeB MAC address (as mentioned, the Open-
Flow message flows will not be detailed here). Fol-
lowing that, the CoE will request network updates
through ACL Request message and the SDNC will re-
spond with an ACL Response, containing information
about the new edge NE. CoE will then send a message
to NEM informing about the network modifications,
and NEM will update its topics with them.
SCE’s SCE catalog service subscribes to this
topic in NEM and, therefore, will receive the infor-
mation about the new eNodeB. It will then consult
the edge catalog.db table on NDB and verify if the
eNodeB is an authorized element on the network. As-
suming it is, it will retrieve from edge catalog the
type and version of the component, using the MAC
address as the key. In this case, it should return some-
thing like ”eNB vendorXXX version2.3.8.001c”, for
example. The path engine service calculates the best
route from S1 to the final IP destinations. In this case,
there are four IP destinations for the packets from
and to the eNodeB: control messages should be for-
warded to Mobility Mobile Entity (MME), manage-
ment messages will go to the NE Manager, user plane
messages shall be sent to the Enhanced Packet Core
(EPC) and, finally, the sync packets should go to the
Clock Server. In traditional networks, this configura-
tion is done by manually setting and configuring four
VLANs in each element in the path from S1 to S6.
The path engine service determines that the best
route from the eNodeB and the packet’s destination
should be S1-S2-R1-R2-S6. Therefore, these five
elements should be configured. Notice that the re-
dundancy path S1-S5-S4-S3-S2-R1-R2-S6 will not be
set, since the self-healing service should treat all the
network failures, sometimes in a predictive way. In
case of a broken link, SHE should call SCE to recon-
figure the new path, but this procedure is also out of
the scope of this paper.
The command parser service is then started and
receives the element type information, together with
the NEs that shall be configured. In order to do this,
it fetches the syntax.db table from the NDB (which
relates the edge element type and the NEs types to
the command syntaxes) and mounts the command se-
quences for S1, S2, R1, R2, and S6 elements, also
using the resources.db table, when additional parame-
CLOSER 2020 - 10th International Conference on Cloud Computing and Services Science
412