Proposal -1:
we will use the vserver to update the pod information in AAI (no.of pods = no.of vservers).
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "vserver-id":"example-vserver-id-val-54206", "vserver-name":"POD-NAME", "vserver-name2":"profile-name", "prov-status":"NAMESPACE", "vserver-selflink":"example-vserver-selflink-val-53168", "in-maint":true, "is-closed-loop-disabled":true, "volumes":{ "volume":[ { "volume-id":"example-volume-id-val-71602", "volume-selflink":"example-volume-selflink-val-80626" } ] }, "l-interfaces":{ "l-interface":[ { "interface-name":"example-interface-name-val-29637", "interface-role":"example-interface-role-val-49763", "v6-wan-link-ip":"example-v6-wan-link-ip-val-73419", "selflink":"example-selflink-val-83045", "interface-id":"example-interface-id-val-17917", "macaddr":"example-macaddr-val-71542", "network-name":"example-network-name-val-2842", "management-option":"example-management-option-val-16536", "interface-description":"example-interface-description-val-85643", "is-port-mirrored":true, "in-maint":true, "prov-status":"example-prov-status-val-73622", "is-ip-unnumbered":true, "allowed-address-pairs":"example-allowed-address-pairs-val-92267", "vlans":{ "vlan":[ { "vlan-interface":"example-vlan-interface-val-54497", "vlan-id-inner":70918078, "vlan-id-outer":61012074, "speed-value":"example-speed-value-val-12296", "speed-units":"example-speed-units-val-84452", "vlan-description":"example-vlan-description-val-13828", "backdoor-connection":"example-backdoor-connection-val-63476", "vpn-key":"example-vpn-key-val-54149", "orchestration-status":"example-orchestration-status-val-66103", "in-maint":true, "prov-status":"example-prov-status-val-60754", "is-ip-unnumbered":true, "is-private":true, "l3-interface-ipv4-address-list":[ { "l3-interface-ipv4-address":"example-l3-interface-ipv4-address-val-25332", "l3-interface-ipv4-prefix-length":44948626, "vlan-id-inner":90390215, "vlan-id-outer":59415181, "is-floating":true, "neutron-network-id":"example-neutron-network-id-val-49439", "neutron-subnet-id":"example-neutron-subnet-id-val-17490" } ], "l3-interface-ipv6-address-list":[ { "l3-interface-ipv6-address":"example-l3-interface-ipv6-address-val-65463", "l3-interface-ipv6-prefix-length":28285864, "vlan-id-inner":68853321, "vlan-id-outer":36358258, "is-floating":true, "neutron-network-id":"example-neutron-network-id-val-85239", "neutron-subnet-id":"example-neutron-subnet-id-val-11639" } ] } ] }, "sriov-vfs":{ "sriov-vf":[ { "pci-id":"example-pci-id-val-68804", "vf-vlan-filter":"example-vf-vlan-filter-val-66686", "vf-mac-filter":"example-vf-mac-filter-val-4844", "vf-vlan-strip":true, "vf-vlan-anti-spoof-check":true, "vf-mac-anti-spoof-check":true, "vf-mirrors":"example-vf-mirrors-val-62994", "vf-broadcast-allow":true, "vf-unknown-multicast-allow":true, "vf-unknown-unicast-allow":true, "vf-insert-stag":true, "vf-link-status":"example-vf-link-status-val-61210", "neutron-network-id":"example-neutron-network-id-val-92364" } ] }, "l-interfaces":{ "l-interface":[ { "interface-name":"example-interface-name-val-24756", "interface-role":"example-interface-role-val-99880", "v6-wan-link-ip":"example-v6-wan-link-ip-val-83433", "selflink":"example-selflink-val-37078", "interface-id":"example-interface-id-val-30028", "macaddr":"example-macaddr-val-48581", "network-name":"example-network-name-val-66290", "management-option":"example-management-option-val-75756", "interface-description":"example-interface-description-val-12906", "is-port-mirrored":true, "in-maint":true, "prov-status":"example-prov-status-val-34593", "is-ip-unnumbered":true, "allowed-address-pairs":"example-allowed-address-pairs-val-55176", "admin-status":"example-admin-status-val-64707" } ] }, "l3-interface-ipv4-address-list":[ { "l3-interface-ipv4-address":"IP_Address", "l3-interface-ipv4-prefix-length":"PORT", "vlan-id-inner":17112845, "vlan-id-outer":77792568, "is-floating":true, "neutron-network-id":"example-neutron-network-id-val-60469", "neutron-subnet-id":"example-neutron-subnet-id-val-22212" } ], "l3-interface-ipv6-address-list":[ { "l3-interface-ipv6-address":"example-l3-interface-ipv6-address-val-99899", "l3-interface-ipv6-prefix-length":78690445, "vlan-id-inner":66245854, "vlan-id-outer":11258712, "is-floating":true, "neutron-network-id":"example-neutron-network-id-val-57495", "neutron-subnet-id":"example-neutron-subnet-id-val-2203" } ], "admin-status":"example-admin-status-val-39685" } ] } } |
Proposal-2:
Pod names are not fixed. They will always change whenever the pod gets restarted. Remember pods are *NOT* like VMs.
...
So, a dynamically generated port will be allocated on the public_IP.
Observations from vFW Closed-loop:
That example has 2 parts:
...
- The other part of the vFW closed loop example is the connection made so that APPC can configure the Packet Generator in response to policy. So far, I have mimicked the steps used by the integration robot testing – and set up the APPC netconf mount to the Packet Generator manually. The 3 specific data items needed were: vnf-id, IP address and Port number. In my initial test case, the IP address was the IP of the Node and the Port was the Node Port of a Service (which will be added to the example). (see https://wiki.onap.org/display/DW/Setting+up+Closed+Loop+for+K8S+vFW+-+initial+pass#SettingupClosedLoopforK8SvFW-initialpass-SettingupaServicethePacketGeneratornetconfmount )
- If I’m following Kiran’s proposal-2 point then eventually, we’d use a Public IP:Port instead of the node values I used.
- For the service, the vserver object could be the service name.
- Once the netconf mount is done, ONAP just needs to know the vnf-id (I believe – response to policy worked without AAI having any IP info). So, while I manually performed the netconf mount, if ONAP has the ability to automatically perform the netconf mount, then AAI will need the appropriate information.
...
Also, one other thought, as Kiran proposal-2 mentions, the pod name can change – so if pod is used as vserver name, then you’d want some process to update AAI. Maybe we need to make our sample vFW VES events send something a little less volatile then pod name.
...