cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
696
Views
0
Helpful
2
Replies

Creating Viptela Service VPN template with VPN number as variable

waqqas.jabbar
Level 1
Level 1

Hi,
I am creating a Service VPN feature template with VPN number as a variable. This feature is not supported in vManage GUI, but it works fine using the API.
I am creating feature template by making a call to POST /dataservice/template/feature/ with following payload:

    "templateName": "vedge-service-vpn-template-1",
    "templateDescription": "Service VPN template for 1 vpn on vEdge devices",
    "templateType": "vpn-vedge",
    "deviceType": [
        "vedge-cloud",
        "vedge-1000",
        "vedge-2000",
        "vedge-100",
        "vedge-100-B",
        "vedge-100-WM",
        "vedge-100-M",
        "vedge-5000",
        "vedge-ISR1100-4G",
        "vedge-ISR1100-4GLTE",
        "vedge-ISR1100-6G"
    ],
    "templateMinVersion": "15.0.0",
    "templateDefinition": {
        "vpn-id": {
            "vipObjectType": "object",
            "vipType": "variableName",
            "vipVariableName": "vpn_no_1"
        },
        "name": {
            "vipObjectType": "object",
            "vipType": "ignore",
            "vipVariableName": "vpn_name"
        },
        "ecmp-hash-key": {
            "layer4": {
                "vipObjectType": "object",
                "vipType": "ignore",
                "vipValue": "false",
                "vipVariableName": "vpn_layer4"
            }
        },
        "tcp-optimization": {
            "vipObjectType": "node-only",
            "vipType": "ignore",
            "vipValue": "false",
            "vipVariableName": "vpn_tcp_optimization"
        },
        "nat64-global": {
            "prefix": {
                "stateful": {}
            }
        },
        "nat64": {
            "v4": {
                "pool": {
                    "vipType": "ignore",
                    "vipValue": [],
                    "vipObjectType": "tree",
                    "vipPrimaryKey": [
                        "name"
                    ]
                }
            }
        },
        "route-import": {
            "vipType": "ignore",
            "vipValue": [],
            "vipObjectType": "tree",
            "vipPrimaryKey": [
                "protocol"
            ]
        },
        "route-export": {
            "vipType": "ignore",
            "vipValue": [],
            "vipObjectType": "tree",
            "vipPrimaryKey": [
                "protocol"
            ]
        },
        "host": {
            "vipType": "ignore",
            "vipValue": [],
            "vipObjectType": "tree",
            "vipPrimaryKey": [
                "hostname"
            ]
        },
        "service": {
            "vipType": "ignore",
            "vipValue": [],
            "vipObjectType": "tree",
            "vipPrimaryKey": [
                "svc-type"
            ]
        },
        "ip": {
            "gre-route": {},
            "ipsec-route": {},
            "service-route": {}
        },
        "ipv6": {},
        "omp": {
            "advertise": {
                "vipType": "ignore",
                "vipValue": [],
                "vipObjectType": "tree",
                "vipPrimaryKey": [
                    "protocol"
                ]
            },
            "ipv6-advertise": {
                "vipType": "ignore",
                "vipValue": [],
                "vipObjectType": "tree",
                "vipPrimaryKey": [
                    "protocol"
                ]
            }
        }
    },
    "factoryDefault": false

The important part is as follows

"vpn-id": {
            "vipObjectType": "object",
            "vipType": "variableName",
            "vipVariableName": "vpn_no_1"
        }

When I add this template in a device template and deploy it on a device, I have to give values of variables, as follows

            "/vpn_no_1/vpn-instance/vpn-id": "",
            "/vpn_no_1/vpn_if_name_Transport-Interface-Feature-Template-Dynamic-vEdges-1/interface/if-name": "",
            "/vpn_no_1/vpn_if_name_Transport-Interface-Feature-Template-Dynamic-vEdges-1/interface/nat": "",
            "/vpn_no_1/vpn_if_name_Transport-Interface-Feature-Template-Dynamic-vEdges-1/interface/tunnel-interface/color/value": ""

If I give these values, the device template is deployed successfully on the device.

My questions are:
- Is there something fundamentally wrong with the "variable vpn" approach? If not, why is it not supported by vMange UI (screenshot attached).
- Is it possible that the support for this feature is removed in newer version of vManage API (I am currently using vManage 20.5)
Screenshot 2021-10-12 at 1.48.43 AM.png

Looking for answers
Thanks in advance

2 Replies 2

@waqqas.jabbar i would post this question to the team at https://community.cisco.com/t5/sd-wan-and-cloud-networking/bd-p/discussions-sd-wan 

Please mark this as helpful or solution accepted to help others
Connect with me https://bigevilbeard.github.io

@bigevilbeard Thanks for pointing me to the correct forum. I was not sure it is the right forum