VOL-1322 - EAPOL messages dropped before reaching OLT
Partially reverted VOL-1311. ExtendedVLANTaggingOperationConfigurationData
cannot have the VLAN Table set during create as it is a R/W attribute. However, it must
be set per VOL-1311 during create to work around a parsing error in a get
of missing W attributes not present in the create. Current approach
is to set the table as a bogus set in the create() and then set again
immediately afterwards in a set().
Change-Id: I251fc177fd1bb49d1bc69cba9c8c7688ad88e674
diff --git a/.gitignore b/.gitignore
index 383aa18..ad47567 100644
--- a/.gitignore
+++ b/.gitignore
@@ -89,4 +89,4 @@
nosetests.xml
# OpenOLT repo
-voltha/adapters/openolt/openolt
+voltha/adapters/openolt/core
diff --git a/voltha/adapters/brcm_openomci_onu/omci/brcm_mib_download_task.py b/voltha/adapters/brcm_openomci_onu/omci/brcm_mib_download_task.py
index 23daa02..cbdb914 100644
--- a/voltha/adapters/brcm_openomci_onu/omci/brcm_mib_download_task.py
+++ b/voltha/adapters/brcm_openomci_onu/omci/brcm_mib_download_task.py
@@ -502,8 +502,45 @@
attributes = dict(
association_type=association_type, # Assoc Type, PPTP/VEIP Ethernet UNI
- associated_me_pointer=self._uni_port.entity_id, # Assoc ME, PPTP/VEIP Entity Id
+ associated_me_pointer=self._uni_port.entity_id, # Assoc ME, PPTP/VEIP Entity Id
+ # See VOL-1311 - Need to set table during create to avoid exception
+ # trying to read back table during post-create-read-missing-attributes
+ # But, because this is a R/W attribute. Some ONU may not accept the
+ # value during create. It is repeated again in a set below.
+ received_frame_vlan_tagging_operation_table=
+ VlanTaggingOperation(
+ filter_outer_priority=15, # This entry is not a double-tag rule
+ filter_outer_vid=4096, # Do not filter on the outer VID value
+ filter_outer_tpid_de=0, # Do not filter on the outer TPID field
+
+ filter_inner_priority=15,
+ filter_inner_vid=4096,
+ filter_inner_tpid_de=0 ,
+ filter_ether_type=0,
+
+ treatment_tags_to_remove=0,
+ treatment_outer_priority=15,
+ treatment_outer_vid=0,
+ treatment_outer_tpid_de=0,
+
+ treatment_inner_priority=0,
+ treatment_inner_vid=self._cvid,
+ treatment_inner_tpid_de=4,
+ )
+ )
+
+ msg = ExtendedVlanTaggingOperationConfigurationDataFrame(
+ self._mac_bridge_service_profile_entity_id, # Bridge Entity ID
+ attributes=attributes
+ )
+
+ frame = msg.create()
+ self.log.debug('openomci-msg', msg=msg)
+ results = yield omci_cc.send(frame)
+ self.check_status_and_state(results, 'create-extended-vlan-tagging-operation-configuration-data')
+
+ attributes = dict(
# Specifies the TPIDs in use and that operations in the downstream direction are
# inverse to the operations in the upstream direction
input_tpid=self._input_tpid, # input TPID
@@ -518,9 +555,6 @@
# probably for eapol
# TODO: lots of magic
# TODO: magic 0x1000 / 4096?
-
- # See VOL-1311 - Need to set table during create to avoid exception
- # trying to read back table during post-create-read-missing-attributes
received_frame_vlan_tagging_operation_table=
VlanTaggingOperation(
filter_outer_priority=15, # This entry is not a double-tag rule
@@ -547,10 +581,11 @@
self._mac_bridge_service_profile_entity_id, # Bridge Entity ID
attributes=attributes
)
- frame = msg.create()
+
+ frame = msg.set()
self.log.debug('openomci-msg', msg=msg)
results = yield omci_cc.send(frame)
- self.check_status_and_state(results, 'create-extended-vlan-tagging-operation-configuration-data')
+ self.check_status_and_state(results, 'set-extended-vlan-tagging-operation-configuration-data')
except TimeoutError as e:
self.log.warn('rx-timeout-2', e=e)