Problem to setup a vnffgd

Asked by Leonardo Ferreira

Hello everyone!

I'm trying to use the service of VNFFG in tacker and i'm using the TOSCA templates described here for a simple test:

But during building the VNFFGD by the command:

tacker vnffgd-create --vnffgd-file tosca-vnffgd-sample.yaml vnffgd_01 (Like described in here:

I get the error message:

"tosca-parser failed: -
The pre-parsed input failed validation with the following error(s):

 UnknownFieldError: Group Type tosca.groups.nfv.VNFFG contains unknown field "requirements". Refer to the definition to verify valid values."

The complete error:

Any solutions?



I'm using tacker (master branch) in the Mitaka version of the Devstack.

Question information

English Edit question
tacker Edit question
venkatamahesh Edit question
Last query:
Last reply:
Revision history for this message
Tim Rozet (trozet) said :

I tried the example on my setup and it seems to work OK. Do you have the word 'requirements' in your VNFFG? That seems to be what the error is complaining about.

[root@overcloud-controller-0 neutron]# cat tosca-vnffgd-sample.yaml
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0

description: Sample VNFFG template

  description: Sample VNFFG template


      type: tosca.nodes.nfv.FP.Tacker
      description: creates path (CP12->CP22)
        id: 51
          type: ACL
            - network_src_port_id: 640dfd77-c92b-45a3-b8fc-22712de480e1
            - destination_port_range: 80-1024
            - ip_proto: 6
            - ip_dst_prefix:
          - forwarder: VNFD1
            capability: CP12
          - forwarder: VNFD2
            capability: CP22

      type: tosca.groups.nfv.VNFFG
      description: HTTP to Corporate Net
        vendor: tacker
        version: 1.0
        number_of_endpoints: 5
        dependent_virtual_link: [VL12,VL22]
        connection_point: [CP12,CP22]
        constituent_vnfs: [VNFD1,VNFD2]
      members: [Forwarding_path1]
[root@overcloud-controller-0 neutron]# tacker vnffgd-create --vnffgd-file tosca-vnffgd-sample.yaml test_new2
Created a new vnffgd:
| Field | Value |
| description | |
| id | 5ce7bd0d-590a-4a12-a502-1f436dd070b0 |
| name | test_new2 |
| template | {"vnffgd": {"imports": ["/usr/lib/python2.7/site-packages/tacker/vnfm/tosca/lib/tacker_defs.yaml", "/usr/lib/python2.7/site- |
| | packages/tacker/vnfm/tosca/lib/tacker_nfv_defs.yaml"], "description": "Sample VNFFG template", "topology_template": {"node_templates": {"Forwarding_path1": {"type": |
| | "tosca.nodes.nfv.FP.Tacker", "description": "creates path (CP12->CP22)", "properties": {"policy": {"type": "ACL", "criteria": [{"network_src_port_id": "640dfd77-c92b-45a3 |
| | -b8fc-22712de480e1"}, {"destination_port_range": "80-1024"}, {"ip_proto": 6}, {"ip_dst_prefix": ""}]}, "path": [{"capability": "CP12", "forwarder": "VNFD1"}, |
| | {"capability": "CP22", "forwarder": "VNFD2"}], "id": 51}}}, "description": "Sample VNFFG template", "groups": {"VNFFG1": {"type": "tosca.groups.nfv.VNFFG", "description": |
| | "HTTP to Corporate Net", "members": ["Forwarding_path1"], "properties": {"vendor": "tacker", "connection_point": ["CP12", "CP22"], "version": 1.0, "constituent_vnfs": |
| | ["VNFD1", "VNFD2"], "number_of_endpoints": 5, "dependent_virtual_link": ["VL12", "VL22"]}}}}, "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0"}} |
| tenant_id | 40771b2ef8394fc8b1323dce8cb73029 |
[root@overcloud-controller-0 neutron]#

My version of tosca-parser shows:
[root@overcloud-controller-0 neutron]# pip freeze | grep tosca-parser

Revision history for this message
venkatamahesh (venkatamaheshkotha) said :

There is no wrong in the template. It is working. please check the template once


Revision history for this message
Leonardo Ferreira (ferreirasc) said :

Thank you all for your replies!

I've updated my devstack (and tacker) to stable/newton and now i'm able to create a VNFFG descriptor. Great. :-)

But i'm still having problems with vnffg-create. Again, i'm using the TOSCA templates described in the github of tacker and once i create the two VNFs (called "VNF1" and "VNF2"), i'm trying this command to create my VNFFG:

tacker vnffg-create --vnffgd-name vnffgd_example --vnf-mapping VNF1:'411ef773-3d55-4341-9a67-326c81f706c6', VNF2:'5ab9abef-2384-4b3b-b3bb-c24487ec774d'

and i get the error message:

"need more than 1 value to unpack"

I think that i probably didn't provide an argument on the command line... but is the same command described in VNFFG template guide.

* My tosca-parser is 0.6.0 too.

Revision history for this message
venkatamahesh (venkatamaheshkotha) said :


In your cli to create vnffg you didn't mention the name for vnffg.

Revision history for this message
Nathan Saraiva (nsaraiva83) said :


I have the same problem but I put the name for vnffg . I used the doc ( and used the command:

 tacker vnffg-create --vnffgd-name myvnffgd --vnf-mapping VNFD1:VNF1,VNFD2:VNF2 myvnffg


Request Failed: internal server error while processing your request.

I have the OVS 2.5.0 installed. I am running on Ubuntu 14.04.
Could you help me?

Revision history for this message
Nathan Saraiva (nsaraiva83) said :

I already resolved. Missed change the network_src_port_id.

Revision history for this message
Trinh Nguyen (dangtrinhnt) said :

Hi, I know this thread is quite old now but it comes with using a non-standard TOSCA property 'path' instead of 'requirements'. Is there any reason why we use path instead of requirements?

Revision history for this message
Tim Rozet (trozet) said :

We had to use path because there was some limitaitons with using requirements as we inherited the type from tosca parser:

So to work around this we created our own type:

Can you help with this problem?

Provide an answer of your own, or ask Leonardo Ferreira for more information if necessary.

To post a message you must log in.