/* * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ module vpp-renderer { yang-version 1; namespace "urn:opendaylight:groupbasedpolicy:vpp_renderer"; prefix "vpp-renderer"; import base-endpoint { prefix base-ep; revision-date 2016-04-27; } import network-topology { prefix nt; revision-date 2013-10-21; } import opendaylight-l2-types { prefix l2-types; revision-date "2013-08-27"; } import ietf-yang-types { prefix yang-types; revision-date "2013-07-15"; } description "This module is a baseline for the group-based policy vpp renderer model."; revision "2016-04-25" { description "Initial revision."; } identity network-type-base { description "Base for Network Types."; } identity flat-network { description "Flat Provider Network Type"; base network-type-base; } identity vlan-network { description "VLAN Provider Network Type"; base network-type-base; } typedef network-type { description "Type of Network."; type identityref { base network-type-base; } } container config { list vpp-endpoint { description "Renderer creates/removes interface on VPP node based on given parameters."; key "context-type context-id address-type address"; uses base-ep:address-endpoint-key; leaf vpp-node-path { description "Path to a node representing mount-point to VPP instance."; mandatory true; type instance-identifier; } leaf vpp-interface-name { description "Name of interface for the endpoint on VPP"; mandatory true; type string; } leaf description { description "Additional description of the vpp-endpoint"; type string; } choice interface-type-choice { case vhost-user-case { leaf socket { description "Identifier of a vhost user"; type string { length 1..255; } } } case tap-case { leaf name { description "Identifier of a tap port"; mandatory true; type string { length 1..255; } } leaf physical-address { description "MAC address of a tap port"; type yang-types:phys-address; } } } } list bridge-domain { key "id"; leaf id { description "Same as in VBD."; type string; } leaf description { type string; } leaf type { mandatory true; type network-type; } leaf vlan { when "type = 'vlan-network'"; type l2-types:vlan-id; } list physical-location-ref { description "Refers to physical interfaces on vpp nodes through which external nodes belonging to the same bridge-domain can be reached."; key "node-id"; leaf node-id { description "Refers to a VPP node."; type nt:node-id; } leaf-list interface { description "Physical interface on the VPP node."; type string; } } } } }