Classifier reacts to first SF location updates 44/49444/5
authorMiguel Duarte <miguel.duarte.de.mora.barroso@ericsson.com>
Wed, 30 Nov 2016 11:42:39 +0000 (12:42 +0100)
committerMiguel Duarte <miguel.duarte.de.mora.barroso@ericsson.com>
Wed, 21 Dec 2016 09:39:46 +0000 (10:39 +0100)
commit4cc5976844ae895c202bb8f708db8b35ad4bfebb
treebd028c5629daf8f12c42daeb6e5eed774d8f593f
parentfc66b07cad7520dd710afcdd3f1a3e47721818ff
Classifier reacts to first SF location updates

Whenever the first SF in an RSP migrates to another compute node, the
classifier rules are updated accordingly - whether sending the packet
through a different tunnel connected to the new compute node, or, in
scenarios when the SF moved to the compute node where the classifier is
installed, by jumping directly to the SFC transport ingress table.

The helper methods on the OpenflowClassifierProcessor were moved into a
new class - ClassifierHandler.

The ClassifierRspUpdateDataGetter was finished, providing 2 methods:
  - filter all ACLs whose ACEs impact the supplied RSP
  - filter all ScfClassifier objects that implement those ACLs

The ClassifierRspsUpdateListener was added logic on how to identify the
movement of the first SF in any RSP, and also triggers the classifier
flows update through the ClassifierRspUpdateProcessor.

The ClassifierRspUpdateProcessor follows the same principle of the
OpenflowClassifierProcessor - build all the flows to be installed. A new
class was created to separate the concerns (classifier updates have the
RSP as its single argument, whereas classifier add/delete have the ACL
and the ScfClassifier objects as arguments).

Everything else are tests (+- 600 lines)

Change-Id: I487d98d282b28aefd79d0658fcc50e20897beffa
Signed-off-by: Miguel Duarte <miguel.duarte.de.mora.barroso@ericsson.com>
12 files changed:
sfc-scf-openflow/src/main/java/org/opendaylight/sfc/scfofrenderer/ClassifierHandler.java [new file with mode: 0644]
sfc-scf-openflow/src/main/java/org/opendaylight/sfc/scfofrenderer/OpenflowClassifierProcessor.java
sfc-scf-openflow/src/main/java/org/opendaylight/sfc/scfofrenderer/SfcScfOfRenderer.java
sfc-scf-openflow/src/main/java/org/opendaylight/sfc/scfofrenderer/rspupdatelistener/ClassifierRspUpdateDataGetter.java
sfc-scf-openflow/src/main/java/org/opendaylight/sfc/scfofrenderer/rspupdatelistener/ClassifierRspUpdateProcessor.java [new file with mode: 0644]
sfc-scf-openflow/src/main/java/org/opendaylight/sfc/scfofrenderer/rspupdatelistener/ClassifierRspsUpdateListener.java
sfc-scf-openflow/src/test/java/org/opendaylight/sfc/scfofrenderer/ClassifierAclDataBuilder.java [new file with mode: 0644]
sfc-scf-openflow/src/test/java/org/opendaylight/sfc/scfofrenderer/ClassifierHandlerTest.java [new file with mode: 0644]
sfc-scf-openflow/src/test/java/org/opendaylight/sfc/scfofrenderer/OpenflowClassifierProcessorTest.java
sfc-scf-openflow/src/test/java/org/opendaylight/sfc/scfofrenderer/rspupdatelistener/ClassifierRspUpdateDataGetterTest.java [new file with mode: 0644]
sfc-scf-openflow/src/test/java/org/opendaylight/sfc/scfofrenderer/rspupdatelistener/ClassifierRspUpdateProcessorTest.java [new file with mode: 0644]
sfc-scf-openflow/src/test/java/org/opendaylight/sfc/scfofrenderer/rspupdatelistener/ClassifierRspsUpdateListenerTest.java [new file with mode: 0644]