Handle LLDP parse Unicode error

Closes-Bug: #2044793
Change-Id: I939c80bb309b22e05ba7cc93686f12bbe0d71624
(cherry picked from commit db76af9c86)
This commit is contained in:
Riccardo Pittau 2023-12-15 15:55:00 +01:00
parent fbe087fa4f
commit b43ce63be3
2 changed files with 19 additions and 1 deletions

View File

@ -53,7 +53,16 @@ class LLDPBasicProcessingHook(base.ProcessingHook):
{'tlv_type': tlv_type, 'msg': e}, node_info=node_info)
continue
if parser.parse_tlv(tlv_type, data):
try:
parsed_tlv = parser.parse_tlv(tlv_type, data)
except UnicodeDecodeError as e:
LOG.warning("LLDP TLV type %(tlv_type)d can't be decoded: "
"%(exc)s",
{'tlv_type': tlv_type, 'exc': e},
node_info=node_info)
continue
if parsed_tlv:
LOG.debug("Handled TLV type %d",
tlv_type, node_info=node_info)
else:

View File

@ -0,0 +1,9 @@
---
fixes:
- |
In case the lldp raw data collected by the inspection process
includes non utf-8 information, the parser fails breaking
the inspection process.
This patch works around that excluding the malformed data
and adding an entry in the logs to provide information
on the failed tlv.