VOL-174: Support configuration of GEMs as per WT-385 and auto-allocation of gemport-ids
* As an operator, I should be able to provision a GEMPORT object for the ONU and assign to a UNI
* As an operator, I should be able to retrieve the provisioned GEMPORT
Additional Notes:
* gemport-ids should be auto-allocated for the GEMPORT object
* generic IAdapter interface to be provided that will be used by OLT and ONU adapters for GEM port configuration
* In the best interest of schedules/timing, in the first step(e.g. POC-3 & trial), assume the queueing model to be supported (to be detailed) (i.e. no configuration of queueing model)
* The concerned OLT and ONU should be configured with the allocated gemport-ids
VOL-173: Support configuration of TCONTs as per WT-385 and auto-allocation of alloc-ids
* As an operator, I should be able to provision a TCONT for the ONU with an existing traffic descriptor profile
* As an operator, I should be able to retrieve the provisioned TCONT
* As an operator, I should be able to change the traffic descriptor profile for a TCONT
Additional Notes:
* alloc-ids should be allocated for the TCONT
* generic IAdapter interface to be provided that will be used by OLT and ONU adapters for TCONT/alloc-id/BW configuration
* In the best interest of schedules/timing, in the first step(e.g. POC-3 & trial), assume the queueing model to be supported (to be detailed) (i.e. no configuration of queueing model)
* The concerned ONU should receive upstream grants upon provisioning of TCONT for the ONU
Change-Id: If9fa02accaa306409ddb3872c8e46566c74927b0
diff --git a/voltha/core/config/config_rev_persisted.py b/voltha/core/config/config_rev_persisted.py
index ad8711f..b82bb99 100644
--- a/voltha/core/config/config_rev_persisted.py
+++ b/voltha/core/config/config_rev_persisted.py
@@ -133,5 +133,9 @@
def tmp_cls_loader(module_name, cls_name):
# TODO this shall be generalized
from voltha.protos import voltha_pb2, health_pb2, adapter_pb2, \
- logical_device_pb2, device_pb2, openflow_13_pb2, bbf_fiber_base_pb2
+ logical_device_pb2, device_pb2, openflow_13_pb2, bbf_fiber_base_pb2, \
+ bbf_fiber_traffic_descriptor_profile_body_pb2, \
+ bbf_fiber_tcont_body_pb2, bbf_fiber_gemport_body_pb2, \
+ bbf_fiber_multicast_gemport_body_pb2, \
+ bbf_fiber_multicast_distribution_set_body_pb2
return getattr(locals()[module_name], cls_name)
diff --git a/voltha/core/global_handler.py b/voltha/core/global_handler.py
index f75358f..ef32bcd 100644
--- a/voltha/core/global_handler.py
+++ b/voltha/core/global_handler.py
@@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+import sys
import structlog
from grpc import StatusCode
from twisted.internet.defer import inlineCallbacks
@@ -32,11 +33,62 @@
from google.protobuf.empty_pb2 import Empty
from dispatcher import DispatchError
from voltha.protos import bbf_fiber_base_pb2 as fb
+from voltha.protos.bbf_fiber_base_pb2 import ChannelgroupConfig, \
+ ChannelpartitionConfig, ChannelpairConfig, ChannelterminationConfig, \
+ OntaniConfig, VOntaniConfig, VEnetConfig
+from voltha.protos.bbf_fiber_traffic_descriptor_profile_body_pb2 import \
+ TrafficDescriptorProfileData
+from voltha.protos.bbf_fiber_tcont_body_pb2 import TcontsConfigData
+from voltha.protos.bbf_fiber_gemport_body_pb2 import GemportsConfigData
+from voltha.protos.bbf_fiber_multicast_gemport_body_pb2 import \
+ MulticastGemportsConfigData
+from voltha.protos.bbf_fiber_multicast_distribution_set_body_pb2 import \
+ MulticastDistributionSetData
log = structlog.get_logger()
class GlobalHandler(VolthaGlobalServiceServicer):
+
+ xpon_object_type = {
+ 'CreateChannelgroup': ChannelgroupConfig,
+ 'UpdateChannelgroup': ChannelgroupConfig,
+ 'DeleteChannelgroup': ChannelgroupConfig,
+ 'CreateChannelpartition': ChannelpartitionConfig,
+ 'UpdateChannelpartition': ChannelpartitionConfig,
+ 'DeleteChannelpartition': ChannelpartitionConfig,
+ 'CreateChannelpair': ChannelpairConfig,
+ 'UpdateChannelpair': ChannelpairConfig,
+ 'DeleteChannelpair': ChannelpairConfig,
+ 'CreateChanneltermination': ChannelterminationConfig,
+ 'UpdateChanneltermination': ChannelterminationConfig,
+ 'DeleteChanneltermination': ChannelterminationConfig,
+ 'CreateVOntani': VOntaniConfig,
+ 'UpdateVOntani': VOntaniConfig,
+ 'DeleteVOntani': VOntaniConfig,
+ 'CreateOntani': OntaniConfig,
+ 'UpdateOntani': OntaniConfig,
+ 'DeleteOntani': OntaniConfig,
+ 'CreateVEnet': VEnetConfig,
+ 'UpdateVEnet': VEnetConfig,
+ 'DeleteVEnet': VEnetConfig,
+ 'CreateTrafficDescriptorProfileData': TrafficDescriptorProfileData,
+ 'UpdateTrafficDescriptorProfileData': TrafficDescriptorProfileData,
+ 'DeleteTrafficDescriptorProfileData': TrafficDescriptorProfileData,
+ 'CreateTcontsConfigData': TcontsConfigData,
+ 'UpdateTcontsConfigData': TcontsConfigData,
+ 'DeleteTcontsConfigData': TcontsConfigData,
+ 'CreateGemportsConfigData': GemportsConfigData,
+ 'UpdateGemportsConfigData': GemportsConfigData,
+ 'DeleteGemportsConfigData': GemportsConfigData,
+ 'CreateMulticastGemportsConfigData': MulticastGemportsConfigData,
+ 'UpdateMulticastGemportsConfigData': MulticastGemportsConfigData,
+ 'DeleteMulticastGemportsConfigData': MulticastGemportsConfigData,
+ 'CreateMulticastDistributionSetData': MulticastDistributionSetData,
+ 'UpdateMulticastDistributionSetData': MulticastDistributionSetData,
+ 'DeleteMulticastDistributionSetData': MulticastDistributionSetData
+ }
+
def __init__(self, dispatcher, instance_id, **init_kw):
self.dispatcher = dispatcher
self.instance_id = instance_id
@@ -537,28 +589,8 @@
@twisted_async
@inlineCallbacks
def CreateChannelgroup(self, request, context):
- log.info('grpc-request', request=request)
- try:
- assert isinstance(request, fb.ChannelgroupConfig)
- request.id = create_empty_broadcast_id()
- except AssertionError, e:
- context.set_details(e.message)
- context.set_code(StatusCode.INVALID_ARGUMENT)
- returnValue(fb.ChannelgroupConfig())
- response = yield self.dispatcher.dispatch(
- 'CreateChannelgroup',
- request,
- context,
- id=request.id,
- broadcast=True)
- if isinstance(response, DispatchError):
- log.info('grpc-error-response', error=response.error_code)
- context.set_details('Channelgroup\'{}\' error'.format(request.id))
- context.set_code(response.error_code)
- returnValue(fb.ChannelgroupConfig())
- else:
- log.info('grpc-success-response', response=response)
- returnValue(response)
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
@twisted_async
@inlineCallbacks
@@ -1174,6 +1206,176 @@
else:
log.info('grpc-success-response', response=response)
returnValue(response)
+
+ @twisted_async
+ @inlineCallbacks
+ def GetAllTrafficDescriptorProfileData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.get_all_global_xpon_object_data (request, context,
+ _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def CreateTrafficDescriptorProfileData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context,
+ _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def UpdateTrafficDescriptorProfileData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context,
+ _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def DeleteTrafficDescriptorProfileData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context,
+ _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def GetAllTcontsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.get_all_global_xpon_object_data (request, context,
+ _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def CreateTcontsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def UpdateTcontsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def DeleteTcontsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def GetAllGemportsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.get_all_global_xpon_object_data (request, context,
+ _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def CreateGemportsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def UpdateGemportsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def DeleteGemportsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def GetAllMulticastGemportsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.get_all_global_xpon_object_data (request, context,
+ _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def CreateMulticastGemportsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def UpdateMulticastGemportsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def DeleteMulticastGemportsConfigData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def GetAllMulticastDistributionSetData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.get_all_global_xpon_object_data (request, context,
+ _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def CreateMulticastDistributionSetData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def UpdateMulticastDistributionSetData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ @twisted_async
+ @inlineCallbacks
+ def DeleteMulticastDistributionSetData(self, request, context):
+ _method_name = sys._getframe().f_code.co_name
+ return self.manage_global_xpon_object (request, context, _method_name)
+
+ def get_all_global_xpon_object_data(self, request, context, method_name):
+ log.info('grpc-request', request=request)
+ response = yield self.dispatcher.dispatch(
+ method_name,
+ Empty(),
+ context,
+ broadcast=True)
+ if isinstance(response, DispatchError):
+ log.info('grpc-error-response', error=response.error_code)
+ context.set_details('{}\' error' .format(type(request).__name__))
+ context.set_code(response.error_code)
+ returnValue(Empty())
+ else:
+ log.info('grpc-success-response', response=response)
+ returnValue(response)
+
+ def manage_global_xpon_object(self, request, context, method_name):
+ log.info('grpc-request', request=request)
+ _xpon_object_type = self.xpon_object_type[method_name]
+ try:
+ assert isinstance(request, _xpon_object_type)
+ request.id = create_empty_broadcast_id()
+ except AssertionError, e:
+ context.set_details(e.message)
+ context.set_code(StatusCode.INVALID_ARGUMENT)
+ returnValue(_xpon_object_type())
+ response = yield self.dispatcher.dispatch(
+ method_name,
+ request,
+ context,
+ id=request.id,
+ broadcast=True)
+ if isinstance(response, DispatchError):
+ log.info('grpc-error-response', error=response.error_code)
+ context.set_details('{}\'{}\' error'.format(type(request).__name__,
+ request.id))
+ context.set_code(response.error_code)
+ returnValue(_xpon_object_type())
+ else:
+ log.info('grpc-success-response', response=response)
+ returnValue(response)
# bbf_fiber rpcs end
@twisted_async
diff --git a/voltha/core/local_handler.py b/voltha/core/local_handler.py
index fb02ecc..3115b4d 100644
--- a/voltha/core/local_handler.py
+++ b/voltha/core/local_handler.py
@@ -570,7 +570,8 @@
# bbf_fiber rpcs start
@twisted_async
def GetAllChannelgroupConfig(self, request, context):
- return self.core.xpon_handler.get_all_channel_group_config(request, context)
+ return self.core.xpon_handler.get_all_channel_group_config(
+ request, context)
@twisted_async
def CreateChannelgroup(self, request, context):
@@ -586,23 +587,28 @@
@twisted_async
def GetAllChannelpartitionConfig(self, request, context):
- return self.core.xpon_handler.get_all_channel_partition_config(request, context)
+ return self.core.xpon_handler.get_all_channel_partition_config(
+ request, context)
@twisted_async
def CreateChannelpartition(self, request, context):
- return self.core.xpon_handler.create_channel_partition(request, context)
+ return self.core.xpon_handler.create_channel_partition(
+ request, context)
@twisted_async
def UpdateChannelpartition(self, request, context):
- return self.core.xpon_handler.update_channel_partition(request, context)
+ return self.core.xpon_handler.update_channel_partition(
+ request, context)
@twisted_async
def DeleteChannelpartition(self, request, context):
- return self.core.xpon_handler.delete_channel_partition(request, context)
+ return self.core.xpon_handler.delete_channel_partition(
+ request, context)
@twisted_async
def GetAllChannelpairConfig(self, request, context):
- return self.core.xpon_handler.get_all_channel_pair_config(request, context)
+ return self.core.xpon_handler.get_all_channel_pair_config(
+ request, context)
@twisted_async
def CreateChannelpair(self, request, context):
@@ -618,19 +624,23 @@
@twisted_async
def GetAllChannelterminationConfig(self, request, context):
- return self.core.xpon_handler.get_all_channel_termination_config(request, context)
+ return self.core.xpon_handler.get_all_channel_termination_config(
+ request, context)
@twisted_async
def CreateChanneltermination(self, request, context):
- return self.core.xpon_handler.create_channel_termination(request, context)
+ return self.core.xpon_handler.create_channel_termination(
+ request, context)
@twisted_async
def UpdateChanneltermination(self, request, context):
- return self.core.xpon_handler.update_channel_termination(request, context)
+ return self.core.xpon_handler.update_channel_termination(
+ request, context)
@twisted_async
def DeleteChanneltermination(self, request, context):
- return self.core.xpon_handler.delete_channel_termination(request, context)
+ return self.core.xpon_handler.delete_channel_termination(
+ request, context)
@twisted_async
def GetAllOntaniConfig(self, request, context):
@@ -650,7 +660,8 @@
@twisted_async
def GetAllVOntaniConfig(self, request, context):
- return self.core.xpon_handler.get_all_v_ont_ani_config(request, context)
+ return self.core.xpon_handler.get_all_v_ont_ani_config(
+ request, context)
@twisted_async
def CreateVOntani(self, request, context):
@@ -679,6 +690,86 @@
@twisted_async
def DeleteVEnet(self, request, context):
return self.core.xpon_handler.delete_v_enet(request, context)
+
+ @twisted_async
+ def GetAllTrafficDescriptorProfileData(self, request, context):
+ return AllTrafficDescriptorProfileData()
+
+ @twisted_async
+ def CreateTrafficDescriptorProfileData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def UpdateTrafficDescriptorProfileData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def DeleteTrafficDescriptorProfileData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def GetAllTcontsConfigData(self, request, context):
+ return AllTcontsConfigData()
+
+ @twisted_async
+ def CreateTcontsConfigData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def UpdateTcontsConfigData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def DeleteTcontsConfigData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def GetAllGemportsConfigData(self, request, context):
+ return AllGemportsConfigData()
+
+ @twisted_async
+ def CreateGemportsConfigData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def UpdateGemportsConfigData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def DeleteGemportsConfigData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def GetAllMulticastGemportsConfigData(self, request, context):
+ return AllMulticastGemportsConfigData()
+
+ @twisted_async
+ def CreateMulticastGemportsConfigData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def UpdateMulticastGemportsConfigData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def DeleteMulticastGemportsConfigData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def GetAllMulticastDistributionSetData(self, request, context):
+ return AllMulticastDistributionSetData()
+
+ @twisted_async
+ def CreateMulticastDistributionSetData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def UpdateMulticastDistributionSetData(self, request, context):
+ return Empty()
+
+ @twisted_async
+ def DeleteMulticastDistributionSetData(self, request, context):
+ return Empty()
# bbf_fiber rpcs end
def StreamPacketsOut(self, request_iterator, context):
diff --git a/voltha/protos/bbf_fiber_base.proto b/voltha/protos/bbf_fiber_base.proto
index c8cc400..0534e12 100644
--- a/voltha/protos/bbf_fiber_base.proto
+++ b/voltha/protos/bbf_fiber_base.proto
@@ -10,107 +10,143 @@
import "bbf_fiber_ontani_body.proto";
import "bbf_fiber_v_ontani_body.proto";
import "bbf_fiber_v_enet_body.proto";
+import "bbf_fiber_gemport_body.proto";
+import "bbf_fiber_multicast_distribution_set_body.proto";
+import "bbf_fiber_multicast_gemport_body.proto";
+import "bbf_fiber_tcont_body.proto";
+import "bbf_fiber_traffic_descriptor_profile_body.proto";
message ChannelgroupConfig
{
- string id = 1 [(voltha.access) = READ_ONLY];
- ietf_interfaces.Interface interface = 2;
- ChannelgroupConfigData data = 3;
- string name = 4;
+ string id = 1 [(voltha.access) = READ_ONLY];
+ ietf_interfaces.Interface interface = 2;
+ ChannelgroupConfigData data = 3;
+ string name = 4;
}
message ChannelpartitionConfig
{
- string id = 1 [(voltha.access) = READ_ONLY];
- ietf_interfaces.Interface interface = 2;
- ChannelpartitionConfigData data = 3;
- string name = 4;
+ string id = 1 [(voltha.access) = READ_ONLY];
+ ietf_interfaces.Interface interface = 2;
+ ChannelpartitionConfigData data = 3;
+ string name = 4;
}
message ChannelpairConfig
{
- string id = 1 [(voltha.access) = READ_ONLY];
- ietf_interfaces.Interface interface = 2;
- ChannelpairConfigData data = 3;
- string name = 4;
+ string id = 1 [(voltha.access) = READ_ONLY];
+ ietf_interfaces.Interface interface = 2;
+ ChannelpairConfigData data = 3;
+ string name = 4;
}
message ChannelpairOper
{
- ietf_interfaces.Interface interface = 1;
- ChannelpairOperData operdata = 2;
- string name = 3;
+ ietf_interfaces.Interface interface = 1;
+ ChannelpairOperData operdata = 2;
+ string name = 3;
}
message ChannelterminationConfig
{
- string id = 1; // To work around a chameleon POST bug
- ietf_interfaces.Interface interface = 2;
- ChannelterminationConfigData data = 3;
- string name = 4;
+ string id = 1; // To work around a chameleon POST bug
+ ietf_interfaces.Interface interface = 2;
+ ChannelterminationConfigData data = 3;
+ string name = 4;
}
message ChannelterminationOper
{
- ietf_interfaces.Interface interface = 1;
- ChannelterminationOperData data = 2;
- string name = 3;
+ ietf_interfaces.Interface interface = 1;
+ ChannelterminationOperData data = 2;
+ string name = 3;
}
-
message OntaniConfig
{
- string id = 1 [(voltha.access) = READ_ONLY];
- ietf_interfaces.Interface interface = 2;
- OntaniConfigData data = 3;
- string name = 4;
+ string id = 1 [(voltha.access) = READ_ONLY];
+ ietf_interfaces.Interface interface = 2;
+ OntaniConfigData data = 3;
+ string name = 4;
}
message OntaniOper
{
- ietf_interfaces.Interface interface = 1;
- OntaniOperData data = 2;
- string name = 3;
+ ietf_interfaces.Interface interface = 1;
+ OntaniOperData data = 2;
+ string name = 3;
}
message VOntaniConfig
{
- string id = 1 [(voltha.access) = READ_ONLY];
- ietf_interfaces.Interface interface = 2;
- VOntaniConfigData data = 3;
- string name = 4;
+ string id = 1 [(voltha.access) = READ_ONLY];
+ ietf_interfaces.Interface interface = 2;
+ VOntaniConfigData data = 3;
+ string name = 4;
}
message VEnetConfig
{
- string id = 1 [(voltha.access) = READ_ONLY];
- ietf_interfaces.Interface interface = 2;
- VEnetConfigData data = 3;
- string name = 4;
+ string id = 1 [(voltha.access) = READ_ONLY];
+ ietf_interfaces.Interface interface = 2;
+ VEnetConfigData data = 3;
+ string name = 4;
}
message AllChannelgroupConfig
{
- repeated ChannelgroupConfig channelgroup_config = 1 [(voltha.child_node) = {key: "name"}];
+ repeated ChannelgroupConfig channelgroup_config = 1
+ [(voltha.child_node) = {key: "name"}];
}
message AllChannelpartitionConfig
{
- repeated ChannelpartitionConfig channelpartition_config = 1 [(voltha.child_node) = {key: "name"}];
+ repeated ChannelpartitionConfig channelpartition_config = 1
+ [(voltha.child_node) = {key: "name"}];
}
message AllChannelpairConfig
{
- repeated ChannelpairConfig channelpair_config = 1 [(voltha.child_node) = {key: "name"}];
+ repeated ChannelpairConfig channelpair_config = 1
+ [(voltha.child_node) = {key: "name"}];
}
message AllChannelterminationConfig
{
- repeated ChannelterminationConfig channeltermination_config = 1 [(voltha.child_node) = {key: "name"}];
+ repeated ChannelterminationConfig channeltermination_config = 1
+ [(voltha.child_node) = {key: "name"}];
}
message AllOntaniConfig
{
- repeated OntaniConfig ontani_config = 1 [(voltha.child_node) = {key: "name"}];
+ repeated OntaniConfig ontani_config = 1
+ [(voltha.child_node) = {key: "name"}];
}
message AllVOntaniConfig
{
- repeated VOntaniConfig v_ontani_config = 1 [(voltha.child_node) = {key: "name"}];
+ repeated VOntaniConfig v_ontani_config = 1
+ [(voltha.child_node) = {key: "name"}];
}
message AllVEnetConfig
{
- repeated VEnetConfig v_enet_config = 1 [(voltha.child_node) = {key: "name"}];
+ repeated VEnetConfig v_enet_config = 1
+ [(voltha.child_node) = {key: "name"}];
+}
+message AllTrafficDescriptorProfileData
+{
+ repeated TrafficDescriptorProfileData traffic_descriptor_profiles = 1
+ [(voltha.child_node) = {key: "name"}];
+}
+message AllTcontsConfigData
+{
+ repeated TcontsConfigData tconts_config = 1
+ [(voltha.child_node) = {key: "name"}];
+}
+message AllGemportsConfigData
+{
+ repeated GemportsConfigData gemports_config = 1
+ [(voltha.child_node) = {key: "name"}];
+}
+message AllMulticastGemportsConfigData
+{
+ repeated MulticastGemportsConfigData multicast_gemports_config = 1
+ [(voltha.child_node) = {key: "name"}];
+}
+message AllMulticastDistributionSetData
+{
+ repeated MulticastDistributionSetData multicast_distribution_sets = 1
+ [(voltha.child_node) = {key: "name"}];
}
diff --git a/voltha/protos/bbf_fiber_channelgroup_body.proto b/voltha/protos/bbf_fiber_channelgroup_body.proto
index 2eecc24..400c2f2 100644
--- a/voltha/protos/bbf_fiber_channelgroup_body.proto
+++ b/voltha/protos/bbf_fiber_channelgroup_body.proto
@@ -4,7 +4,7 @@
import "bbf_fiber_types.proto";
message ChannelgroupConfigData {
- uint32 polling_period = 1;
- bbf_fiber_types.RamanMitigationType raman_mitigation = 2;
- string system_id = 3 ;
+ uint32 polling_period = 1;
+ bbf_fiber_types.RamanMitigationType raman_mitigation = 2;
+ string system_id = 3;
}
diff --git a/voltha/protos/bbf_fiber_channelpair_body.proto b/voltha/protos/bbf_fiber_channelpair_body.proto
index a66996b..231cd85 100644
--- a/voltha/protos/bbf_fiber_channelpair_body.proto
+++ b/voltha/protos/bbf_fiber_channelpair_body.proto
@@ -3,16 +3,15 @@
import "bbf_fiber_types.proto";
message ChannelpairConfigData {
- string channelgroup_ref = 1 ;
- string channelpartition_ref = 2 ;
- string channelpair_type = 3 ;
- string channelpair_linerate = 4 ;
- uint32 gpon_ponid_interval = 5 ;
+ string channelgroup_ref = 1;
+ string channelpartition_ref = 2;
+ string channelpair_type = 3;
+ string channelpair_linerate = 4;
+ uint32 gpon_ponid_interval = 5;
bbf_fiber_types.PonIdOdnClassType gpon_ponid_odn_class = 6;
}
message ChannelpairOperData {
- uint32 actual_downstream_lambda = 1 ;
- bool primary_ct_assigned = 2 ;
- bool secondary_ct_assigned = 3 ;
+ uint32 actual_downstream_lambda = 1;
+ bool primary_ct_assigned = 2;
+ bool secondary_ct_assigned = 3;
}
-
diff --git a/voltha/protos/bbf_fiber_channelpartition_body.proto b/voltha/protos/bbf_fiber_channelpartition_body.proto
index 0134b35..58e8d93 100644
--- a/voltha/protos/bbf_fiber_channelpartition_body.proto
+++ b/voltha/protos/bbf_fiber_channelpartition_body.proto
@@ -3,7 +3,7 @@
import "bbf_fiber_types.proto";
message ChannelpartitionConfigData {
- string channelgroup_ref = 1 ;
+ string channelgroup_ref = 1;
bool fec_downstream = 2;
uint32 closest_ont_distance = 3;
uint32 differential_fiber_distance = 4;
diff --git a/voltha/protos/bbf_fiber_channeltermination_body.proto b/voltha/protos/bbf_fiber_channeltermination_body.proto
index 2f921d5..892a612 100644
--- a/voltha/protos/bbf_fiber_channeltermination_body.proto
+++ b/voltha/protos/bbf_fiber_channeltermination_body.proto
@@ -2,20 +2,19 @@
package bbf_fiber;
message ChannelterminationConfigData {
- string channelpair_ref = 1 ;
- bool meant_for_type_b_primary_role = 2 ;
- uint32 ngpon2_twdm_admin_label = 3 ;
- uint32 ngpon2_ptp_admin_label = 4 ;
- uint32 xgs_ponid = 5 ;
- uint32 xgpon_ponid = 6 ;
- string gpon_ponid = 7 ;
- string pon_tag = 8 ;
- uint32 ber_calc_period = 9 ;
- string location = 10 ;
- string url_to_reach = 11 ;
+ string channelpair_ref = 1;
+ bool meant_for_type_b_primary_role = 2;
+ uint32 ngpon2_twdm_admin_label = 3;
+ uint32 ngpon2_ptp_admin_label = 4;
+ uint32 xgs_ponid = 5;
+ uint32 xgpon_ponid = 6;
+ string gpon_ponid = 7;
+ string pon_tag = 8;
+ uint32 ber_calc_period = 9;
+ string location = 10;
+ string url_to_reach = 11;
}
message ChannelterminationOperData {
- string ponid_display = 1 ;
- string type_b_state = 2 ;
+ string ponid_display = 1;
+ string type_b_state = 2;
}
-
diff --git a/voltha/protos/bbf_fiber_gemport_body.proto b/voltha/protos/bbf_fiber_gemport_body.proto
new file mode 100644
index 0000000..b78d84d
--- /dev/null
+++ b/voltha/protos/bbf_fiber_gemport_body.proto
@@ -0,0 +1,19 @@
+syntax = "proto3";
+package bbf_fiber;
+import "meta.proto";
+import "bbf_fiber_tcont_body.proto";
+
+message GemportsConfigData {
+ string id = 1 [(voltha.access) = READ_ONLY];
+ string name = 2;
+ string itf_ref = 3;
+ uint32 traffic_class = 4;
+ bool aes_indicator = 5;
+ string tcont_ref = 6;
+ uint32 gemport_id = 7 [(voltha.access) = READ_ONLY];
+}
+message GemportsOperData {
+ string id = 1 [(voltha.access) = READ_ONLY];
+ string name = 2;
+ uint32 gemport_id = 3;
+}
diff --git a/voltha/protos/bbf_fiber_multicast_distribution_set_body.proto b/voltha/protos/bbf_fiber_multicast_distribution_set_body.proto
new file mode 100644
index 0000000..525ce11
--- /dev/null
+++ b/voltha/protos/bbf_fiber_multicast_distribution_set_body.proto
@@ -0,0 +1,24 @@
+syntax = "proto3";
+package bbf_fiber;
+import "meta.proto";
+import "bbf_fiber_multicast_gemport_body.proto";
+
+enum AllMulticastVlans
+{
+ ALL_MULTICAST_VLANS = 0;
+}
+
+message VlanList {
+ repeated uint32 multicast_vlan_id = 1;
+}
+
+message MulticastDistributionSetData {
+ string id = 1 [(voltha.access) = READ_ONLY];
+ string name = 2;
+ string multicast_gemport_ref = 3;
+ oneof multicast_vlans
+ {
+ AllMulticastVlans all_multicast_vlans = 4;
+ VlanList vlan_list = 5;
+ };
+}
diff --git a/voltha/protos/bbf_fiber_multicast_gemport_body.proto b/voltha/protos/bbf_fiber_multicast_gemport_body.proto
new file mode 100644
index 0000000..d8d01bc
--- /dev/null
+++ b/voltha/protos/bbf_fiber_multicast_gemport_body.proto
@@ -0,0 +1,12 @@
+syntax = "proto3";
+package bbf_fiber;
+import "meta.proto";
+
+message MulticastGemportsConfigData {
+ string id = 1 [(voltha.access) = READ_ONLY];
+ string name = 2;
+ uint32 gemport_id = 3;
+ string itf_ref = 4;
+ uint32 traffic_class = 5;
+ bool is_broadcast = 6;
+}
diff --git a/voltha/protos/bbf_fiber_ontani_body.proto b/voltha/protos/bbf_fiber_ontani_body.proto
index 35d1d69..b6025ea 100644
--- a/voltha/protos/bbf_fiber_ontani_body.proto
+++ b/voltha/protos/bbf_fiber_ontani_body.proto
@@ -2,10 +2,10 @@
package bbf_fiber;
message OntaniConfigData {
- bool upstream_fec_indicator = 1 ;
- bool mgnt_gemport_aes_indicator = 2 ;
+ bool upstream_fec_indicator = 1;
+ bool mgnt_gemport_aes_indicator = 2;
}
message OntaniOperData {
- uint32 onu_id = 1 ;
- uint32 channel_partition_id = 2 ;
+ uint32 onu_id = 1;
+ uint32 channel_partition_id = 2;
}
diff --git a/voltha/protos/bbf_fiber_tcont_body.proto b/voltha/protos/bbf_fiber_tcont_body.proto
new file mode 100644
index 0000000..03f42b0
--- /dev/null
+++ b/voltha/protos/bbf_fiber_tcont_body.proto
@@ -0,0 +1,17 @@
+syntax = "proto3";
+package bbf_fiber;
+import "meta.proto";
+import "bbf_fiber_traffic_descriptor_profile_body.proto";
+
+message TcontsConfigData {
+ string id = 1 [(voltha.access) = READ_ONLY];
+ string name = 2;
+ string interface_reference = 3;
+ string traffic_descriptor_profile_ref = 4;
+ uint32 alloc_id = 5 [(voltha.access) = READ_ONLY];
+}
+message TcontsOperData {
+ string id = 1 [(voltha.access) = READ_ONLY];
+ string name = 2;
+ uint32 alloc_id = 3;
+}
diff --git a/voltha/protos/bbf_fiber_traffic_descriptor_profile_body.proto b/voltha/protos/bbf_fiber_traffic_descriptor_profile_body.proto
new file mode 100644
index 0000000..aa51843
--- /dev/null
+++ b/voltha/protos/bbf_fiber_traffic_descriptor_profile_body.proto
@@ -0,0 +1,21 @@
+syntax = "proto3";
+package bbf_fiber;
+import "meta.proto";
+
+enum AdditionalBwEligibilityIndicatorType
+{
+ ADDITIONAL_BW_ELIGIBILITY_INDICATOR_NONE = 0;
+ ADDITIONAL_BW_ELIGIBILITY_INDICATOR_BEST_EFFORT_SHARING = 1;
+ ADDITIONAL_BW_ELIGIBILITY_INDICATOR_NON_ASSURED_SHARING = 2;
+}
+
+message TrafficDescriptorProfileData {
+ string id = 1 [(voltha.access) = READ_ONLY];
+ string name = 2;
+ uint64 fixed_bandwidth = 3;
+ uint64 assured_bandwidth = 4;
+ uint64 maximum_bandwidth = 5;
+ uint32 priority = 6;
+ uint32 weight = 7;
+ AdditionalBwEligibilityIndicatorType additional_bw_eligibility_indicator = 8;
+}
diff --git a/voltha/protos/bbf_fiber_v_enet_body.proto b/voltha/protos/bbf_fiber_v_enet_body.proto
index 603668c..4817b36 100644
--- a/voltha/protos/bbf_fiber_v_enet_body.proto
+++ b/voltha/protos/bbf_fiber_v_enet_body.proto
@@ -2,5 +2,5 @@
package bbf_fiber;
message VEnetConfigData {
- string v_ontani_ref = 1 ;
+ string v_ontani_ref = 1;
}
diff --git a/voltha/protos/bbf_fiber_v_ontani_body.proto b/voltha/protos/bbf_fiber_v_ontani_body.proto
index 665caf6..ab13163 100644
--- a/voltha/protos/bbf_fiber_v_ontani_body.proto
+++ b/voltha/protos/bbf_fiber_v_ontani_body.proto
@@ -2,11 +2,11 @@
package bbf_fiber;
message VOntaniConfigData {
- string parent_ref = 1 ;
- string expected_serial_number = 2 ;
- string expected_registration_id = 3 ;
- string preferred_chanpair = 4 ;
- string protection_chanpair = 5 ;
- uint32 upstream_channel_speed = 6 ;
- uint32 onu_id = 7 ;
+ string parent_ref = 1;
+ string expected_serial_number = 2;
+ string expected_registration_id = 3;
+ string preferred_chanpair = 4;
+ string protection_chanpair = 5;
+ uint32 upstream_channel_speed = 6;
+ uint32 onu_id = 7;
}
diff --git a/voltha/protos/bbf_fiber_wavelength_profile_body.proto b/voltha/protos/bbf_fiber_wavelength_profile_body.proto
index 5f25f85..30763b6 100644
--- a/voltha/protos/bbf_fiber_wavelength_profile_body.proto
+++ b/voltha/protos/bbf_fiber_wavelength_profile_body.proto
@@ -3,12 +3,14 @@
import public "meta.proto";
message WavelengthProfileData {
- string name = 1 ;
- uint32 upstream_channelid = 2 ;
- uint32 downstream_channelid = 3 ;
- uint32 downstream_wavelength = 4 ;
+ string name = 1;
+ uint32 upstream_channelid = 2;
+ uint32 downstream_channelid = 3;
+ uint32 downstream_wavelength = 4;
}
message WavelengthProfile {
- repeated WavelengthProfileData wavelength_profile_data = 1 [(voltha.child_node) = {key: "name"}];
+ repeated WavelengthProfileData wavelength_profile_data = 1
+ [(voltha.child_node) = {key: "name"}];
}
+
diff --git a/voltha/protos/voltha.proto b/voltha/protos/voltha.proto
index ee8c9bd..a79a151 100644
--- a/voltha/protos/voltha.proto
+++ b/voltha/protos/voltha.proto
@@ -23,6 +23,12 @@
import public "openflow_13.proto";
import "bbf_fiber.proto";
import "bbf_fiber_base.proto";
+import "bbf_fiber_gemport_body.proto";
+import "bbf_fiber_multicast_distribution_set_body.proto";
+import "bbf_fiber_multicast_gemport_body.proto";
+import "bbf_fiber_tcont_body.proto";
+import "bbf_fiber_traffic_descriptor_profile_body.proto";
+
option java_package = "org.opencord.voltha";
option java_outer_classname = "VolthaProtos";
@@ -93,17 +99,40 @@
repeated AlarmFilter alarm_filters = 16 [(child_node) = {key: "id"}];
- repeated bbf_fiber.ChannelgroupConfig channel_groups = 17 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.ChannelgroupConfig channel_groups = 17
+ [(child_node) = {key: "name"}];
- repeated bbf_fiber.ChannelpartitionConfig channel_partitions = 18 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.ChannelpartitionConfig channel_partitions = 18
+ [(child_node) = {key: "name"}];
- repeated bbf_fiber.ChannelpairConfig channel_pairs = 19 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.ChannelpairConfig channel_pairs = 19
+ [(child_node) = {key: "name"}];
- repeated bbf_fiber.OntaniConfig ont_anis = 20 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.OntaniConfig ont_anis = 20
+ [(child_node) = {key: "name"}];
- repeated bbf_fiber.VOntaniConfig v_ont_anis = 21 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.VOntaniConfig v_ont_anis = 21
+ [(child_node) = {key: "name"}];
- repeated bbf_fiber.VEnetConfig v_enets = 22 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.VEnetConfig v_enets = 22
+ [(child_node) = {key: "name"}];
+
+ repeated
+ bbf_fiber.TrafficDescriptorProfileData traffic_descriptor_profiles = 23
+ [(child_node) = {key: "name"}];
+
+ repeated bbf_fiber.TcontsConfigData tconts = 24
+ [(child_node) = {key: "name"}];
+
+ repeated bbf_fiber.GemportsConfigData gemports = 25
+ [(child_node) = {key: "name"}];
+
+ repeated bbf_fiber.MulticastGemportsConfigData multicast_gemports = 26
+ [(child_node) = {key: "name"}];
+
+ repeated
+ bbf_fiber.MulticastDistributionSetData multicast_distibution_sets = 27
+ [(child_node) = {key: "name"}];
}
message VolthaInstances {
@@ -129,17 +158,40 @@
repeated DeviceGroup device_groups = 15 [(child_node) = {key: "id"}];
- repeated bbf_fiber.ChannelgroupConfig channel_groups = 16 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.ChannelgroupConfig channel_groups = 16
+ [(child_node) = {key: "name"}];
- repeated bbf_fiber.ChannelpartitionConfig channel_partitions = 17 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.ChannelpartitionConfig channel_partitions = 17
+ [(child_node) = {key: "name"}];
- repeated bbf_fiber.ChannelpairConfig channel_pairs = 18 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.ChannelpairConfig channel_pairs = 18
+ [(child_node) = {key: "name"}];
- repeated bbf_fiber.OntaniConfig ont_anis = 19 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.OntaniConfig ont_anis = 19
+ [(child_node) = {key: "name"}];
- repeated bbf_fiber.VOntaniConfig v_ont_anis = 20 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.VOntaniConfig v_ont_anis = 20
+ [(child_node) = {key: "name"}];
- repeated bbf_fiber.VEnetConfig v_enets = 21 [(child_node) = {key: "name"}];
+ repeated bbf_fiber.VEnetConfig v_enets = 21
+ [(child_node) = {key: "name"}];
+
+ repeated
+ bbf_fiber.TrafficDescriptorProfileData traffic_descriptor_profiles = 23
+ [(child_node) = {key: "name"}];
+
+ repeated bbf_fiber.TcontsConfigData tconts = 24
+ [(child_node) = {key: "name"}];
+
+ repeated bbf_fiber.GemportsConfigData gemports = 25
+ [(child_node) = {key: "name"}];
+
+ repeated bbf_fiber.MulticastGemportsConfigData multicast_gemports = 26
+ [(child_node) = {key: "name"}];
+
+ repeated
+ bbf_fiber.MulticastDistributionSetData multicast_distibution_sets = 27
+ [(child_node) = {key: "name"}];
}
// Device Self Test Response
@@ -412,112 +464,129 @@
}
// List all Channel Groups
- rpc GetAllChannelgroupConfig(google.protobuf.Empty) returns(bbf_fiber.AllChannelgroupConfig) {
+ rpc GetAllChannelgroupConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllChannelgroupConfig) {
option (google.api.http) = {
get: "/api/v1/channel_groups"
};
}
// Create Channel Group
- rpc CreateChannelgroup(bbf_fiber.ChannelgroupConfig) returns(google.protobuf.Empty) {
+ rpc CreateChannelgroup(bbf_fiber.ChannelgroupConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/channel_groups/{name}"
body: "*"
};
}
// Update Channel Group
- rpc UpdateChannelgroup(bbf_fiber.ChannelgroupConfig) returns(google.protobuf.Empty) {
+ rpc UpdateChannelgroup(bbf_fiber.ChannelgroupConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/channel_groups/{name}/modify"
body: "*"
};
}
// Delete Channel Group
- rpc DeleteChannelgroup(bbf_fiber.ChannelgroupConfig) returns(google.protobuf.Empty) {
+ rpc DeleteChannelgroup(bbf_fiber.ChannelgroupConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
delete: "/api/v1/channel_groups/{name}/delete"
};
}
// List all channel partitions
- rpc GetAllChannelpartitionConfig(google.protobuf.Empty) returns(bbf_fiber.AllChannelpartitionConfig) {
+ rpc GetAllChannelpartitionConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllChannelpartitionConfig) {
option (google.api.http) = {
get: "/api/v1/channel_partitions"
};
}
// Create a channel partition
- rpc CreateChannelpartition(bbf_fiber.ChannelpartitionConfig) returns(google.protobuf.Empty) {
+ rpc CreateChannelpartition(bbf_fiber.ChannelpartitionConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/channel_partitions/{name}"
body: "*"
};
}
// Update a channel partition
- rpc UpdateChannelpartition(bbf_fiber.ChannelpartitionConfig) returns(google.protobuf.Empty) {
+ rpc UpdateChannelpartition(bbf_fiber.ChannelpartitionConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/channel_partitions/{name}/modify"
body: "*"
};
}
// Delete a channel partition
- rpc DeleteChannelpartition(bbf_fiber.ChannelpartitionConfig) returns(google.protobuf.Empty) {
+ rpc DeleteChannelpartition(bbf_fiber.ChannelpartitionConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
delete: "/api/v1/channel_partitions/{name}/delete"
};
}
// List all channel pairs managed by this Voltha instance
- rpc GetAllChannelpairConfig(google.protobuf.Empty) returns(bbf_fiber.AllChannelpairConfig) {
+ rpc GetAllChannelpairConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllChannelpairConfig) {
option (google.api.http) = {
get: "/api/v1/channel_pairs"
};
}
// Create a channel pair
- rpc CreateChannelpair(bbf_fiber.ChannelpairConfig) returns(google.protobuf.Empty) {
+ rpc CreateChannelpair(bbf_fiber.ChannelpairConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/channel_pairs/{name}"
body: "*"
};
}
// Update a channel pair
- rpc UpdateChannelpair(bbf_fiber.ChannelpairConfig) returns(google.protobuf.Empty) {
+ rpc UpdateChannelpair(bbf_fiber.ChannelpairConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/channel_pairs/{name}/modify"
body: "*"
};
}
// Delete a channel pair
- rpc DeleteChannelpair(bbf_fiber.ChannelpairConfig) returns(google.protobuf.Empty) {
+ rpc DeleteChannelpair(bbf_fiber.ChannelpairConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
delete: "/api/v1/channel_pairs/{name}/delete"
};
}
// List all channel terminations managed by this Voltha instance
- rpc GetAllChannelterminationConfig(ID) returns(bbf_fiber.AllChannelterminationConfig) {
+ rpc GetAllChannelterminationConfig(ID)
+ returns(bbf_fiber.AllChannelterminationConfig) {
option (google.api.http) = {
get: "/api/v1/devices/{id}/channel_terminations"
};
}
// Create a channel termination
- rpc CreateChanneltermination(bbf_fiber.ChannelterminationConfig) returns(google.protobuf.Empty) {
+ rpc CreateChanneltermination(bbf_fiber.ChannelterminationConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/devices/{id}/channel_terminations/{name}"
body: "*"
};
}
// Update a channel termination
- rpc UpdateChanneltermination(bbf_fiber.ChannelterminationConfig) returns(google.protobuf.Empty) {
+ rpc UpdateChanneltermination(bbf_fiber.ChannelterminationConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/devices/{id}/channel_terminations/{name}/modify"
body: "*"
};
}
// Delete a channel termination
- rpc DeleteChanneltermination(bbf_fiber.ChannelterminationConfig) returns(google.protobuf.Empty) {
+ rpc DeleteChanneltermination(bbf_fiber.ChannelterminationConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
delete: "/api/v1/devices/{id}/channel_terminations/{name}/delete"
};
}
// List all ont configs managed by this Voltha instance
- rpc GetAllOntaniConfig(google.protobuf.Empty) returns(bbf_fiber.AllOntaniConfig) {
+ rpc GetAllOntaniConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllOntaniConfig) {
option (google.api.http) = {
get: "/api/v1/ont_anis"
};
@@ -542,34 +611,36 @@
delete: "/api/v1/ont_anis/{name}/delete"
};
}
- // List all V ont configs managed by this Voltha instance
- rpc GetAllVOntaniConfig(google.protobuf.Empty) returns(bbf_fiber.AllVOntaniConfig) {
+ // List all vont configs managed by this Voltha instance
+ rpc GetAllVOntaniConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllVOntaniConfig) {
option (google.api.http) = {
get: "/api/v1/v_ont_anis"
};
}
- // Create a v ont configs
+ // Create a vont configs
rpc CreateVOntani(bbf_fiber.VOntaniConfig) returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/v_ont_anis/{name}"
body: "*"
};
}
- // Update a v ont configs
+ // Update a vont configs
rpc UpdateVOntani(bbf_fiber.VOntaniConfig) returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/v_ont_anis/{name}/modify"
body: "*"
};
}
- // Delete a v ont configs
+ // Delete a vont configs
rpc DeleteVOntani(bbf_fiber.VOntaniConfig) returns(google.protobuf.Empty) {
option (google.api.http) = {
delete: "/api/v1/v_ont_anis/{name}/delete"
};
}
// List all venet configs managed by this Voltha instance
- rpc GetAllVEnetConfig(google.protobuf.Empty) returns(bbf_fiber.AllVEnetConfig) {
+ rpc GetAllVEnetConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllVEnetConfig) {
option (google.api.http) = {
get: "/api/v1/v_enets"
};
@@ -595,6 +666,170 @@
};
}
+ // List all Traffic Descriptors Profiles
+ rpc GetAllTrafficDescriptorProfileData(google.protobuf.Empty)
+ returns(bbf_fiber.AllTrafficDescriptorProfileData) {
+ option (google.api.http) = {
+ get: "/api/v1/traffic_descriptor_profiles"
+ };
+ }
+ // Create Traffic Descriptor Profile
+ rpc CreateTrafficDescriptorProfileData(
+ bbf_fiber.TrafficDescriptorProfileData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/traffic_descriptor_profiles/{name}"
+ body: "*"
+ };
+ }
+ // Update Traffic Descriptor Profile
+ rpc UpdateTrafficDescriptorProfileData(
+ bbf_fiber.TrafficDescriptorProfileData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/traffic_descriptor_profiles/{name}/modify"
+ body: "*"
+ };
+ }
+ // Delete Traffic Descriptor Profile
+ rpc DeleteTrafficDescriptorProfileData(
+ bbf_fiber.TrafficDescriptorProfileData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/api/v1/traffic_descriptor_profiles/{name}/delete"
+ };
+ }
+
+ // List all Tconts
+ rpc GetAllTcontsConfigData(google.protobuf.Empty)
+ returns(bbf_fiber.AllTcontsConfigData) {
+ option (google.api.http) = {
+ get: "/api/v1/tconts"
+ };
+ }
+ // Create Tcont
+ rpc CreateTcontsConfigData(bbf_fiber.TcontsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/tconts/{name}"
+ body: "*"
+ };
+ }
+ // Update Tcont
+ rpc UpdateTcontsConfigData(bbf_fiber.TcontsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/tconts/{name}/modify"
+ body: "*"
+ };
+ }
+ // Delete Tcont
+ rpc DeleteTcontsConfigData(bbf_fiber.TcontsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/api/v1/tconts/{name}/delete"
+ };
+ }
+
+ // List all Gemports
+ rpc GetAllGemportsConfigData(google.protobuf.Empty)
+ returns(bbf_fiber.AllGemportsConfigData) {
+ option (google.api.http) = {
+ get: "/api/v1/gemports"
+ };
+ }
+ // Create Gemport
+ rpc CreateGemportsConfigData(bbf_fiber.GemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/gemports/{name}"
+ body: "*"
+ };
+ }
+ // Update Gemport
+ rpc UpdateGemportsConfigData(bbf_fiber.GemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/gemports/{name}/modify"
+ body: "*"
+ };
+ }
+ // Delete Gemport
+ rpc DeleteGemportsConfigData(bbf_fiber.GemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/api/v1/gemports/{name}/delete"
+ };
+ }
+
+ // List all Multicast Gemports
+ rpc GetAllMulticastGemportsConfigData(google.protobuf.Empty)
+ returns(bbf_fiber.AllMulticastGemportsConfigData) {
+ option (google.api.http) = {
+ get: "/api/v1/multicast_gemports"
+ };
+ }
+ // Create Multicast Gemport
+ rpc CreateMulticastGemportsConfigData(
+ bbf_fiber.MulticastGemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/multicast_gemports/{name}"
+ body: "*"
+ };
+ }
+ // Update Multicast Gemport
+ rpc UpdateMulticastGemportsConfigData(
+ bbf_fiber.MulticastGemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/multicast_gemports/{name}/modify"
+ body: "*"
+ };
+ }
+ // Delete Multicast Gemport
+ rpc DeleteMulticastGemportsConfigData(
+ bbf_fiber.MulticastGemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/api/v1/multicast_gemports/{name}/delete"
+ };
+ }
+
+ // List all Multicast Distribution Sets
+ rpc GetAllMulticastDistributionSetData(google.protobuf.Empty)
+ returns(bbf_fiber.AllMulticastDistributionSetData) {
+ option (google.api.http) = {
+ get: "/api/v1/multicast_distibution_sets"
+ };
+ }
+ // Create Multicast Distribution Set
+ rpc CreateMulticastDistributionSetData(
+ bbf_fiber.MulticastDistributionSetData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/multicast_distribution_sets/{name}"
+ body: "*"
+ };
+ }
+ // Update Multicast Distribution Set
+ rpc UpdateMulticastDistributionSetData(
+ bbf_fiber.MulticastDistributionSetData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/multicast_distribution_sets/{name}/modify"
+ body: "*"
+ };
+ }
+ // Delete Multicast Distribution Set
+ rpc DeleteMulticastDistributionSetData(
+ bbf_fiber.MulticastDistributionSetData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/api/v1/multicast_distribution_sets/{name}/delete"
+ };
+ }
+
rpc GetImages(ID) returns(Images) {
option (google.api.http) = {
get: "/api/v1/devices/{id}/images"
@@ -822,112 +1057,129 @@
};
}
// List all channel groups managed by this Voltha instance
- rpc GetAllChannelgroupConfig(google.protobuf.Empty) returns(bbf_fiber.AllChannelgroupConfig) {
+ rpc GetAllChannelgroupConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllChannelgroupConfig) {
option (google.api.http) = {
get: "/api/v1/local/channel_groups"
};
}
// Create a channel group
- rpc CreateChannelgroup(bbf_fiber.ChannelgroupConfig) returns(google.protobuf.Empty) {
+ rpc CreateChannelgroup(bbf_fiber.ChannelgroupConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/local/channel_groups/{name}"
body: "*"
};
}
// Update a channel group
- rpc UpdateChannelgroup(bbf_fiber.ChannelgroupConfig) returns(google.protobuf.Empty) {
+ rpc UpdateChannelgroup(bbf_fiber.ChannelgroupConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/local/channel_groups/{name}/modify"
body: "*"
};
}
// Delate a channel group
- rpc DeleteChannelgroup(bbf_fiber.ChannelgroupConfig) returns(google.protobuf.Empty) {
+ rpc DeleteChannelgroup(bbf_fiber.ChannelgroupConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
delete: "/api/v1/local/channel_groups/{name}/delete"
};
}
// List all channel partitions managed by this Voltha instance
- rpc GetAllChannelpartitionConfig(google.protobuf.Empty) returns(bbf_fiber.AllChannelpartitionConfig) {
+ rpc GetAllChannelpartitionConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllChannelpartitionConfig) {
option (google.api.http) = {
get: "/api/v1/local/channel_partitions"
};
}
// Create a channel partition
- rpc CreateChannelpartition(bbf_fiber.ChannelpartitionConfig) returns(google.protobuf.Empty) {
+ rpc CreateChannelpartition(bbf_fiber.ChannelpartitionConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/local/channel_partitions/{name}"
body: "*"
};
}
// Update a channel partition
- rpc UpdateChannelpartition(bbf_fiber.ChannelpartitionConfig) returns(google.protobuf.Empty) {
+ rpc UpdateChannelpartition(bbf_fiber.ChannelpartitionConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/local/channel_partitions/{name}/modify"
body: "*"
};
}
// Delete a channel partition
- rpc DeleteChannelpartition(bbf_fiber.ChannelpartitionConfig) returns(google.protobuf.Empty) {
+ rpc DeleteChannelpartition(bbf_fiber.ChannelpartitionConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
delete: "/api/v1/local/channel_partitions/{name}/delete"
};
}
// List all channel pairs managed by this Voltha instance
- rpc GetAllChannelpairConfig(google.protobuf.Empty) returns(bbf_fiber.AllChannelpairConfig) {
+ rpc GetAllChannelpairConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllChannelpairConfig) {
option (google.api.http) = {
get: "/api/v1/local/channel_pairs"
};
}
// Create a channel pair
- rpc CreateChannelpair(bbf_fiber.ChannelpairConfig) returns(google.protobuf.Empty) {
+ rpc CreateChannelpair(bbf_fiber.ChannelpairConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/local/channel_pairs/{name}"
body: "*"
};
}
// Update a channel pair
- rpc UpdateChannelpair(bbf_fiber.ChannelpairConfig) returns(google.protobuf.Empty) {
+ rpc UpdateChannelpair(bbf_fiber.ChannelpairConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/local/channel_pairs/{name}/modify"
body: "*"
};
}
// Delete a channel pair
- rpc DeleteChannelpair(bbf_fiber.ChannelpairConfig) returns(google.protobuf.Empty) {
+ rpc DeleteChannelpair(bbf_fiber.ChannelpairConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
delete: "/api/v1/local/channel_pairs/{name}/delete"
};
}
// List all channel terminations managed by this Voltha instance
- rpc GetAllChannelterminationConfig(ID) returns(bbf_fiber.AllChannelterminationConfig) {
+ rpc GetAllChannelterminationConfig(ID)
+ returns(bbf_fiber.AllChannelterminationConfig) {
option (google.api.http) = {
get: "/api/v1/local/devices/{id}/channel_terminations"
};
}
// Create a channel termination
- rpc CreateChanneltermination(bbf_fiber.ChannelterminationConfig) returns(google.protobuf.Empty) {
+ rpc CreateChanneltermination(bbf_fiber.ChannelterminationConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/local/devices/{id}/channel_terminations/{name}"
body: "*"
};
}
// Update a channel termination
- rpc UpdateChanneltermination(bbf_fiber.ChannelterminationConfig) returns(google.protobuf.Empty) {
+ rpc UpdateChanneltermination(bbf_fiber.ChannelterminationConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/local/devices/{id}/channel_terminations/{name}/modify"
body: "*"
};
}
// Delete a channel termination
- rpc DeleteChanneltermination(bbf_fiber.ChannelterminationConfig) returns(google.protobuf.Empty) {
+ rpc DeleteChanneltermination(bbf_fiber.ChannelterminationConfig)
+ returns(google.protobuf.Empty) {
option (google.api.http) = {
delete: "/api/v1/local/devices/{id}/channel_terminations/{name}/delete"
};
}
// List all ont configs managed by this Voltha instance
- rpc GetAllOntaniConfig(google.protobuf.Empty) returns(bbf_fiber.AllOntaniConfig) {
+ rpc GetAllOntaniConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllOntaniConfig) {
option (google.api.http) = {
get: "/api/v1/local/ont_anis"
};
@@ -952,34 +1204,36 @@
delete: "/api/v1/local/ont_anis/{name}/delete"
};
}
- // List all V ont configs managed by this Voltha instance
- rpc GetAllVOntaniConfig(google.protobuf.Empty) returns(bbf_fiber.AllVOntaniConfig) {
+ // List all vont configs managed by this Voltha instance
+ rpc GetAllVOntaniConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllVOntaniConfig) {
option (google.api.http) = {
get: "/api/v1/local/v_ont_anis"
};
}
- // Create a v ont configs
+ // Create a vont configs
rpc CreateVOntani(bbf_fiber.VOntaniConfig) returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/local/v_ont_anis/{name}"
body: "*"
};
}
- // Update a v ont configs
+ // Update a vont configs
rpc UpdateVOntani(bbf_fiber.VOntaniConfig) returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/local/v_ont_anis/{name}/modify"
body: "*"
};
}
- // Delete a v ont configs
+ // Delete a vont configs
rpc DeleteVOntani(bbf_fiber.VOntaniConfig) returns(google.protobuf.Empty) {
option (google.api.http) = {
delete: "/api/v1/local/v_ont_anis/{name}/delete"
};
}
// List all venet configs managed by this Voltha instance
- rpc GetAllVEnetConfig(google.protobuf.Empty) returns(bbf_fiber.AllVEnetConfig) {
+ rpc GetAllVEnetConfig(google.protobuf.Empty)
+ returns(bbf_fiber.AllVEnetConfig) {
option (google.api.http) = {
get: "/api/v1/local/v_enets"
};
@@ -1004,6 +1258,170 @@
delete: "/api/v1/local/v_enets/{name}/delete"
};
}
+
+ // List all Traffic Descriptor Profiles
+ rpc GetAllTrafficDescriptorProfileData(google.protobuf.Empty)
+ returns(bbf_fiber.AllTrafficDescriptorProfileData) {
+ option (google.api.http) = {
+ get: "/api/v1/local/traffic_descriptor_profiles"
+ };
+ }
+ // Create Traffic Descriptor Profile
+ rpc CreateTrafficDescriptorProfileData(
+ bbf_fiber.TrafficDescriptorProfileData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/local/traffic_descriptor_profiles/{name}"
+ body: "*"
+ };
+ }
+ // Update Traffic Descriptor Profile
+ rpc UpdateTrafficDescriptorProfileData(
+ bbf_fiber.TrafficDescriptorProfileData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/local/traffic_descriptor_profiles/{name}/modify"
+ body: "*"
+ };
+ }
+ // Delete Traffic Descriptor Profile
+ rpc DeleteTrafficDescriptorProfileData(
+ bbf_fiber.TrafficDescriptorProfileData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/api/v1/local/traffic_descriptor_profiles/{name}/delete"
+ };
+ }
+
+ // List all Tconts
+ rpc GetAllTcontsConfigData(google.protobuf.Empty)
+ returns(bbf_fiber.AllTcontsConfigData) {
+ option (google.api.http) = {
+ get: "/api/v1/local/tconts"
+ };
+ }
+ // Create Tcont
+ rpc CreateTcontsConfigData(bbf_fiber.TcontsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/local/tconts/{name}"
+ body: "*"
+ };
+ }
+ // Update Tcont
+ rpc UpdateTcontsConfigData(bbf_fiber.TcontsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/local/tconts/{name}/modify"
+ body: "*"
+ };
+ }
+ // Delete Tcont
+ rpc DeleteTcontsConfigData(bbf_fiber.TcontsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/api/v1/local/tconts/{name}/delete"
+ };
+ }
+
+ // List all Gemports
+ rpc GetAllGemportsConfigData(google.protobuf.Empty)
+ returns(bbf_fiber.AllGemportsConfigData) {
+ option (google.api.http) = {
+ get: "/api/v1/local/gemports"
+ };
+ }
+ // Create Gemport
+ rpc CreateGemportsConfigData(bbf_fiber.GemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/local/gemports/{name}"
+ body: "*"
+ };
+ }
+ // Update Gemport
+ rpc UpdateGemportsConfigData(bbf_fiber.GemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/local/gemports/{name}/modify"
+ body: "*"
+ };
+ }
+ // Delete Gemport
+ rpc DeleteGemportsConfigData(bbf_fiber.GemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/api/v1/local/gemports/{name}/delete"
+ };
+ }
+
+ // List all Multicast Gemports
+ rpc GetAllMulticastGemportsConfigData(google.protobuf.Empty)
+ returns(bbf_fiber.AllMulticastGemportsConfigData) {
+ option (google.api.http) = {
+ get: "/api/v1/local/multicast_gemports"
+ };
+ }
+ // Create Multicast Gemport
+ rpc CreateMulticastGemportsConfigData(
+ bbf_fiber.MulticastGemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/local/multicast_gemports/{name}"
+ body: "*"
+ };
+ }
+ // Update Multicast Gemport
+ rpc UpdateMulticastGemportsConfigData(
+ bbf_fiber.MulticastGemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/local/multicast_gemports/{name}/modify"
+ body: "*"
+ };
+ }
+ // Delete Multicast Gemport
+ rpc DeleteMulticastGemportsConfigData(
+ bbf_fiber.MulticastGemportsConfigData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/api/v1/local/multicast_gemports/{name}/delete"
+ };
+ }
+
+ // List all Multicast Distribution Sets
+ rpc GetAllMulticastDistributionSetData(google.protobuf.Empty)
+ returns(bbf_fiber.AllMulticastDistributionSetData) {
+ option (google.api.http) = {
+ get: "/api/v1/local/multicast_distibution_sets"
+ };
+ }
+ // Create Multicast Distribution Set
+ rpc CreateMulticastDistributionSetData(
+ bbf_fiber.MulticastDistributionSetData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/local/multicast_distribution_sets/{name}"
+ body: "*"
+ };
+ }
+ // Update Multicast Distribution Set
+ rpc UpdateMulticastDistributionSetData(
+ bbf_fiber.MulticastDistributionSetData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ post: "/api/v1/local/multicast_distribution_sets/{name}/modify"
+ body: "*"
+ };
+ }
+ // Delete Multicast Distribution Set
+ rpc DeleteMulticastDistributionSetData(
+ bbf_fiber.MulticastDistributionSetData)
+ returns(google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/api/v1/local/multicast_distribution_sets/{name}/delete"
+ };
+ }
// Stream control packets to the dataplane
rpc StreamPacketsOut(stream openflow_13.PacketOut)
returns(google.protobuf.Empty) {