Loop control for OBP in bridge.py
This commit is contained in:
parent
da55a4ec63
commit
932468a1c7
27
bridge.py
27
bridge.py
@ -291,6 +291,33 @@ class routerOBP(OPENBRIDGE):
|
|||||||
self.STATUS[_stream_id]['_finlog'] = True
|
self.STATUS[_stream_id]['_finlog'] = True
|
||||||
return
|
return
|
||||||
|
|
||||||
|
#LoopControl#
|
||||||
|
for system in systems:
|
||||||
|
if system == self._system:
|
||||||
|
continue
|
||||||
|
if CONFIG['SYSTEMS'][system]['MODE'] != 'OPENBRIDGE':
|
||||||
|
for _sysslot in systems[system].STATUS:
|
||||||
|
if 'RX_STREAM_ID' in systems[system].STATUS[_sysslot] and _stream_id == systems[system].STATUS[_sysslot]['RX_STREAM_ID']:
|
||||||
|
if 'LOOPLOG' not in self.STATUS[_stream_id] or not self.STATUS[_stream_id]['LOOPLOG']:
|
||||||
|
logger.warning("(%s) OBP *LoopControl* FIRST HBP: %s, STREAM ID: %s, TG: %s, TS: %s, IGNORE THIS SOURCE",self._system, system, int_id(_stream_id), int_id(_dst_id),_sysslot)
|
||||||
|
self.STATUS[_stream_id]['LOOPLOG'] = True
|
||||||
|
self.STATUS[_stream_id]['LAST'] = pkt_time
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
#if _stream_id in systems[system].STATUS and systems[system].STATUS[_stream_id]['START'] <= self.STATUS[_stream_id]['START']:
|
||||||
|
if _stream_id in systems[system].STATUS and '1ST' in systems[system].STATUS[_stream_id] and systems[system].STATUS[_stream_id]['TGID'] == _dst_id:
|
||||||
|
if 'LOOPLOG' not in self.STATUS[_stream_id] or not self.STATUS[_stream_id]['LOOPLOG']:
|
||||||
|
logger.warning("(%s) OBP *LoopControl* FIRST OBP %s, STREAM ID: %s, TG %s, IGNORE THIS SOURCE",self._system, system, int_id(_stream_id), int_id(_dst_id))
|
||||||
|
self.STATUS[_stream_id]['LOOPLOG'] = True
|
||||||
|
self.STATUS[_stream_id]['LAST'] = pkt_time
|
||||||
|
|
||||||
|
if CONFIG['SYSTEMS'][self._system]['ENHANCED_OBP'] and '_bcsq' not in self.STATUS[_stream_id]:
|
||||||
|
systems[self._system].send_bcsq(_dst_id,_stream_id)
|
||||||
|
#logger.warning("(%s) OBP *BridgeControl* Sent BCSQ , STREAM ID: %s, TG %s",self._system, int_id(_stream_id), int_id(_dst_id))
|
||||||
|
self.STATUS[_stream_id]['_bcsq'] = True
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
#Duplicate handling#
|
#Duplicate handling#
|
||||||
#Duplicate complete packet
|
#Duplicate complete packet
|
||||||
if self.STATUS[_stream_id]['lastData'] and self.STATUS[_stream_id]['lastData'] == _data and _seq > 1:
|
if self.STATUS[_stream_id]['lastData'] and self.STATUS[_stream_id]['lastData'] == _data and _seq > 1:
|
||||||
|
Loading…
Reference in New Issue
Block a user