module interface-acl { yang-version 1; namespace "urn:opendaylight:params:xml:ns:yang:interface:acl"; prefix "ifc-acl"; import ietf-interfaces { prefix "if"; } import yang-ext { prefix "ext"; } import ietf-access-control-list { prefix "acl"; } organization "FD.io - The Fast Data Project"; contact "Hc2vpp Wiki Mailing List "; description "This module contains a collection of YANG definitions for applying ACLs on VPP interfaces. Uses ACL implementation provided by ACL plugin of VPP. Copyright (c) 2016 Cisco and/or its affiliates. Licensed under the Apache License, Version 2.0 (the 'License'); you may not use this file except in compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."; revision "2016-12-14" { description "Initial revision of interface-acl model"; } grouping vpp-acls-base-attributes { description "List of ACLs of vpp-acl type"; // TODO(HC2VPP-201): express constraint in the model if possible list vpp-acls { key "type name"; ordered-by user; leaf type { type acl:acl-type; } // FIXME(HC2VPP-290): define leafref in interface-acl or bump ietf-access-control-list leaf name { type acl:access-control-list-ref; } } } grouping vpp-macip-acls-base-attributes { container vpp-macip-acl { description "ACL of vpp-macip-acl type"; // TODO(HC2VPP-201): express constraint in the model if possible leaf type { type acl:acl-type; } leaf name { type acl:access-control-list-ref; } } } grouping interface-acl-attributes { container acl { container ingress { uses vpp-acls-base-attributes; uses vpp-macip-acls-base-attributes; } container egress { uses vpp-acls-base-attributes; } } } augment /if:interfaces/if:interface { ext:augment-identifier "vpp-acl-interface-augmentation"; uses interface-acl-attributes; } augment /if:interfaces-state/if:interface { ext:augment-identifier "vpp-acl-interface-state-augmentation"; uses interface-acl-attributes; } }