VOL-252: Process flow rules and provision BAL for HSIA, DHCP, EAPOL flows
Change-Id: I3dc2629e442b44377d69f7025f70446634a4eac5
diff --git a/voltha/adapters/broadcom_onu/broadcom_onu.py b/voltha/adapters/broadcom_onu/broadcom_onu.py
index bef5adf..44bbe48 100644
--- a/voltha/adapters/broadcom_onu/broadcom_onu.py
+++ b/voltha/adapters/broadcom_onu/broadcom_onu.py
@@ -37,6 +37,8 @@
from voltha.protos.logical_device_pb2 import LogicalPort
from voltha.protos.openflow_13_pb2 import OFPPS_LIVE, OFPPF_FIBER, OFPPF_1GB_FD
from voltha.protos.openflow_13_pb2 import OFPXMC_OPENFLOW_BASIC, ofp_port
+from voltha.protos.bbf_fiber_base_pb2 import VEnetConfig
+
from common.frameio.frameio import hexify
from voltha.extensions.omci.omci import *
@@ -204,7 +206,8 @@
raise NotImplementedError()
def create_tcont(self, device, tcont_data, traffic_descriptor_data):
- raise NotImplementedError()
+ log.info('Not implemented Yet', device_id=device.id)
+ #raise NotImplementedError()
def update_tcont(self, device, tcont_data, traffic_descriptor_data):
raise NotImplementedError()
@@ -213,7 +216,8 @@
raise NotImplementedError()
def create_gemport(self, device, data):
- raise NotImplementedError()
+ log.info('Not implemented Yet', device_id=device.id)
+ #raise NotImplementedError()
def update_gemport(self, device, data):
raise NotImplementedError()
@@ -1308,13 +1312,44 @@
yield self.wait_for_response()
def create_interface(self, data):
- self.log.info('Not Implemented yet')
- return;
+ if isinstance(data, VEnetConfig):
+ parent_port_num = None
+ onu_device = self.adapter_agent.get_device(self.device_id)
+ ports = self.adapter_agent.get_ports(onu_device.parent_id, Port.ETHERNET_UNI)
+ parent_port_num = None
+ for port in ports:
+ if port.label == data.interface.name:
+ parent_port_num = port.port_no
+ break
+
+ if not parent_port_num:
+ self.log.error("matching-parent-uni-port-num-not-found")
+ return
+
+ onu_ports = self.adapter_agent.get_ports(self.device_id, Port.PON_ONU)
+ if onu_ports:
+ # To-Do :
+ # Assumed only one PON port and UNI port per ONU.
+ pon_port = onu_ports[0]
+ else:
+ self.log.error("No-Pon-port-configured-yet")
+ return
+
+ self.adapter_agent.delete_port_reference_from_parent(self.device_id,
+ pon_port)
+
+ pon_port.peers[0].device_id = onu_device.parent_id
+ pon_port.peers[0].port_no = parent_port_num
+ self.adapter_agent.add_port_reference_to_parent(self.device_id,
+ pon_port)
+ else:
+ self.log.info('Not handled Yet')
+ return
def update_interface(self, data):
self.log.info('Not Implemented yet')
- return;
+ return
def remove_interface(self, data):
self.log.info('Not Implemented yet')
- return;
+ return