Junos unified-edge configuration module
Version: 2019-01-01
module junos-conf-unified-edge { yang-version 1; namespace "http://yang.juniper.net/junos/conf/unified-edge"; prefix jc-unified-edge; import junos-common-ddl-extensions { prefix junos; revision-date "2019-01-01"; } import junos-common-types { prefix jt; revision-date "2019-01-01"; } import junos-conf-root { prefix jc; revision-date "2019-01-01"; } organization "Juniper Networks, Inc."; contact "yang-support@juniper.net"; description "Junos unified-edge configuration module"; revision "2019-01-01" { description "Junos: 21.3R1.9"; } augment /jc:configuration { uses unified-edge-group; } augment /jc:configuration/jc:groups { uses unified-edge-group; } grouping unified-edge-group { container unified-edge { description "Unified edge configuration"; uses apply-advanced; container cos-cac { status deprecated; description "Unified Edge COS configuration"; uses juniper-unified-edge-cos-options; } // container cos-cac list local-policies { key "name"; max-elements 8001; ordered-by user; status deprecated; description "Local policy profiles"; leaf name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Local policy profile name"; } uses apply-advanced; leaf description { type string; description "Text description of local policy"; } leaf resource-threshold-profile { type string; description "Resource threshold profile associated with the local policy"; } leaf classifier-profile { type string; description "QoS class profile associated with the local policy"; } leaf cos-policy-profile { type string; description "QoS policy profile associated with the local policy"; } leaf roamer-classifier-profile { type string; description "QoS classifier profile for roamers"; } leaf roamer-cos-policy-profile { type string; description "QoS policy profile for roamers"; } leaf visitor-classifier-profile { type string; description "QoS classifier profile for visitor"; } leaf visitor-cos-policy-profile { type string; description "QoS policy profile for visitor"; } leaf traffic-class-qci-mapping-profile { type string { length "1 .. 128"; } description "Traffic class to qci mapping profile"; } leaf ul-bandwidth-pool { type string; description "Bandwidth pool associated with the local policy"; } leaf dl-bandwidth-pool { type string; description "Bandwidth pool associated with the local policy"; } } // list local-policies container aaa { description "AAA configuration"; uses apply-advanced; container traceoptions { uses aaa-traceoptions; } // container traceoptions list profiles { key "name"; ordered-by user; description "AAA profile configuration"; uses aaa-profile; } // list profiles } // container aaa container diameter-profiles { description "Unified Edge Diameter application configurations"; uses mobile-diameter-profiles; } // container diameter-profiles container gateways { junos:must "(!("system services subscriber-management enable"))"; junos:must-message "unified-edge gateway is not allowed when subscriber-management is configured"; description "Gateways configuration"; uses apply-advanced; list ggsn-pgw { key "name"; max-elements 16; ordered-by user; status deprecated; description "GGSN-PGW Configuration"; leaf name { type string { length "1 .. 63"; } description "Gateway name"; } uses apply-advanced; leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } leaf maximum-bearers { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "100000 .. 12000000"; } } description "Maximum bearers for the GW"; } leaf session-timeout-check-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5 .. 600"; } } units "in minutes"; default "15"; description "Session timeout checking interval in minutes"; } leaf redirect-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "15 .. 120"; } } units "in seconds"; default "15"; description "Delay before a redirected session is deleted"; } leaf local-policy-profile { type string; description "Local profile for the system level"; } container pfes { presence "enable pfes"; description "PFE Configuration"; uses apply-advanced; leaf guaranteed-bandwidth { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 100"; } } units "gigabits per second"; default "40"; description "PFE guaranteed bandwidth"; } leaf maximum-bearers { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "100 .. 510"; } } units "in thousands"; default "510"; description "PFE maximum bearers"; } leaf default-bearers-percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 100"; } } units "percentage of maximum pfe bearers"; default "100"; description "PFE default bearer percentage"; } leaf ipv4-nbm-prefixes { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "16 .. 128"; } } units "number of prefixes in multiples of 1K"; default "64"; description "PFE IPv4 prefixes limit for NBM"; } leaf ipv6-nbm-prefixes { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 128"; } } units "number of prefixes in multiples of 1K"; default "16"; description "PFE IPv6 prefixes limit for NBM"; } leaf maximum-sdfs { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "100 .. 510"; } } units "in thousands"; default "510"; description "PFE maximum SDFs"; } } // container pfes leaf anchor-pfe-guaranteed-bandwidth { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 100"; } } units "gigabits per second"; default "40"; status deprecated; description "PFE guaranteed bandwidth"; } leaf anchor-pfe-maximum-bearers { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "100 .. 510"; } } units "in thousands"; default "510"; status deprecated; description "PFE maximum bearers"; } leaf anchor-pfe-default-bearers-percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 100"; } } units "percentage of maximum pfe bearers"; default "100"; status deprecated; description "PFE default bearer percentage"; } leaf anchor-pfe-ipv4-nbm-prefixes { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "16 .. 128"; } } units "number of prefixes in multiples of 1K"; default "64"; status deprecated; description "PFE IPv4 prefixes limit for NBM"; } leaf anchor-pfe-ipv6-nbm-prefixes { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "4 .. 128"; } } units "number of prefixes in multiples of 1K"; default "16"; status deprecated; description "PFE IPv6 prefixes limit for NBM"; } container preemption { presence "enable preemption"; description "Pre-Emption configuration"; uses apply-advanced; leaf enable { type empty; description "Preemption-enabled - default is disabled"; } leaf gtpv1-pvi-disable { type empty; description "Preemption Vulnerability indicator disabled - default is Enabled"; } leaf gtpv1-pci-disable { type empty; description "Preemption Capability indicator disabled - default is Enabled"; } } // container preemption container gtp { description "GTP configuration"; uses mobile-gateway-config-gtp; } // container gtp container home-plmn { description "Configure home PLMN MCC MNC values"; uses apply-advanced; list mcc { key "mcc mnc"; ordered-by user; description "Enter MCC value"; leaf mcc { type string { junos:posix-pattern "^[0-9]*$"; length "3"; } description "Mobile country code"; } leaf mnc { type string { junos:posix-pattern "^[0-9]*$"; length "2 .. 3"; } description "Mobile network code"; } uses apply-advanced; } // list mcc } // container home-plmn container traceoptions { description "Trace options related to mobile subscriber management"; uses mobile-smd-traceoptions; } // container traceoptions container call-rate-statistics { presence "enable call-rate-statistics"; description "Call-rate-statistics options"; uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5 .. 120"; } } units "minutes"; default "60"; description "Time interval in minutes"; } leaf history { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 20"; } } default "1"; description "Number of intervals"; } } // container call-rate-statistics list service-selection-profiles { key "name"; ordered-by user; description "Profile definition"; leaf name { type string { length "1 .. 63"; } description "Name of service selection profile"; } uses apply-advanced; list term { key "name"; max-elements 64; ordered-by user; description "Define a selection term"; leaf name { type string { length "1 .. 63"; } description "Term name"; } uses apply-advanced; container from { description "Define match criteria"; uses apply-advanced; leaf imsi { type string { junos:posix-pattern "^[0-9]*$"; length "1 .. 15"; } description "Match IMSI"; } leaf msisdn { type string { junos:posix-pattern "^[0-9]*$"; length "1 .. 15"; } description "Match MSISDN"; } leaf imei { type string { junos:posix-pattern "^[0-9]*$"; length "1 .. 16"; } description "Match IMEI"; } leaf anonymous-user { type empty; description "Match anonymous users"; } leaf domain-name { type string { length "1 .. 63"; } description "Match domain name"; } leaf roaming-status { type enumeration { enum "home" { value 0; description "Home subscribers"; } enum "roamer" { value 1; description "Roaming subscribers"; } enum "visitor" { value 2; description "Visiting subscribers"; } } description "Match roaming status"; } container plmn { description "Match PLMN MCC MNC values"; uses apply-advanced; list mcc { key "mcc mnc"; max-elements 8; ordered-by user; description "Enter MCC value"; leaf mcc { type string { junos:posix-pattern "^[0-9]*$"; length "3"; } description "Mobile country code"; } leaf mnc { type string { junos:posix-pattern "^[0-9]*$"; length "2 .. 3"; } description "Mobile network code"; } uses apply-advanced; } // list mcc leaf except { junos:must "(".. mcc")"; junos:must-message "MCC-MNC should be defined"; type empty; description "Except the specified plmns"; } } // container plmn leaf charging-characteristics { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65535"; } } description "Match charging characteristics"; } leaf maximum-bearers { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10000000"; } } description "Maximum bearers in the gateway"; } leaf peer { type jt:ipaddr; description "IP address of the peer creating the session"; } leaf peer-routing-instance { junos:must "("routing-instances $$")"; junos:must-message "Routing instance not present"; type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } description "Routing instance of the peer creating the session"; } leaf pdn-type { type enumeration { enum "ipv4" { value 0; description "IPv4 Data type"; } enum "ipv6" { value 1; description "IPv6 Data type"; } enum "ipv4v6" { value 2; description "IPv4v6 Data type"; } } description "Match pdn type"; } leaf rat-type { type enumeration { enum "geran" { value 0; description "RAT type is GERAN"; } enum "utran" { value 1; description "RAT type is UTRAN"; } enum "eutran" { value 2; description "RAT type is EUTRAN"; } enum "wlan" { value 3; description "RAT type is WLAN"; } enum "hspa" { value 4; description "RAT type is HSPA"; } } description "Radio Access Technology Type"; } } // container from container then { description "Action to take if the 'from' condition is matched"; uses apply-advanced; list redirect-peer { junos:must "((!(".. apn-name") && (!(".. pcef-profile") && !(".. charging-profile"))))"; junos:must-message "Redirect peer cannot be combined with other actions"; key "name"; max-elements 8; ordered-by user; description "IP address of the redirect peer"; leaf name { type jt:ipaddr; description "Peer IP address"; } } // list redirect-peer leaf accept { junos:must "((!(".. apn-name") && (!(".. redirect-peer") && (!(".. pcef-profile") && !(".. charging-profile")))))"; junos:must-message "Accept can not be combined with other actions"; type empty; description "Stop matching futher terms and accept"; } leaf reject { junos:must "((!(".. apn-name") && (!(".. redirect-peer") && (!(".. accept") && (!(".. pcef-profile") && !(".. charging-profile"))))))"; junos:must-message "Reject can not be combined with other actions"; type empty; description "Reject the connection attempt"; } leaf apn-name { junos:must "((".. .. .. .. apn-services apns $$" && (!(".. .. .. .. apn-services apns $$ apn-type virtual") && !(".. .. .. .. apn-services apns $$ apn-type virtual-pre-authenticate"))))"; junos:must-message "Referenced apn must be configured"; type string { length "1 .. 100"; } description "Real APN name"; } leaf pcef-profile { junos:must "(".. .. .. .. .. .. pcef profiles $$")"; junos:must-message "Referenced PCEF profile must be defined"; type string { length "1 .. 63"; } description "PCEF profile for service selection profile"; } leaf charging-profile { junos:must "(".. .. .. .. charging charging-profiles $$")"; junos:must-message "Referenced Charging Profile must be defined"; type string { length "1 .. 128"; } description "Charging profile for service selection profile"; } } // container then } // list term } // list service-selection-profiles container apn-services { description "Apn services configuration"; uses ggsn-pgw-apn-services; } // container apn-services container system { description "System parameters"; uses unified-edge-ggsn-pgw-system; } // container system container diameter { description "Diameter protocol parameters specific to gateway"; uses unified-edge-gateway-diameter; } // container diameter container charging { presence "enable charging"; description "PGW charging profile definitions"; uses apply-advanced; container traceoptions { description "Charging trace options"; uses charging-traceoptions; } // container traceoptions container charging-profiles { description "Charging profile"; uses apply-advanced; list charging-profile { key "name"; max-elements 255; uses juniper-charging-profiles; } // list charging-profile } // container charging-profiles container transport-profiles { description "Transport profile definition"; uses apply-advanced; list transport-profile { key "name"; max-elements 8; uses juniper-transport-profiles; } // list transport-profile } // container transport-profiles container cdr-profiles { description "CDR profiles definition"; uses apply-advanced; list cdr-profile { key "name"; max-elements 255; description "CDR profile definition"; uses juniper-cdr-profiles; } // list cdr-profile } // container cdr-profiles container trigger-profiles { description "Trigger profile definition"; uses apply-advanced; list trigger-profile { key "name"; max-elements 16; ordered-by user; uses juniper-trigger-profiles; } // list trigger-profile } // container trigger-profiles container local-persistent-storage-options { description "Local persistent storage configuration"; uses juniper-charged-configuraton; } // container local-persistent-storage-options container gtpp { description "Configuration for GTPP protocol for charging"; uses apply-advanced; container source-interface { description "Source interface from which GTPP packets will be sent"; leaf interface-name { junos:must "("interfaces $$")"; junos:must-message "Interface must be defined"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf ipv4-address { type jt:ipv4addr; description "Source IPv4 address to be used"; } } // container source-interface leaf destination-port { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65535"; } } description "Destination port number of the CGF Server"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } default "3"; description "Number of retries of GTPP messages upon timeout"; } leaf transport-protocol { type enumeration { enum "udp" { value 0; description "GTPP over udp"; } enum "tcp" { value 1; description "GTPP over tcp"; } } description "Default Transport protocol(udp/tcp) used"; } leaf version { type enumeration { enum "v0" { value 0; description "GTPP version V0"; } enum "v1" { value 1; description "GTPP version V1"; } enum "v2" { value 2; description "GTPP version V2"; } } description "GTPP version V0|V1|V2"; } leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "60 .. 255"; } } units "seconds"; default "60"; description "GTPP echo-interval in seconds"; } leaf no-path-management { junos:must "(!(".. echo-interval"))"; junos:must-message "no-path-management option can not be used with echo-interval"; type empty; description "Disables path management"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } units "seconds"; default "5"; description "Response timeout value for GTPP request message"; } leaf header-type { type enumeration { enum "short" { value 0; description "GTPP short header"; } enum "long" { value 1; description "GTPP long (20-byte) header"; } } description "GTPP protocol header type short|long"; } leaf pending-queue-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4096"; } } default "1024"; description "Maximum number of DRT messages awaiting an ack"; } leaf down-detect-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } units "seconds"; default "10"; description "Time (in sec) to wait before declaring a CGF as Down"; } leaf reconnect-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "60 .. 255"; } } units "seconds"; default "60"; description "Time (in sec) after which connection to the CGF server should be retried"; } list peer { key "name"; max-elements 24; description "GTPP peer object"; uses gtpp-peer; } // list peer } // container gtpp } // container charging container ip-reassembly-profile { description "IP reassembly profile for mobile gateways"; uses apply-advanced; leaf profile-name { junos:must "("services ip-reassembly profile $$")"; junos:must-message "Referenced profile must be defined"; type string { length "1 .. 32"; } description "IP reassembly profile name"; } } // container ip-reassembly-profile container ipv6-router-advertisement { presence "enable ipv6-router-advertisement"; description "IPv6 router advertisement configuration for GGSN/PGW"; uses mobile-gateways-ipv6-router-advertisement; } // container ipv6-router-advertisement container software-datapath { presence "enable software-datapath"; description "Mobility software datapath options"; uses apply-advanced; container traceoptions { description "Mobility software datapath trace options"; uses software-datapath-traceoptions; } // container traceoptions } // container software-datapath container inline-services { description "Inline services"; uses apply-advanced; container ip-reassembly { presence "enable ip-reassembly"; description "IP reassembly"; uses apply-advanced; container service-set { description "Inline IP reassembly service set for mobile gateways"; uses apply-advanced; leaf service-set-name { junos:must "("services service-set $$")"; junos:must-message "Service set name must be defined in the [edit services service-set] hierarchy"; type string { length "1 .. 63"; } description "Inline IP reassembly service-set name"; } } // container service-set } // container ip-reassembly } // container inline-services } // list ggsn-pgw list sgw { key "name"; max-elements 16; ordered-by user; status deprecated; description "Serving Gateway Configuration"; leaf name { type string { length "1 .. 63"; } description "Gateway name"; } uses apply-advanced; leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } leaf maximum-bearers { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "100000 .. 12000000"; } } description "Maximum bearers for the GW"; } leaf local-policy-profile { type string; description "Local profile for the system level"; } container pfes { presence "enable pfes"; description "PFE Configuration"; uses apply-advanced; leaf guaranteed-bandwidth { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 100"; } } units "gigabits per second"; default "40"; description "PFE guaranteed bandwidth"; } leaf maximum-bearers { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "100 .. 510"; } } units "in thousands"; default "510"; description "PFE maximum bearers"; } leaf default-bearers-percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 100"; } } units "percentage of maximum pfe bearers"; default "100"; description "PFE default bearer percentage"; } } // container pfes leaf anchor-pfe-guaranteed-bandwidth { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 100"; } } units "gigabits per second"; default "40"; status deprecated; description "PFE guaranteed bandwidth"; } leaf anchor-pfe-maximum-bearers { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "100 .. 510"; } } units "in thousands"; default "510"; status deprecated; description "PFE maximum bearers"; } leaf anchor-pfe-default-bearers-percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 100"; } } units "percentage of maximum pfe bearers"; default "100"; status deprecated; description "PFE default bearer percentage"; } container preemption { presence "enable preemption"; description "Pre-Emption configuration"; uses apply-advanced; leaf enable { type empty; description "Preemption-enabled - default is disabled"; } } // container preemption leaf remote-delete-on-peer-fail { type empty; description "Send delete towards remote peer if other peer fails"; } container gtp { description "GTP configuration"; uses sgw-config-gtp; } // container gtp container home-plmn { description "Configure home PLMN MCC MNC values"; uses apply-advanced; list mcc { key "mcc mnc"; ordered-by user; description "Enter MCC value"; leaf mcc { type string { junos:posix-pattern "^[0-9]*$"; length "3"; } description "Mobile country code"; } leaf mnc { type string { junos:posix-pattern "^[0-9]*$"; length "2 .. 3"; } description "Mobile network code"; } uses apply-advanced; } // list mcc } // container home-plmn container traceoptions { description "Trace options related to mobile subscriber management"; uses mobile-smd-traceoptions; } // container traceoptions container call-rate-statistics { presence "enable call-rate-statistics"; description "Call rate statistics options"; uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5 .. 120"; } } units "minutes"; default "60"; description "Time interval in minutes"; } leaf history { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 20"; } } default "1"; description "Number of intervals"; } } // container call-rate-statistics container system { description "System parameters"; uses unified-edge-sgw-system; } // container system container charging { presence "enable charging"; description "SGW charging profile definitions"; uses apply-advanced; container traceoptions { description "Charging trace options"; uses charging-traceoptions; } // container traceoptions container charging-profiles { description "Charging profile"; uses apply-advanced; list charging-profile { key "name"; max-elements 255; uses juniper-charging-profiles; } // list charging-profile } // container charging-profiles container transport-profiles { description "Transport profile definition"; uses apply-advanced; list transport-profile { key "name"; max-elements 8; uses juniper-transport-profiles; } // list transport-profile } // container transport-profiles container cdr-profiles { description "CDR profiles definition"; uses apply-advanced; list cdr-profile { key "name"; max-elements 255; description "CDR profile definition"; uses juniper-cdr-profiles; } // list cdr-profile } // container cdr-profiles container trigger-profiles { description "Trigger profile definition"; uses apply-advanced; list trigger-profile { key "name"; max-elements 16; ordered-by user; uses juniper-trigger-profiles; } // list trigger-profile } // container trigger-profiles container local-persistent-storage-options { description "Local persistent storage configuration"; uses juniper-charged-configuraton; } // container local-persistent-storage-options container gtpp { description "Configuration for GTPP protocol for charging"; uses apply-advanced; container source-interface { description "Source interface from which GTPP packets will be sent"; leaf interface-name { junos:must "("interfaces $$")"; junos:must-message "Interface must be defined"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf ipv4-address { type jt:ipv4addr; description "Source IPv4 address to be used"; } } // container source-interface leaf destination-port { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65535"; } } description "Destination port number of the CGF Server"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } default "3"; description "Number of retries of GTPP messages upon timeout"; } leaf transport-protocol { type enumeration { enum "udp" { value 0; description "GTPP over udp"; } enum "tcp" { value 1; description "GTPP over tcp"; } } description "Default Transport protocol(udp/tcp) used"; } leaf version { type enumeration { enum "v0" { value 0; description "GTPP version V0"; } enum "v1" { value 1; description "GTPP version V1"; } enum "v2" { value 2; description "GTPP version V2"; } } description "GTPP version V0|V1|V2"; } leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "60 .. 255"; } } units "seconds"; default "60"; description "GTPP echo-interval in seconds"; } leaf no-path-management { junos:must "(!(".. echo-interval"))"; junos:must-message "no-path-management option can not be used with echo-interval"; type empty; description "Disables path management"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } units "seconds"; default "5"; description "Response timeout value for GTPP request message"; } leaf header-type { type enumeration { enum "short" { value 0; description "GTPP short header"; } enum "long" { value 1; description "GTPP long (20-byte) header"; } } description "GTPP protocol header type short|long"; } leaf pending-queue-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4096"; } } default "1024"; description "Maximum number of DRT messages awaiting an ack"; } leaf down-detect-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } units "seconds"; default "10"; description "Time (in sec) to wait before declaring a CGF as Down"; } leaf reconnect-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "60 .. 255"; } } units "seconds"; default "60"; description "Time (in sec) after which connection to the CGF server should be retried"; } list peer { key "name"; max-elements 24; description "GTPP peer object"; uses gtpp-peer; } // list peer } // container gtpp container global-profile { description "Global charging profiles"; uses apply-advanced; leaf default-profile { junos:must "("unified-edge gateways sgw ${sgw} charging charging-profiles $$")"; junos:must-message "Charging profile must be defined before it can be used"; type string; description "Global charging profile for SGW"; } leaf home-profile { junos:must "("unified-edge gateways sgw ${sgw} charging charging-profiles $$")"; junos:must-message "Charging profile must be defined before it can be used"; type string; description "Global home profile for SGW"; } leaf roamer-profile { junos:must "("unified-edge gateways sgw ${sgw} charging charging-profiles $$")"; junos:must-message "Charging profile must be defined before it can be used"; type string; description "Global roamer profile for SGW"; } leaf visitor-profile { junos:must "("unified-edge gateways sgw ${sgw} charging charging-profiles $$")"; junos:must-message "Charging profile must be defined before it can be used"; type string; description "Global visitor profile for SGW"; } leaf-list profile-selection-order { type enumeration { enum "static" { value 0; description "Select charging profile locally configured"; } enum "serving" { value 1; description "Select charging profile sent by MME"; } enum "pgw-cg-addr" { value 2; description "Select charging profile based on PGW's CG Address"; } } ordered-by user; description "Global charging profile selection order"; } } // container global-profile } // container charging container ip-reassembly-profile { description "IP reassembly profile for mobile gateways"; uses apply-advanced; leaf profile-name { junos:must "("services ip-reassembly profile $$")"; junos:must-message "Referenced profile must be defined"; type string { length "1 .. 32"; } description "IP reassembly profile name"; } } // container ip-reassembly-profile container idle-mode-buffering { description "Idle mode buffering"; uses sgw-idle-mode-buffering; } // container idle-mode-buffering container software-datapath { presence "enable software-datapath"; description "Mobility software datapath options"; uses apply-advanced; container traceoptions { description "Mobility software datapath trace options"; uses software-datapath-traceoptions; } // container traceoptions } // container software-datapath container inline-services { description "Inline services"; uses apply-advanced; container ip-reassembly { presence "enable ip-reassembly"; description "IP reassembly"; uses apply-advanced; container service-set { description "Inline IP reassembly service set for mobile gateways"; uses apply-advanced; leaf service-set-name { junos:must "("services service-set $$")"; junos:must-message "Service set name must be defined in the [edit services service-set] hierarchy"; type string { length "1 .. 63"; } description "Inline IP reassembly service-set name"; } } // container service-set } // container ip-reassembly } // container inline-services } // list sgw list tdf { key "name"; max-elements 1; ordered-by user; description "Traffic Detection Function Configuration"; uses unified-edge-tdf; } // list tdf } // container gateways container mobile-options { description "Mobile options"; uses unified-edge-mobile-options; } // container mobile-options container pcef { junos:must "(!("system services subscriber-management enable"))"; junos:must-message "unified-edge pcef is not allowed only when enhanced-ip is configured"; description "PCEF configuration"; uses unified-edge-pcef; } // container pcef container resource-management { description "Configure Resource Mangement Packet Steering Daemon"; uses apply-advanced; container server { description "Configure Resource Mangement Packet Steering Daemon"; uses apply-advanced; container traceoptions { description "Resource Management Packet Steering Daemon trace options"; uses rmpsd-traceoptions-type; } // container traceoptions } // container server container client { description "Configure Resource Mangement Packet Steering Client"; uses apply-advanced; container traceoptions { description "Resource Management Packet Steering Client trace options"; uses rmps-clnt-traceoptions-type; } // container traceoptions } // container client } // container resource-management } // container unified-edge } // grouping unified-edge-group grouping aaa-profile { description "AAA profile configuration"; leaf name { type string { length "1 .. 32"; } description "AAA profile name"; } uses apply-advanced; container radius { junos:must "((".. radius authentication network-element" || (".. radius accounting network-element" || ".. radius accounting network-element-group")))"; junos:must-message "authentication or accounting network element or network element group must be defined"; description "Specify RADIUS options"; uses aaa-profile-radius; } // container radius } // grouping aaa-profile grouping aaa-profile-radius { uses apply-advanced; container authentication { description "Specify RADIUS authentication parameters"; uses apply-advanced; leaf network-element { junos:must "("access radius network-elements $$")"; junos:must-message "referenced network-element must be defined"; type string { length "1 .. 31"; } description "The network-element used for authentication"; } } // container authentication container accounting { description "Specify RADIUS accounting parameters"; uses apply-advanced; leaf network-element { junos:must "(!(".. network-element-group"))"; junos:must-message "only one of accounting network-element or network-element-group can be specified"; junos:must "("access radius network-elements $$")"; junos:must-message "referenced network-element must be defined"; type string { length "1 .. 31"; } description "The network-element used for accounting"; } } // container accounting container policy { description "Specify RADIUS policy parameters"; uses apply-advanced; container activation-attribute { description "Configure the attribute used for policy activation"; uses apply-advanced; leaf code { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 255"; } } description "Attribute code"; } leaf vendor-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65534"; } } description "Attribute vendor-id"; } } // container activation-attribute container deactivation-attribute { description "Configure the attribute used for policy deactivation"; uses apply-advanced; leaf code { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 255"; } } description "Attribute code"; } leaf vendor-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65534"; } } description "Attribute vendor-id"; } } // container deactivation-attribute leaf coa-accounting { type enumeration { enum "allow" { junos:must "(".. .. accounting network-element")"; junos:must-message "Accounting network-element must be configured"; value 0; description "Enable accounting to the CoA server"; } enum "disallow" { value 1; description "Disable accounting to the CoA server"; } } description "Allow/disallow accounting to the CoA server"; } } // container policy } // grouping aaa-profile-radius grouping aaa-traceoptions { description "Trace options related to AAA operation"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice } // container file leaf level { type enumeration { enum "error" { value 0; description "Match error conditions"; } enum "warning" { value 1; description "Match warning messages"; } enum "notice" { value 2; description "Match conditions that should be handled specially"; } enum "info" { value 3; description "Match informational messages"; } enum "verbose" { value 4; description "Match verbose messages"; } enum "all" { value 5; description "Match all levels"; } } default "error"; description "Level of debugging output"; } list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "init" { value 0; description "Trace initialization events"; } enum "config" { value 1; description "Trace configuration events"; } enum "general" { value 2; description "Trace general events"; } enum "request" { value 3; description "Trace requests"; } enum "response" { value 4; description "Trace response"; } enum "high-availability" { value 5; description "Trace high availability events"; } enum "debug" { value 6; description "Trace debug internal events"; } enum "request-in" { value 7; description "Trace Incoming Diameter request events"; } enum "request-out" { value 8; description "Trace Outgoing Diameter request events"; } enum "response-in" { value 9; description "Trace Incoming Radius Client response events"; } enum "response-out" { value 10; description "Trace Outgoing Radius Client response events"; } enum "client-request-in" { value 11; description "Trace Incoming Radius Client request events"; } enum "client-request-out" { value 12; description "Trace Outgoing Radius Client request events"; } enum "all" { value 13; description "Trace everything"; } } } } // list flag list protocol { key "name"; ordered-by user; description "AAA Protocol to trace"; leaf name { type enumeration { enum "radius" { value 0; description "Trace radius protocols only"; } enum "diameter" { value 1; description "Trace diameter protocols only"; } enum "all" { value 2; description "Trace both radius and protocols"; } } } } // list protocol } // grouping aaa-traceoptions grouping apply-advanced { description "Apply advanced configuration logic"; leaf-list apply-groups { type string; ordered-by user; description "Groups from which to inherit configuration data"; } leaf-list apply-groups-except { type string; ordered-by user; description "Don't inherit configuration data from these groups"; } list apply-macro { key "name"; ordered-by user; description "Macro and parameters for commit script expansion"; uses apply-macro-type; } // list apply-macro } // grouping apply-advanced grouping apply-macro-type { description "Macro data for commit-script expansion"; leaf name { type string; description "Name of the macro to be expanded"; } list data { key "name"; uses macro-data-type; } // list data } // grouping apply-macro-type grouping charging-traceoptions { description "Trace options related to charging operation"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice } // container file leaf level { type enumeration { enum "critical" { value 0; description "Match critical error conditions"; } enum "error" { value 1; description "Match error conditions"; } enum "warning" { value 2; description "Match warning messages"; } enum "notice" { value 3; description "Match conditions that should be handled specially"; } enum "info" { value 4; description "Match informational messages"; } enum "verbose" { value 5; description "Match verbose messages"; } enum "all" { value 6; description "Match all levels"; } } default "error"; description "Level of debugging output"; } list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "init" { value 0; description "Trace initialization events"; } enum "config" { value 1; description "Trace configuration events"; } enum "general" { value 2; description "Trace general events"; } enum "triggers" { value 3; description "Trace trigger information"; } enum "cdr-encoding" { value 4; description "Trace CDR encoding"; } enum "transport" { value 5; description "Trace transport group"; } enum "path-management" { value 6; description "Trace path management module"; } enum "fsm" { value 7; description "Trace FSM"; } enum "ipc" { value 8; description "Trace IPC"; } enum "resource" { value 9; description "Trace resources"; } enum "group-fsm" { value 10; description "Trace group FSM"; } enum "client-fsm" { value 11; description "Trace client FSM"; } enum "timers" { value 12; description "Trace resources"; } enum "online" { value 13; description "Trace Gy ASM module"; } enum "tpm" { value 14; description "Trace online processing module"; } enum "all" { value 15; description "Trace everything"; } } } } // list flag } // grouping charging-traceoptions grouping ggsn-pgw-apn-services { description "Apn services configuration"; uses apply-advanced; container apns { description "Apn configuration"; uses apply-advanced; list apn { key "name"; uses ggsn-pgw-apn; } // list apn } // container apns } // grouping ggsn-pgw-apn-services grouping ggsn-pgw-apn { description "Configure Access Point Names for ggsn and pgw"; leaf name { type string { junos:posix-pattern "^[.0-9A-Za-z-]{1,100}$"; junos:pattern-message "Must be a string of 100 or fewer characters and may contain letters, numbers, decimals and dashes."; } description "Access Point Name"; } uses apply-advanced; leaf maximum-bearers { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "100000 .. 12000000"; } } description "Maximum bearers for the APN"; } leaf wait-accounting { type empty; description "Wait for accounting response for session creation"; } leaf block-visitors { type empty; description "Do not allow visitors connect to the APN"; } leaf allow-network-behind-mobile { type empty; description "Allow routing behind MS"; } leaf local-policy-profile { type string; description "Local profile for the apn"; } leaf apn-type { type enumeration { enum "real" { junos:must "(".. address-assignment")"; junos:must-message "address-assignment must be specified for a real apn-type"; junos:must "(".. mobile-interface")"; junos:must-message "mobile-interface must be specified for a real apn-type"; value 0; description "Real APN"; } enum "virtual" { value 1; description "Virtual APN"; } enum "virtual-pre-authenticate" { value 2; description "Virtual APN pre authenticate"; } } default "real"; description "Specify APN type"; } leaf description { type string { junos:posix-pattern "^.{1,80}$"; junos:pattern-message "Must be 80 characters or less"; } description "Text description of APN"; } leaf apn-data-type { type enumeration { enum "ipv4" { value 0; description "IPv4 Data type"; } enum "ipv6" { value 1; description "IPv6 Data type"; } enum "ipv4v6" { value 2; description "IPv4v6 Data type"; } } default "ipv4"; description "Specify APN data type"; } leaf mobile-interface { junos:must "("interfaces $$")"; junos:must-message "referenced mif interface must be defined in the interfaces hierarchy"; junos:must "(!(".. apn-type virtual-pre-authenticate"))"; junos:must-message "mobile-interface cannot be specified for a virtual-pre-authenticate apn-type"; junos:must "(!(".. apn-type virtual"))"; junos:must-message "mobile-interface cannot be specified for a virtual apn-type"; type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } } container address-assignment { junos:must "(!(".. apn-type virtual-pre-authenticate"))"; junos:must-message "address-assignment cannot be specified for a virtual-pre-authenticate apn-type"; junos:must "(!(".. apn-type virtual"))"; junos:must-message "address-assignment cannot be specified for a virtual apn-type"; presence "enable address-assignment"; description "Specify address assignment options"; uses apply-advanced; choice address-assignment-choice { leaf aaa { junos:must "(".. .. aaa-profile")"; junos:must-message "AAA address assignment method is allowed only if AAA profile is configured under this APN"; type empty; description "AAA assigns addresses"; } container local { presence "enable local"; description "Gateway assigns addresses locally"; uses apply-advanced; leaf aaa-override { type empty; description "Override local address by address from AAA"; } } // container local container dhcp-proxy-client { presence "enable dhcp-proxy-client"; description "Gateway assigns address received when acting as DHCP proxy client"; uses apply-advanced; leaf aaa-override { type empty; description "Override address received from DHCP proxy client mechanism by address from AAA"; } } // container dhcp-proxy-client } // choice address-assignment-choice container inet-pool { junos:must "((!(".. dhcp-proxy-client") || ".. dhcp-proxy-client aaa-override"))"; junos:must-message "inet-pool can be configured with dhcp-proxy-client only if aaa-override is configured"; description "Specify address group name or pool name for IPv4"; uses apply-advanced; leaf group { junos:must "(!(".. pool"))"; junos:must-message "only one of pool or group can be specified"; type string { length "1 .. 64"; } } leaf pool { junos:must "(!(".. group"))"; junos:must-message "only one of pool or group can be specified"; type string { length "1 .. 64"; } } leaf-list exclude-pools { junos:must "(".. group")"; junos:must-message "exclude-pools can be configured only if group is configured"; type string { length "1 .. 64"; } ordered-by user; description "Names of pool to exclude"; } } // container inet-pool container inet6-pool { junos:must "((!(".. dhcp-proxy-client") || ".. dhcp-proxy-client aaa-override"))"; junos:must-message "inet6-pool can be configured with dhcp-proxy-client only if aaa-override is configured"; description "Specify address group name or pool name for IPv6"; uses apply-advanced; leaf group { junos:must "(!(".. pool"))"; junos:must-message "only one of pool or group can be specified"; type string { length "1 .. 64"; } } leaf pool { junos:must "(!(".. group"))"; junos:must-message "only one of pool or group can be specified"; type string { length "1 .. 64"; } } leaf-list exclude-v6pools { junos:must "(".. group")"; junos:must-message "exclude-v6pools can be configured only if group is configured"; type string { length "1 .. 64"; } ordered-by user; description "Names of pool to exclude"; } } // container inet6-pool container dhcpv4-proxy-client-profile { junos:must "(".. dhcp-proxy-client")"; junos:must-message "dhcpv4-proxy-client-profile can only be configured if address-assignment option is dhcp-proxy-client"; presence "enable dhcpv4-proxy-client-profile"; description "DHCPv4 proxy client profile for this APN"; uses apply-advanced; leaf logical-system { type string { junos:posix-pattern "^[a-zA-Z0-9_-]{1,63}$"; junos:pattern-message "Logical-system name is a string consisting of up to 63 letters, numbers, dashes and underscores"; } default "default"; description "Logical system where this DHCP proxy client profile is defined. If this option is not specified, default logical-system will be used"; } leaf routing-instance { type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } default "default"; description "Routing-instance where this DHCP proxy client profile is defined. If this option is not specified, default routing-instance will be used"; } leaf profile-name { type string { length "1 .. 63"; } description "Name of DHCP proxy client profile"; } leaf pool-name { type string { length "1 .. 63"; } description "Name of the pool to be sent to DHCP server. It is optional"; } } // container dhcpv4-proxy-client-profile container dhcpv6-proxy-client-profile { junos:must "(".. dhcp-proxy-client")"; junos:must-message "dhcpv6-proxy-client-profile can only be configured if address-assignment option is dhcp-proxy-client"; presence "enable dhcpv6-proxy-client-profile"; description "DHCPv6 proxy client profile for this APN"; uses apply-advanced; leaf logical-system { type string { junos:posix-pattern "^[a-zA-Z0-9_-]{1,63}$"; junos:pattern-message "Logical-system name is a string consisting of up to 63 letters, numbers, dashes and underscores"; } default "default"; description "Logical system where this DHCP proxy client profile is defined. If this option is not specified, default logical-system will be used"; } leaf routing-instance { type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } default "default"; description "Routing-instance where this DHCP proxy client profile is defined. If this option is not specified, default routing-instance will be used"; } leaf profile-name { type string { length "1 .. 63"; } description "Name of DHCP proxy client profile"; } leaf pool-name { type string { length "1 .. 63"; } description "Name of the pool to be sent to DHCP server. It is optional"; } } // container dhcpv6-proxy-client-profile container allow-static-ip-address { presence "enable allow-static-ip-address"; description "Allow user equipment provided static address"; uses apply-advanced; leaf no-aaa-verify { type empty; description "Do not verify the address provided by user equipment through AAA"; } } // container allow-static-ip-address } // container address-assignment leaf session-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 720"; } } units "hours"; default "0"; description "Session timeout value"; } leaf idle-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 300"; } } units "minutes"; default "0"; description "Idle timeout value"; } leaf idle-timeout-direction { type enumeration { enum "uplink" { value 0; description "Enable idle timeout for data traffic flowing in uplink only"; } enum "both" { value 1; description "Enable idle timeout for data traffic flowing in both directions"; } } description "Specific idle timeout direction"; } leaf restriction-value { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4"; } } default "0"; description "Restriction value"; } leaf aaa-profile { junos:must "("unified-edge aaa mobile-profiles $$")"; junos:must-message "referenced AAA name must be defined"; type string { length "1 .. 32"; } description "Specify AAA profile for Authorization and Accounting"; } container user-options { description "Specify user options"; uses apply-advanced; choice user-name-choice { leaf user-name { type string { junos:posix-pattern "^[A-Za-z.0-9_@-]{1,63}$"; junos:pattern-message "Must be in the form user or user@foo.com consisting up to 63 letters, numbers, periods underscores and dashes"; } description "Default user name for user authentication"; } leaf use-msisdn { type empty; description "Use msisdn for user authentication"; } leaf use-imsi { type empty; description "Use imsi for user authentication"; } leaf use-apnname { type empty; description "Use APN name for user authentication"; } } // choice user-name-choice leaf password { type jt:unreadable; description "Default user password for user authentication"; } leaf override-pco { junos:must "(((".. user-name" || (".. use-imsi" || (".. use-msisdn" || ".. use-apnname"))) && ".. password"))"; junos:must-message "Overriding PCO is only possible if default username and password is set"; type empty; description "Override the username and password received in PCO"; } } // container user-options container charging { description "Default charging profiles"; uses apply-advanced; leaf default-profile { junos:must "(".. .. .. .. .. charging charging-profiles $$")"; junos:must-message "Charging profile must be defined"; type string; description "Default charging profile for the APN"; } leaf home-profile { junos:must "(".. .. .. .. .. charging charging-profiles $$")"; junos:must-message "Charging profile must be defined"; type string; description "Default home profile for the APN"; } leaf roamer-profile { junos:must "(".. .. .. .. .. charging charging-profiles $$")"; junos:must-message "Charging profile must be defined"; type string; description "Default roamer profile for the APN"; } leaf visitor-profile { junos:must "(".. .. .. .. .. charging charging-profiles $$")"; junos:must-message "Charging profile must be defined"; type string; description "Default visitor profile for the APN"; } leaf-list profile-selection-order { type enumeration { enum "radius" { value 0; description "Select charging profile sent by RADIUS"; } enum "static" { value 1; description "Select charging profile locally configured"; } enum "serving" { value 2; description "Select charging profile sent by SGSN or SGW"; } } ordered-by user; description "Default charging profile selection order"; } } // container charging container dns-server { presence "enable dns-server"; description "Specify DNS servers "; uses apply-advanced; leaf primary-v4 { type jt:ipv4addr; description "Primary IPv4 DNS server address"; } leaf secondary-v4 { type jt:ipv4addr; description "Secondary IPv4 DNS server address"; } leaf primary-v6 { type jt:ipv6addr; description "Primary IPv6 DNS server address"; } leaf secondary-v6 { type jt:ipv6addr; description "Secondary IPv6 DNS server address"; } } // container dns-server container nbns-server { presence "enable nbns-server"; description "Specify NBNS servers "; uses apply-advanced; leaf primary-v4 { type jt:ipv4addr; description "Primary IPv4 NBNS server address"; } leaf secondary-v4 { type jt:ipv4addr; description "Secondary IPv4 NBNS server address"; } } // container nbns-server list p-cscf { key "name"; max-elements 4; ordered-by user; description "Specify IPv4 or IPv6 P-CSCF server"; leaf name { type jt:ipaddr; description "IPv4 or IPv6 P-CSCF server address"; } uses apply-advanced; } // list p-cscf container selection-mode { presence "enable selection-mode"; description "Specify APN access options"; uses apply-advanced; leaf no-subscribed { type empty; description "Reject subscribed verified Users"; } leaf from-ms { type empty; description "Admit MS provided APN, subscription not verified"; } leaf from-sgsn { type empty; description "Admit Network provided APN, subscription not verified"; } } // container selection-mode leaf service-selection-profile { junos:must "(".. .. .. .. service-selection-profiles $$")"; junos:must-message "Referenced service selection profile must be configured"; type string { length "1 .. 100"; } description "Service selection profile for this APN"; } container network-behind-mobile { description "Specify IMSI nbm-address "; uses apply-advanced; list imsi { key "name"; ordered-by user; description "Prefixes for a given IMSI"; leaf name { type string { junos:posix-pattern "^[0-9]*$"; length "1 .. 15"; } description "IMSI"; } uses apply-advanced; leaf-list prefix-v4 { type jt:ipv4prefix; ordered-by user; description "IPv4 Prefix Address"; } leaf-list prefix-v6 { type jt:ipv6prefix; ordered-by user; description "IPv6 Prefix Address"; } } // list imsi } // container network-behind-mobile leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } container call-rate-statistics { presence "enable call-rate-statistics"; description "Call-rate-statistics options"; uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5 .. 120"; } } units "minutes"; default "60"; description "Time interval in minutes"; } leaf history { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 20"; } } default "1"; description "Number of intervals"; } } // container call-rate-statistics leaf pcef-profile { junos:must "(".. .. .. .. .. .. pcef profiles $$")"; junos:must-message "Referenced PCEF profile must be defined"; type string { length "1 .. 63"; } description "PCEF profile for the apn"; } container verify-source-address { presence "enable verify-source-address"; description "UE address verification - default is enabled"; uses apply-advanced; leaf disable { type empty; description "Disable UE address verification"; } } // container verify-source-address container inter-mobile-traffic { description "Inter mobile traffic redirect options"; uses apply-advanced; container redirect { presence "enable redirect"; description "Redirect options"; uses apply-advanced; leaf redirect-ip { junos:must "(!(".. .. deny"))"; junos:must-message "redirect is not allowed when deny is present"; type jt:ipv4addr; description "Redirect destination address"; } choice instance { leaf routing-instance { junos:must "("routing-instances $$")"; junos:must-message "referenced routing instance must be defined"; type union { type string { pattern "default"; } type string { junos:posix-pattern "!^((__.*__)|(all)|(.*[ ].*)|("")|(.{129,}))$"; junos:pattern-message "Must be a non-reserved string of 128 characters or less with no spaces."; } } description "Routing instance used for redirect"; } } // choice instance } // container redirect leaf deny { junos:must "(!(".. redirect"))"; junos:must-message "deny is not allowed when redirect is present"; type empty; description "Do not allow inter mobile traffic"; } } // container inter-mobile-traffic } // grouping ggsn-pgw-apn grouping gtpp-peer { leaf name { type string; description "GTPP CGF name"; } uses apply-advanced; leaf destination-ipv4-address { type jt:ipv4addr; description "CGF Server IP address"; } container source-interface { description "Source interface from which GTPP packets will be sent"; leaf interface-name { junos:must "("interfaces $$")"; junos:must-message "Interface must be defined"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf ipv4-address { type jt:ipv4addr; description "Source IPv4 address to be used"; } } // container source-interface leaf destination-port { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65535"; } } description "Destination port number of the CGF Server"; } leaf transport-protocol { type enumeration { enum "udp" { value 0; description "GTPP over udp"; } enum "tcp" { value 1; description "GTPP over tcp"; } } description "Default Transport protocol(udp/tcp) used"; } leaf version { type enumeration { enum "v0" { value 0; description "GTPP version V0"; } enum "v1" { value 1; description "GTPP version V1"; } enum "v2" { value 2; description "GTPP version V2"; } } description "GTPP version V0|V1|V2"; } leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "60 .. 255"; } } units "seconds"; default "60"; description "GTPP echo-interval in seconds"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } default "3"; description "Number of retries of GTPP messages upon timeout"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } units "seconds"; default "5"; description "Response timeout value for GTPP request message"; } leaf header-type { type enumeration { enum "short" { value 0; description "GTPP short header"; } enum "long" { value 1; description "GTPP long (20-byte) header"; } } description "GTPP protocol header type short|long"; } leaf pending-queue-size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4096"; } } default "1024"; description "Maximum number of DRT messages awaiting an ack"; } leaf down-detect-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 255"; } } units "seconds"; default "10"; description "Time (in sec) to wait before declaring a CGF as Down"; } leaf reconnect-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "60 .. 255"; } } units "seconds"; default "60"; description "Time (in sec) after which connection to the CGF server should be retried"; } leaf no-path-management { junos:must "(!(".. echo-interval"))"; junos:must-message "no-path-management option can not be used with echo-interval"; type empty; description "Disables path management"; } } // grouping gtpp-peer grouping juniper-cdr-profiles { description "CDR profiles"; leaf name { type string { length "1 .. 128"; } description "CDR profile name"; } uses apply-advanced; leaf description { type string; description "Text description of this profile"; } leaf enable-reduced-partial-cdrs { type empty; description "Enable reduced partial CDR's"; } leaf report-requested-apn { type empty; description "Report requested/virtual APN in CDR's"; } container exclude-attributes { description "Specify excluded IE options in CDRs"; uses apply-advanced; leaf apn-ni { type empty; description "Exclude APN network identifier IE in the CDR"; } leaf apn-selection-mode { type empty; description "Exclude APN selection mode IE in the CDR"; } leaf cc-selection-mode { type empty; description "Exclude charging characteristic selection mode IE in the CDR"; } leaf dynamic-address { type empty; description "Exclude dynamic address IE in the CDR"; } leaf pgw-plmn-identifier { type empty; description "Exclude PGW PLMN identifier IE in the CDR"; } leaf list-of-traffic-volumes { type empty; description "Exclude list of traffic volumes in the CDR"; } leaf list-of-service-data { type empty; description "Exclude list of service data in the CDR"; } leaf lrsn { type empty; description "Exclude local record sequece number IE in the CDR"; } leaf ms-time-zone { type empty; description "Exclude MS time zone IE in the CDR"; } leaf network-initiation { type empty; description "Exclude network initiation flag in the CDR"; } leaf node-id { type empty; description "Exclude node ID IE in the CDR"; } leaf pdn-connection-id { type empty; description "Exclude PDN connection ID IE in the CDR"; } leaf pdppdn-type { type empty; description "Exclude PDP or PDN type IE in the CDR"; } leaf rat-type { type empty; description "Exclude RAT type IE in the CDR"; } leaf record-sequence-number { type empty; description "Exclude record sequence number IE in the CDR"; } leaf served-imeisv { type empty; description "Exclude served IMEI IE in the CDR"; } leaf served-msisdn { type empty; description "Exclude served MSISDN IE in the CDR"; } leaf served-pdppdn-address { type empty; description "Exclude served PDP context or IP CAN bearer address IE in the CDR"; } leaf serving-node-plmn-identifier { type empty; description "Exclude serving node PLMN identifier IE in the CDR"; } leaf start-time { type empty; description "Exclude start time IE in the CDR"; } leaf stop-time { type empty; description "Exclude stop time IE in the CDR"; } leaf user-location-information { type empty; description "Exclude user location IE in the CDR"; } leaf sgw-change { type empty; description "S-GW specific: Exclude S-GW change IE in the CDR"; } leaf pgw-address-used { type empty; description "S-GW specific: Exclude P-GW address used IE in the CDR"; } leaf ps-furnish-info { type empty; description "Exclude PS Furnish charging info "; } leaf served-pdp-address-extension { type empty; description "Exclude served pdp pdn address extension "; } } // container exclude-attributes leaf node-id { type enumeration { enum "hostname" { value 0; description "Use host name"; } enum "hostname-spic" { value 1; description "Use host name and SPIC id"; } enum "ipaddress-spic" { value 2; description "Use IP address and SPIC id "; } } default "ipaddress-spic"; description "Default node identifier"; } } // grouping juniper-cdr-profiles grouping juniper-charged-configuraton { description "Local persistent storage configuration"; uses apply-advanced; container file-age { presence "enable file-age"; description "Configures file age"; leaf age { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "20 .. 7200"; } } units "minutes"; default "120"; description "File age"; } leaf disable { type empty; description "Disable file age trigger"; } } // container file-age container file-size { presence "enable file-size"; description "Configures file size"; leaf size { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1024"; } } units "megabytes"; default "10"; description "File size"; } leaf disable { type empty; description "Disable file size trigger"; } } // container file-size leaf cdrs-per-file { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5000 .. 1000000"; } } description "Number of CDRs per file"; } leaf user-name { type string { length "1 .. 32"; } description "User authorized to access the files"; } leaf disable-replication { type empty; description "Disable replication of CDR log files to standby RE"; } leaf world-readable { type empty; description "CDR log files can be accessed by all users"; } leaf file-format { type enumeration { enum "3gpp" { value 0; description "File data will be stored in 3gpp 32 297 format"; } enum "raw-asn" { value 1; description "File data will be stored in raw ASN1 format"; } } default "3gpp"; description "CDR file format"; } leaf file-name-private-extension { type string { length "1 .. 16"; } description "File name private extension"; } leaf file-creation-policy { type enumeration { enum "shared-file" { value 0; description "File is shared across all SP nodes for a charging group"; } enum "unique-file" { value 1; description "Unique file is created for charging group per SP node"; } } default "shared-file"; description "File creation policy (shared/unique)"; } container disk-space-policy { presence "enable disk-space-policy"; description "Policy on what should be done when disk runs out of space"; uses apply-advanced; container water-mark-level1 { presence "enable water-mark-level1"; description "Water mark level1 percentage and notification"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 100"; } } default "70"; description "The water mark level1 percentage, a value of 0 will disable it"; } leaf notification-level { type enumeration { enum "snmp-alarm" { value 0; description "Generate an snmp alaram"; } enum "syslog" { value 1; description "Generate syslog"; } enum "both" { value 2; description "Generate both syslog and snmp-alarm"; } } default "syslog"; description "Notification when water-mark-level is reached"; } } // container water-mark-level1 container water-mark-level2 { presence "enable water-mark-level2"; description "Water mark level2 percentage and notification"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 100"; } } default "80"; description "The water mark level2 percentage, a value of 0 will disable it"; } leaf notification-level { type enumeration { enum "snmp-alarm" { value 0; description "Generate an snmp alaram"; } enum "syslog" { value 1; description "Generate syslog"; } enum "both" { value 2; description "Generate both syslog and snmp-alarm"; } } default "syslog"; description "Notification when water-mark-leve2 is reached"; } } // container water-mark-level2 container water-mark-level3 { presence "enable water-mark-level3"; description "Water mark level3 percentage and notification"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 100"; } } default "90"; description "The water mark level3 percentage"; } leaf notification-level { type enumeration { enum "snmp-alarm" { value 0; description "Generate an snmp alaram"; } enum "syslog" { value 1; description "Generate syslog"; } enum "both" { value 2; description "Generate both syslog and snmp-alarm"; } } default "syslog"; description "Notification when water-mark-level3 is reached"; } } // container water-mark-level3 } // container disk-space-policy container traceoptions { description "Charged persistent local-storage CDR trace options"; uses charged_traceoptions_type; } // container traceoptions } // grouping juniper-charged-configuraton grouping charged_traceoptions_type { description "Trace options for charged persistent local-storage for CDRs"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice leaf match { type jt:regular-expression; description "Regular expression for lines to be logged"; } } // container file leaf level { type enumeration { enum "critical" { value 0; description "Match critical error conditions"; } enum "error" { value 1; description "Match error conditions"; } enum "warning" { value 2; description "Match warning messages"; } enum "notice" { value 3; description "Match conditions that should be handled specially"; } enum "info" { value 4; description "Match informational messages"; } enum "verbose" { value 5; description "Match verbose messages"; } enum "all" { value 6; description "Match all levels"; } } default "error"; description "Level of debugging output"; } list flag { key "name"; ordered-by user; description "Charged operations to include in debugging trace"; leaf name { type enumeration { enum "general" { value 0; description "Charged miscellaneous operations"; } enum "mirror" { value 1; description "Charged mirroring operations"; } enum "connection" { value 2; description "Charged connection establishment with peers"; } enum "file-operations" { value 3; description "Charged file open/write/close operations"; } enum "journaling" { value 4; description "Charged file journaling operations"; } enum "all" { value 5; description "All charged operations"; } } } } // list flag } // grouping charged_traceoptions_type grouping juniper-charging-profiles { description "Charging profiles"; leaf name { type string { length "1 .. 128"; } description "Charging profile name"; } uses apply-advanced; leaf description { type string { junos:posix-pattern "^.{1,255}$"; junos:pattern-message "Must be a string of 255 characters or less"; } description "Text description of this profile"; } leaf profile-id { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65534"; } } description "Profile id that is matched against GTP charging characteristic or AAA charging profile number (applicable only in the case of ggsn-pgw)"; } leaf default-service-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4294967294"; } } description "Default service ID to be used for charging, applicable for GGSN/P-GW only"; } leaf default-rating-group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4294967294"; } } description "Default rating group to be used for charging, applicable for GGSN/P-GW only"; } leaf default-l7-rating-group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 4294967294"; } } description "Default rating group to be used for L7 charging"; } container transport-profile { description "Transport profile referred by this charging profile"; uses apply-advanced; leaf transport-profile-name { junos:must "(".. .. .. .. transport-profiles $$")"; junos:must-message "Transport profile has not been defined"; type string { length "1 .. 128"; } description "Provide the transport profile name"; } } // container transport-profile container cdr-profile { description "Transport profile referred by this charging profile"; uses apply-advanced; leaf cdr-profile-name { junos:must "(".. .. .. .. cdr-profiles $$")"; junos:must-message "CDR profile should be defined before it can be used"; type string { length "1 .. 128"; } description "Provide the CDR profile name"; } } // container cdr-profile list trigger-profile { key "name"; description "Trigger profile referred by this charging profile"; leaf name { junos:must "(".. .. .. .. trigger-profiles $$")"; junos:must-message "Trigger profile should be defined before it can be used"; type string { length "1 .. 128"; } description "Set the trigger profile name"; } uses apply-advanced; leaf-list rating-group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4294967294"; } } ordered-by user; description "Input rating-group identifier"; } } // list trigger-profile leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } } // grouping juniper-charging-profiles grouping juniper-transport-profiles { description "Transport profiles"; leaf name { type string { length "1 .. 128"; } description "Transport profile name"; } uses apply-advanced; leaf description { type string; description "Text description of this profile"; } container online { presence "enable online"; description "Online charging configuration in transport profile"; uses apply-advanced; leaf tx-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 300"; } } default "5"; description "Timeout value waiting for response"; } leaf session-failover-not-supported { type empty; description "Disable online charging sessions failover to alternate server"; } leaf diameter-profile { junos:must "("unified-edge diameter-profiles gy-profile $$")"; junos:must-message "Referenced DCCA profile must be defined"; type string; description "Gy diameter profile name"; } leaf service-context-id { type string { length "1 .. 100"; } description "Service Context ID . If not configured, default service-context-id is 9.32251@3gpp.org"; } leaf charging-function-name { type string { length "1 .. 256"; } description "Charging Function Name corresponds to PCRF referred online charging function name "; } leaf single-mscc { type empty; description "Include only one MSCC AVP in CCR message"; } leaf no-mscc-in-ccrt { type empty; description "Do not include MSCC AVP in CCR-T message"; } leaf no-initiate-session-on-activation { type empty; description "Do not initiate diameter session on activation"; } leaf quota-request-on-activation { type empty; description "Request quota only on activation"; } leaf all-rgs-on-termination { type empty; description "Report all (active/non-active) RGs on termination to OCS"; } } // container online container offline { presence "enable offline"; description "Offline charging in the transport profile"; uses apply-advanced; container charging-gateways { presence "enable charging-gateways"; description "Charging gateway group information"; uses apply-advanced; leaf cdr-release { type enumeration { enum "r99" { value 0; description "CDR release R99"; } enum "r7" { value 1; description "CDR release R7"; } enum "r8" { value 2; description "CDR release R8. For S-GW, R8 should only be configured"; } enum "r9" { value 3; description "CDR release R9. "; } } description "CDR Release type"; } container peer-order { presence "enable peer-order"; description "Charging servers order"; uses apply-advanced; list peer { key "name"; max-elements 3; ordered-by user; description "Charging server name"; leaf name { junos:must "(".. .. .. .. .. .. .. gtpp peer $$")"; junos:must-message "GTPP Peer should be defined"; type string { length "1 .. 128"; } description "Name of the Charging Gateway Server"; } uses apply-advanced; } // list peer } // container peer-order container persistent-storage-order { presence "enable persistent-storage-order"; description "Offline charging persistent storage order"; uses apply-advanced; leaf local-storage { type empty; description "Local persistant storage"; } } // container persistent-storage-order leaf switch-back-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "0 .. 300"; } } units "seconds"; default "10"; description "Switch back time interval value"; } leaf cdr-aggregation-limit { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 16"; } } default "5"; description "The number of CDRs in one DRT message, default value is 5"; } leaf mtu { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "300 .. 8000"; } } default "1500"; description "The MTU of the DRT message"; } } // container charging-gateways leaf charging-function-name { type string { length "1 .. 256"; } description "Charging Function Name corresponds to PCRF referred offline charging function name "; } leaf container-limit { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 15"; } } default "5"; description "The maximum number of container in each CDR"; } leaf sgsn-mme-change-limit { junos:must "(!("unified-edge gateways ggsn-pgw ${ggsn-pgw} charging trigger-profiles ${trigger-profiles} offline exclude sgsn-sgw-change"))"; junos:must-message "Can not specify sgsn-mme-change-limit when sgsn-sgw-change is excluded in trigger profile"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } default "4"; description "Number of SGSN or SGW changes before CDR is closed"; } } // container offline leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } } // grouping juniper-transport-profiles grouping juniper-trigger-profiles { description "Trigger profiles"; leaf name { type string { length "1 .. 128"; } description "Trigger profile name"; } uses apply-advanced; leaf description { type string; description "Text description of this profile"; } list tariff-time-list { key "name"; max-elements 24; description "Input a list of tariff time changes within a day in 15 minute increments (time in sec will be ignored)"; leaf name { type jt:time-of-day; description "Local time (hh:mm) in 15 minute increments"; } uses apply-advanced; } // list tariff-time-list container offline { presence "enable offline"; description "Offline charging in the trigger profile"; uses apply-advanced; container volume-limit { presence "enable volume-limit"; description "Specify volume limit trigger for container closing"; leaf vlimit { type string; description "Volume limit in bytes"; } leaf direction { type enumeration { enum "uplink" { value 0; description "Enable volume trigger for data traffic flowing in uplink direction only"; } enum "both" { value 1; description "Enable volume trigger for data traffic flowing in both directions"; } } default "both"; description "Specific volume trigger traffic direction"; } } // container volume-limit leaf time-limit { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "600 .. 65535"; } } units "seconds"; description "The time-limit for container closure"; } container exclude { description "Specify excluded signal triggers"; uses apply-advanced; leaf plmn-change { type empty; description "No charging data updates on PLMN change"; } leaf qos-change { type empty; description "No charging data updates on QOS change"; } leaf rat-change { type empty; description "No charging data updates on RAT change"; } leaf sgsn-sgw-change { type empty; description "No charging data updates on SGW change"; } leaf user-location-change { type empty; description "No charging data updates on user location information change"; } leaf ms-timezone-change { type empty; description "No charging data updates on MS-timezone change"; } leaf dcca-events { type empty; description "No CDR generation on dcca-events like quota-exhaustion, threshold, etc "; } } // container exclude } // container offline leaf charging-method { type enumeration { enum "none" { value 0; description "Use no charging"; } enum "online" { value 1; description "Use online charging method"; } enum "offline" { value 2; description "Use offline charging method"; } enum "both" { value 3; description "Use online and offline charging method"; } } default "offline"; description "Default charging method if not provided by PCEF"; } container online { presence "enable online"; uses apply-advanced; container reporting-level { presence "enable reporting-level"; description "Default Reporting level for offline and online usage report"; uses apply-advanced; choice rl-value { leaf rating-group { type empty; description "Rating group level reporting"; } leaf service-identifier { type empty; description "Service identifier level reporting"; } } // choice rl-value leaf override { type empty; description "Override reporting level provided by PCEF"; } } // container reporting-level leaf measurement-method { type enumeration { enum "none" { value 0; description "No measurement method to be used by default"; } enum "volume" { value 1; description "Use volume based measurement method"; } enum "time" { value 2; description "Use time based measurement method"; } enum "volume-and-time" { value 3; description "Use volume and time based measurement method"; } } default "volume-and-time"; description "Default measurement method to use if not provided by PCEF"; } container quota-threshold { presence "enable quota-threshold"; description "Calculate quota threshold value as a percentage of total quota allocated"; uses apply-advanced; leaf threshold { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5 .. 95"; } } units "percent"; } leaf override { type empty; description "Override threshold value provided by OCS"; } } // container quota-threshold leaf quota-validity-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "30 .. 864000"; } } units "seconds"; description "Configure quota validity time if one is not provided by OCS"; } leaf quota-holding-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 864000"; } } units "seconds"; description "Configure quota holding time if one is not provided by OCS"; } container grant-quota { presence "enable grant-quota"; description "Configure grace-quota to be allocated in case of failure"; uses apply-advanced; leaf cc-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "300 .. 4294967294"; } } units "seconds"; description "Configure time quota"; } leaf cc-octet-uplink { type union { type string { pattern "<.*>|$.*"; } type uint64 { range "1048576 .. 18446744073709551614"; } } units "bytes"; description "Configure input volume quota"; } leaf cc-octet-downlink { type union { type string { pattern "<.*>|$.*"; } type uint64 { range "1048576 .. 18446744073709551614"; } } units "bytes"; description "Configure output volume quota"; } leaf cc-octet-both { type union { type string { pattern "<.*>|$.*"; } type uint64 { range "1048576 .. 18446744073709551614"; } } units "bytes"; description "Configure volume quota"; } } // container grant-quota container requested-service-unit { presence "enable requested-service-unit"; description "Determine the requested service unit AVP behavior"; uses apply-advanced; leaf include-quota-holding-time { type empty; description "Include RSU when reporting reason is quota holding time"; } leaf cc-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "300 .. 4294967294"; } } units "seconds"; description "Configure the time quota requested in CCR"; } leaf cc-octet-uplink { type union { type string { pattern "<.*>|$.*"; } type uint64 { range "1048576 .. 18446744073709551614"; } } units "bytes"; description "Configure input volume quota"; } leaf cc-octet-downlink { type union { type string { pattern "<.*>|$.*"; } type uint64 { range "1048576 .. 18446744073709551614"; } } units "bytes"; description "Configure output volume quota"; } leaf cc-octet-both { type union { type string { pattern "<.*>|$.*"; } type uint64 { range "1048576 .. 18446744073709551614"; } } units "bytes"; description "Configure volume quota"; } } // container requested-service-unit container cc-failure-handling { description "Configure MobileNext handling during credit-control failure"; uses apply-advanced; leaf block-traffic-pending-reauth-no-quota { type empty; description "Block traffic for a RG pending re-auth during quota exhaustion"; } leaf override { type empty; description "Overrides charging failure-method provided by OCS"; } container result-code-based-action { description "Perform action based on diamter result-code AVP"; uses apply-advanced; container authorization-rejected { description "Diameter-authorization-rejected - default Terminate"; uses apply-advanced; choice cc-action { container blacklist { presence "enable blacklist"; description "Put rating-group in blacklist"; leaf retry-timer { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "120 .. 3866040"; } } units "seconds"; description "Time limit to retry with OCS once RG is in blacklist"; } } // container blacklist } // choice cc-action } // container authorization-rejected container credit-control-not-applicable { description "Diameter-credit-control-not-applicable - default disable online charging"; uses apply-advanced; choice cc-action { container convert-to-offline { presence "enable convert-to-offline"; description "Convert to offline in case of failure"; uses apply-advanced; leaf grant-grace-quota { junos:must "(".. .. .. .. .. grant-quota")"; junos:must-message "Must configure grant-quota under online charging"; type empty; description "Use offline charging till grace quota period"; } } // container convert-to-offline } // choice cc-action } // container credit-control-not-applicable container end-user-service-denied { description "Diameter-end-user-service-denied - default terminate"; uses apply-advanced; choice cc-action { leaf disable-online-charging { type empty; description "Disable online charging. Continue to use offline charging if enabled otherwise no charging is applied"; } container convert-to-offline { presence "enable convert-to-offline"; description "Convert to offline in case of failure"; uses apply-advanced; leaf grant-grace-quota { junos:must "(".. .. .. .. .. grant-quota")"; junos:must-message "Must configure grant-quota under online charging"; type empty; description "Use offline charging till grace quota period"; } } // container convert-to-offline } // choice cc-action } // container end-user-service-denied container user-unknown { description "User-unknown - default terminate"; uses apply-advanced; choice cc-action { leaf disable-online-charging { type empty; description "Disable online charging. Continue to use offline charging if enabled otherwise no charging is applied"; } container convert-to-offline { presence "enable convert-to-offline"; description "Convert to offline in case of failure"; uses apply-advanced; leaf grant-grace-quota { junos:must "(".. .. .. .. .. grant-quota")"; junos:must-message "Must configure grant-quota under online charging"; type empty; description "Use offline charging till grace quota period"; } } // container convert-to-offline } // choice cc-action } // container user-unknown container credit-limit-reached { description "Diameter-credit-limit-reached - default terminate"; uses apply-advanced; choice cc-action { container blacklist { presence "enable blacklist"; description "Put rating-group in blacklist"; leaf retry-timer { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "120 .. 3866040"; } } units "seconds"; description "Time limit to retry with OCS once RG is in blacklist"; } } // container blacklist } // choice cc-action } // container credit-limit-reached } // container result-code-based-action container initial-request { presence "enable initial-request"; description "Failure action for initial cc request - default terminate"; uses apply-advanced; choice cc-action { leaf grant-grace-quota { junos:must "(".. .. .. grant-quota")"; junos:must-message "Must configure grant-quota under online charging"; type empty; description "Grant grace quota and continue online session"; } leaf disable-online-charging { type empty; description "Disable online charging. Continue to use offline charging if enabled otherwise no charging is applied"; } container convert-to-offline { presence "enable convert-to-offline"; description "Convert to offline in case of failure"; uses apply-advanced; leaf grant-grace-quota { junos:must "(".. .. .. .. grant-quota")"; junos:must-message "Must configure grant-quota under online charging"; type empty; description "Use offline charging till grace quota period"; } } // container convert-to-offline } // choice cc-action } // container initial-request container update-request { presence "enable update-request"; description "Failure action for update cc request - default terminate"; uses apply-advanced; choice cc-action { leaf grant-grace-quota { junos:must "(".. .. .. grant-quota")"; junos:must-message "Must configure grant-quota under online charging"; type empty; description "Grant grace quota and continue online session"; } leaf disable-online-charging { type empty; description "Disable online charging. Continue to use offline charging if enabled otherwise no charging is applied"; } container convert-to-offline { presence "enable convert-to-offline"; description "Convert to offline in case of failure"; uses apply-advanced; leaf grant-grace-quota { junos:must "(".. .. .. .. grant-quota")"; junos:must-message "Must configure grant-quota under online charging"; type empty; description "Use offline charging till grace quota period"; } } // container convert-to-offline } // choice cc-action } // container update-request } // container cc-failure-handling } // container online } // grouping juniper-trigger-profiles grouping juniper-unified-edge-cos-options { uses apply-advanced; list classifier-profiles { key "name"; max-elements 8001; ordered-by user; description "Classifier tables for mobile subscribers (UMTS/EPS)"; leaf name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Classification table name"; } uses apply-advanced; leaf description { type string; description "Text description of classifier profile"; } list qos-class-identifier { key "name"; ordered-by user; description "QCI mapping to forwarding class and loss priority"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 9"; } } description "Qci value"; } leaf forwarding-class { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Forwarding class"; } leaf loss-priority { type enumeration { enum "low" { value 0; description "Loss priority low"; } enum "high" { value 1; description "Loss priority high"; } } description "Loss priority value"; } } // list qos-class-identifier } // list classifier-profiles list gbr-bandwidth-pools { key "name"; max-elements 8001; ordered-by user; description "GBR bandwith pools configuration"; leaf name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "GBR Bandwidth pool name"; } uses apply-advanced; leaf maximum-bandwidth { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "50000 .. 500000"; } } units "mega-bits per second"; description "Bandwidth for pool"; } leaf downgrade-gtp-v1-gbr-bearers { type empty; description "Downgrade GTPv1 GBR bearer traffic class to background traffic class"; } } // list gbr-bandwidth-pools list resource-threshold-profiles { key "name"; max-elements 8001; ordered-by user; description "Resource threshold profiles"; leaf name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Resource threshold profile name"; } uses apply-advanced; leaf description { type string; description "Text description of resource threshold profile"; } container bearers-load { description "Number of bearers load configurations"; uses apply-advanced; container low { description "Low threshold configuration"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 100"; } } units "Percentage"; description "Low threshold"; } leaf priority-level { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 15"; } } default "10"; description "Priority level - default 10"; } } // container low container high { description "High threshold configuration"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 100"; } } units "Percentage"; description "High threshold"; } leaf priority-level { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 15"; } } default "5"; description "Priority level - default 5"; } } // container high } // container bearers-load container memory { description "Memory load configurations"; uses apply-advanced; container low { description "Low threshold configuration"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 100"; } } units "Percentage"; description "Low threshold"; } leaf priority-level { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 15"; } } default "10"; description "Priority level - default 10"; } } // container low container high { description "High threshold configuration"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 100"; } } units "Percentage"; description "High threshold"; } leaf priority-level { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 15"; } } default "5"; description "Priority level - default 5"; } } // container high } // container memory container cpu { description "CPU load configurations"; uses apply-advanced; container low { description "Low threshold configuration"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 100"; } } units "Percentage"; description "Low threshold"; } leaf priority-level { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 15"; } } default "10"; description "Priority level - default 10"; } } // container low container high { description "High threshold configuration"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 100"; } } units "Percentage"; description "High threshold"; } leaf priority-level { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 15"; } } default "5"; description "Priority level - default 5"; } } // container high } // container cpu } // list resource-threshold-profiles list cos-policy-profiles { key "name"; max-elements 8001; ordered-by user; description "QoS policy profile"; leaf name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "QoS policy profile name"; } uses apply-advanced; leaf description { type string; description "Text description of cos policy"; } container default-bearer-qci { description "Default bearer qci value"; leaf qci-value { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "5 .. 9"; } } description "Default bearer qci value"; } leaf upgrade { type empty; description "Override qci value"; } leaf reject { type empty; description "Reject calls with numerially lower qci"; } } // container default-bearer-qci container allocation-retention-priority { description "ARP local policy"; leaf priority-value { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 15"; } } description "ARP policy configuration"; } leaf reject { type empty; description "Reject calls with higher priority value"; } } // container allocation-retention-priority container aggregated-qos-control { description "Aggregated qos control policy"; uses apply-advanced; container maximum-bit-rate-uplink { description "Maximum bit rate uplink"; leaf mbr-uplink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1000000"; } } units "kbps"; } leaf upgrade { type empty; description "Override maximum-bit-rate uplink value"; } leaf reject { type empty; description "Reject calls with higher uplink maximum-bit-rate"; } } // container maximum-bit-rate-uplink container maximum-bit-rate-downlink { description "Maximum bit rate downlink"; leaf mbr-downlink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 1000000"; } } units "kbps"; } leaf upgrade { type empty; description "Override maximum-bit-rate downlink value"; } leaf reject { type empty; description "Reject calls with higher downlink maximum-bit-rate"; } } // container maximum-bit-rate-downlink } // container aggregated-qos-control container pdp-qos-control { description "PDP qos control"; uses apply-advanced; container maximum-bit-rate-uplink { description "Maximum bit rate uplink"; leaf mbr-uplink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10480000"; } } units "kbps"; } leaf upgrade { type empty; description "Override maximum-bit-rate uplink value"; } leaf reject { type empty; description "Reject calls with higher uplink maximum-bit-rate"; } } // container maximum-bit-rate-uplink container maximum-bit-rate-downlink { description "Maximum bit rate downlink"; leaf mbr-downlink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10480000"; } } units "kbps"; } leaf upgrade { type empty; description "Override maximum-bit-rate downlink value"; } leaf reject { type empty; description "Reject calls with higher downlink maximum-bit-rate"; } } // container maximum-bit-rate-downlink container guaranteed-bit-rate-uplink { description "Guaranteed bit rate uplink"; leaf gbr-uplink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10480000"; } } units "kbps"; } leaf upgrade { type empty; description "Override guaranteed-bit-rate uplink value"; } leaf reject { type empty; description "Reject calls with higher uplink guaranteed-bit-rate"; } } // container guaranteed-bit-rate-uplink container guaranteed-bit-rate-downlink { description "Guaranteed bit rate downlink"; leaf gbr-downlink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10480000"; } } units "kbps"; } leaf upgrade { type empty; description "Override guaranteed-bit-rate downlink value"; } leaf reject { type empty; description "Reject calls with higher downlink guaranteed-bit-rate"; } } // container guaranteed-bit-rate-downlink list qci { key "name"; ordered-by user; description "PDP qos control per qci"; leaf name { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "5 .. 9"; } } } uses apply-advanced; container maximum-bit-rate-uplink { description "Maximum bit rate uplink"; leaf mbr-uplink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10480000"; } } units "kbps"; } leaf upgrade { type empty; description "Override maximum-bit-rate uplink value"; } leaf reject { type empty; description "Reject calls with higher uplink maximum-bit-rate"; } } // container maximum-bit-rate-uplink container maximum-bit-rate-downlink { description "Maximum bit rate downlink"; leaf mbr-downlink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10480000"; } } units "kbps"; } leaf upgrade { type empty; description "Override maximum-bit-rate downlink value"; } leaf reject { type empty; description "Reject calls with higher downlink maximum-bit-rate"; } } // container maximum-bit-rate-downlink } // list qci } // container pdp-qos-control container policer-action { description "Policer actions"; uses apply-advanced; container non-gbr-bearer { description "Policer actions for non gbr bearers"; uses apply-advanced; leaf violate-action { type enumeration { enum "set-loss-priority-high" { value 0; description "Violate action set loss priority high"; } enum "transmit" { value 1; description "Violate action transmit"; } } description "PDP policer violate action"; } } // container non-gbr-bearer container gbr-bearer { description "Policer actions for gbr bearers"; uses apply-advanced; leaf exceed-action { type enumeration { enum "drop" { value 0; description "Exceed action drop"; } enum "transmit" { value 1; description "Exceed action transmit"; } } description "PDP policer exceed action"; } leaf violate-action { type enumeration { enum "set-loss-priority-high" { value 0; description "Violate action set loss priority high"; } enum "transmit" { value 1; description "Violate action transmit"; } } description "PDP policer violate action"; } } // container gbr-bearer } // container policer-action } // list cos-policy-profiles } // grouping juniper-unified-edge-cos-options grouping macro-data-type { leaf name { type string; description "Keyword part of the keyword-value pair"; } leaf value { type string; description "Value part of the keyword-value pair"; } } // grouping macro-data-type grouping mobile-diameter-profiles { uses apply-advanced; list gy-profile { key "name"; ordered-by user; description "Diameter Gy application profile configuration"; uses mobile-diameter-profile-type-gy; } // list gy-profile list gx-profile { key "name"; ordered-by user; description "Diameter Gx application profile configuration"; uses mobile-diameter-profile-type-gx; } // list gx-profile } // grouping mobile-diameter-profiles grouping mobile-diameter-profile-type-gx { leaf name { type string { length "1 .. 63"; } description "Diameter profile name"; } uses apply-advanced; list targets { key "name"; ordered-by user; description "Mobile diameter target configurations"; uses mobile-diameter-target; } // list targets leaf request-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65535"; } } units "seconds"; description "Profile request timeout"; } container attributes { description "Diameter AVP attributes for Gx application"; uses mobile-diameter-gx-profile-attr-type; } // container attributes } // grouping mobile-diameter-profile-type-gx grouping mobile-diameter-gx-profile-attr-type { uses apply-advanced; container include { description "Specify AVP options to be included"; uses apply-advanced; leaf gx-capability-list { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Include Gx Capability list AVP"; } leaf rule-suggestion { type string { length "1 .. 63"; } description "Include Rule-suggestion AVP"; } leaf rai { type empty; description "Include RAI AVP"; } leaf qos-negotiation { type empty; description "Include QoS Negotiation AVP"; } leaf qos-upgrade { type empty; description "Include QoS Upgrade AVP"; } } // container include container exclude { description "Specify AVP options to be excluded"; uses apply-advanced; leaf packet-filter-information { type empty; description "Exclude Packet Filter Information AVP"; } leaf packet-filter-operation { type empty; description "Exclude Packet Filter Operation AVP"; } leaf rat-type { type empty; description "Exclude Rat-Type AVP"; } leaf default-eps-bearer-qos { type empty; description "Exclude Default EPS Bearer QOS AVP"; } leaf an-gw-address { type empty; description "Exclude AN-GW-Address AVP"; } leaf network-request-support { type empty; description "Exclude Network Request Support AVP"; } leaf event-trigger { type empty; description "Exclude Event Trigger AVP"; } leaf threegpp-rat-type { type empty; description "Exclude 3GPP-RAT-Type AVP"; } leaf offline { type empty; description "Exclude Offline AVP"; } leaf qos-negotiation { type empty; description "Exclude QoS Negotiation AVP"; } leaf qos-upgrade { type empty; description "Exclude QoS Upgrade AVP"; } } // container exclude } // grouping mobile-diameter-gx-profile-attr-type grouping mobile-diameter-profile-type-gy { leaf name { type string { length "1 .. 63"; } description "Diameter profile name"; } uses apply-advanced; list targets { key "name"; ordered-by user; description "Mobile diameter target configurations"; uses mobile-diameter-target; } // list targets leaf request-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65535"; } } units "seconds"; description "Profile request timeout"; } container attributes { description "Diameter AVP attributes for Gy application"; uses mobile-diameter-gy-profile-attr-type; } // container attributes } // grouping mobile-diameter-profile-type-gy grouping mobile-diameter-gy-profile-attr-type { uses apply-advanced; container include { description "Specify AVP options to be included"; uses apply-advanced; leaf cumulative-used-service-unit { type empty; description "Include cumulative-used-service-unit AVP"; } leaf credit-instance-id { type empty; description "Include credit-instance-id AVP"; } leaf service-start-timestamp { type empty; description "Include service-start-timestamp AVP"; } leaf mscc-qos-information { type empty; description "Include mscc-qos-information AVP"; } leaf framed-ip-address { type empty; description "Include framed ip address AVP"; } leaf framed-ipv6-prefix { type empty; description "Include framed IPV6 Prefix AVP"; } leaf gprs-negotiated-qos { type empty; description "Include GPRS negotiated QOS AVP"; } } // container include container exclude { description "Specify AVP options to be excluded"; uses apply-advanced; leaf ps-information { type empty; description "Exclude PS Information AVP. If excluded, all the 3GPP AVPs will be sent at command level "; } leaf username { type empty; description "Exclude Username AVP"; } leaf user-equipment-info { type empty; description "Exclude user equipment info AVP"; } leaf all-3gpp-avps { type empty; description "Exclude all 3GPP AVPs"; } leaf qos-information { type empty; description "Exclude QOS information AVP"; } leaf pdn-connection-id { type empty; description "Exclude PDN connection id AVP"; } leaf dynamic-address-flag { type empty; description "Exclude dynamic address flag AVP"; } leaf serving-node-type { type empty; description "Exclude serving node type AVP"; } leaf cc-selection-mode { type empty; description "Exclude charging characteristics selection mode AVP"; } leaf start-time { type empty; description "Exclude start time AVP"; } leaf stop-time { type empty; description "Exclude stop time AVP"; } leaf user-location-information { type empty; description "Exclude user location information AVP"; } } // container exclude } // grouping mobile-diameter-gy-profile-attr-type grouping mobile-diameter-target { description "Diameter target configuration"; leaf name { type string { length "1 .. 31"; } description "Diameter target name"; } uses apply-advanced; leaf destination-realm { type string { length "1 .. 255"; } description "Destination realm associated with this target"; } leaf destination-host { type string { length "1 .. 255"; } description "Destination host associated with this target"; } leaf priority { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 65535"; } } description "Target priority"; } leaf network-element { junos:must "("access diameter network-element $$")"; junos:must-message "Referenced DNE must be defined"; type string { length "1 .. 31"; } description "Specify the diameter network element for this target"; } } // grouping mobile-diameter-target grouping mobile-gateway-config-gtp { description "GTP configuration"; uses apply-advanced; leaf peer-history { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 1000"; } } default "100"; description "Maximum number of peer stats stored in history"; } container interface { description "Interface name used for all 3GPP interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } container control { description "Configure 3GPP GTP control plane options"; uses apply-advanced; container interface { description "Interface name used for all 3GPP control interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } leaf forwarding-class { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Classification of host traffic to forwarding engine"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "Number of retries of GTP messages upon timeout"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP request message"; } leaf dscp-code-point { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 63"; } } description "Static DSCP code point of egress host traffic"; } leaf no-response-cache { type empty; description "Disable GTP response cache"; } leaf response-cache-timeout { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "5 .. 20"; } } units "seconds"; default "15"; description "GTP response cache timeout interval"; } leaf no-piggyback-support { type empty; description "Disable GTPv2 piggyback support"; } } // container control container data { description "Configure 3GPP GTP data plane options"; uses apply-advanced; container interface { description "Interface name used for all 3GPP data interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf error-indication-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 20"; } } units "seconds"; default "2"; description "Error indication transmit interval per bearer "; } } // container data container gn { description "Configure 3GPP Gn interface"; uses apply-advanced; container interface { description "Interface name used"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } container control { description "Configure 3GPP control plane options"; uses apply-advanced; container interface { description "Interface name used for control interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } leaf forwarding-class { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Classification of host traffic to forwarding engine"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "Number of retries of GTP messages upon timeout"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP request message"; } leaf dscp-code-point { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 63"; } } description "Static DSCP code point of egress host traffic"; } } // container control container data { description "Configure 3GPP data plane options"; uses apply-advanced; container interface { description "Interface name used for data interface"; leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } } // container data } // container gn container gp { description "Configure 3GPP Gp interface"; uses apply-advanced; container interface { description "Interface name used"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } container control { description "Configure 3GPP control plane options"; uses apply-advanced; container interface { description "Interface name used for control interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } leaf forwarding-class { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Classification of host traffic to forwarding engine"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "Number of retries of GTP messages upon timeout"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP request message"; } leaf dscp-code-point { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 63"; } } description "Static DSCP code point of egress host traffic"; } } // container control container data { description "Configure 3GPP data plane options"; uses apply-advanced; container interface { description "Interface name used for data interface"; leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } } // container data } // container gp container s5 { description "Configure 3GPP S5 interface"; uses apply-advanced; container interface { description "Interface name used"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } container control { description "Configure 3GPP control plane options"; uses apply-advanced; container interface { description "Interface name used for control interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } leaf forwarding-class { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Classification of host traffic to forwarding engine"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "Number of retries of GTP messages upon timeout"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP request message"; } leaf dscp-code-point { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 63"; } } description "Static DSCP code point of egress host traffic"; } leaf support-16-bit-sequence { type empty; description "Enable 16 bit sequence number support"; } } // container control container data { description "Configure 3GPP data plane options"; uses apply-advanced; container interface { description "Interface name used for data interface"; leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } } // container data } // container s5 container s8 { description "Configure 3GPP S8 interface"; uses apply-advanced; container interface { description "Interface name used"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } container control { description "Configure 3GPP control plane options"; uses apply-advanced; container interface { description "Interface name used for control interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } leaf forwarding-class { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Classification of host traffic to forwarding engine"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "Number of retries of GTP messages upon timeout"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP request message"; } leaf dscp-code-point { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 63"; } } description "Static DSCP code point of egress host traffic"; } leaf support-16-bit-sequence { type empty; description "Enable 16 bit sequence number support"; } } // container control container data { description "Configure 3GPP data plane options"; uses apply-advanced; container interface { description "Interface name used for data interface"; leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } } // container data } // container s8 list peer-group { key "name"; ordered-by user; description "3GPP GTP peer group configuration"; leaf name { type string { length "1 .. 64"; } description "GTP peer group name"; } uses apply-advanced; leaf routing-instance { type string; description "Routing instance of peer group"; } leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } container control { description "3GPP GTP peer group control plane options"; uses apply-advanced; leaf support-16-bit-sequence { type empty; description "Enable 16 bit sequence number support"; } leaf no-piggyback-support { type empty; description "Disable GTPv2 piggyback support"; } } // container control container gn { description "3GPP GTP peer group Gn interface options"; uses apply-advanced; } // container gn container gp { description "3GPP GTP peer group Gp interface options"; uses apply-advanced; } // container gp list peer { key "name"; ordered-by user; description "Peer IP address configuration"; leaf name { type jt:ipprefix-mandatory; description "Enter IP addr with prefix"; } } // list peer } // list peer-group container traceoptions { description "Configure trace options"; uses gtp-traceoptions; } // container traceoptions } // grouping mobile-gateway-config-gtp grouping gtp-traceoptions { description "Configure trace options"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice } // container file leaf level { type enumeration { enum "error" { value 0; description "Match error conditions"; } enum "warning" { value 1; description "Match warning messages"; } enum "notice" { value 2; description "Match conditions that should be handled specially"; } enum "info" { value 3; description "Match informational messages"; } enum "verbose" { value 4; description "Match verbose messages"; } enum "all" { value 5; description "Match all levels"; } } default "error"; description "Level of debugging output"; } list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "error" { value 0; description "Trace internal and external errors"; } enum "warning" { value 1; description "Trace warnings"; } enum "debug" { value 2; description "Trace debug information"; } enum "encode" { value 3; description "Trace encoding of transmitted packets"; } enum "decode" { value 4; description "Trace decoding of received packets"; } enum "config" { value 5; description "Trace configuration related"; } enum "events" { value 6; description "Trace all internal and external events"; } enum "packet-io" { value 7; description "Trace transmitted and received packets"; } enum "tracker" { value 8; description "Trace gtp tracker related events"; } enum "peer" { value 9; description "Trace gtp peer related events"; } enum "pathfailure" { value 10; description "Trace gtp peer path failure related events"; } enum "all" { value 11; description "Trace everything"; } } } } // list flag } // grouping gtp-traceoptions grouping mobile-gateways-ipv6-router-advertisement { uses apply-advanced; leaf disable { type empty; description "Disable IPv6 router advertisements - default is enable"; } leaf maximum-advertisement-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5400 .. 21600"; } } units "seconds"; default "21600"; description "Maximum interval between router advertisements"; } leaf minimum-advertisement-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "3600 .. 16200"; } } units "seconds"; default "16200"; description "Minimum interval between router advertisements"; } leaf maximum-initial-advertisement-interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 16"; } } units "seconds"; default "10"; description "Maximum interval between initial router advertisements"; } leaf maximum-initial-advertisements { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 5"; } } default "3"; description "Maximum number of initial router advertisements"; } leaf reachable-time { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 3600000"; } } units "milliseconds"; default "0"; description "Value to be placed in reachable time field"; } leaf retransmission-timer { type union { type uint32; type string { pattern "<.*>|$.*"; } } units "milliseconds"; default "0"; description "Value to be placed in retransmit timer field"; } leaf router-lifetime { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5400 .. 21840"; } } units "seconds"; default "21840"; description "Value to be placed in router lifetime field"; } leaf current-hop-limit { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 3"; } } default "0"; description "Value to be placed in current hop limit field"; } } // grouping mobile-gateways-ipv6-router-advertisement grouping mobile-smd-traceoptions { description "Trace options related to mobile-smd"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice } // container file leaf level { type enumeration { enum "critical" { value 0; description "Match critical conditions"; } enum "error" { value 1; description "Match error conditions"; } enum "warning" { value 2; description "Match warning messages"; } enum "notice" { value 3; description "Match conditions that should be handled specially"; } enum "info" { value 4; description "Match informational messages"; } enum "verbose" { value 5; description "Match verbose messages"; } enum "all" { value 6; description "Match all levels"; } } default "error"; description "Level of debugging output"; } list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "init" { value 0; description "Trace initialization events"; } enum "config" { value 1; description "Trace configuration events"; } enum "ctxt" { value 2; description "Trace UE/PDN/Bearer ctxt events"; } enum "svcpic" { value 3; description "Trace service-PIC interface"; } enum "fsm" { value 4; description "Trace FSM events"; } enum "ha" { value 5; description "Trace High Availability events"; } enum "waitq" { value 6; description "Trace waitq events"; } enum "pfem" { value 7; description "Trace PFE Manager events"; } enum "stats" { value 8; description "Trace stats events"; } enum "bulkjob" { value 9; description "Trace resources"; } enum "cos-cac" { value 10; description "Trace cos and cac events"; } enum "all" { value 11; description "Trace everything"; } } } } // list flag } // grouping mobile-smd-traceoptions grouping rmps-clnt-traceoptions-type { description "Trace options for Resource Management and Packet Steering Client"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice leaf match { type jt:regular-expression; description "Regular expression for lines to be logged"; } } // container file leaf level { type enumeration { enum "error" { value 0; description "Match error conditions"; } enum "warning" { value 1; description "Match warning messages"; } enum "notice" { value 2; description "Match conditions that should be handled specially"; } enum "info" { value 3; description "Match informational messages"; } enum "verbose" { value 4; description "Match verbose messages"; } enum "all" { value 5; description "Match all levels"; } } default "error"; description "Level of debugging output"; } list flag { key "name"; ordered-by user; description "Resource Management Packet Steering Client to trace"; leaf name { type enumeration { enum "infra" { value 0; description "Trace FSM and Infra code"; } enum "memory" { value 1; description "Trace Memory Management Code"; } enum "communication" { value 2; description "Trace IPC code"; } enum "resource-tables" { value 3; description "Trace Resource Table Code"; } enum "info-tables" { value 4; description "Trace Information Table Code"; } enum "redundancy" { value 5; description "Trace GRES Code"; } enum "all" { value 6; description "Trace All Resource Client Code"; } } } } // list flag } // grouping rmps-clnt-traceoptions-type grouping rmpsd-traceoptions-type { description "Trace options for Resource Management and Packet Steering Daemon"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice leaf match { type jt:regular-expression; description "Regular expression for lines to be logged"; } } // container file leaf level { type enumeration { enum "error" { value 0; description "Match error conditions"; } enum "warning" { value 1; description "Match warning messages"; } enum "notice" { value 2; description "Match conditions that should be handled specially"; } enum "info" { value 3; description "Match informational messages"; } enum "verbose" { value 4; description "Match verbose messages"; } enum "all" { value 5; description "Match all levels"; } } default "error"; description "Level of debugging output"; } list flag { key "name"; ordered-by user; description "Resource Management Packet Steering Area to trace"; leaf name { type enumeration { enum "config" { value 0; description "Trace configuration code"; } enum "gres" { value 1; description "Trace GRES code"; } enum "init" { value 2; description "Trace initialization code"; } enum "memory" { value 3; description "Trace memory management code"; } enum "communication" { value 4; description "Trace Infra code"; } enum "license-management" { value 5; description "Trace license management code"; } enum "signal" { value 6; description "Trace signal handling code"; } enum "state" { value 7; description "Trace state handling code"; } enum "timer" { value 8; description "Trace timer code"; } enum "ui" { value 9; description "Trace user interface code"; } enum "resource-manager" { value 10; description "Trace Resource Management Code"; } enum "info-manager" { value 11; description "Trace Information Management Code"; } enum "packet-steering" { value 12; description "Trace packet-steering code"; } enum "all" { value 13; description "Trace all areas of code"; } } } } // list flag } // grouping rmpsd-traceoptions-type grouping sgw-config-gtp { description "GTP configuration"; uses apply-advanced; leaf peer-history { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 1000"; } } description "Maximum number of peer stats stored in history"; } container interface { description "Interface name used for all 3GPP interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } container control { description "Configure 3GPP GTP control plane options"; uses apply-advanced; container interface { description "Interface name used for all 3GPP control interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } leaf forwarding-class { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Classification of host traffic to forwarding engine"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "Number of retries of GTP messages upon timeout"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP request message"; } leaf dscp-code-point { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 63"; } } description "Static DSCP code point of egress host traffic"; } leaf ttl-value { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 255"; } } description "Time To Live value for GTP messages"; } leaf ddn-delay-sync { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable downlink data notification delay sync"; } leaf no-response-cache { type empty; description "Disable GTP response cache"; } leaf response-cache-timeout { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "5 .. 20"; } } units "seconds"; default "15"; description "GTP response cache timeout interval"; } leaf no-piggyback-support { type empty; description "Disable GTPv2 piggyback support"; } } // container control container data { description "Configure 3GPP GTP data plane options"; uses apply-advanced; container interface { description "Interface name used for all 3GPP data interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf num-gtpu-end-markers { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 10"; } } default "1"; description "Number of GTPU end marker pkts to be sent. range:1..10"; } leaf indirect-tunnel { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable indirect tunnel"; } leaf error-indication-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 20"; } } units "seconds"; default "2"; description "Error indication transmit interval per bearer "; } } // container data container s1u { presence "enable s1u"; description "Configure 3GPP S1U interface"; uses apply-advanced; container interface { description "Interface name used for S1U data interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } } // container s1u container s11 { presence "enable s11"; description "Configure 3GPP S11 interface"; uses apply-advanced; container interface { description "Interface name used for S11 control interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } leaf forwarding-class { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Classification of host traffic to forwarding engine"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "Number of retries of GTP messages upon timeout"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP request message"; } leaf dscp-code-point { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 63"; } } description "Static DSCP code point of egress host traffic"; } leaf ttl-value { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 255"; } } description "Time To Live value for GTP messages"; } } // container s11 container s12 { presence "enable s12"; description "Configure 3GPP S12 interface"; uses apply-advanced; container interface { description "Interface name used for S12 data interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } } // container s12 container s4 { description "Configure 3GPP S4 interface"; uses apply-advanced; container interface { description "Interface name used"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } container control { description "Configure 3GPP control plane options"; uses apply-advanced; container interface { description "Interface name used for control interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } leaf forwarding-class { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Classification of host traffic to forwarding engine"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "Number of retries of GTP messages upon timeout"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP request message"; } leaf dscp-code-point { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 63"; } } description "Static DSCP code point of egress host traffic"; } leaf ttl-value { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 255"; } } description "Time To Live value for GTP messages"; } } // container control container data { description "Configure 3GPP data plane options"; uses apply-advanced; container interface { description "Interface name used for data interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } } // container data } // container s4 container s5 { description "Configure 3GPP S5 interface"; uses apply-advanced; container interface { description "Interface name used"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } container control { description "Configure 3GPP control plane options"; uses apply-advanced; container interface { description "Interface name used for control interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } leaf forwarding-class { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Classification of host traffic to forwarding engine"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "Number of retries of GTP messages upon timeout"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP request message"; } leaf dscp-code-point { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 63"; } } description "Static DSCP code point of egress host traffic"; } leaf ttl-value { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 255"; } } description "Time To Live value for GTP messages"; } } // container control container data { description "Configure 3GPP data plane options"; uses apply-advanced; container interface { description "Interface name used for data interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } } // container data } // container s5 container s8 { description "Configure 3GPP S8 interface"; uses apply-advanced; container interface { description "Interface name used"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } container control { description "Configure 3GPP control plane options"; uses apply-advanced; container interface { description "Interface name used for control interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } leaf number-of-msgs-for-response-time { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } default "10000"; description "Number of msgs used for calculating peer response times"; } leaf forwarding-class { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Classification of host traffic to forwarding engine"; } leaf n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 5"; } } description "Number of retries of GTP messages upon timeout"; } leaf t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP request message"; } leaf dscp-code-point { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 63"; } } description "Static DSCP code point of egress host traffic"; } leaf ttl-value { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 255"; } } description "Time To Live value for GTP messages"; } } // container control container data { description "Configure 3GPP data plane options"; uses apply-advanced; container interface { description "Interface name used for data interface"; leaf intf-name { junos:must "("interfaces $$-IFL family inet address")"; junos:must-message "Family inet address should be configured on this interface"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } leaf v4-address { type jt:ipv4addr; description "IPv4 address if multiple addresses configured on interface"; } } // container interface leaf echo-interval { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "60 .. 65535"; } } units "seconds"; description "Echo Request interval value for path management"; } leaf path-management { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path management"; } leaf echo-n3-requests { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 8"; } } description "Number of retries of GTP echo messages upon timeout"; } leaf echo-t3-response { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 30"; } } units "seconds"; description "Response timeout value for GTP echo request message"; } leaf path-failure { type enumeration { enum "enable" { value 0; description "Enable parameter"; } enum "disable" { value 1; description "Disable parameter"; } } description "Enable/disable path failure"; } } // container data } // container s8 container traceoptions { description "Configure trace options"; uses gtp-traceoptions; } // container traceoptions } // grouping sgw-config-gtp grouping sgw-idle-mode-buffering { description "Idle mode buffering options"; uses apply-advanced; leaf disable { type empty; description "Disable idle mode buffering"; } leaf expire-timer { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "30 .. 300"; } } units "seconds"; default "200"; description "Expire timer"; } } // grouping sgw-idle-mode-buffering grouping software-datapath-traceoptions { description "Trace options for software-datapath"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice leaf match { type jt:regular-expression; description "Regular expression for lines to be logged"; } } // container file leaf level { type enumeration { enum "error" { value 0; description "Match error conditions"; } enum "warning" { value 1; description "Match warning messages"; } enum "notice" { value 2; description "Match conditions that should be handled specially"; } enum "info" { value 3; description "Match informational messages"; } enum "verbose" { value 4; description "Match verbose messages"; } enum "all" { value 5; description "Match all levels"; } } default "error"; description "Level of debugging output"; } list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "ager" { value 0; description "Trace flow ager "; } enum "commands" { value 1; description "Trace operational commands"; } enum "configuration" { value 2; description "Trace configuration events"; } enum "flow" { value 3; description "Trace flow"; } enum "init" { value 4; description "Trace events related to datapath daemon init"; } enum "ipv6-router-advertisement" { value 5; description "Trace ipv6 router-advertisement "; } enum "memory" { value 6; description "Trace memory"; } enum "redundancy" { value 7; description "Trace redundancy"; } enum "reassembly" { value 8; description "Trace reassembly"; } enum "buffering" { value 9; description "Trace buffering"; } enum "all" { value 10; description "Trace everything"; } } } } // list flag } // grouping software-datapath-traceoptions grouping unified-edge-gateway-diameter { uses apply-advanced; list network-element { key "name"; ordered-by user; description "Diameter network element configuration per mobile gateway"; leaf name { junos:must "("access diameter network-element $$")"; junos:must-message "Referenced DNE must be defined"; type string { length "1 .. 31"; } description "Diameter network-element name"; } uses apply-advanced; container session-pics { description "Session MS-PICs to serve this Diameter network element"; uses unified-edge-gateway-diameter-ne-session-pics; } // container session-pics } // list network-element } // grouping unified-edge-gateway-diameter grouping unified-edge-gateway-diameter-ne-session-pics { uses apply-advanced; list group { key "name"; ordered-by user; description "Diameter network element Multiservice PIC group"; leaf name { type string; description "Group name"; } uses apply-advanced; list session-pic { key "name"; ordered-by user; description "Multiservice PICs serving the Diameter network element in this group"; leaf name { junos:must "(".. .. .. .. .. .. system session-pics interface $$")"; junos:must-message "Session-pics should be defined under gateway"; type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface name representing multiservice PIC"; } uses apply-advanced; } // list session-pic } // list group } // grouping unified-edge-gateway-diameter-ne-session-pics grouping unified-edge-ggsn-pgw-system { uses apply-advanced; container pfes { description "Packet forwarding engines used for anchoring"; uses apply-advanced; list interface { key "name"; ordered-by user; description "Interface representing packet forwarding engine"; leaf name { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface name representing packet forwarding engine"; } uses apply-advanced; leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } } // list interface } // container pfes container session-pics { description "Multiservice PICs used for anchoring control sessions"; uses apply-advanced; list interface { key "name"; ordered-by user; description "Interface representing multiservice PIC"; leaf name { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface name representing multiservice PIC"; } uses apply-advanced; leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } } // list interface } // container session-pics container service-pics { presence "enable service-pics"; description "Multiservice PICs used for anchoring service related data sessions"; uses apply-advanced; list interface { key "name"; ordered-by user; description "Interface representing multiservice PIC"; leaf name { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface name representing multiservice PIC"; } uses apply-advanced; leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } } // list interface } // container service-pics } // grouping unified-edge-ggsn-pgw-system grouping unified-edge-mobile-options { description "Unified edge mobile options"; uses apply-advanced; container traceoptions { description "Mobility config and operational command daemon trace options"; uses mobiled-traceoptions; } // container traceoptions } // grouping unified-edge-mobile-options grouping mobiled-traceoptions { description "Trace options for mobiled"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice leaf match { type jt:regular-expression; description "Regular expression for lines to be logged"; } } // container file list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "configuration" { value 0; description "Trace configuration events"; } enum "protocol" { value 1; description "Trace protocol processing events"; } enum "init" { value 2; description "Trace events related to protocol daemon start-up"; } enum "error" { value 3; description "Trace events related to catestrophic errors in daemon"; } enum "all" { value 4; description "Trace everything"; } } } leaf send { type empty; description "Trace transmitted packets"; } leaf receive { type empty; description "Trace received packets"; } leaf detail { type empty; description "Trace detailed information"; } leaf disable { type empty; description "Disable this trace flag"; } } // list flag } // grouping mobiled-traceoptions grouping unified-edge-pcef { description "PCEF configuration"; uses apply-advanced; container traceoptions { description "Trace options related to PCEF"; uses pcef-traceoptions; } // container traceoptions container event-trigger-profiles { description "Event trigger profiles"; uses apply-advanced; list profile { key "name"; uses evt-trigger-profile; } // list profile } // container event-trigger-profiles container flow-descriptions { description "PCC flow descriptions"; uses apply-advanced; list definition { key "name"; uses pcc-flow; } // list definition } // container flow-descriptions container pcc-action-profiles { description "PCC action profiles"; uses apply-advanced; list definition { key "name"; uses pcc-action-profile; } // list definition } // container pcc-action-profiles container pcc-rules { description "PCC rules"; uses apply-advanced; list definition { key "name"; uses pcc-rule; } // list definition } // container pcc-rules container pcc-rulebases { description "PCC rulebases"; uses apply-advanced; list definition { key "name"; ordered-by user; uses pcc-rulebase; } // list definition } // container pcc-rulebases container profiles { junos:must "(!("system services subscriber-management enable"))"; junos:must-message "unified-edge pcef profiles is not allowed when enhanced-ip is configured"; description "PCEF profiles"; uses apply-advanced; list definition { key "name"; ordered-by user; uses pcef-profiles; } // list definition } // container profiles container pcc-time-of-day-profiles { description "PCEF Time Of Day profiles"; uses apply-advanced; list definition { key "name"; ordered-by user; uses pcef-time-of-day-profile; } // list definition } // container pcc-time-of-day-profiles } // grouping unified-edge-pcef grouping evt-trigger-profile { description "Event trigger profile"; leaf name { type string { length "1 .. 63"; } description "Event trigger profile name"; } uses apply-advanced; leaf rat-change { type empty; description "RAT change trigger"; } leaf sgsn-change { type empty; description "SGSN change trigger"; } leaf plmn-change { type empty; description "PLMN change trigger"; } leaf ip-can-change { type empty; description "IP-CAN change trigger"; } leaf tft-change { type empty; description "TFT change trigger"; } leaf rai-change { type empty; description "RAI change trigger"; } leaf user-location-change { type empty; description "User location change"; } leaf ue-timezone-change { type empty; description "UE timezone change"; } } // grouping evt-trigger-profile grouping pcc-action-profile { description "PCC action profiles"; leaf name { type string { length "1 .. 63"; } description "PCC action profile identifier"; } uses apply-advanced; leaf logging-rule { junos:must "(any "services lrf profile <*> rule $$")"; junos:must-message "Specified rule should be configured under services lrf profile rule"; type string { length "1 .. 63"; } description "Policy based logging rule name"; } container maximum-bit-rate { presence "enable maximum-bit-rate"; description "Maximum bit rate"; leaf uplink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 6144000"; } } units "kilobits"; default "0"; description "Maximum bit rate uplink"; } leaf downlink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 6144000"; } } units "kilobits"; default "0"; description "Maximum bit rate downlink"; } } // container maximum-bit-rate container burst-size { presence "enable burst-size"; description "Burst Size"; uses apply-advanced; leaf uplink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1500 .. 1500000000"; } } units "bytes"; description "Burst size uplink"; } leaf downlink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1500 .. 1500000000"; } } units "bytes"; description "Burst size downlink"; } } // container burst-size leaf gate-status { type enumeration { enum "uplink" { value 0; description "Enable uplink traffic"; } enum "downlink" { value 1; description "Enable downlink traffic"; } enum "uplink-downlink" { value 2; description "Enable uplink and downlink traffic"; } enum "disable-both" { value 3; description "Disable any traffic"; } } description "Control gate status"; } container charging { description "Charing related configuration"; uses apply-advanced; leaf rating-group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4294967294"; } } description "Rating group"; } leaf service-identifier { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4294967294"; } } default "0"; description "Service identifier"; } leaf charging-method { type enumeration { enum "online" { value 0; description "Use online charging method"; } enum "offline" { value 1; description "Use offline charging method"; } enum "both" { value 2; description "Use online and offline charging method"; } enum "none" { value 3; description "Use no charging"; } } description "Charging method"; } leaf measurement-method { type enumeration { enum "none" { value 0; description "No default measuring method for charging"; } enum "volume" { value 1; description "Volume based charging"; } enum "time" { value 2; description "Time based charging"; } enum "volume-time" { value 3; description "Volume and time based charging"; } enum "event" { value 4; description "Event based charging"; } } default "volume-time"; description "Charging measure method"; } container application-function-record-info { presence "enable application-function-record-info"; description "Application function record information"; uses apply-advanced; leaf af-charging-identifier { type string { length "1 .. 63"; } description "Application function charging identifier"; } } // container application-function-record-info leaf service-id-level-reporting { type empty; description "Toggle service-id level reporting"; } } // container charging container redirect { description "Redirect to different destination"; uses apply-advanced; leaf url { junos:must "(!(".. routing-instance"))"; junos:must-message "Either url or routing instance can be defined"; type string { length "1 .. 512"; } description "Redirect url name"; } } // container redirect container forwarding-class { description "Classify packet to forwarding class"; uses apply-advanced; leaf class-name { type string { junos:posix-pattern "^.{1,64}$"; junos:pattern-message "Must be string of 64 characters or less"; } description "Forwarding class name"; } } // container forwarding-class container steering { description "Steering information"; uses apply-advanced; container routing-instance { description "Routing instance information"; leaf uplink { junos:must "("routing-instances $$")"; junos:must-message "routing instance must be defined"; type string; description "Instance name uplink"; } leaf downlink { junos:must "("routing-instances $$")"; junos:must-message "routing instance must be defined"; type string; description "Instance name downlink"; } } // container routing-instance container path { description "HTTP steering information"; choice ip-address-type { leaf ipv4-address { type jt:ipv4prefix; description "IPv4 address of the steering destination"; } leaf ipv6-address { type jt:ipv6prefix; description "IPv6 address of the steering destination"; } } // choice ip-address-type } // container path leaf keep-existing-steering { type empty; description "Keep existing steering"; } } // container steering container hcm-profile { description "HCM Profile"; uses apply-advanced; leaf profile-name { junos:must "("services hcm profile $$")"; junos:must-message "HCM Profile must be configured"; type string; description "HCM Profile Name"; } } // container hcm-profile leaf monitoring-key { type string { length "1 .. 63"; } description "Usage Monitoring key"; } } // grouping pcc-action-profile grouping pcc-flow { description "Configure PCC flow"; leaf name { type string { length "1 .. 63"; } description "PCC flow identifier"; } uses apply-advanced; leaf direction { type enumeration { enum "downlink" { value 0; description "Downlink direction"; } enum "uplink" { value 1; description "Uplink direction"; } enum "both" { value 2; description "Both uplink and downlink directons"; } } description "PCC flow direction"; } leaf protocol { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 255"; } } description "PCC flow IPv4 protocol"; } leaf-list local-ports { junos:must "(!(".. local-port-range"))"; junos:must-message "Either port list or port range can be defined"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } max-elements 3; description "Local port or port list"; } list local-port-range { junos:must "(!(".. local-ports"))"; junos:must-message "Either port list or port range can be defined"; key "low high"; max-elements 3; ordered-by user; description "Local port range"; leaf low { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } description "Lower limit of port range"; } leaf high { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } description "Upper limit of port range"; } } // list local-port-range leaf-list remote-ports { junos:must "(!(".. remote-port-range"))"; junos:must-message "Either port list or port range can be defined"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } max-elements 3; description "Remote port or port list"; } list remote-port-range { junos:must "(!(".. remote-ports"))"; junos:must-message "Either port list or port range can be defined"; key "low high"; max-elements 3; ordered-by user; description "Remote port range"; leaf low { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } description "Lower limit of port range"; } leaf high { type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 65535"; } } description "Upper limit of port range"; } } // list remote-port-range container remote-address { description "Remote address"; choice ip-address-type { leaf ipv4-address { type jt:ipv4prefix; description "IPv4 address for the flow"; } leaf ipv6-address { type jt:ipv6prefix; description "IPv6 address for the flow"; } } // choice ip-address-type } // container remote-address } // grouping pcc-flow grouping pcc-rule { description "PCC rules configuration"; leaf name { type string { junos:posix-pattern "^[.0-9A-Za-z_-]{1,63}$"; junos:pattern-message "Must be a string of 63 or fewer characters and may contain letters, numbers, decimals and dashes."; } description "PCC Rule identifier"; } uses apply-advanced; container from { description "Aggregate of flows using same pcc-action-profile"; uses apply-advanced; list flows { key "name"; max-elements 64; ordered-by user; description "Associate PCC Flows"; leaf name { junos:must "(".. .. .. .. .. flow-descriptions $$")"; junos:must-message "Referenced flow must be defined"; type string { length "1 .. 63"; } description "PCC Flow identifier"; } uses apply-advanced; } // list flows list applications { key "name"; max-elements 10; ordered-by user; description "Associated application signature names"; leaf name { type string { length "1 .. 63"; } description "Signature names"; } uses apply-advanced; } // list applications list nested-applications { key "name"; max-elements 10; ordered-by user; status deprecated; description "Associated nested application signature names"; leaf name { type string { length "1 .. 63"; } description "Nested application signature names"; } uses apply-advanced; } // list nested-applications list application-groups { key "name"; max-elements 10; ordered-by user; description "Application Group signature names"; leaf name { type string { length "1 .. 63"; } description "Application group names"; } uses apply-advanced; } // list application-groups } // container from container then { description "Specified pcc-action-profile"; uses apply-advanced; leaf pcc-action-profile { junos:must "(".. .. .. .. pcc-action-profiles $$")"; junos:must-message "Referenced action profile must be defined"; type string { length "1 .. 63"; } description "PCC Action profile name"; } } // container then } // grouping pcc-rule grouping pcc-rulebase { description "PCC rulebases"; leaf name { type string { junos:posix-pattern "^[.0-9A-Za-z_-]{1,63}$"; junos:pattern-message "Must be a string of 63 or fewer charactars and may contain letters, numbers, decimals and dashes"; } description "PCC Rulebase identifier"; } uses apply-advanced; list pcc-rule { key "name"; max-elements 32; ordered-by user; leaf name { junos:must "(".. .. .. .. pcc-rules $$")"; junos:must-message "Referenced rule must be defined"; type string { junos:posix-pattern "^[.0-9A-Za-z_-]{1,63}$"; junos:pattern-message "Must be a string of 63 or fewer charactars and may contain letters, numbers, decimals and dashes"; length "1 .. 63"; } description "PCC rule name"; } leaf precedence { junos:must "(unique ".. .. pcc-rule <*> precedence $$")"; junos:must-message "Precedence has to unique among rules"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 4000"; } } description "PCC rule precedence"; } } // list pcc-rule } // grouping pcc-rulebase grouping pcef-profiles { description "PCEF profiles"; leaf name { type string { length "1 .. 63"; } description "PCEF profile name"; } uses apply-advanced; leaf control-byte-rating-group { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 4294967294"; } } description "Rating group id"; } leaf unresolved-flow-action { type enumeration { enum "forward" { value 0; description "Forward"; } enum "drop" { value 1; description "Drop"; } } description "Flow action"; } container maximum-per-pdn-service-flows { description "Max service flows per PDN"; leaf num { type union { type uint32; type string { pattern "<.*>|$.*"; } } description "Value"; } } // container maximum-per-pdn-service-flows container dynamic-policy-control { junos:must "(("diameter-profile" || ".. .. .. .. .. system services subscriber-management enable"))"; junos:must-message "diameter-profile must be configured when 'system services subscriber-management' is not enabled"; junos:must "((!(".. static-policy-control") && !(".. aaa-policy-control")))"; junos:must-message "Either static or dynamic or AAA policy control can be specified"; description "Dynamic policy control"; uses apply-advanced; container pcc-rules { description "PCC rules association"; uses apply-advanced; list rule-assoc { key "name"; max-elements 64; ordered-by user; uses profile-rule-assoc; } // list rule-assoc } // container pcc-rules list pcc-rulebases { key "name"; ordered-by user; description "PCC rulebase association"; leaf name { junos:must "(".. .. .. .. .. pcc-rulebases $$")"; junos:must-message "Referenced rulebase must be defined"; type string { length "1 .. 63"; } description "PCC rulebase name"; } uses apply-advanced; } // list pcc-rulebases leaf diameter-profile { junos:must "(".. .. .. .. .. diameter-profiles gx-profile $$")"; junos:must-message "Referenced diameter profile must be defined"; type string { length "1 .. 63"; } description "Diameter profile name"; } leaf event-trigger-profile { junos:must "(".. .. .. .. event-trigger-profiles $$")"; junos:must-message "Referenced event trigger profile must be defined"; type string { length "1 .. 63"; } description "Event trigger profile name"; } leaf session-failover-not-supported { type empty; description "Session failover not supported"; } leaf release { type enumeration { enum "r8" { value 0; description "Gx release 8"; } enum "r9" { value 1; description "Gx release 9"; } } description "To override Gx release to R8|R9"; } } // container dynamic-policy-control container static-policy-control { junos:must "((!(".. dynamic-policy-control") && !(".. aaa-policy-control")))"; junos:must-message "Either static or dynamic or AAA policy control can be specified"; description "Static policy control"; uses apply-advanced; container pcc-rules { description "PCC rules association"; uses apply-advanced; list rule-assoc { key "name"; max-elements 64; ordered-by user; uses profile-static-rule-association; } // list rule-assoc } // container pcc-rules list pcc-rulebases { key "name"; ordered-by user; description "PCC rulebase association"; leaf name { junos:must "(".. .. .. .. .. pcc-rulebases $$")"; junos:must-message "Referenced rulebase must be defined"; type string { length "1 .. 63"; } description "PCC rulebase name"; } uses apply-advanced; leaf time-of-day-profile { junos:must "(".. .. .. .. .. pcc-time-of-day-profiles $$")"; junos:must-message "Referenced time-of-day profile must be defined"; type string { length "1 .. 63"; } description "Time of day profile name"; } } // list pcc-rulebases leaf-list activate-dedicated-bearers { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "1 .. 9"; } } max-elements 9; description "Enable dedicated bearer activation on initial attach with qci"; } } // container static-policy-control container aaa-policy-control { junos:must "((!(".. static-policy-control") && !(".. dynamic-policy-control")))"; junos:must-message "Either static or dynamic or AAA policy control can be specified"; description "AAA policy control"; uses apply-advanced; leaf profile { junos:must "(".. .. .. .. .. aaa profiles $$")"; junos:must-message "Referenced AAA profile must be defined"; type string { length "1 .. 32"; } description "AAA profile name"; } leaf user-password { type string { length "1 .. 32"; } description "User password"; } list pcc-rulebases { key "name"; ordered-by user; description "PCC rulebase association"; leaf name { junos:must "(".. .. .. .. .. pcc-rulebases $$")"; junos:must-message "Referenced rulebase must be defined"; type string { length "1 .. 63"; } description "PCC rulebase name"; } uses apply-advanced; } // list pcc-rulebases } // container aaa-policy-control } // grouping pcef-profiles grouping pcef-time-of-day-profile { description "PCEF Time Of Day profiles"; leaf name { type string { length "1 .. 63"; } description "PCEF Time Of Day profile name"; } uses apply-advanced; container rule-activation-time { description "Rule Activation Time of this profile"; uses pcef-tod-time-type; } // container rule-activation-time container rule-deactivation-time { description "Rule Dectivation Time of this profile"; uses pcef-tod-time-type; } // container rule-deactivation-time } // grouping pcef-time-of-day-profile grouping pcef-tod-time-type { description "Day of month or week, month of year and Time of the day for this profile"; uses apply-advanced; choice day-of-week-or-month { leaf SUNDAY { type empty; description "Sunday"; } leaf MONDAY { type empty; description "Monday"; } leaf TUESDAY { type empty; description "Tuesday"; } leaf WEDNESDAY { type empty; description "Wednesday"; } leaf THURSDAY { type empty; description "Thursday"; } leaf FRIDAY { type empty; description "Friday"; } leaf SATURDAY { type empty; description "Saturday"; } leaf DAY1 { type empty; description "1st of the month"; } leaf DAY2 { type empty; description "2nd of the month"; } leaf DAY3 { type empty; description "3rd of the month"; } leaf DAY4 { type empty; description "4th of the month"; } leaf DAY5 { type empty; description "5th of the month"; } leaf DAY6 { type empty; description "6th of the month"; } leaf DAY7 { type empty; description "7th of the month"; } leaf DAY8 { type empty; description "8th of the month"; } leaf DAY9 { type empty; description "9th of the month"; } leaf DAY10 { type empty; description "10th of the month"; } leaf DAY11 { type empty; description "11th of the month"; } leaf DAY12 { type empty; description "12th of the month"; } leaf DAY13 { type empty; description "13th of the month"; } leaf DAY14 { type empty; description "14th of the month"; } leaf DAY15 { type empty; description "15th of the month"; } leaf DAY16 { type empty; description "16th of the month"; } leaf DAY17 { type empty; description "17th of the month"; } leaf DAY18 { type empty; description "18th of the month"; } leaf DAY19 { type empty; description "19th of the month"; } leaf DAY20 { type empty; description "20th of the month"; } leaf DAY21 { type empty; description "21st of the month"; } leaf DAY22 { type empty; description "22nd of the month"; } leaf DAY23 { type empty; description "23rd of the month"; } leaf DAY24 { type empty; description "24th of the month"; } leaf DAY25 { type empty; description "25th of the month"; } leaf DAY26 { type empty; description "26th of the month"; } leaf DAY27 { type empty; description "27th of the month"; } leaf Last-day-of-month { type empty; description "Last day of the month"; } } // choice day-of-week-or-month choice month { leaf JANUARY { type empty; description "January"; } leaf FEBRUARY { type empty; description "February"; } leaf MARCH { type empty; description "March"; } leaf APRIL { type empty; description "April"; } leaf MAY { type empty; description "May"; } leaf JUNE { type empty; description "June"; } leaf JULY { type empty; description "July"; } leaf AUGUST { type empty; description "August"; } leaf SEPTEMBER { type empty; description "September"; } leaf OCTOBER { type empty; description "October"; } leaf NOVEMBER { type empty; description "November"; } leaf DECEMBER { type empty; description "December"; } } // choice month leaf time { type jt:time-of-day; description "Time of the day in hh:mm format"; } } // grouping pcef-tod-time-type grouping pcef-traceoptions { description "Trace options related to PCEF"; uses apply-advanced; leaf no-remote-trace { junos:must "("system tracing")"; junos:must-message "'no-remote-trace' is valid only when [system tracing] is configured"; type empty; description "Disable remote tracing"; } container file { description "Trace file information"; leaf filename { type string { junos:posix-pattern "![/ %]"; junos:pattern-message "Must not contain '/', % or a space"; length "1 .. 1024"; } description "Name of file in which to write trace information"; } leaf size { type string; description "Maximum trace file size"; } leaf files { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "2 .. 1000"; } } default "3"; description "Maximum number of trace files"; } choice world-readable-choice { leaf world-readable { type empty; description "Allow any user to read the log file"; } leaf no-world-readable { type empty; description "Don't allow any user to read the log file"; } } // choice world-readable-choice } // container file leaf level { type enumeration { enum "error" { value 0; description "Match error conditions"; } enum "warning" { value 1; description "Match warning messages"; } enum "notice" { value 2; description "Match conditions that should be handled specially"; } enum "info" { value 3; description "Match informational messages"; } enum "verbose" { value 4; description "Match verbose messages"; } enum "all" { value 5; description "Match all levels"; } } default "error"; description "Level of debugging output"; } list flag { key "name"; ordered-by user; description "Tracing parameters"; leaf name { type enumeration { enum "init" { value 0; description "Trace initialization events"; } enum "config" { value 1; description "Trace configuration events"; } enum "general" { value 2; description "Trace general events"; } enum "high-availability" { value 3; description "Trace high availability events"; } enum "debug" { value 4; description "Trace debug internal events"; } enum "fsm" { value 5; description "Trace fsm events"; } enum "tftmgr" { value 6; description "Trace tftmgr events"; } enum "all" { value 7; description "Trace everything"; } } } } // list flag } // grouping pcef-traceoptions grouping profile-rule-assoc { leaf name { junos:must "(".. .. .. .. .. .. pcc-rules $$")"; junos:must-message "Referenced rule must be defined"; type string { length "1 .. 63"; } description "PCC rule name"; } leaf precedence { junos:must "(unique ".. .. <*> precedence $$")"; junos:must-message "Precedence has to unique among rules"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 4000"; } } description "PCC rule precedence"; } } // grouping profile-rule-assoc grouping profile-static-rule-association { leaf name { junos:must "(".. .. .. .. .. .. pcc-rules $$")"; junos:must-message "Referenced rule must be defined"; type string { length "1 .. 63"; } description "PCC rule name"; } leaf precedence { junos:must "(unique ".. .. <*> precedence $$")"; junos:must-message "Precedence has to unique among rules"; type union { type string { pattern "<.*>|$.*"; } type uint16 { range "1 .. 4000"; } } description "PCC rule precedence"; } leaf time-of-day-profile { junos:must "(".. .. .. .. .. .. pcc-time-of-day-profiles $$")"; junos:must-message "Referenced time-of-day profile must be defined"; type string { length "1 .. 63"; } description "Time of day profile name"; } container pcc-action-profile { status deprecated; description "PCC action profile association"; leaf rules-action-profile { junos:must "(".. .. .. .. .. .. .. pcc-action-profiles $$")"; junos:must-message "Referenced action profile must be defined"; type string { length "1 .. 63"; } description "PCC action profile name"; } } // container pcc-action-profile } // grouping profile-static-rule-association grouping unified-edge-sgw-system { uses apply-advanced; container pfes { description "Packet forwarding engines used for anchoring"; uses apply-advanced; list interface { key "name"; ordered-by user; description "Interface representing packet forwarding engine"; leaf name { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface name representing packet forwarding engine"; } uses apply-advanced; leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } } // list interface } // container pfes container session-pics { description "Multiservice PICs used for anchoring control sessions"; uses apply-advanced; list interface { key "name"; ordered-by user; description "Interface representing multiservice PIC"; leaf name { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface name representing multiservice PIC"; } uses apply-advanced; leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } } // list interface } // container session-pics } // grouping unified-edge-sgw-system grouping unified-edge-tdf { description "Traffic Detection Function configuration"; leaf name { type string { length "1 .. 63"; } description "TDF name"; } uses apply-advanced; leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } container system { description "System parameters"; uses unified-edge-tdf-system; } // container system container call-rate-statistics { presence "enable call-rate-statistics"; description "Call-rate-statistics options"; uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5 .. 120"; } } units "minutes"; default "60"; description "Time interval in minutes"; } leaf history { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10"; } } default "1"; description "Number of intervals"; } } // container call-rate-statistics container traceoptions { description "Trace options related to subscriber management"; uses mobile-smd-traceoptions; } // container traceoptions container cac { presence "enable cac"; description "TDF cac configuration"; uses apply-advanced; leaf maximum-subscribers { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 5000"; } } units "thousands"; default "5000"; description "Maximum number of TDF subscribers"; } leaf maximum-subscribers-trap-percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 90"; } } units "percentage"; default "70"; description "Percentage of Maximum subscribers"; } container memory { description "Memory threshold configuration"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 90"; } } units "Percentage"; description "Memory threshold"; } } // container memory container cpu { description "CPU threshold configuration"; uses apply-advanced; leaf percentage { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 90"; } } units "Percentage"; description "CPU threshold"; } } // container cpu } // container cac container charging { presence "enable charging"; description "TDF charging profile definitions"; uses apply-advanced; container traceoptions { description "Charging trace options"; uses charging-traceoptions; } // container traceoptions container charging-profiles { description "Charging profile"; uses apply-advanced; list charging-profile { key "name"; max-elements 255; uses juniper-charging-profiles; } // list charging-profile } // container charging-profiles container transport-profiles { description "Transport profile definition"; uses apply-advanced; list transport-profile { key "name"; max-elements 8; uses juniper-transport-profiles; } // list transport-profile } // container transport-profiles } // container charging container domains { description "TDF domains configuration"; uses apply-advanced; list domain { key "name"; max-elements 128; uses tdf-domain; } // list domain } // container domains container domain-selection { description "TDF domain selection"; uses apply-advanced; list term { key "name"; max-elements 200; ordered-by user; description "Define a domain selection term"; leaf name { type string { length "1 .. 50"; } description "Term name"; } uses apply-advanced; container from { description "Define match criteria"; uses domain-sel-match-object; } // container from container then { description "Action to take if the 'from' condition is matched"; uses apply-advanced; leaf domain { junos:must "(!("unified-edge gateways tdf ${tdf} domains $$ subscriber-type ifl"))"; junos:must-message "Referenced domain must be defined as ip-subscriber"; junos:must "("unified-edge gateways tdf ${tdf} domains $$")"; junos:must-message "Referenced domain must be defined"; type string { length "1 .. 50"; } description "TDF domain name"; } leaf pcef-profile { junos:must "("unified-edge pcef profiles $$")"; junos:must-message "Referenced pcef profile must be defined"; type string { length "1 .. 63"; } description "PCEF profile name"; } } // container then } // list term } // container domain-selection container aaa { description "AAA related configuration"; uses apply-advanced; container clients { description "AAA radius clients"; uses apply-advanced; list client { key "name"; ordered-by user; description "AAA radius client"; leaf name { junos:must "("access radius clients $$")"; junos:must-message "Referenced Radius client must be defined"; type string { length "1 .. 31"; } description "Name of the radius client"; } uses apply-advanced; } // list client } // container clients container snoop-segments { description "AAA radius snoop segments"; uses apply-advanced; list snoop-segment { key "name"; ordered-by user; description "AAA radius snoop segment"; leaf name { junos:must "("access radius snoop-segments $$")"; junos:must-message "Referenced Radius snoop-segment must be defined"; type string { length "1 .. 32"; } description "Name of Radius snoop segment"; } uses apply-advanced; } // list snoop-segment } // container snoop-segments } // container aaa } // grouping unified-edge-tdf grouping domain-sel-match-object { description "TDF domain selection match"; uses apply-advanced; list client { key "name"; max-elements 5; ordered-by user; description "AAA Radius client"; leaf name { junos:must "("access radius clients $$")"; junos:must-message "Referenced Radius client must be defined"; type string { length "1 .. 31"; } description "Name of the Radius client"; } uses apply-advanced; } // list client list snoop-segment { key "name"; max-elements 5; ordered-by user; description "AAA Radius snoop-segment"; leaf name { junos:must "("access radius snoop-segments $$")"; junos:must-message "Referenced Radius snoop-segment must be defined"; type string { length "1 .. 32"; } description "Name of Radius snoop-segment"; } uses apply-advanced; } // list snoop-segment container user-name { description "Radius avp user-name"; choice match_choice { container equals { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container equals container has-prefix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-prefix container has-suffix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-suffix container matches { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container matches } // choice match_choice } // container user-name container nas-ip-address { description "Radius avp nas-ip-address"; container equals { description "Attribute match options"; uses apply-advanced; leaf value { type jt:ipv4prefix; description "IPv4 address/prefix value"; } } // container equals } // container nas-ip-address container calling-station-id { description "Radius avp calling-station-id"; choice match_choice { container equals { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container equals container has-prefix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-prefix container has-suffix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-suffix container matches { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container matches } // choice match_choice } // container calling-station-id container called-station-id { description "Radius avp called-station-id"; choice match_choice { container equals { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container equals container has-prefix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-prefix container has-suffix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-suffix container matches { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container matches } // choice match_choice } // container called-station-id container class { description "Radius avp class"; choice match_choice { container equals { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container equals container has-prefix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-prefix container has-suffix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-suffix container matches { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container matches } // choice match_choice } // container class container threegpp-imsi { description "Radius avp 3gpp-imsi"; choice match_choice { container equals { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container equals container has-prefix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-prefix container has-suffix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-suffix container matches { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container matches } // choice match_choice } // container threegpp-imsi container framed-ip-address { description "Radius avp framed-ip-address"; container equals { description "Attribute match options"; uses apply-advanced; leaf value { type jt:ipv4prefix; description "IPv4 address/prefix value"; } } // container equals } // container framed-ip-address container framed-ipv6-prefix { description "Radius avp framed-ipv6-prefix"; container equals { description "Attribute match options"; uses apply-advanced; leaf value { type jt:ipv6prefix; description "IPv6 address/prefix value"; } } // container equals } // container framed-ipv6-prefix list attribute { key "name"; max-elements 5; ordered-by user; description "Custom radius attributes"; leaf name { type string { length "1 .. 50"; } description "Custom attribute name"; } uses apply-advanced; leaf code { type union { type string { pattern "<.*>|$.*"; } type uint8 { range "0 .. 255"; } } description "Attribute code"; } leaf vendor-id { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 65534"; } } default "0"; description "Attribute vendor-id"; } container format { description "Attribute format"; choice format_choice { container string { description "Format string"; uses apply-advanced; choice match_choice { container equals { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container equals container has-prefix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-prefix container has-suffix { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container has-suffix container matches { description "Attribute match options"; uses apply-advanced; leaf value { type string { length "1 .. 254"; } description "String value"; } } // container matches } // choice match_choice } // container string container time { description "Format time"; uses apply-advanced; choice match_choice { container equals { description "Attribute match options"; uses apply-advanced; leaf value { type jt:time; description "Time value"; } } // container equals container greater-than { description "Attribute match options"; uses apply-advanced; leaf value { type jt:time; description "Time value"; } } // container greater-than container less-than { description "Attribute match options"; uses apply-advanced; leaf value { type jt:time; description "Time value"; } } // container less-than } // choice match_choice } // container time container integer { description "Format integer"; uses apply-advanced; choice match_choice { container equals { description "Attribute match options"; uses apply-advanced; leaf value { type union { type int32; type string { pattern "<.*>|$.*"; } } description "Integer value"; } } // container equals container greater-than { description "Attribute match options"; uses apply-advanced; leaf value { type union { type int32; type string { pattern "<.*>|$.*"; } } description "Integer value"; } } // container greater-than container less-than { description "Attribute match options"; uses apply-advanced; leaf value { type union { type int32; type string { pattern "<.*>|$.*"; } } description "Integer value"; } } // container less-than } // choice match_choice } // container integer container v4address { description "Format v4address"; uses apply-advanced; container equals { description "Attribute match options"; uses apply-advanced; leaf value { type jt:ipv4prefix; description "IPv4 address/prefix value"; } } // container equals } // container v4address container v6prefix { description "Format v6prefix"; uses apply-advanced; container equals { description "Attribute match options"; uses apply-advanced; leaf value { type jt:ipv6prefix; description "IPv6 address/prefix value"; } } // container equals } // container v6prefix container v6address { description "Format v6address"; uses apply-advanced; container equals { description "Attribute match options"; uses apply-advanced; leaf value { type jt:ipv6prefix; description "IPv6 address/prefix value"; } } // container equals } // container v6address } // choice format_choice } // container format } // list attribute } // grouping domain-sel-match-object grouping tdf-domain { description "Configure domain for tdf gateway"; leaf name { type string { length "1 .. 50"; } description "TDF domain name"; } uses apply-advanced; leaf subscriber-type { type enumeration { enum "ip" { value 0; description "Subscriber type IP"; } enum "ifl" { value 1; description "Subscriber type IFL"; } } default "ip"; description "Specify subscriber type"; } container subscriber-exclude-prefix { description "Exclude subscriber address prefix"; uses apply-advanced; container family { description "Address family"; uses apply-advanced; container inet { description "IPv4 address configuration"; uses apply-advanced; list network { key "name"; max-elements 8; ordered-by user; description "Specify IPv4 network prefix"; leaf name { type jt:ipv4prefix-only; description "IPv4 network prefix"; } uses apply-advanced; } // list network } // container inet container inet6 { description "IPv6 address pool configuration"; uses apply-advanced; list network { key "name"; max-elements 8; ordered-by user; description "Specify IPv6 network prefix"; leaf name { type jt:ipv6prefix-only; description "IPv6 network prefix"; } uses apply-advanced; } // list network } // container inet6 } // container family } // container subscriber-exclude-prefix leaf pcef-profile { junos:must "("unified-edge pcef profiles $$")"; junos:must-message "Referenced PCEF profile must be defined"; type string { length "1 .. 63"; } description "PCEF profile for the TDF domain"; } leaf tdf-interface { junos:must "(("interfaces $$-IFL family inet service" || "interfaces $$-IFL family inet6 service"))"; junos:must-message "service set must be defined for the tdf-interface"; junos:must "("interfaces $$")"; junos:must-message "referenced mif interface must be defined"; type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "TDF interface"; } container maximum-bit-rate { presence "enable maximum-bit-rate"; description "Default subscriber policy for TDF traffic"; uses apply-advanced; leaf uplink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 6144000"; } } units "kilobits"; default "0"; description "Maximum bit rate uplink"; } leaf downlink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 6144000"; } } units "kilobits"; default "0"; description "Maximum bit rate downlink"; } } // container maximum-bit-rate container burst-size { presence "enable burst-size"; description "Default Subscriber Burst Size for TDF traffic"; uses apply-advanced; leaf uplink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1500 .. 1500000000"; } } units "bytes"; default "1500"; description "Subscriber burst size uplink"; } leaf downlink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1500 .. 1500000000"; } } units "bytes"; default "1500"; description "Subscriber burst size downlink"; } } // container burst-size leaf charging-profile { junos:must "("unified-edge gateways tdf ${tdf} charging charging-profiles $$")"; junos:must-message "Charging profile must be defined"; type string; description "Charging profile for the domain"; } leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } container call-rate-statistics { presence "enable call-rate-statistics"; description "Call-rate-statistics options"; uses apply-advanced; leaf interval { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "5 .. 120"; } } units "minutes"; default "60"; description "Time interval in minutes"; } leaf history { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1 .. 10"; } } default "1"; description "Number of intervals"; } } // container call-rate-statistics container ip-subscriber { description "Configure ip subscriber"; uses apply-advanced; list access-interfaces { key "name"; max-elements 16; ordered-by user; description "Access facing interfaces"; leaf name { junos:must "("interfaces $$")"; junos:must-message "interface must be defined"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } uses apply-advanced; } // list access-interfaces leaf subscriber-attach-method { type enumeration { enum "radius-accounting" { value 0; description "Attached by RADIUS accounting messages"; } enum "packet-triggered" { value 1; description "Attached by data packet"; } enum "pcrf-initiated" { value 2; description "Attached by PCRF initiation"; } } description "Specify subscriber attach method"; } container subscription-id { description "Specify subscription id options"; uses apply-advanced; list subscription-id-options { key "name"; max-elements 6; ordered-by user; description "Subscription id options sets"; uses subscription-id-set; } // list subscription-id-options container constant { description "Constant string for subscription-id"; leaf constant-value { type string { length "1 .. 128"; } description "Constant string"; } } // container constant leaf use-class-regular-expression { junos:must "(!(".. use-class"))"; junos:must-message "use-class-regular-expression is deprecated; use use-class regex"; junos:must "(any ".. subscription-id-options <*> id-components use-class")"; junos:must-message "use subscription-id-options"; type string { length "1 .. 64"; } status deprecated; description "Regular expression for Class attribute parsing"; } container use-class { uses apply-advanced; leaf regex { junos:must "(any ".. .. subscription-id-options <*> id-components use-class")"; junos:must-message "id-components must contain use-class"; type string { length "1 .. 64"; } description "Regular expression for Class attribute parsing"; } leaf pattern { junos:must "(".. regex")"; junos:must-message "Substitution works with regular expression"; type string { length "1 .. 64"; } description "Substitution template to use with regular expression"; } leaf subscription-id-type { type enumeration { enum "imsi" { value 0; description "Use as IMSI subscriber type"; } enum "msisdn" { value 1; description "Use as MSISDN (E164) subscriber type"; } enum "nai" { value 2; description "Use as NAI subscriber type"; } enum "sip-uri" { value 3; description "Use as SIP URI name subscriber type"; } enum "private" { value 4; description "Use as private subscriber type"; } } description "Subscription id type"; } } // container use-class } // container subscription-id leaf immediate-accounting-response { type enumeration { enum "enable" { value 0; description "Enable immediate RADIUS accounting response"; } enum "disable" { value 1; description "Disable immediate RADIUS accounting response"; } } description "Enable/disable immediate RADIUS response message"; } container subscriber-address { description "Specify the subscriber address information"; uses apply-advanced; container inet { description "Specify address pool name for IPv4"; uses apply-advanced; leaf pool { type string { length "1 .. 64"; } } } // container inet container inet6 { description "Specify address pool name for IPv6"; uses apply-advanced; leaf pool { type string { length "1 .. 64"; } } } // container inet6 } // container subscriber-address leaf maximum-subscribers { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "10 .. 5000"; } } units "in thousands"; description "Maximum TDF subscribers"; } leaf idle-timeout { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 300"; } } units "minutes"; description "Session idle timeout value"; } container default-local-policy { presence "enable default-local-policy"; description "Default local policy for TDF traffic"; uses apply-advanced; leaf flow-action { type enumeration { enum "forward" { value 0; description "Forward"; } enum "drop" { value 1; description "Drop"; } } description "Flow action"; } container maximum-bit-rate { presence "enable maximum-bit-rate"; description "Maximum bit rate"; leaf uplink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 6144000"; } } units "kilobits"; default "0"; description "Maximum bit rate uplink"; } leaf downlink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "0 .. 6144000"; } } units "kilobits"; default "0"; description "Maximum bit rate downlink"; } } // container maximum-bit-rate container burst-size { presence "enable burst-size"; description "Burst Size for TDF traffic"; uses apply-advanced; leaf uplink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1500 .. 1500000000"; } } units "bytes"; default "1500"; description "Burst size uplink"; } leaf downlink { type union { type string { pattern "<.*>|$.*"; } type uint32 { range "1500 .. 1500000000"; } } units "bytes"; default "1500"; description "Burst size downlink"; } } // container burst-size } // container default-local-policy } // container ip-subscriber container ifl-subscriber { description "IFL subscriber configuration"; uses apply-advanced; list ifl-subscribers { key "name"; max-elements 32; uses tdf-ifl-subscriber; } // list ifl-subscribers } // container ifl-subscriber } // grouping tdf-domain grouping subscription-id-set { description "Specify subscription id set"; leaf name { type string { length "1 .. 128"; } description "Subscription id set name"; } uses apply-advanced; leaf-list id-components { type enumeration { enum "use-imsi" { value 0; description "Use imsi for subscriber ID"; } enum "use-msisdn" { value 1; description "Use msisdn for subscriber ID"; } enum "use-nai" { value 2; description "Use nai for subscriber ID"; } enum "use-username" { value 3; description "Use user name for subscriber ID"; } enum "use-realm" { value 4; description "Use realm for subscriber ID"; } enum "use-nas-port" { value 5; description "Use NAS port for subscriber ID"; } enum "use-nas-port-id" { value 6; description "Use NAS port ID for subscriber ID"; } enum "use-class" { value 7; description "Parse Class attribute to get subscriber ID"; } } ordered-by user; description "Subscription id components"; } } // grouping subscription-id-set grouping tdf-ifl-subscriber { description "Configure ifl subscriber"; leaf name { type string { length "1 .. 64"; } description "IFL subscriber name"; } uses apply-advanced; list access-interfaces { key "name"; max-elements 16; ordered-by user; description "Access facing interfaces"; leaf name { junos:must "("interfaces $$")"; junos:must-message "interface must be defined"; type union { type jt:interface-name; type string { pattern "<.*>|$.*"; } } description "Interface name"; } uses apply-advanced; } // list access-interfaces } // grouping tdf-ifl-subscriber grouping unified-edge-tdf-system { uses apply-advanced; container session-pics { description "Multiservice PICs used for anchoring control sessions"; uses apply-advanced; list interface { key "name"; ordered-by user; description "Interface representing multiservice PIC"; leaf name { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface name representing multiservice PIC"; } uses apply-advanced; leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } } // list interface } // container session-pics container service-pics { presence "enable service-pics"; description "Multiservice PICs used for anchoring service related data sessions"; uses apply-advanced; list interface { key "name"; ordered-by user; description "Interface representing multiservice PIC"; leaf name { type union { type jt:interface-unit; type string { pattern "<.*>|$.*"; } } description "Interface name representing multiservice PIC"; } uses apply-advanced; leaf service-mode { type enumeration { enum "maintenance" { value 0; description "Maintenance mode"; } } description "Service mode"; } } // list interface } // container service-pics } // grouping unified-edge-tdf-system } // module junos-conf-unified-edge
© 2023 YumaWorks, Inc. All rights reserved.