|
25 | 25 | # python-netflow-v9-softflowd expects main.py to be the main entrypoint, but we only need
|
26 | 26 | # parse_packet():
|
27 | 27 | sys.path.append(os.path.dirname(os.path.realpath(__file__)) + '/pynetflow')
|
28 |
| -from pynetflow.netflow import parse_packet, UnknownNetFlowVersion, TemplateNotRecognized |
| 28 | +from pynetflow.netflow import parse_packet |
| 29 | +from pynetflow.netflow.utils import UnknownExportVersion |
| 30 | +from pynetflow.netflow.v9 import V9TemplateNotRecognized |
29 | 31 |
|
30 | 32 |
|
31 | 33 | IS_DEBUG = os.environ.get('DEBUG', 'false') in ['true', 'yes', '1']
|
@@ -105,7 +107,7 @@ def process_named_pipe(named_pipe_filename):
|
105 | 107 | if ex.errno != errno.EEXIST:
|
106 | 108 | raise
|
107 | 109 |
|
108 |
| - templates = {} |
| 110 | + templates = {"netflow": {}, "ipfix": {}} |
109 | 111 | last_record_seqs = {}
|
110 | 112 | buffer = [] # we merge together writes to DB
|
111 | 113 | known_exporters = set()
|
@@ -147,11 +149,13 @@ def process_named_pipe(named_pipe_filename):
|
147 | 149 | if len(buffer) > MAX_BUFFER_SIZE:
|
148 | 150 | write_buffer(buffer)
|
149 | 151 | buffer = []
|
150 |
| - except UnknownNetFlowVersion: |
| 152 | + except UnknownExportVersion: |
151 | 153 | log.warning("Unknown NetFlow version")
|
152 | 154 | continue
|
153 |
| - except TemplateNotRecognized as ex: |
154 |
| - log.warning(f"Failed to decode a v9 ExportPacket, template not recognized (if this happens at the start, it's ok). Template id: {ex.template_id}") |
| 155 | + except V9TemplateNotRecognized as ex: |
| 156 | + log.warning(f"Failed to decode a v9 ExportPacket, template not recognized (if this happens at the start, it's ok)") |
| 157 | + log.debug(f"Problematic packet data: {data_b64}") |
| 158 | + log.debug(f"Known templates until now: {templates}") |
155 | 159 | continue
|
156 | 160 |
|
157 | 161 | except Exception as ex:
|
|
0 commit comments