Decode IPFIX data :param data_set: IPFIX data set :returns: List of decoded data records.
(self, data_set)
| 535 | self._templates.append({"id": templateID, "fields": fields, "rec_len": rec_len}) |
| 536 | |
| 537 | def decode_data_set(self, data_set): |
| 538 | """ |
| 539 | Decode IPFIX data |
| 540 | |
| 541 | :param data_set: IPFIX data set |
| 542 | :returns: List of decoded data records. |
| 543 | """ |
| 544 | data = [] |
| 545 | for template in self._templates: |
| 546 | if template["id"] == data_set.setID: |
| 547 | offset = 0 |
| 548 | d = data_set[Data].data |
| 549 | for i in range(len(d) // template["rec_len"]): |
| 550 | record = {} |
| 551 | for field in template["fields"]: |
| 552 | f = d[offset : offset + field["len"]] |
| 553 | offset += field["len"] |
| 554 | record.update({field["name"]: f}) |
| 555 | data.append(record) |
| 556 | break |
| 557 | return data |