Configuring SRC ACP to Manage the Backbone Network (SRC CLI)
The tasks to configure SRC ACP to manage the backbone network are:
- Configuring Network Interfaces in the Directory for the Backbone Network
- Extending SRC ACP Congestion Points for the Backbone Network
- Configuring Action Congestion Points
- Configuring Bandwidths for Services in the Backbone Network
- Configuring Congestion Points for Services in the Backbone Network
- Using Functions for Backbone Congestion Point Classification Scripts
- Configuring Congestion Point Profiles in the Directory
- Assigning Interfaces to Congestion Point Profiles
Configuring Network Interfaces in the Directory for the Backbone Network
You configure network interfaces in the directory in the same way for edge and backbone congestion points.
- For backbone congestion points, add only VRs and their interfaces. For information about this procedure, see Configuring Network Interfaces in the Directory for the Edge Network.
Extending SRC ACP Congestion Points for the Backbone Network
You can extend SRC ACP congestion points to initialize and execute applications defined in a backbone congestion point.
SRC ACP provides a service provider interface (SPI) to:
- Create custom congestion point applications that authorize service activation and track service start and stop events.
- Obtain congestion point information from remote update.
- Retrieve congestion point status.
- Track congestion point state.
The SPI for ACP provides a Java interface that a congestion
point application implements. For information about the SPI for ACP,
see the SDK documentation in the SDK+AppSupport+Demos+Samples.tar.gz
file on the Juniper Networks Web site at: https://www.juniper.net/support/products/src/index.html. You can locate the files in the SDK/doc/acp
directory.
The implementation of the SPI for ACP can be a customized application that performs certain tasks, such as creating or removing congestion points on the router. SRC ACP acts as an interface tracking plug-in, and interface tracking events are treated as remote updates for congestion points when they are created, modified, or removed.
SRC ACP supports applications written in Java or Jython. For scripts written in Java, you must compile and package the implemented SPI for ACP to make it available for use by SRC ACP. A Java implementation can include more than one Java archive (JAR) file.
To use congestion point applications with SRC ACP, configure an action congestion point that references the script.
Configuring Action Congestion Points
You can define an application in a backbone congestion point so that SRC ACP can execute it in a predefined manner. Backbone congestion points that are configured to run an application are called action congestion points. If you want to use an action congestion point to execute an application that requires real-time congestion point status, you must enable SRC ACP state synchronization with the SAE).
Before you configure an action congestion point, make sure that you know the location of the application file.
Use the following configuration statements to configure action congestion points:
To configure an action congestion point:
- From configuration mode, access the configuration statement
that configures network interfaces. user@host# edit shared admission-control device name interface name
Enter the name of the network device and the name of the virtual router.
- (Optional) Specify the file type of the application. [edit shared admission-control device name interface name] user@host# set action-type (url | python | java-class | java-archive);
- (Optional) Specify the name of the class implementing
the SPI. [edit shared admission-control device name interface name] user@host# set action-class-name action-class-name
- (Optional) Specify the URL or the content of the file.
For action congestion point implementations written in Java of the
url action type, configure the URL that specifies the location of
the Java archives (.jar files) containing the
action congestion point implementation. For other action types, you
must load the action congestion point implementation with the action
file name option.[edit shared admission-control device name interface name] user@host# set action-file-url action-file-url
- (Optional) Specify the parameter as an attribute=value
pair. [edit shared admission-control device name interface name] user@host# set action-parameters [action-parameters...]
- (Optional) Load the local file that contains the action
congestion point implementation. This file is the uncompiled Python
source code or the compiled result of the Java file (binary .class or .jar file).[edit shared admission-control device name interface name] user@host# set action-file-name action-file-name
- (Optional) Verify your configuration.
[edit shared admission-control device name interface name] user@host# show
Configuring Bandwidths for Services in the Backbone Network
To configure bandwidths for services in the same way for edge and backbone congestion points:
Configuring Congestion Points for Services in the Backbone Network
You must assign a congestion point to each service that SRC ACP manages. When SRC ACP receives a service authorization event, congestion points for a service session can be determined by:
- Congestion point classification
- Congestion point profiles
To configure congestion points with congestion point classification:
- From configuration mode, access the configuration statement
that configures services. user@host# edit services global service name admission-control congestion-point-classification
For more information about services, see Services for the SRC Software Overview.
- Specify the backbone congestion point expression. [edit services global service name admission-control congestion-point-classification] user@host# set expression [expression...]
The syntax for a backbone congestion point expression is defined in the format <NetworkDevice>/<NetworkInterface>/<InstanceID> which maps to a congestion point.
- <NetworkDevice>—Network device listed in the directory.
- <NetworkInterface>—Network interface listed in the directory.
- <InstanceID>—Name of an instance of a congestion point that is automatically created.
For information about congestion point expressions, see Congestion Point Expressions. For information about the attributes that can be embedded in the expression, see Plug-In Attributes for Use with Backbone Congestion Point Expressions.
- (Optional) Specify the backbone congestion point script. [edit services global service name admission-control congestion-point-classification] user@host# set script script
For information about congestion point functions, see Using Functions for Backbone Congestion Point Classification Scripts.
To configure congestion points with congestion point profiles:
- From configuration mode, access the configuration statement
that configures services. user@host# edit services global service name admission-control
For more information about services, see Services for the SRC Software Overview.
- (Optional) Specify the backbone congestion points. This
value is ignored if you configure congestion points with congestion
point classification. [edit services global service name admission-control] user@host# set congestion-points [congestion-points...]
The backbone congestion point is defined in the format <-vrName->/<-serviceName->, which locates a congestion point profile that contains a list of congestion points.
- To allow the software to automatically define the congestion point, use the entry <-vrName->/<-serviceName->. When SRC ACP starts operating, it will substitute the VR name and the service name from the request for service activation.
- To restrict the congestion point to a specific VR or service, enter the actual VR name or service name.
Plug-In Attributes for Use with Backbone Congestion Point Expressions
These plug-in attributes must be available for service authorization and service tracking events.
accountingId
- Value of accountingUserId attribute.
ifRadiusClass
- RADIUS class attribute on the JunosE interface.
- Value—String array
- Example—ifRadiusClass=“acpe”
ifSessionId
- Identifier for RADIUS accounting on the JunosE interface.
interfaceAlias
- Description of the interface.
- Value—Interface description that is configured on the JunosE router with the interface ip description command
- Example—interfaceAlias=“dhcp-subscriber12”
interfaceDescr
- Alternate name for the interface that is used by SNMP. This name is a system-generated name.
- Value
- On a JunosE router, the format of the description is
ip<slot>/<port>.<subinterface>
- On the device running Junos OS, interfaceDescr is the same as interfaceName.
- On a JunosE router, the format of the description is
- Example—interfaceDescr=“IP3/1”
interfaceName
- Name of the interface.
- Value
- Name of the interface in your router CLI syntax
- FORWARDING_INTERFACE for routing instance (used by traffic mirroring)
- Example—For JunosE routers: interfaceName=“fastEthernet6/0”
For devices running Junos OS: interfaceName=“fe-0/1/0.0”
For forwarding interface: interfaceName=“FORWARDING_INTERFACE”
localQosProfiles.<layer name>
- Local QoS profile in the specified layer. Local QoS profiles refer to profiles that are attached using the JunosE router CLI or the Service Manager and not through a SAE.
- Value—String
- The <layer name> is one of the following values: ip, ipv6, lac, svlan, vlan, ethernet, atmVp, atmVc, atm, bridge, frVc, ipTunnel, l2tpTunnel.
- Example—Specifying “localQosProfiles.vlan” returns the name of the QoS profile in the VLAN layer.
loginName
- Subscriber's login name.
- Value—Login name
- Guidelines—The format of the login name varies. A loginName can be of form subscriber, domain\subscriber, subscriber@domain, or as otherwise defined by the login setup of the manager.
- Example—idp@idp
nasIp
- IP address of the router.
- Value—String
nasPort
- Numeric identifier that the router uses to identify the interface to RADIUS.
- Value—Integer
portId
- Port identifier of an interface.
- Value—Includes interface name and additional layer 2 information
- Example—portId=“fastEthernet 3/1” (There is a space between fastEthernet and slot number 3/1 in the nasPort field.)
primaryUserName
- PPP login name or the public DHCP username.
- Value—Subscriber name
- Example—primaryUserName=“peter”
radiusClass
- RADIUS class attribute of the service definition.
- Value—String
- Example—radiusClass=“Premium”
serviceName
- Identifier of the service.
serviceScope
- Identifier of the service scope.
serviceSessionName
- Identifier of the service session.
serviceSessionTag
- Tag for the service session.
sspHost
- Name of host on which the SAE is installed.
substitutions.<substitution name>
- Substitution with the specified name passed in at service activation.
userIp
- IP address of the subscriber.
- Value—String
userMacAddress
- Media access control (MAC) address of the DHCP subscriber.
- Value—Valid MAC address
- Example—userMacAddress=“00:11:22:33:44:55”
userType
- Type of subscriber.
vrName
- Name of virtual router.
- Value—Virtual router name in the format <virtualRouter>@<router>
- Example—vrName=“default@e_series5”
Using Functions for Backbone Congestion Point Classification Scripts
SRC ACP provides the following functions to use in backbone congestion point classification scripts:
- getNicProxy(name)—Get the NIC proxy defined under
the current SRC ACP configuration group.
- name—The name of the NIC proxy as defined under the SRC ACP configuration group.
- nicLookupSingle(name, nicKey, constraints)—Perform
a NIC lookup using the specified NIC key and constraints with the
NIC proxy defined under the current SRC ACP shared configuration group.
The NIC key must uniquely identify a NIC value. If more than one result
matches the same key, this function will raise the AmbiguousKeyException
exception.
- name—Name of the NIC proxy.
- nicKey—String used as key for NIC lookup.
- constraints (optional)—Map of NIC constraint information associated with the NIC key.
This function returns the lookup result as (nicValue, intermediateValues), where intermediateValues is a map of the intermediate name and value pair.
- nicLookup(name, nicKey, constraints)—Perform a NIC
lookup using the specified NIC key and constraints for the NIC proxy
defined under the current SRC ACP shared configuration group.
- name—Name of the NIC proxy.
- nicKey—String used as key for NIC lookup.
- constraints (optional)—Map of NIC constraint information associated with the NIC key.
This function returns the lookup result as an array of (nicValue, intermediateValues), where intermediateValues is a map of the intermediate name and value pair.
- nicInvalidateLookup(name, nicKey, nicValue, constraints)--Used
to signal to a NIC proxy that a key/value pair (returned from one
of the lookup methods) resulted in a failure when the value was used.
If the NIC proxy has this result cached, it will be removed from the
cache.
- name—Name of the NIC proxy.
- nicKey—A string used as NIC key that was passed to the previous lookup operation.
- nicValue—The NIC value returned from the previous lookup operation.
- constraints(optional)—Map of NIC constraint information associated with the NIC key.
- slot(nasPortId)—Collects the slot number from the nasPortId or interfaceName.
- port(nasPortId)—Collects the port number from the nasPortId or interfaceName.
- l2id(nasPortId)—Collects the layer 2 ID from the nasPortId (VLAN id or ATM vpi.vci).
- escape(string)—Replaces any slash with the escape sequence \/.
Configuring Congestion Point Profiles in the Directory
If you are using congestion point classification, you do not need to configure congestion point profiles.
To configure individual backbone congestion point profiles:
- From configuration mode, access the configuration statement
that configures congestion point profiles. user@host# edit shared congestion-points profile name
Enter the name of the virtual router that supports the congestion point.
- (Optional) Verify your configuration.
[edit shared congestion-points profile name] user@host# show
Assigning Interfaces to Congestion Point Profiles
If you are using congestion point classification, you do not need to assign interfaces to congestion point profiles.
You must assign interfaces either to VRs or to individual services under the VRs. Services inherit interface assignments from the associated VR unless you assign an interface to the individual service. This network interface lists the DNs of interfaces associated with backbone congestion point profiles.
Use the following configuration statements to configure interface assignments:
To assign interfaces to congestion point profiles:
- From configuration mode, access the configuration statement
that configures congestion point profiles. user@host# edit shared congestion-points profile name
Enter the name of the network device to which you want to assign the congestion point profile.
- (Optional) Specify the interfaces associated with a congestion
point profile for this subscriber. [edit shared congestion-points profile name] user@host# set interface interface
- (Optional) Verify your configuration.
[edit shared congestion-points profile name] user@host# show