diff --git a/scapy/layers/netflow.py b/scapy/layers/netflow.py index ef0fe8e9646..e78317f5869 100644 --- a/scapy/layers/netflow.py +++ b/scapy/layers/netflow.py @@ -260,8 +260,10 @@ def __init__(self, name, default, *args, **kargs): NTOP_BASE = 57472 NetflowV910TemplateFields = { - 1: _N910F("IN_BYTES", length=4), - 2: _N910F("IN_PKTS", length=4), + 1: _N910F("IN_BYTES", length=4, + field=IntField), + 2: _N910F("IN_PKTS", length=4, + field=IntField), 3: _N910F("FLOWS", length=4), 4: _N910F("PROTOCOL", length=1, field=ByteEnumField, kwargs={"enum": IP_PROTOS}), @@ -275,14 +277,16 @@ def __init__(self, name, default, *args, **kargs): field=IPField), 9: _N910F("SRC_MASK", length=1, field=ByteField), - 10: _N910F("INPUT_SNMP"), + 10: _N910F("INPUT_SNMP", + field=ShortField), 11: _N910F("L4_DST_PORT", length=2, field=ShortField), 12: _N910F("IPV4_DST_ADDR", length=4, field=IPField), 13: _N910F("DST_MASK", length=1, field=ByteField), - 14: _N910F("OUTPUT_SNMP"), + 14: _N910F("OUTPUT_SNMP", + field=ShortField), 15: _N910F("IPV4_NEXT_HOP", length=4, field=IPField), 16: _N910F("SRC_AS", length=2, @@ -291,16 +295,20 @@ def __init__(self, name, default, *args, **kargs): field=ShortOrInt), 18: _N910F("BGP_IPV4_NEXT_HOP", length=4, field=IPField), - 19: _N910F("MUL_DST_PKTS", length=4), - 20: _N910F("MUL_DST_BYTES", length=4), + 19: _N910F("MUL_DST_PKTS", length=4, + field=IntField), + 20: _N910F("MUL_DST_BYTES", length=4, + field=IntField), 21: _N910F("LAST_SWITCHED", length=4, field=SecondsIntField, kwargs={"use_msec": True}), 22: _N910F("FIRST_SWITCHED", length=4, field=SecondsIntField, kwargs={"use_msec": True}), - 23: _N910F("OUT_BYTES", length=4), - 24: _N910F("OUT_PKTS", length=4), + 23: _N910F("OUT_BYTES", length=4, + field=IntField), + 24: _N910F("OUT_PKTS", length=4, + field=IntField), 25: _N910F("IP_LENGTH_MINIMUM"), 26: _N910F("IP_LENGTH_MAXIMUM"), 27: _N910F("IPV6_SRC_ADDR", length=16, @@ -308,9 +316,9 @@ def __init__(self, name, default, *args, **kargs): 28: _N910F("IPV6_DST_ADDR", length=16, field=IP6Field), 29: _N910F("IPV6_SRC_MASK", length=1, - field=ByteField), + field=IP6Field), 30: _N910F("IPV6_DST_MASK", length=1, - field=ByteField), + field=IP6Field), 31: _N910F("IPV6_FLOW_LABEL", length=3, field=ThreeBytesField), 32: _N910F("ICMP_TYPE", length=2, @@ -329,9 +337,12 @@ def __init__(self, name, default, *args, **kargs): field=ByteField), 39: _N910F("ENGINE_ID", length=1, field=ByteField), - 40: _N910F("TOTAL_BYTES_EXP", length=4), - 41: _N910F("TOTAL_PKTS_EXP", length=4), - 42: _N910F("TOTAL_FLOWS_EXP", length=4), + 40: _N910F("TOTAL_BYTES_EXP", length=4, + field=IntField), + 41: _N910F("TOTAL_PKTS_EXP", length=4, + field=IntField), + 42: _N910F("TOTAL_FLOWS_EXP", length=4, + field=IntField), 43: _N910F("IPV4_ROUTER_SC"), 44: _N910F("IP_SRC_PREFIX"), 45: _N910F("IP_DST_PREFIX"), @@ -376,16 +387,26 @@ def __init__(self, name, default, *args, **kargs): 63: _N910F("BGP_IPV6_NEXT_HOP", length=16, field=IP6Field), 64: _N910F("IPV6_OPTION_HEADERS", length=4), - 70: _N910F("MPLS_LABEL_1", length=3), - 71: _N910F("MPLS_LABEL_2", length=3), - 72: _N910F("MPLS_LABEL_3", length=3), - 73: _N910F("MPLS_LABEL_4", length=3), - 74: _N910F("MPLS_LABEL_5", length=3), - 75: _N910F("MPLS_LABEL_6", length=3), - 76: _N910F("MPLS_LABEL_7", length=3), - 77: _N910F("MPLS_LABEL_8", length=3), - 78: _N910F("MPLS_LABEL_9", length=3), - 79: _N910F("MPLS_LABEL_10", length=3), + 70: _N910F("MPLS_LABEL_1", length=3, + field=IntField), + 71: _N910F("MPLS_LABEL_2", length=3, + field=IntField), + 72: _N910F("MPLS_LABEL_3", length=3, + field=IntField), + 73: _N910F("MPLS_LABEL_4", length=3, + field=IntField), + 74: _N910F("MPLS_LABEL_5", length=3, + field=IntField), + 75: _N910F("MPLS_LABEL_6", length=3, + field=IntField), + 76: _N910F("MPLS_LABEL_7", length=3, + field=IntField), + 77: _N910F("MPLS_LABEL_8", length=3, + field=IntField), + 78: _N910F("MPLS_LABEL_9", length=3, + field=IntField), + 79: _N910F("MPLS_LABEL_10", length=3, + field=IntField), 80: _N910F("DESTINATION_MAC"), 81: _N910F("SOURCE_MAC"), 82: _N910F("IF_NAME"), @@ -1344,7 +1365,6 @@ def _GenNetflowRecordV9(cls, lengths_list): if _f_type: if issubclass(_f_type, _AdjustableNetflowField): _f_kwargs["length"] = j - print(k, _f_kwargs) _fields_desc.append( _f_type( NetflowV910TemplateFieldTypes.get(k, "unknown_data"),