![](https://csdnimg.cn/release/download_crawler_static/16490973/bg3.jpg)
Q. Li et al. / Computer Networks 125 (2017) 41–52 43
alive. Since an OpenFlow switch is very simple and has little intel-
ligence, only the switch rules with a timeout mechanism can be
achieved. However, completing the update using this mechanism
is time consuming.
To reduce the cost of TCAM, an incremental update algorithm
[13] that splits the update into several rounds has been proposed.
Each round consists of the following: 1) choose a subset of flows
that are moved from the old configuration to the new configura-
tion; 2) find new rules to be installed according to the flows; 3)
install rules using the two-phase commit mechanism; and 4) find
old rules that are not used by any flows and delete them. S. Viss-
icchio et al. [25] present a method to complete anomaly free up-
dates in hybrid networks. The trade-off between the strength of
the consistency property and dependencies among rules is argued
in [26] . The controller generates an updated DAG according to the
consistent property and topology, which is complex and requires a
number of computations.
Our mechanism is developed from the model proposed in
[7,27] . These modes only focus on a static configuration and lack
a formal description and definition. A network formalism has been
explored in the verification of network functions [28] . We ex-
tended the network semantics to include switches, updates and
consistent priorities; hence, our mechanism is also easy to be ex-
tended to flow-level consistency properties.
3. The update model
In this section, we present a formal model to clearly describe
the network update process. In our model, we abstract the packet
as a point and the rule as a hypercube in the match space. Accord-
ing to the behaviors of packets in the data plane, we construct the
RG for the update operations. With the help of the RG, we can de-
termine the appropriate order to install the update rules. To clearly
describe the update process, we first define some terminology.
Rule, r . A rule in an SDN switch contains match field, action,
priority and other information (non-significant in this paper). In
our discussion, we define a rule as a tuple r = (m, a, pri ) . The first
element m denotes the match field that uniquely identifies the
rule. The second element a is the action of the rule. The last el-
ement pri is an integer that represents the priority of the rule. Let
rs be the default rule set in our discussion. We use ms to denote
the set of match fields, ms
i
to denote the match field set of rules
with priorities that are less than or equal to i , and
ˆ
m
i
to denote
the match field set of rules with priorities that are higher than i .
We define the real match space of a rule ( m, a, pri ) as re (m ) =
m − m
ˆ
m
pri
. If there are several different rules that match the
same packet p, we define a new relation ( p r
j
) to represent the
matching ( r
j
) rule with the highest priority.
Topology, T . We define the network position lp as a two-tuple
( s, p ), where s is the switch and p is the ingress port of switch
s . Let LP be the set of all the possible network positions from the
perspective of the data plane (the controller is not included). We
define the topology function as follows: T (lp) = lp
indicates that
lp and lp
are directly connected.
Configuration, C . In SDN, the configuration C is the collection
of rules that are installed in the switches. Thus, the configuration
can be described as a set {( lp
i
, rule
i
)| lp
i
∈ LP, rule
i
∈ rs }.
Network, N . The network N is also defined as a tuple ( C, T ), in
which topology T denotes the position and connection information
between network devices and configuration C denotes the forward-
ing behaviors in the data plane.
Network Update Process. In SDN, operators enforce a cen-
tralized management through the controller, including changing
the network configurations, obtaining the statistics and so forth.
Changing the network configurations corresponds to installing and
deleting rules on the switches. Since operations such as collecting
the statistics do not affect the forwarding behavior, we do not fo-
cus on such types of operations in this paper.
An update operation must clearly have a location where the
rule is installed or deleted. Hence, we define update operation u
as ( lp, r ), which means that the new rule r should be installed at
network position lp . We use us to denote an update sequence. For
each packet pkt , there is a trace t to record its forwarding behavior
in the data plane. Trace t is defined as an ordered list (i.e., [( lp
1
,
r
1
), ( lp
2
, r
2
), , ( lp
n
, r
n
)]), where lp
i
is the i th network position
along the path of packet pkt and r
j
is the corresponding rule for
the packet at lp
i
. We use the expression lp
i
∈ t to indicate that lp
i
appears in the trace t . A similar expression is also suitable for r
i
∈ t and u
i
∈ C
i
. According to the definition of update operation, a
trace can also be described as an ordered list of update operations,
i.e., [ u
1
, u
2
, , u
n
]. The trace of a packet describes its forwarding
behaviors in the data plane; thus, the controller can easily obtain
the current traces and infer the new traces after update operations.
In our paper, the network update process can be defined as
follows:
if C
= ov er r ide (C, us )
then N
C
−→ N
where N = (C, T ) , N
= (C
, T )
The function override ( C, us ) means that for each two-tuple u =
(lp, r) ∈ us, if u ∈ C , add u to C
; if u ∈ C , do nothing. We set a
higher priority for the updated (new) rules compared with the old
rules. The expression N
C
−→ N
means that under the configuration
of C
, the network N changes to N
.
Consistency property. In SDN, the update message is forwarded
to the switch from the controller, and then the switch updates its
flow table accordingly. The switch is only responsible for forward-
ing packets. The consistency property should be guaranteed by the
controller during the update process since forwarding faults may
occur among the chaos of old and new configurations.
For different networks, there are different consistency proper-
ties. For instance, packet-level consistency means that all packets
should follow the same policy, i.e., they behave according to ei-
ther the new configurations or the old one but not according to
mixed configurations. Conversely, flow-level consistency maintains
the consistency property at a more coarse granularity. In our paper,
we focus on the packet-level consistency property.
Generally, the connectivity should first be guaranteed in the
network. Hence, we propose the path dependency relation among
the update operations, which is used to ensure that the switch can
correctly forward packets during the update. Since this relation can
guarantee loop-free and black-hole-free properties during the up-
date, we then propose the path rejection relation among update
operations to guarantee the packet-level consistency. In practice,
for different consistency properties, different relations can be pro-
vided. Therefore, an RG can be generated according to these re-
lations, and the proper update order will be discovered. We will
present the details of our RG model in the next section.
4. Fast incremental consistent update
In this section, we describe the details of FICUS. In SDN, the
controller translates the policy into the configurations and then in-
stalls them into the switches. The key concept of our mechanism
is analyzing the relationship between the update operations and
determining the proper order to install them incrementally. In our
scheme, we guarantee the packet-level consistency property, which
means that for a certain packet, it will only follow one configura-
tion, either old or new. This property can ensure the correctness of
forwarding behaviors during the update process.