Cisco Crosswork Network Controller (CNC) Adapter
The
Cisco CNC adapter is an is
an adapter for the IP SDN Controller that supports the discovery of inventory, topology, IGP-ISIS, RSVP-TE, SR
policies, and L2 and L3 VPN services.
In all of the
above, the adapter uses the raw data received from the Crosswork
Network Controller through REST APIs to perform various operations.
The Crosswork Network Controller adapter is also used together
with the IOS-XR adapter in the Cisco Routed Optical Networking (RON) solution.
● For the adapter to function properly and to be able to provide
notification support and retrieve full service
information, the Cisco Network Services Orchestrator (NSO) needs to be
configured to trust the CNC server using the NSO cfp-jwt-auth package.
● The VPN services operational status field in the UI requires the Service
Health application to be installed in Crosswork Network
Controller.
The following list comprises APIs utilized by this
adapter within the Crosswork CNC. They provide access
to essential endpoints for retrieving configurations, provisioning services,
and managing network policies.
Table 1.APIs Used by the CNC Adapter
Endpoint |
Additional Information |
restconf/data/v1/cisco-resource-ems:termination-point |
Inventory and IP topology |
restconf/data/v1/cisco-resource-physical:node |
Inventory |
crosswork/cnc/api/v1/services' |
Service discovery |
crosswork/nbi/cat-inventory/v1/restconf/data/ietf-l2vpn-ntw:l2vpn-ntw/vpn-services/vpn-service={vpn_service_id}' |
Service discovery |
crosswork/nbi/cat-inventory/v1/restconf/data/ietf-l3vpn-ntw:l3vpn-ntw/vpn-services/vpn-service={vpn_service_id}' |
Service discovery |
crosswork/nbi/cat-inventory/v1/restconf/operations/cat-inventory-rpc:get-all-services' |
Service discovery |
crosswork/nbi/optima/{api_version}/restconf/data/cisco-crosswork-segment-routing-policy:sr-policies', |
SR policy discovery |
crosswork/nbi/optima/{api_version}/restconf/data/ietf-network-state:networks', |
IP topology |
crosswork/optima/api/v1/service', |
RSVP-TE discovery |
crosswork/optima/api/v1/services', |
RSVP-TE discovery |
crosswork/proxy/nso/api/running/devices/_operations/sync-from' |
Provisioning through NSO |
crosswork/proxy/nso/restconf/data/cisco-ron-cfp:ron/ron-ml-plan', |
|
crosswork/proxy/nso/restconf/data/cisco-ron-cfp:ron/ron-ml', |
|
crosswork/proxy/nso/restconf/data/cisco-sr-te-cfp:sr-te/cisco-sr-te-cfp-sr-policies:policies' |
|
crosswork/proxy/nso/restconf/data/tailf-ncs:devices/device={node_id}/' |
|
crosswork/proxy/nso/restconf/data/tailf-ncs:devices/tailf-ncs:device={node_id}' |
|
crosswork/proxy/nso/restconf/streams/service-state-changes/json' |
The
following table lists the tested devices and their
versions supported by the CNC adapter.
Table
2.Versions Supported by the CNC Adapter
Controller Version |
Tested Devices |
Device Versions
Tested |
CNC 6.0 |
XRv |
7.11.1 |
NCS57B1/NCS57C3/NCS5500/NCS540/NCS540L |
7.11.1 |
|
C8201/8201-32FH |
7.11.1 |
|
ASR9903 |
7.11.1 |
Table
3.Network Discovery Details for
the CNC Adapter
Discovery and Visualization |
Provisioning |
|||
Inventory |
Topology |
Services |
PMs |
|
Inventory Ports. Other Inventory
Devices (PSUs, Cards, and Fans) IGP Devices. |
Router Physical, Router Logical, IGP IS-IS, RSVP-TE, SR Policy, L2VPN,
L3VPN. Note: In the RON use case, the
physical information comes from the IOS-XR adapter. |
L3VPN L2VPN (E-Lines: EVPN, TLDP). |
PMs are collected by the CDG adapter |
RON link (ZR/ZR+) |
Table
4.Inventory Parameter Details for
the CNC Adapter
Parameter |
IGP Device |
domain_name |
Yes |
igp_type |
Yes |
isis_info |
Yes |
name |
Yes |
router_id |
Yes |
sr_capabilities |
Yes |
Table
5.Port Item Attributes for the CNC
Adapter
Attribute |
Router Physical |
Router Logical |
Router Aggregate |
IGP |
adjacency |
No |
Yes |
No |
No |
admin_groups |
No |
Yes |
No |
Yes |
admin_status |
Yes |
Yes |
Yes |
Yes |
desc |
Yes |
Yes |
Yes |
No |
device |
Yes |
Yes |
No |
Yes |
eth_port_type |
Yes |
No |
No |
No |
if_index |
Yes |
No |
No |
No |
is_loopback |
No |
Yes |
No |
No |
lower_ports |
Yes |
Yes |
No |
No |
is_management |
No |
Yes |
No |
No |
name |
Yes |
Yes |
Yes |
Yes |
oper_status |
Yes |
Yes |
Yes |
Yes |
parent |
Yes |
Yes |
Yes |
Yes |
physical_address |
Yes |
No |
No |
No |
primary_ip |
No |
Yes |
No |
No |
provider |
Yes |
Yes |
Yes |
Yes |
is_router_id |
No |
Yes |
No |
No |
upper_ports |
No |
No |
Yes |
No |
igp_metric |
No |
No |
No |
Yes |
ip_address |
No |
No |
No |
Yes |
is_router_id |
No |
No |
No |
Yes |
isis_info |
No |
No |
No |
Yes |
max_link_bandwidth |
No |
No |
No |
Yes |
sr_prefix_sids |
No |
No |
No |
Yes |
te_metric |
No |
No |
No |
Yes |
unnumbered_interface_id |
No |
No |
No |
Yes |
Table
6.Link Item Attributes for the CNC
Adapter
Attribute |
Router Physical |
Router Logical |
LSP |
IGP |
SR Policy |
SR Segment |
is_bidi |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
desc |
Yes |
Yes |
No |
No |
No |
Yes |
hold_priority |
No |
No |
Yes |
No |
No |
No |
lsp_technology |
No |
No |
Yes |
No |
No |
No |
mapping_status |
Yes |
Yes |
No |
No |
No |
No |
name |
Yes |
Yes |
Yes |
No |
No |
No |
oper_status |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
paths |
Yes |
Yes |
No |
No |
No |
No |
port_a |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
port_b |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
protection_status |
No |
No |
Yes |
Yes |
Yes |
Yes |
provider |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
role |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
setup_priority |
No |
No |
Yes |
No |
No |
No |
adjacency_segment_info |
|
|
|
No |
No |
Yes |
binding_sid |
|
|
|
No |
Yes |
No |
candidate_paths |
|
|
|
No |
Yes |
No |
color |
|
|
|
No |
Yes |
No |
name |
|
|
|
Yes |
Yes |
Yes |
path_group_type |
|
|
|
Yes |
Yes |
Yes |
prefix_segment_info |
|
|
|
No |
No |
Yes |
sr_adjacency_sids |
|
|
|
Yes |
No |
No |
segment_type |
|
|
|
No |
No |
Yes |
sid_index |
|
|
|
No |
No |
Yes |
sid_label |
|
|
|
No |
No |
Yes |
Table 7.Field Information for UNI Port Configuration
Field |
Is Filled |
Additional Information |
Name |
Yes |
|
Device |
Yes |
|
Parent |
Yes |
|
Provider |
Yes |
|
MtuSize |
Yes |
|
AdminStatus |
Yes |
|
OperStatus |
Yes |
|
LowerPorts |
Yes |
|
ContainingService |
Yes |
|
L2VpnSpecific |
Maybe |
Depending on the VPN type,
and only if the UNI port has no Virtual UNI (V-UNI) ports |
L3VpnSpecific |
Maybe |
Only if the UNI port has
no V-UNI ports. |
MappedCeTags |
Maybe |
Only if the UNI port has
no V-UNI ports. |
desc |
Yes |
|
allToOneBundling |
Yes |
True if port has no V-UNIs |
ingress_bandwidth_profile |
No |
|
upperPorts |
Yes |
Filled for UNI ports that
have associated V-UNI ports. |
Virtual
UNI ports are only created for services that use sub-interfaces (such as a
service that is configured over HundredGigE0/0/0/1.100).
Table 8.Field Information for Virtual UNI Port Configuration
Field |
Is Filled |
Additional Information |
Name |
Yes |
|
Device |
Yes |
|
Parent |
Yes |
|
Provider |
Yes |
|
AdminStatus |
Yes |
|
OperStatus |
Yes |
|
LowerPorts |
Yes |
|
ContainingService |
Yes |
|
ElineSpecific |
Maybe |
Only one of these, depending
on the VPN type |
L2VpnSpecific |
Maybe |
|
L3VpnSpecific |
Maybe |
|
MappedCeTags |
Yes |
The port’s VLAN |
mtu_size |
Yes |
|
desc |
Yes |
|
ingressBandwidthProfile |
No |
|
TAttributes of L2VPN Service – Multipoint
EVPN Service
Field |
Is Filled |
Additional Information |
name |
Yes |
Service name |
Type |
Yes |
Always L2 VPN |
OperStatus |
Yes |
Requires the “Service
Health” application to be installed on CNC |
AdminStatus |
Yes |
|
anyToAnyOrHubRouteTarget |
Yes |
|
spokeRouteTarget |
Yes |
For services with HUB-SPOKE
topology |
containedPorts |
Yes |
|
deploymentState |
Yes |
|
provider |
Yes |
In this context: Cisco CNC
adapter |
vpnTopology |
Yes |
ANY-TO-ANY, HUB-SPOKE |
vpnType |
Yes |
EVPN |
Attributes of L2VPN Service – Multipoint EVPN Link
Field |
Is Filled |
Additional Information |
guid |
Yes |
Service name |
layer |
Yes |
Always L2 VPN |
pathGroupType |
Yes |
SINGLE_PATH |
portA |
Yes |
|
portB |
Yes |
For services with HUB-SPOKE
topology |
provider |
Yes |
L3 VPN persistor |
role |
Yes |
Regular |
Attributes of L2VPN Service – E-Line Service
Field |
Is Filled |
Additional Information |
name |
Yes |
Service name |
desc |
Yes |
The description will be
one of the following: “EVPN-VPWS E-line” “TLDP E-line service” |
Type |
Yes |
Always E-Line |
OperStatus |
Yes |
Requires the “Service
Health” application to be installed on CNC |
AdminStatus |
Yes |
|
containedPorts |
Yes |
|
provider |
Yes |
In this context: Cisco CNC
adapter |
ServiceIntentRelation |
Yes |
NO_MATCHING_INTENT (will
change once E-Line services can be provisioned through the CNC adapter) |
EvpnInstance |
Yes |
Only filled for EVPN-VPWS E-line
services |
Attributes of L2VPN Service – E-Line Link
Field |
Is Filled |
Additional Information |
bidi |
Yes |
|
ceVlanCosPreservation |
Yes |
|
name |
Yes |
Service name |
desc |
Yes |
The description will be
one of the following: “EVPN-VPWS E-line” “TLDP E-line service” |
layer |
Yes |
E-line |
OperStatus |
Yes |
Requires the “Service
Health” application to be installed on CNC |
PortA |
Yes |
|
PortB |
Yes |
|
provider |
Yes |
In this context: Cisco CNC
adapter |
EvpnInstance |
Yes |
Only filled for EVPN-VPWS E-line |
role |
Yes |
Regular |
Attributes of L2VPN Service - Pseudowire
Link
Field |
Is Filled |
Additional Information |
name |
Yes |
“evi {EvpnInstance}” for
EVPN-VPWS “vc-id {vc-id}” for TLDP |
desc |
Yes |
"pseudowire of service {service_name}” |
layer |
Yes |
Always “PSEUDO_WIRE” |
OperStatus |
Yes |
|
PortA |
Yes |
|
PortB |
Yes |
|
provider |
Yes |
In this context: Cisco CNC
adapter |
VcId |
Yes |
Only filled for TLDP E-Line
services |
PathGroup |
Yes |
|
Role |
Yes |
|
vcId |
Yes |
|
Attributes of L3VPN Services
Field |
Is Filled |
Additional Information |
name |
Yes |
Service name |
desc |
Yes |
Service description |
customer_name |
Yes |
Customer name associated
with the service |
customer_details |
Yes |
Customer details
description |
admin_status |
Yes |
Administrative status of the
service |
oper_status |
Yes |
Operational status of the service |
provider |
Yes |
In this context: Cisco CNC
adapter |
vpn_topology |
Yes |
|
Provisioning
Types Supported by the CNC Adapter
Type |
Is Supported |
Additional Information |
IP-Link (ZR/+) |
Create, Delete |
Modify is not
supported |
Extend IP-Link
(ZR/+) BW |
Supported |
Augment an
existing LAG of ZR interfaces with an additional member |
SR-Policy |
Create, Delete |
Modify is not
supported |
Optical port
configuration |
Port shut, power, frequency |
Both configure and GET are supported |
Statistics are supported by the CDG Adapter.
Configuration
Parameters for the CNC Adapter
Name |
Description |
Default |
Range |
Adapter
Properties |
|
|
|
Enabled |
Enable/disable
the adapter. |
False |
|
Logging Level |
The logging
level at which the discovery cycle will be reported in the adapter’s log. |
INFO |
DEBUG, INFO,
WARNING, ERROR, CRITICAL |
Full Data
Fetch Interval [sec] |
Poll every X
seconds. |
3600 |
Min: 0 |
Max run time
for a single discovery cycle [sec] |
The maximum run
time for a single discovery cycle in seconds. This prevents endless cycles
which will put the adapter into a deadlock. Note: Ensure
that this parameter is not set to the same value as the Full Data Fetch
Interval. |
600 |
Min: 20 |
Enable
provisioning support |
Must be set to
“true” if the adapter is used for provisioning in the RON solution. |
False |
|
Should the DM
reports be only for IGP discovered devices? |
Enable this for RON use case. |
False |
|
Server
Configuration |
CNC
server information to be used for adapter connection |
|
|
Host |
The server
host. |
|
|
Port |
The server
port. |
30603 |
1 - 65535 |
Timeout [sec] |
The server
timeout in seconds. |
30 |
Min: 0 |
API Version |
The API version. |
V2 |
V1, V2 |
Credentials |
Credentials are
defined in the “Credentials” tab of the Device Manager. |
|
HTTP
credentials |
Notifications
Configuration |
Used
to enable and customize the configuration of notifications with CNC. You can
choose to register the notifications as per your requirement. |
|
|
Enabled |
Should the
notifications listener be initialized or not? |
False |
|
Log_notifications |
Should the
adapter log each notification in the log or not? |
True |
|
Log level |
The logging
level at which the notifications will be reported in the adapter’s log |
INFO |
DEBUG, INFO,
WARNING, ERROR, CRITICAL |
Congestion
control period [sec] |
The maximum silent
period between the last notification and the start of the discovery cycle. |
25 |
Min: 0 |
Maximum
notification flood time [sec] |
The maximum
amount of time to wait between the first notification and the discovery cycle
start. This essentially serves as a cap for the “Congestion control period”. |
30 |
Min: 30 |
Vpn_service |
Whether VPN service
notifications are enabled or disabled. |
False |
CREATE,
DELETE, and UPDATE |
File-bringer
Configuration |
Used
to feed the adapter with local collection files instead of polling the CNC
server. |
|
|
Enabled |
Should the
file-bringer be enabled or not? If the file-bringer
is enabled, the adapter will ignore the server’s configuration and will try
to fetch static files using the file-bringer configuration. |
False |
|
Remote address
with file pattern |
For local
files, use “file://<PATH-STARTING-IN-THE-ARCHIVE-DIRECTORY>” |
|
Pattern:
^(ftp|sftp|file|https):\\/\\/(([a-z0-9A-Z\\.\\-_]+)(:(\\d+))?)?(\\/?[^:]+)$ |
Credentials |
Credentials
are defined in the “Credentials” tab of Device Manager. |
|
. |
Collection
Parameters |
Used
to customize the collection of parameters that the adapter will use in a
specific installation. |
|
|
Enable Inventory
and Topology Collection |
Whether the inventory
and topology collection are enabled or disabled. |
False |
|
IGP domain Name |
Only letters, numbers,
underscores, and dashes are allowed. |
cnc-default-domain |
Pattern:
(^[a-zA-Z0-9_\\-]*$) |
Enable L1 IGP
IS-IS Collection |
Whether the L1
IGP IS-IS collection is enabled or disabled. |
False |
|
Enable L2 IGP
IS-IS Collection |
Whether the L2
IGP IS-IS collection is enabled or disabled. |
False |
|
IGP IS-IS
Priority |
The IGP IS-IS
priority. |
1 |
Min: 1 |
Enable Sr-Policy
Collection |
Whether the SR
policy collection is enabled or disabled. |
False |
|
Enable Rsvp-Te Collection |
Whether the RSVP-TE
collection is enabled or disabled. |
False |
|
Enable L3VPN
Collection |
Whether the L3VPN
collection is enabled or disabled. |
False |
|
Enable L2VPN
Collection (multipoint and elines) |
Whether the L2VPN
collection is enabled or disabled. |
False |
|
Provisioning
Parameters |
|
|
|
IP-Link create
timeout |
IP-link creation
involves a complex mechanism which requires a longer timeout setting to
complete the provisioning process. The IP-Link create timeout value must be
coordinated with the timeout value in the Services Manager app, otherwise the
Services Manager app will give a timeout error on the create request. |
120 |
Min: 10 |
Cnc_nso_conn_ned |
The NED to be
used for interacting with NSO. This depends on the specific setup and what is
installed and enabled on it. |
CLI_NED |
CLI_NED,
NETCONF_NED |
HyperLinker Rules Configuration |
|
|
|
Enabled |
Whether the
hyper linker rules are enabled or disabled for the selected adapter. |
False |
|
HyperLinker Rules Interval Checking
[sec] |
The time
between hyper linker rules checks. |
600 |
Min: 60 |
This section lists the limitations on the Crosswork Network Controller adapter.
·
Only IPv4 ports including UNIs are
collected.
·
IGP collection is supported
only for IS-IS.
·
RSVP-TE discovery includes only
configuration data for RSVP-TE from NSO through the CNC proxy. For dynamic
RSVP-TE tunnels, no path will be discovered.
·
VPN operational status requires
the “Service Health” application to be installed in CNC.
·
Service plan information coming
from CNC/NSO is not discovered. This includes Auto-RT and EVI ID.
·
IP links that are not up are
not discovered (CNC limitation).
·
CNC ports have these missing
fields: RSVP information and endpoint service capability.
·
There is no support for aggregation
port members.
·
Logical aggregation ports are
modeled. Router physical aggregation ports/links are not modeled.
·
Monitoring operations are not
supported.