diff --git a/datafiles/schema-delete.sql b/datafiles/schema-delete.sql
index 826eb156dd2ed961bfa61b30b559e2f7797c921a..0fc47985472bca68824f93d59f38b6463adf2a15 100644
--- a/datafiles/schema-delete.sql
+++ b/datafiles/schema-delete.sql
@@ -4,5 +4,6 @@
DROP TABLE generic_backend_connections;
DROP TABLE sub_connections;
DROP TABLE service_connections;
+DROP TYPE directionality;
DROP TYPE label;
diff --git a/datafiles/schema.sql b/datafiles/schema.sql
index 363d42844d3d2143833142647f8da85ff360c353..d0fbcf29c50751cb04b487f7f292301b6e02e46c 100644
--- a/datafiles/schema.sql
+++ b/datafiles/schema.sql
@@ -7,6 +7,8 @@ CREATE TYPE label AS (
label_value text
);
+CREATE TYPE directionality AS ENUM ('Bidirectional', 'Unidirectional');
+
-- publically reachable connections
CREATE TABLE service_connections (
@@ -29,7 +31,10 @@ CREATE TABLE service_connections (
dest_label label,
start_time timestamp NOT NULL,
end_time timestamp NOT NULL,
- bandwidth integer NOT NULL -- mbps
+ symmetrical boolean NOT NULL,
+ directionality directionality NOT NULL,
+ bandwidth integer NOT NULL, -- mbps
+ connection_trace text[]
);
-- internal references to connections that are part of a service connection
@@ -77,6 +82,8 @@ CREATE TABLE generic_backend_connections (
dest_label label,
start_time timestamp NOT NULL,
end_time timestamp NOT NULL,
+ symmetrical boolean NOT NULL,
+ directionality directionality NOT NULL,
bandwidth integer NOT NULL -- mbps
);
diff --git a/opennsa/aggregator.py b/opennsa/aggregator.py
index b44c20e46c96002b032d673dc0eb5e3a81ea9d13..e51102af3e2ea41e0c6351da1b732661b12ab3d0 100644
--- a/opennsa/aggregator.py
+++ b/opennsa/aggregator.py
@@ -185,7 +185,8 @@ class Aggregator:
reservation_state=state.RESERVE_START, provision_state=state.RELEASED, lifecycle_state=state.CREATED,
source_network=source_stp.network, source_port=source_stp.port, source_label=source_stp.label,
dest_network=dest_stp.network, dest_port=dest_stp.port, dest_label=dest_stp.label,
- start_time=criteria.schedule.start_time, end_time=criteria.schedule.end_time, bandwidth=sd.capacity)
+ start_time=criteria.schedule.start_time, end_time=criteria.schedule.end_time,
+ symmetrical=sd.symmetric, directionality=sd.directionality, bandwidth=sd.capacity, connection_trace=header.connection_trace)
yield conn.save()
# Here we should return / callback and spawn off the path creation
diff --git a/opennsa/backends/common/genericbackend.py b/opennsa/backends/common/genericbackend.py
index 459ac7d67628b4503faf1c9017046a133c7c0b2a..cca27234ead843c07503cec371796cde8c494310 100644
--- a/opennsa/backends/common/genericbackend.py
+++ b/opennsa/backends/common/genericbackend.py
@@ -263,7 +263,7 @@ class GenericBackend(service.Service):
source_network=source_stp.network, source_port=source_stp.port, source_label=src_label,
dest_network=dest_stp.network, dest_port=dest_stp.port, dest_label=dst_label,
start_time=schedule.start_time, end_time=schedule.end_time,
- bandwidth=sd.capacity)
+ symmetrical=sd.symmetric, directionality=sd.directionality, bandwidth=sd.capacity)
yield conn.save()
reactor.callWhenRunning(self._doReserve, conn, header.correlation_id)
defer.returnValue(connection_id)