def _create_tcont(self, uni_id, us_scheduler, tech_profile_id): """ Decode Upstream Scheduler and create appropriate TCONT structures :param uni_id: (int) UNI ID on the PON :param us_scheduler: (Scheduler) Upstream Scheduler with TCONT information :param tech_profile_id: (int) Tech Profile ID :return (OnuTCont) Created TCONT """ self.log.debug('create-tcont', us_scheduler=us_scheduler, profile_id=tech_profile_id) q_sched_policy = { 'strictpriority': 1, # Per TCONT (ME #262) values 'wrr': 2 }.get(us_scheduler.get('q_sched_policy', 'none').lower(), 0) tcont_data = { 'tech-profile-id': tech_profile_id, 'uni-id': uni_id, 'alloc-id': us_scheduler['alloc_id'], 'q-sched-policy': q_sched_policy } # TODO: Support TD if shaping on ONU is to be performed td = OnuTrafficDescriptor(0, 0, 0) tcont = OnuTCont.create(self, tcont_data, td) self._pon.add_tcont(tcont) return tcont
def on_tcont_create(self, tcont): from onu_tcont import OnuTCont self.log.info('create-tcont') td = self.traffic_descriptors.get(tcont.get('td-ref')) traffic_descriptor = td['object'] if td is not None else None tcont['object'] = OnuTCont.create(self, tcont, traffic_descriptor) if self._pon is not None: self._pon.add_tcont(tcont['object']) return tcont
def on_tcont_create(self, tcont): from onu_tcont import OnuTCont self.log.info('create-tcont') td = self.traffic_descriptors.get(tcont.get('td-ref')) traffic_descriptor = td['object'] if td is not None else None tcont['object'] = OnuTCont.create(self, tcont, traffic_descriptor, is_mock=self.is_mock) # Look up any PON port # TODO: Add the vont-ani 'name' to the PON Port and look up that way pon_port = self.pon_ports[0] if pon_port is not None: pon_port.add_tcont(tcont['object']) return tcont