Skip to content

Commit 9698cae

Browse files
Michael Mileusnichmikemiles-dev
authored andcommitted
fix: Supports V9 Data & Templates for IPFix
1 parent b601332 commit 9698cae

23 files changed

+310
-148
lines changed

RELEASES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# 0.5.6
22
* Simplify V9/IPFix Parse function.
33
* Added more cases for DataNumber Parsing.
4+
* IPFix now supports V9 Templates/Options Templates.
45

56
# 0.5.5
67
* More IPFIx/V9 Cleanup.

src/netflow_common.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ impl From<&V9> for NetflowCommon {
122122
let mut flowsets = vec![];
123123

124124
for flowset in &value.flowsets {
125-
if let V9FlowSetBody::Data(data) = &flowset.body {
125+
if let V9FlowSetBody::V9Data(data) = &flowset.body {
126126
for data_field in &data.fields {
127127
let value_map: BTreeMap<V9Field, FieldValue> =
128128
data_field.values().cloned().collect();
@@ -181,7 +181,7 @@ impl From<&IPFix> for NetflowCommon {
181181
let mut flowsets = vec![];
182182

183183
for flowset in &value.flowsets {
184-
if let IPFixFlowSetBody::Data(data) = &flowset.body {
184+
if let IPFixFlowSetBody::IPFixData(data) = &flowset.body {
185185
for data_field in &data.fields {
186186
let value_map: BTreeMap<IPFixField, FieldValue> =
187187
data_field.values().cloned().collect();
@@ -246,13 +246,13 @@ mod common_tests {
246246
use crate::static_versions::v7::{FlowSet as V7FlowSet, Header as V7Header, V7};
247247
use crate::variable_versions::data_number::{DataNumber, FieldValue};
248248
use crate::variable_versions::ipfix::{
249-
Data as IPFixData, FlowSet as IPFixFlowSet, FlowSetBody as IPFixFlowSetBody,
250-
FlowSetHeader as IPFixFlowSetHeader, Header as IPFixHeader, IPFix,
249+
FlowSet as IPFixFlowSet, FlowSetBody as IPFixFlowSetBody,
250+
FlowSetHeader as IPFixFlowSetHeader, Header as IPFixHeader, IPFix, IPFixData,
251251
};
252252
use crate::variable_versions::ipfix_lookup::IPFixField;
253253
use crate::variable_versions::v9::{
254-
Data as V9Data, FlowSet as V9FlowSet, FlowSetBody as V9FlowSetBody,
255-
FlowSetHeader as V9FlowSetHeader, Header as V9Header, V9,
254+
FlowSet as V9FlowSet, FlowSetBody as V9FlowSetBody, FlowSetHeader as V9FlowSetHeader,
255+
Header as V9Header, V9, V9Data,
256256
};
257257
use crate::variable_versions::v9_lookup::V9Field;
258258

@@ -400,7 +400,7 @@ mod common_tests {
400400
flowset_id: 0,
401401
length: 0,
402402
},
403-
body: V9FlowSetBody::Data(V9Data {
403+
body: V9FlowSetBody::V9Data(V9Data {
404404
padding: vec![],
405405
fields: vec![BTreeMap::from([
406406
(
@@ -510,7 +510,7 @@ mod common_tests {
510510
header_id: 0,
511511
length: 0,
512512
},
513-
body: IPFixFlowSetBody::Data(IPFixData {
513+
body: IPFixFlowSetBody::IPFixData(IPFixData {
514514
padding: vec![],
515515
fields: vec![BTreeMap::from([
516516
(

src/snapshots/netflow_parser__tests__base_tests__it_parses_0_length_fields_ipfix.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ expression: "NetflowParser::default().parse_bytes(&packet)"
1414
header_id: 2
1515
length: 20
1616
body:
17-
Template:
17+
IPFixTemplate:
1818
template_id: 256
1919
field_count: 3
2020
fields:
@@ -31,7 +31,7 @@ expression: "NetflowParser::default().parse_bytes(&packet)"
3131
header_id: 256
3232
length: 12
3333
body:
34-
Data:
34+
IPFixData:
3535
fields:
3636
- 0:
3737
- SourceIpv4address

src/snapshots/netflow_parser__tests__base_tests__it_parses_ipfix.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ expression: "NetflowParser::default().parse_bytes(&packet)"
1414
header_id: 2
1515
length: 20
1616
body:
17-
Template:
17+
IPFixTemplate:
1818
template_id: 256
1919
field_count: 3
2020
fields:
@@ -31,7 +31,7 @@ expression: "NetflowParser::default().parse_bytes(&packet)"
3131
header_id: 256
3232
length: 28
3333
body:
34-
Data:
34+
IPFixData:
3535
fields:
3636
- 0:
3737
- SourceIpv4address

src/snapshots/netflow_parser__tests__base_tests__it_parses_ipfix_data_cached_template.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ expression: parser.parse_bytes(&packet)
1414
header_id: 258
1515
length: 10
1616
body:
17-
Data:
17+
IPFixData:
1818
fields:
1919
- 0:
2020
- PacketDeltaCount

src/snapshots/netflow_parser__tests__base_tests__it_parses_ipfix_enterprise_bit_in_non_options_template.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ expression: "NetflowParser::default().parse_bytes(&packet)"
1414
header_id: 2
1515
length: 26
1616
body:
17-
Template:
17+
IPFixTemplate:
1818
template_id: 260
1919
field_count: 2
2020
fields:

src/snapshots/netflow_parser__tests__base_tests__it_parses_ipfix_enterprise_bit_template_and_data.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ expression: result
1414
header_id: 2
1515
length: 228
1616
body:
17-
Template:
17+
IPFixTemplate:
1818
template_id: 268
1919
field_count: 34
2020
fields:
@@ -153,7 +153,7 @@ expression: result
153153
header_id: 268
154154
length: 172
155155
body:
156-
Data:
156+
IPFixData:
157157
fields:
158158
- 0:
159159
- Enterprise

src/snapshots/netflow_parser__tests__base_tests__it_parses_ipfix_options_template.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ expression: "NetflowParser::default().parse_bytes(&packet)"
1414
header_id: 3
1515
length: 28
1616
body:
17-
OptionsTemplate:
17+
IPFixOptionsTemplate:
1818
template_id: 260
1919
field_count: 3
2020
scope_field_count: 1

src/snapshots/netflow_parser__tests__base_tests__it_parses_ipfix_options_template_with_data.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ expression: "NetflowParser::default().parse_bytes(&packet)"
1414
header_id: 3
1515
length: 28
1616
body:
17-
OptionsTemplate:
17+
IPFixOptionsTemplate:
1818
template_id: 260
1919
field_count: 3
2020
scope_field_count: 1
@@ -33,7 +33,7 @@ expression: "NetflowParser::default().parse_bytes(&packet)"
3333
header_id: 260
3434
length: 20
3535
body:
36-
OptionsData:
36+
IPFixOptionsData:
3737
fields:
3838
- 0:
3939
- Enterprise

src/snapshots/netflow_parser__tests__base_tests__it_parses_ipfix_scappy_example.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ expression: result
1414
header_id: 2
1515
length: 100
1616
body:
17-
Template:
17+
IPFixTemplate:
1818
template_id: 307
1919
field_count: 23
2020
fields:
@@ -99,7 +99,7 @@ expression: result
9999
header_id: 307
100100
length: 80
101101
body:
102-
Data:
102+
IPFixData:
103103
fields:
104104
- 0:
105105
- SourceIpv4address

0 commit comments

Comments
 (0)