module ietf-dmm-fpc-policyext {
namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpc-policyext";
prefix fpcpolicyext;
import ietf-dmm-fpc { prefix fpc; revision-date 2017-03-08; }
import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
organization "IETF Distributed Mobility Management (DMM)
Working Group";
contact
"WG Web:
WG List:
WG Chair: Dapeng Liu
WG Chair: Jouni Korhonen
Editor: Satoru Matsushima
Editor: Lyle Bertz
";
description
"This module contains YANG definition for Forwarding Policy
Configuration Protocol (FPCP) common Policy Action and
Descriptor extensions.
Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described
in Section 4.e of the Trust Legal Provisions and are provided
without warranty as described in the Simplified BSD License.";
revision 2017-03-08 {
description "Version 06 update.";
reference "draft-ietf-dmm-fpc-cpdp-06";
}
revision 2016-08-03 {
description "Changes based on -04 version of FPC draft.";
reference "draft-ietf-dmm-fpc-cpdp-04";
}
identity service-function {
base "fpc:fpc-descriptor-type";
description "Base Identifier for Service Functions.";
}
identity napt-service {
base "service-function";
description "NAPT Service";
}
grouping simple-nat {
leaf outbound-nat-address {
type inet:ip-address;
description "Outbound NAT Address";
}
description "Simple NAT value";
}
identity nat-service {
base "service-function";
description "NAT Service";
}
grouping simple-napt {
leaf source-port {
type inet:port-number;
description "Source Port";
}
leaf outbound-napt-address {
type inet:ip-address;
description "Outbound NAPT Address";
}
leaf destination-port {
type inet:port-number;
description "Destination Port";
}
description "Simple NAPT Configuration";
}
identity copy-forward {
base "fpc:fpc-descriptor-type";
description "Copies a packet then forwards to a specific
destination";
}
grouping copy-forward {
container destination {
choice value {
case port-ref {
leaf port-ref {
type fpc:fpc-vport-id;
description "Port";
}
description "Port Forward Case";
}
case context-ref {
leaf context-ref {
type fpc:fpc-context-id;
description "Context";
}
description "Context Forward Case";
}
description "Copy Forward Value";
}
description "destination";
}
description "Copy Then Forward to Port/Context Action";
}
augment "/fpc:tenants/fpc:tenant/fpc:fpc-policy/fpc:actions/fpc:"
+ "action-value" {
case simple-nat {
uses fpcpolicyext:simple-nat;
description "Simple NAT value";
}
case simple-napt {
uses fpcpolicyext:simple-napt;
description "Simple NAPT Value";
}
case copy-forward {
uses fpcpolicyext:copy-forward;
description "Copy Forward Value";
}
description "Policy Actions Augmentations";
}
grouping prefix-traffic-descriptor {
leaf destination-ip {
type inet:ip-prefix;
description "Rule of destination IP";
}
leaf source-ip {
type inet:ip-prefix;
description "Rule of source IP";
}
description
"Traffic descriptor group collects parameters to
identify target traffic flow. It represents
source/destination as IP prefixes";
}
augment "/fpc:tenants/fpc:tenant/fpc:fpc-policy/fpc:"
+ "descriptors/fpc:descriptor-value" {
case prefix-descriptor {
uses fpcpolicyext:prefix-traffic-descriptor;
description "traffic descriptor value";
}
description "Descriptor Augments";
}
}