Network Configuration Protocol (NETCONF) is a network management protocol developed and standardized by the Internet Engineering Task Force (IETF). By using specific workflows and by uploading the required configuration files to VMware Telco Cloud Automation, you can apply certain configuration changes to your NETCONF environment.

Supported NETCONF Operations

The following NETCONF operations are supported for VMware Telco Cloud Automation version 1.8:
  • get
  • getconfig
  • edit-config
    • merge
    • replace

Prerequisites

Unlike other workflows in VMware Telco Cloud Automation that use VMware vRealize Orchestrator, the NETCONF workflow runs from the NETCONF client that is located within the Telco Cloud Automation Control Plane (TCA-CP) appliance. From a connectivity and firewall perspective, ensure that TCA-CP has access to the NETCONF server IP address and port before running the workflow.

getconfig Workflow Example

You can provide the following possible inputs:
  • NETCONF server IP.
  • User name for logging in to the NETCONF server.
  • Password for logging in to the NETCONF server.
  • Port on which the NETCONF server runs.
  • If you change the action to get, VMware Telco Cloud Automation runs the get command on the NETCONF server.
{
  "id":"netconf_getconfig_workflow",
  "name": "Netconf Get-Config Workflow",
  "description":"Netconf Get-Config Workflow",
  "version":"1.0",
  "startStep":"step0",
  "variables": [
    {"name":"vnfId", "type": "string"}
  ],
  "input": [
    {"name": "USER", "description": "Username", "type": "string"},
    {"name": "PWD", "description": "Password", "type": "password"},
    {"name": "HOSTNAME", "description": "Hostname", "type": "string"}
  ],
  "output": [
    {"name":"result", "description": "Output Result", "type": "string"}
  ],
  "steps":[
    {
      "stepId":"step0",
      "workflow":"NETCONF_WORKFLOW",
      "namespace": "nfv",
      "type":"task",
      "description": "Netconf Get-Config Workflow",
      "inBinding":[
        {"name":"action", "type":"string", "default" : "getconfig"},
        {"name": "username", "type": "string", "exportName": "USER"},
        {"name": "password", "type": "password", "exportName": "PWD"},
        {"name": "port", "type": "number", "default": "17830"},
        {"name": "hostname", "type": "string", "exportName": "HOSTNAME"}
      ],
      "outBinding": [
        {"name": "result", "type": "string", "exportName": "result"}
      ],
      "nextStep":"END"
    }
  ]
}

merge Workflow Example

You can provide the following possible inputs:
  • NETCONF server IP.
  • User name for logging in to the NETCONF server.
  • Password for logging in to the NETCONF server.
  • Port on which the NETCONF server runs.
  • XML file containing the configuration to be applied on the NETCONF server.
  • If you change the action to replace, VMware Telco Cloud Automation runs the edit-config command with the replace option.
{
  "id":"netconf_merge_workflow",
  "name": "Netconf Merge Workflow",
  "description":"Netconf Merge Workflow",
  "version":"1.0",
  "startStep":"step0",
  "variables": [
    {"name":"vnfId", "type": "string"}
  ],
  "input": [
    {"name": "USER", "description": "Username", "type": "string"},
    {"name": "FILENAME", "description": "Filename", "type": "file"},
    {"name": "PWD", "description": "Password", "type": "password"},
    {"name": "HOSTNAME", "description": "Hostname", "type": "string"}
  ],
  "output": [
    {"name":"result", "description": "Output Result", "type": "string"}
  ],
  "steps":[
    {
      "stepId":"step0",
      "workflow":"NETCONF_WORKFLOW",
      "namespace": "nfv",
      "type":"task",
      "description": "Netconf Merge Workflow",
      "inBinding":[
        {"name":"action", "type":"string", "default" : "merge"},
        {"name": "inFile", "type": "file", "exportName": "FILENAME"},
        {"name": "username", "type": "string", "exportName": "USER"},
        {"name": "password", "type": "password", "exportName": "PWD"},
        {"name": "port", "type": "number", "default": "17830"},
        {"name": "hostname", "type": "string", "exportName": "HOSTNAME"}
      ],
      "outBinding": [
        {"name": "result", "type": "string", "exportName": "result"}
      ],
      "nextStep":"END"
    }
  ]
}