module interface-acl { yang-version 1; namespace "urn:opendaylight:params:xml:ns:yang:interface:acl"; prefix "ifc-acl"; revision "2016-12-14" { description "Initial revision of interface-acl model"; } import ietf-interfaces { prefix "if"; } import yang-ext { prefix "ext"; } import ietf-yang-types { prefix "yang"; } import vpp-acl { prefix "vpp-acl"; } import ietf-access-control-list { prefix "acl"; } description "Augmentations to interfaces model to apply acls exposed by acl plugin of vpp"; grouping vpp-acls-base-attributes { description "List of ACLs of vpp-acl type"; // TODO express constraint in the model if possible list vpp-acls { key "type name"; ordered-by user; leaf type { type acl:acl-type; } 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 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; } }