module ietf-dmm-fpc-pmip {
namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpc-pmip";
prefix fpc-pmip;
import ietf-dmm-fpc { prefix fpc; }
import ietf-pmip-qos { prefix qos-pmip; }
import ietf-traffic-selector-types { prefix traffic-selectors; }
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).
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 2016-01-19 {
description "Changes based on -01 version of FPCP draft.";
reference "draft-ietf-dmm-fpc-cpdp-01";
}
identity ietf-pmip-access-type {
base "fpc:fpc-access-type";
description "PMIP Access";
}
identity fpcp-qos-index-pmip {
base "fpc:fpc-qos-type";
description "PMIP QoS";
}
identity traffic-selector-mip6 {
base "fpc:fpc-descriptor-type";
description "MIP6 Traffic Selector";
}
identity ietf-pmip {
base "fpc:fpc-mobility-profile-type";
description "PMIP Mobility";
}
identity pmip-tunnel-type {
description "PMIP Tunnel Type";
}
identity grev1 {
base "fpc-pmip:pmip-tunnel-type";
description "GRE v1";
}
identity grev2 {
base "fpc-pmip:pmip-tunnel-type";
description "GRE v2";
}
identity ipinip {
base "fpc-pmip:pmip-tunnel-type";
description "IP in IP";
}
grouping pmip-mobility {
leaf type {
type identityref {
base "fpc-pmip:pmip-tunnel-type";
}
description "PMIP Mobility";
}
choice value {
case gre {
leaf key {
type uint32;
description "GRE_KEY";
}
description "GRE Value";
}
description "PMIP Mobility value";
}
description "PMIP Mobility Value";
}
typedef pmip-instr {
type bits {
bit assign-ip {
position 0;
description "Assign IP";
}
bit assign-dpn {
position 1;
description "Assign DPN";
}
bit session {
position 2;
description "Session Level";
}
bit uplink {
position 3;
description "Uplink";
}
bit downlink {
position 4;
description "Downlink";
}
}
description "Instruction Set for PMIP";
}
// Descriptors update - goes to Entities, Configure and Configure Bundles
augment "/fpc:tenants/fpc:tenant/fpc:fpc-policy/fpc:descriptors/fpc:descriptor-value" {
case pmip-selector {
uses traffic-selectors:traffic-selector;
description "PMIP Selector";
}
description "Policy Descriptor";
}
// Contexts Update - Contexts / UL / mob-profile, Contexts / DL / mob-profile and Contexts / dpns / mobility-tunnel-parameters
augment "/fpc:tenants/fpc:tenant/fpc:fpc-mobility/fpc:contexts/fpc:ul/fpc:mobility-tunnel-parameters/fpc:profile-parameters" {
case pmip-tunnel {
uses fpc-pmip:pmip-mobility;
uses traffic-selectors:traffic-selector;
description "PMIP Tunnel Information";
}
description "Context UL Mobility";
}
augment "/fpc:configure/fpc:input/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:ul/fpc:mobility-tunnel-parameters/fpc:profile-parameters" {
case pmip-tunnel {
uses fpc-pmip:pmip-mobility;
uses traffic-selectors:traffic-selector;
description "PMIP Tunnel Information";
}
description "CONF Context UL Mobility";
}
augment "/fpc:configure-bundles/fpc:input/fpc:bundles/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:ul/fpc:mobility-tunnel-parameters/fpc:profile-parameters" {
case pmip-tunnel {
uses fpc-pmip:pmip-mobility;
uses traffic-selectors:traffic-selector;
description "PMIP Tunnel Information";
}
description "CONF_BUNDLES Context UL Mobility";
}
augment "/fpc:tenants/fpc:tenant/fpc:fpc-mobility/fpc:contexts/fpc:dl/fpc:mobility-tunnel-parameters/fpc:profile-parameters" {
case pmip-tunnel {
uses fpc-pmip:pmip-mobility;
uses traffic-selectors:traffic-selector;
description "PMIP Tunnel Information";
}
description "Context DL Mobility";
}
augment "/fpc:configure/fpc:input/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:dl/fpc:mobility-tunnel-parameters/fpc:profile-parameters" {
case pmip-tunnel {
uses fpc-pmip:pmip-mobility;
uses traffic-selectors:traffic-selector;
description "PMIP Tunnel Information";
}
description "CONF Context DL Mobility";
}
augment "/fpc:configure-bundles/fpc:input/fpc:bundles/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:dl/fpc:mobility-tunnel-parameters/fpc:profile-parameters" {
case pmip-tunnel {
uses fpc-pmip:pmip-mobility;
uses traffic-selectors:traffic-selector;
description "PMIP Tunnel Information";
}
description "CONF_BUNDLES Context DL Mobility";
}
augment "/fpc:tenants/fpc:tenant/fpc:fpc-mobility/fpc:contexts/fpc:dpns/fpc:mobility-tunnel-parameters/fpc:profile-parameters" {
case pmip-tunnel {
uses fpc-pmip:pmip-mobility;
uses traffic-selectors:traffic-selector;
description "PMIP Tunnel Information";
}
description "Context DPN Mobility";
}
augment "/fpc:configure/fpc:input/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:dpns/fpc:mobility-tunnel-parameters/fpc:profile-parameters" {
case pmip-tunnel {
uses fpc-pmip:pmip-mobility;
uses traffic-selectors:traffic-selector;
description "PMIP Tunnel Information";
}
description "CONF Context DPN Mobility";
}
augment "/fpc:configure-bundles/fpc:input/fpc:bundles/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:dpns/fpc:mobility-tunnel-parameters/fpc:profile-parameters" {
case pmip-tunnel {
uses fpc-pmip:pmip-mobility;
uses traffic-selectors:traffic-selector;
description "PMIP Tunnel Information";
}
description "CONF_BUNDLES Context DPN Mobility";
}
// QoS Updates - Context / UL / qosprofile, Context / DL / QoS Profile
augment "/fpc:tenants/fpc:tenant/fpc:fpc-mobility/fpc:contexts/fpc:ul/fpc:qos-profile-parameters/fpc:value" {
case qos-pmip {
uses qos-pmip:qosattribute;
description "PMIP QoS Information";
}
description "Context UL QoS";
}
augment "/fpc:configure/fpc:input/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:ul/fpc:qos-profile-parameters/fpc:value" {
case qos-pmip {
uses qos-pmip:qosattribute;
description "PMIP QoS Information";
}
description "CONF Context UL QoS";
}
augment "/fpc:configure-bundles/fpc:input/fpc:bundles/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:ul/fpc:qos-profile-parameters/fpc:value" {
case qos-pmip {
uses qos-pmip:qosattribute;
description "PMIP QoS Information";
}
description "CONF_BUNDLES Context UL QoS";
}
augment "/fpc:tenants/fpc:tenant/fpc:fpc-mobility/fpc:contexts/fpc:dl/fpc:qos-profile-parameters/fpc:value" {
case qos-pmip {
uses qos-pmip:qosattribute;
description "PMIP QoS Information";
}
description "Context DL QoS";
}
augment "/fpc:configure/fpc:input/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:dl/fpc:qos-profile-parameters/fpc:value" {
case qos-pmip {
uses qos-pmip:qosattribute;
description "PMIP QoS Information";
}
description "CONF Context DL QoS";
}
augment "/fpc:configure-bundles/fpc:input/fpc:bundles/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:dl/fpc:qos-profile-parameters/fpc:value" {
case qos-pmip {
uses qos-pmip:qosattribute;
description "PMIP QoS Information";
}
description "CONF_BUNDLES Context DL QoS";
}
grouping pmip-commandset {
leaf instr-pmip {
type fpc-pmip:pmip-instr;
description "PMIP Instructions";
}
description "PMIP Commandset";
}
// Instructions Update - OP BODY, Context, Port
augment "/fpc:configure/fpc:input/fpc:instructions/fpc:instr-type" {
case pmip-instr {
uses fpc-pmip:pmip-commandset;
description "PMIP Commandset";
}
description "CONF Instructions";
}
augment "/fpc:configure/fpc:input/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:instructions/fpc:instr-type" {
case pmip-instr {
uses fpc-pmip:pmip-commandset;
description "PMIP Commandset";
}
description "CONF Context Instructions";
}
augment "/fpc:configure/fpc:output/fpc:result-type/fpc:create-or-update-success/fpc:contexts/fpc:instructions/fpc:instr-type" {
case pmip-instr {
uses fpc-pmip:pmip-commandset;
description "PMIP Commandset";
}
description "CONF Result Context Instructions";
}
augment "/fpc:configure-bundles/fpc:input/fpc:bundles/fpc:instructions/fpc:instr-type" {
case pmip-instr {
uses fpc-pmip:pmip-commandset;
description "PMIP Commandset";
}
description "CONF_BUNDLES Instructions";
}
augment "/fpc:configure-bundles/fpc:input/fpc:bundles/fpc:op_body/fpc:create_or_update/fpc:contexts/fpc:instructions/fpc:instr-type" {
case pmip-instr {
uses fpc-pmip:pmip-commandset;
description "PMIP Commandset";
}
description "CONF_BUNDLES Context Instructions";
}
augment "/fpc:configure-bundles/fpc:output/fpc:bundles/fpc:result-type/fpc:create-or-update-success/fpc:contexts/fpc:instructions/fpc:instr-type" {
case pmip-instr {
uses fpc-pmip:pmip-commandset;
description "PMIP Commandset";
}
description "CONF_BUNDLES Result Context Instructions";
}
}