diff options
author | Marek Gradzki <mgradzki@cisco.com> | 2016-07-20 09:48:14 +0200 |
---|---|---|
committer | Maros Marsalek <mmarsale@cisco.com> | 2016-09-13 10:52:08 +0000 |
commit | 8dd5fee59f4af71bff5dbf4b065cfeca84ebb3f7 (patch) | |
tree | 5654b9d18bfb1401821819d8b05caca7e5aa7ef7 /v3po/api/src/main | |
parent | 248596eeaeed74306717f9c8af6c5ef1b6d3eaa8 (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')
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; |