summaryrefslogtreecommitdiffstats
path: root/v3po/api/src/main
diff options
context:
space:
mode:
authorMarek Gradzki <mgradzki@cisco.com>2016-07-20 09:48:14 +0200
committerMaros Marsalek <mmarsale@cisco.com>2016-09-13 10:52:08 +0000
commit8dd5fee59f4af71bff5dbf4b065cfeca84ebb3f7 (patch)
tree5654b9d18bfb1401821819d8b05caca7e5aa7ef7 /v3po/api/src/main
parent248596eeaeed74306717f9c8af6c5ef1b6d3eaa8 (diff)
HONEYCOMB-118: extend classifer model to support node names.
* configuration write is supported (updates local cache with relative node mapping) * operational read is supported only for nodes with existing relative node mapping * ACL support (using vpp-classfier or ietf-acl model) is not affected by the patch (tables/sessions for access controll refer to neighbour nodes as packet-handling-action, not vpp-node-name) Change-Id: Ice0c846803cc7e8960c3571fd2a13ed46ba53702 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'v3po/api/src/main')
-rw-r--r--v3po/api/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/vpp/classifier/rev150603/VppNodeBuilder.java2
-rw-r--r--v3po/api/src/main/yang/vpp-classifier-context.yang68
-rw-r--r--v3po/api/src/main/yang/vpp-classifier.yang15
3 files changed, 81 insertions, 4 deletions
diff --git a/v3po/api/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/vpp/classifier/rev150603/VppNodeBuilder.java b/v3po/api/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/vpp/classifier/rev150603/VppNodeBuilder.java
index dd37bbe84..4ae04d48f 100644
--- a/v3po/api/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/vpp/classifier/rev150603/VppNodeBuilder.java
+++ b/v3po/api/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/vpp/classifier/rev150603/VppNodeBuilder.java
@@ -18,7 +18,7 @@ public class VppNodeBuilder {
} else if (PacketHandlingAction.Permit.toString().equalsIgnoreCase(defaultValue)) {
return new VppNode(PacketHandlingAction.Permit);
} else {
- throw new IllegalArgumentException(String.format("Could not parse VppNode: %s", defaultValue));
+ return new VppNode(new VppNodeName(defaultValue));
}
}
diff --git a/v3po/api/src/main/yang/vpp-classifier-context.yang b/v3po/api/src/main/yang/vpp-classifier-context.yang
new file mode 100644
index 000000000..01eae862d
--- /dev/null
+++ b/v3po/api/src/main/yang/vpp-classifier-context.yang
@@ -0,0 +1,68 @@
+module vpp-classifier-context {
+ yang-version 1;
+ namespace "urn:opendaylight:params:xml:ns:yang:vpp:classifier";
+ prefix "vpp-classifier-context";
+
+ description
+ "This module contains vpp classfier metadata definition";
+
+ revision "2016-09-09" {
+ description
+ "Initial revision.";
+ }
+
+ container vpp-classifier-context {
+
+ config "false";
+
+ description
+ "Classify tables and sessions contain relative node indexes. Management agent like Honeycomb,
+ needs to use node names instead (indexes might change after vpp restart).
+ VPP does not provide relative index to node name conversion (https://jira.fd.io/browse/VPP-219),
+ also finding base node that is needed to perform the conversion
+ is not allways possible (https://jira.fd.io/browse/VPP-220).
+
+ Therefore Honeycomb needs to provide relative node to index mapping.
+ ";
+
+ list classify-table-context {
+ key "name";
+ unique "index";
+
+ leaf name {
+ type string;
+ description
+ "Name of the classify table.";
+ }
+
+ leaf index {
+ type int32;
+ description
+ "Classify table index used by VPP.";
+ }
+
+ leaf classifier-node-name {
+ type string;
+ description
+ "Name of VPP node the table is defined for.";
+ }
+
+ list node-context {
+ key "name";
+ unique "index";
+
+ leaf name {
+ type string;
+ description
+ "Name of vpp node (neighbour of classifier-node-name)";
+ }
+
+ leaf index {
+ type int32;
+ description
+ "Inted of the vpp node relative to classifier-node-name";
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/v3po/api/src/main/yang/vpp-classifier.yang b/v3po/api/src/main/yang/vpp-classifier.yang
index 46bff2074..8bf939933 100644
--- a/v3po/api/src/main/yang/vpp-classifier.yang
+++ b/v3po/api/src/main/yang/vpp-classifier.yang
@@ -38,14 +38,18 @@ module vpp-classifier {
}
}
+ typedef vpp-node-name {
+ type string;
+ }
+
typedef vpp-node {
type union {
- // FIXME: enable after VPP-203 is fixed
- // type string; // name of vpp-node neighbour, TODO: base node also needs to be defined
type packet-handling-action;
+ type vpp-node-name;
}
description
- "Defines VPP node reference using relative node name or packet handling action.";
+ "Defines VPP node reference using packet handling action or relative node name
+ (if definition in terms of packet handling action is not possible).";
}
typedef opaque-index {
@@ -85,6 +89,11 @@ module vpp-classifier {
description
"Defines classify table attributes that are mapped to classify_add_del_table message parameters.";
+ leaf classifier-node {
+ type vpp-node-name;
+ description
+ "Name of VPP node the table is defined for.";
+ }
leaf nbuckets {
mandatory true;
type uint32;