The code name is odl-genius-ui. The integration test code is available under the genius folder of integration repo.
Genius project provides Generic Network Interfaces, Utilities & Services. Any ODL application can use these to achieve interference-free co-existence with other applications using Genius.
In Carbon release cycle following enhancements and new features will be added -
Apart from sanity and regression test of existing modules/features, additional tests will be added for verification of above mentioned features.
Please refer to design specifications of new features at following location -
http://docs.opendaylight.org/en/latest/submodules/genius/docs/index.html
Not Applicable
Not Applicable
Not Applicable
Not Applicable
Recommended features for karaf testing:
This feature provides REST to configure the ITM, Interface, ID manager. The tests have to include:
Sample Test Configurations - REST
The Following example provides some of the REST Calls and their sample JSON data. The REST Calls can be made by the Openstack, if you have openstack installed and the ODL_MANAGER configured with the ODL IP, Otherwise you can achieve this from Postman or any similar REST Clients.
1. Create a Vxlan / GRE Tunnel: (Creates Internal Transport Manager between two OVS)
URL : http://localhost:8080/restconf/config/itm:transport-zones/
{ "transport-zone": [ { "zone-name": "transport zone name", "subnets": [ { "prefix":"subnet/24", "vlan-id":0, "vteps": [ { "dpn-id": DPN 1 Id, "portname": "port name", "ip-address":"DPN 1 Ip address" }, { "dpn-id": DPN 2 Id, "portname": "port name", "ip-address":"DPN 2 Ip address" } ], "gateway-ip":"gateway ip / 0.0.0.0" } ], "tunnel-type": "odl-interface:tunnel-type-vxlan/ odl-interface:tunnel-type-gre" } ] }
2. L2Vlan trunk Interface Creation :
URL: http://localhost:8080/restconf/config/ietf-interfaces:interfaces/
{ "interface": [ { "name": "interface name", "type": "iana-if-type:l2vlan", "l2vlan-mode":"trunk/transparent", "odl-interface:parent-interface": "tap port name", "enabled": "true" }] }
Create member interface for the Parent interface created: (Creates a member interface for the trunk interface created using above Json)
URL : http://localhost:8080/restconf/config/ietf-interfaces:interfaces/
{ "interface": [ { "name": "member interface name", "type": "iana-if-type:l2vlan", "l2vlan-mode":"trunk-member", "vlan-id": Vlan Id, "odl-interface:parent-interface": "parent interface name", "enabled": "true" } ] }
3. Binding Service to the Parent interface created: (Binds service for the parent interface):
{ "bound-services": [ { "service-name": "service1", "flow-priority": "5", "service-type": "service-type-flow-based", "instruction": [ { "order": 1, "go-to-table": { "table_id": 21 } }], "service-priority": "3", "flow-cookie": "1" } , { "service-name": "service2", "flow-priority": "5", "service-type": "service-type-flow-based", "instruction": [ { "order": 1, "go-to-table": { "table_id": 50 } }], "service-priority": "4", "flow-cookie": "1" } ] }
4. Unbind service: This URL unbinds the service which is binded
5. Creation of ID pool:
URL: http://localhost:8181/restconf/operations/id-manager:createIdPool
{ "input": { "id-manager:pool-name": "test-pool", "id-manager:low": lower index, "id-manager:high":higher index } }
6. Allocating ID Range:
URL: http://localhost:8181/restconf/operations/id-manager:allocateIdRange
{ "input": { "id-manager:pool-name": "test-pool", "id-manager:id-key": "test-key", #different Id keys needs to be used if allocating different ranges "id-manager:size": size to be allocated } }
7. Release Ids :
URL: http://localhost:8181/restconf/operations/id-manager:releaseId
{ "input": { "id-manager:pool-name": "test-pool", "id-manager:id-key": "test-key" # respective Id key needs to be used which is used in allocateIdRange } }
8. Delete ID pool:
URL: http://localhost:8181//restconf/operations/id-manager:deleteIdPool
{ "input": { "id-manager:pool-name": "test-pool" }
}
Below are some of the REST interfaces, where you can find some useful information about the system.
Sample Test Configurations – OVS config CLIs
Please find below CLIs to Configure on OVS : Configure the below commands on the OVS using for testing. If 2 OVS is used, then both of them need to be configured using same commands below with changes needed as per the setup.