diff --git a/netdissect.h b/netdissect.h index 6663e9d6d..5735d9b45 100644 --- a/netdissect.h +++ b/netdissect.h @@ -676,7 +676,7 @@ extern u_int fr_print(netdissect_options *, const u_char *, u_int); extern int frag6_print(netdissect_options *, const u_char *, const u_char *); extern void ftp_print(netdissect_options *, const u_char *, u_int); extern void geneve_print(netdissect_options *, const u_char *, u_int); -extern void geonet_print(netdissect_options *, const u_char *, u_int, const struct lladdr_info *); +extern void geonet_print(netdissect_options *, const u_char *, u_int); extern void gre_print(netdissect_options *, const u_char *, u_int); extern int hbhopt_process(netdissect_options *, const u_char *, int *, uint32_t *); extern void hex_and_ascii_print(netdissect_options *, const char *, const u_char *, u_int); diff --git a/print-ether.c b/print-ether.c index 324d089fc..514dd048f 100644 --- a/print-ether.c +++ b/print-ether.c @@ -636,7 +636,7 @@ ethertype_print(netdissect_options *ndo, case ETHERTYPE_GEONET_OLD: case ETHERTYPE_GEONET: - geonet_print(ndo, p, length, src); + geonet_print(ndo, p, length); return (1); case ETHERTYPE_CALM_FAST: diff --git a/print-geonet.c b/print-geonet.c index 3f8ee0757..34a923f7b 100644 --- a/print-geonet.c +++ b/print-geonet.c @@ -12,10 +12,11 @@ * LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE. * - * Original code by Ola Martin Lykkja (ola.lykkja@q-free.com) + * Original code by Ola Martin Lykkja (ola.lykkja@q-free.com). + * Updated code by Daniel Ulied (daniel.ulied@i2cat.net) and Jordi Marias-Parella (jordi.marias@i2cat.net). */ -/* \summary: ISO CALM FAST and ETSI GeoNetworking printer */ +/* \summary: ETSI GeoNetworking & Basic Transport Protocol printer */ #include @@ -26,232 +27,481 @@ #include "extract.h" #include "addrtoname.h" - /* - ETSI TS 102 636-5-1 V1.1.1 (2011-02) - Intelligent Transport Systems (ITS); Vehicular Communications; GeoNetworking; - Part 5: Transport Protocols; Sub-part 1: Basic Transport Protocol + ETSI EN 302 636-5-1 V2.2.1 (2019-05) + Intelligent Transport Systems (ITS); + Vehicular Communications; + GeoNetworking; + Part 5: Transport Protocols; + Sub-part 1: Basic Transport Protocol - ETSI TS 102 636-4-1 V1.1.1 (2011-06) - Intelligent Transport Systems (ITS); Vehicular communications; GeoNetworking; + ETSI EN 302 636-4-1 V1.4.1 (2020-01) + Intelligent Transport Systems (ITS); + Vehicular Communications; + GeoNetworking; Part 4: Geographical addressing and forwarding for point-to-point and point-to-multipoint communications; - Sub-part 1: Media-Independent Functionality + Sub-part 1: Media-Independent Functionality; + Release 2 */ -#define GEONET_ADDR_LEN 8 - -static const struct tok msg_type_values[] = { - { 0, "CAM" }, - { 1, "DENM" }, - { 101, "TPEGM" }, - { 102, "TSPDM" }, - { 103, "VPM" }, - { 104, "SRM" }, - { 105, "SLAM" }, - { 106, "ecoCAM" }, - { 107, "ITM" }, - { 150, "SA" }, - { 0, NULL } +/*Specific Definitions*/ +#define NDO_V_FLAG_FIRST_DEBUG_LEVEL 1 +#define NDO_V_FLAG_SECOND_DEBUG_LEVEL 2 +#define NDO_V_FLAG_THIRD_DEBUG_LEVEL 3 + +/*Bit-Wise Definitions*/ +#define ONE_BYTE 8 +#define TWO_BYTES 16 +#define THREE_BYTES 24 +#define FOUR_BYTES 32 +#define FIVE_BYTES 40 +#define SIX_BYTES 48 +#define SEVEN_BYTES 56 +#define EIGHT_BYTES 64 + +#define ONE_BIT_MASK 0x01 +#define TWO_BITS_MASK 0x03 +#define THREE_BITS_MASK 0x07 +#define FOUR_BITS_MASK 0x0F +#define FIVE_BITS_MASK 0x1F +#define SIX_BITS_MASK 0x3F +#define SEVEN_BITS_MASK 0x7F +#define EIGHT_BITS_MASK 0xFF +#define TEN_BITS_MASK 0x3FF +#define SIXTEEN_BITS_MASK 0xFFFF +#define FORTY_EIGHT_BITS_MASK 0xFFFFFFFFFFFF + +/* GeoNetworking Definitons*/ + +/* GeoNetworking Basic Header Definitions*/ +#define GN_BASIC_HEADER_MINIMUM_PACKET_LENGTH 4 + +#define IMPLEMENTED_GN_VERSIONS_NUM 1 +static const u_int implemented_gn_versions[IMPLEMENTED_GN_VERSIONS_NUM] = {1}; + +#define NH_COMMONHEADER 1 +#define NH_SECUREDPACKET 2 +#define IMPLEMENTED_GN_NEXT_HEADERS_NUM 1 +static const u_int implemented_gn_nh_headers[IMPLEMENTED_GN_NEXT_HEADERS_NUM] = { + NH_COMMONHEADER}; +static const struct tok basic_header_next_header_values[] = { + {0, "Any"}, + {NH_COMMONHEADER, "CommonHeader"}, + {NH_SECUREDPACKET, "SecuredPacket"}, }; -static void -print_btp_body(netdissect_options *ndo, - const u_char *bp) -{ - u_int msg_type; +#define HT_BEACON 1 +#define HT_TSB 5 +#define HT_TSB_SHB 0 +#define HT_TSB_MULTI_HOP 1 +#define ELAPSED_SECONDS 5 + +#define IMPLEMENTED_GN_HEADER_TYPES_NUM 2 +static const u_int implemented_gn_header_types[IMPLEMENTED_GN_HEADER_TYPES_NUM] = { + HT_BEACON, + HT_TSB}; + +static const struct tok common_header_next_header_values[] = { + {0, "Any"}, + {1, "BTP-A"}, + {2, "BTP-B"}, + {3, "IPv6"}, +}; + +#define HT_HST(ht, hst) (((ht) << 8) | (hst)) +static const struct tok header_type_tok[] = { + {HT_HST(0, 0), "Any"}, + + {HT_HST(1, 0), "Beacon"}, + + {HT_HST(2, 0), "GeoUnicast"}, + + {HT_HST(3, 0), "GeoAnycastCircle"}, + {HT_HST(3, 1), "GeoAnycastRect"}, + {HT_HST(3, 2), "GeoAnycastElipse"}, + + {HT_HST(4, 0), "GeoBroadcastCircle"}, + {HT_HST(4, 1), "GeoBroadcastRect"}, + {HT_HST(4, 2), "GeoBroadcastElipse"}, + + {HT_HST(5, 0), "TopoScopeBcast-SH"}, + {HT_HST(5, 1), "TopoScopeBcast-MH"}, + + {HT_HST(6, 0), "LocService-Request"}, + {HT_HST(6, 1), "LocService-Reply"}, +}; + +static const struct tok flags_text_from_bytes[] = { + {0, "Stationary"}, + {1, "Mobile"}, +}; + +static const struct tok st_text_from_bytes[] = { + {1, "Pedestrian"}, + {2, "Cyclist"}, + {3, "Moped"}, + {4, "Motorcycle"}, + {5, "Passenger Car"}, + {6, "Bus"}, + {7, "Light Truck"}, + {8, "Heavy Truck"}, + {9, "Trailer"}, + {10, "Special Vehicle"}, + {11, "Tram"}, + {12, "Road Side Unit"}, +}; + +/* BasicTransportProtocol Definitions*/ +#define BTP_A 1 +#define BTP_B 2 +static const struct tok btp_port_values[] = { + {2001, "CAM"}, + {2002, "DENM"}, + {2003, "MAPEM"}, + {2004, "SPATEM"}, + {2005, "SAEM"}, + {2006, "IVIM"}, + {2007, "SREM"}, + {2008, "SSEM"}, + {2009, "CPM"}, + {2010, "EVCSN_POI"}, + {2011, "TPG"}, + {2012, "EV_RSR"}, + {2013, "RTCMEM"}, + {2014, "CTLM"}, + {2015, "CRLM"}, + {2016, "EC_AT_REQ"}, + {2017, "MCDM"}, + {2018, "VAM"}, + {2019, "IMZM"}, + {2020, "DSM"}, + {2021, "P2P_CRLM"}, + {2022, "P2P_CTLM"}, + {2023, "MRS"}, + {2024, "P2P_FULL_CTLM"}, + {0, NULL}}; + - /* Assuming ItsPduHeader */ - ND_PRINT("; ItsPduHeader v:%u", GET_U_1(bp)); - msg_type = GET_U_1(bp + 1); - ND_PRINT(" t:%u-%s", msg_type, - tok2str(msg_type_values, "unknown (%u)", msg_type)); +static int is_value_in_list(u_int value, const u_int*list, u_int length_of_list){ + for (u_int i = 0; i < length_of_list; i++){ + if (value == list[i]){ + return 1; + } + } + return 0; } -/* EN 302 636-5-1 V2.2.1 Section 7.2: BTP-A header */ -static void -print_btp(netdissect_options *ndo, - const u_char *bp) + +static u_int convert_lt_to_seconds(u_int lt_base, u_int lt_multiplier) { - ND_PRINT("; BTP Dst:%u", GET_BE_U_2(bp + 0)); - ND_PRINT(" Src:%u", GET_BE_U_2(bp + 2)); + float base_seconds; + switch (lt_base) + { + case 0: // 50 milliseconds + base_seconds = 0.05; + break; + case 1: // 1 second + base_seconds = 1.0; + break; + case 2: // 10 seconds + base_seconds = 10.0; + break; + case 3: // 100 seconds + base_seconds = 100.0; + break; + default: // default to 0 second + base_seconds = 0.0; + break; + } + return (u_int)(base_seconds * lt_multiplier); } -static void -print_long_pos_vector(netdissect_options *ndo, - const u_char *bp) +static void gn_basic_header_decode_from_bytes(netdissect_options *ndo, const u_char **bp, u_int *length, u_int *next_header) { - ND_PRINT("GN_ADDR:%s ", GET_LINKADDR_STRING(bp, LINKADDR_OTHER, GEONET_ADDR_LEN)); - ND_PRINT("lat:%u ", GET_BE_U_4(bp + 12)); - ND_PRINT("lon:%u", GET_BE_U_4(bp + 16)); + u_int version; + u_int reserved; + u_int lt_multiplier; + u_int lt_base; + u_int rhl; + + uint32_t value = GET_BE_U_4(*bp); + *bp += 4; + *length -= 4; + version = (value >> (4 + THREE_BYTES)) & FOUR_BITS_MASK; + if (!is_value_in_list(version, implemented_gn_versions, IMPLEMENTED_GN_VERSIONS_NUM)) + { + ND_PRINT(" (Unsupported GeoNetworking Basic Header version %u)", version); + *next_header = 0; // Indicates an error. + return; + } + *next_header = (value >> (THREE_BYTES)) & FOUR_BITS_MASK; + reserved = (value >> (TWO_BYTES)) & EIGHT_BITS_MASK; + lt_multiplier = (value >> (2 + ONE_BYTE)) & SIX_BITS_MASK; + lt_base = (value >> ONE_BYTE) & THREE_BITS_MASK; + rhl = value & FOUR_BITS_MASK; + + const char *next_header_text = tok2str(basic_header_next_header_values, "Unknown", *next_header); + u_int lt_seconds = convert_lt_to_seconds(lt_base, lt_multiplier); + if (ndo->ndo_vflag == NDO_V_FLAG_FIRST_DEBUG_LEVEL) + { + ND_PRINT("ver:%u nh:%s lt:%us rhl:%u; ", + version, next_header_text, lt_seconds, rhl); + } + else if (ndo->ndo_vflag > NDO_V_FLAG_FIRST_DEBUG_LEVEL) + { + ND_PRINT("ver:%u nh:%s reserved:%u lt:[base:%u mult:%u = %us] rhl:%u; ", + version, next_header_text, reserved, + lt_base, lt_multiplier, lt_seconds, rhl); + } } +static void gn_common_header_decode_from_bytes(netdissect_options *ndo, const u_char **bp, u_int *length, u_int *header_type, u_int *header_subtype, u_int *next_header) +{ + u_int reserved; + u_int tc_scf; + u_int tc_channel_offload; + u_int tc_id; + u_int flags; + u_int pl; + u_int mhl; + u_int reserved2; -/* - * This is the top level routine of the printer. 'p' points - * to the geonet header of the packet. - */ -void -geonet_print(netdissect_options *ndo, const u_char *bp, u_int length, - const struct lladdr_info *src) + uint64_t value = GET_BE_U_8(*bp); + *bp += 8; + *length -= 8; + *next_header = (value >> (4 + SEVEN_BYTES)) & THREE_BITS_MASK; + reserved = (value >> SEVEN_BYTES) & FOUR_BITS_MASK; + *header_type = (value >> (4 + SIX_BYTES)) & FOUR_BITS_MASK; + *header_subtype = (value >> SIX_BYTES) & FOUR_BITS_MASK; + + uint8_t tc_encoded = (value >> FIVE_BYTES) & EIGHT_BITS_MASK; + tc_scf = (tc_encoded >> 7) & ONE_BIT_MASK; + tc_channel_offload = (tc_encoded >> 6) & ONE_BIT_MASK; + tc_id = tc_encoded & SIX_BITS_MASK; + + flags = (value >> FOUR_BYTES) & EIGHT_BITS_MASK; + pl = (value >> TWO_BYTES) & SIXTEEN_BITS_MASK; + mhl = (value >> ONE_BYTE) & EIGHT_BITS_MASK; + reserved2 = value & EIGHT_BITS_MASK; + + const char *next_header_text = tok2str(common_header_next_header_values, "Unknown", *next_header); + const char *header_type_text = tok2str(header_type_tok, "Unknown", HT_HST(*header_type, *header_subtype)); + const char *flags_text = tok2str(flags_text_from_bytes, "Unknown", flags); + if (ndo->ndo_vflag == 1) + { + ND_PRINT("nh:%s ht:%s f:%s pl:%u mhl:%u; ", + next_header_text, header_type_text, flags_text, pl, mhl); + } + else if (ndo->ndo_vflag >= 2) + { + ND_PRINT("nh:%s reserved:%u ht:%s hst:%u tc:[scf:%u co:%u id:%u] f:%s pl:%u mhl:%u reserved2:%u; ", + next_header_text, reserved, header_type_text, *header_subtype, + tc_scf, tc_channel_offload, tc_id, + flags_text, pl, mhl, reserved2); + } + else + { + ND_PRINT("nh:%s nt:%s; ", + next_header_text, header_type_text); + } +} + +static const char *process_gn_addr(netdissect_options *ndo, uint64_t gn_addr) { - u_int version; - u_int next_hdr; - u_int hdr_type; - u_int hdr_subtype; - uint16_t payload_length; - u_int hop_limit; - const char *next_hdr_txt = "Unknown"; - const char *hdr_type_txt = "Unknown"; - int hdr_size = -1; + uint8_t m = (gn_addr >> (7 + SEVEN_BYTES)) & ONE_BIT_MASK; + uint8_t st = (gn_addr >> (2 + SEVEN_BYTES)) & FIVE_BITS_MASK; + uint16_t reserved = (gn_addr >> SIX_BYTES) & TEN_BITS_MASK; // 10 bits + uint64_t mib = gn_addr & FORTY_EIGHT_BITS_MASK; // 48 bits + static char buffer[128]; + if (ndo->ndo_vflag >= NDO_V_FLAG_FIRST_DEBUG_LEVEL) + { + sprintf(buffer, "[m:%u st:%s reserved:%u mib:0x%llx]", m, tok2str(st_text_from_bytes, "Unknown", st), reserved, (unsigned long long)mib); + } + else + { + sprintf(buffer, "0x%llx", (unsigned long long)mib); + } - ndo->ndo_protocol = "geonet"; - ND_PRINT("GeoNet "); - if (src != NULL) - ND_PRINT("src:%s", (src->addr_string)(ndo, src->addr)); - ND_PRINT("; "); + return buffer; +} - /* Process Common Header */ - if (length < 36) { - ND_PRINT(" (common header length %u < 36)", length); - goto invalid; +static void process_long_position_vector_from_bytes(netdissect_options *ndo, const u_char **bp, u_int *length) +{ + uint64_t gn_addr; + u_int tst; + u_int lat; + u_int lon; + u_int pai; + u_int s; + u_int h; + + gn_addr = GET_BE_U_8(*bp); + *bp += 8; + *length -= 8; + tst = GET_BE_U_4(*bp); + *bp += 4; + *length -= 4; + lat = GET_BE_U_4(*bp); + *bp += 4; + *length -= 4; + lon = GET_BE_U_4(*bp); + *bp += 4; + *length -= 4; + uint32_t value = GET_BE_U_4(*bp); + *bp += 4; + *length -= 4; + pai = (value >> (7 + THREE_BYTES)) & ONE_BIT_MASK; + s = (value >> TWO_BYTES) / SEVEN_BITS_MASK; + h = value & EIGHT_BITS_MASK; + if (ndo->ndo_vflag > NDO_V_FLAG_FIRST_DEBUG_LEVEL) + { + ND_PRINT("GN_ADDR:%s tst:%u lat:%u lon:%u pai:%u, s:%u, h:%u; ", process_gn_addr(ndo, gn_addr), tst, lat, lon, pai, s, h); + } + else + { + ND_PRINT("GN_ADDR:%s lat:%u, lon:%u; ", process_gn_addr(ndo, gn_addr), lat, lon); } +} + +static void process_beacon_header_from_bytes(netdissect_options *ndo, const u_char **bp, u_int *length) +{ + process_long_position_vector_from_bytes(ndo, bp, length); +} + +static void process_tsb_shb_header_from_bytes(netdissect_options *ndo, const u_char **bp, u_int *length) +{ - version = GET_U_1(bp) >> 4; - next_hdr = GET_U_1(bp) & 0x0f; - hdr_type = GET_U_1(bp + 1) >> 4; - hdr_subtype = GET_U_1(bp + 1) & 0x0f; - payload_length = GET_BE_U_2(bp + 4); - hop_limit = GET_U_1(bp + 7); - - switch (next_hdr) { - case 0: next_hdr_txt = "Any"; break; - case 1: next_hdr_txt = "BTP-A"; break; - case 2: next_hdr_txt = "BTP-B"; break; - case 3: next_hdr_txt = "IPv6"; break; + process_long_position_vector_from_bytes(ndo, bp, length); + u_int media_indpendenet_data = GET_BE_U_4(*bp); + *bp += 4; + *length -= 4; + if (ndo->ndo_vflag > NDO_V_FLAG_SECOND_DEBUG_LEVEL) + { + ND_PRINT("Media-Independent Data: %u; ", media_indpendenet_data); } +} - switch (hdr_type) { - case 0: hdr_type_txt = "Any"; break; - case 1: hdr_type_txt = "Beacon"; break; - case 2: hdr_type_txt = "GeoUnicast"; break; - case 3: switch (hdr_subtype) { - case 0: hdr_type_txt = "GeoAnycastCircle"; break; - case 1: hdr_type_txt = "GeoAnycastRect"; break; - case 2: hdr_type_txt = "GeoAnycastElipse"; break; - } - break; - case 4: switch (hdr_subtype) { - case 0: hdr_type_txt = "GeoBroadcastCircle"; break; - case 1: hdr_type_txt = "GeoBroadcastRect"; break; - case 2: hdr_type_txt = "GeoBroadcastElipse"; break; - } - break; - case 5: switch (hdr_subtype) { - case 0: hdr_type_txt = "TopoScopeBcast-SH"; break; - case 1: hdr_type_txt = "TopoScopeBcast-MH"; break; - } - break; - case 6: switch (hdr_subtype) { - case 0: hdr_type_txt = "LocService-Request"; break; - case 1: hdr_type_txt = "LocService-Reply"; break; - } - break; +static void process_tsb_header_from_bytes(netdissect_options *ndo, const u_char **bp, u_int *length) +{ + u_int sn; + u_int reseved; + sn = GET_BE_U_2(bp); + *bp += 2; + *length -= 2; + reseved = GET_BE_U_2(bp); + *bp += 2; + *length -= 2; + if (ndo->ndo_vflag > 2) + { + ND_PRINT("sn:%u reserved:%u; ", sn, reseved); } + process_long_position_vector_from_bytes(ndo, bp, length); +} - ND_PRINT("v:%u ", version); - ND_PRINT("NH:%u-%s ", next_hdr, next_hdr_txt); - ND_PRINT("HT:%u-%u-%s ", hdr_type, hdr_subtype, hdr_type_txt); - ND_PRINT("HopLim:%u ", hop_limit); - ND_PRINT("Payload:%u ", payload_length); - print_long_pos_vector(ndo, bp + 8); - - /* Skip Common Header */ - ND_TCHECK_LEN(bp, 36); - length -= 36; - bp += 36; - - /* Process Extended Headers */ - switch (hdr_type) { - case 0: /* Any */ - hdr_size = 0; - break; - case 1: /* Beacon */ - hdr_size = 0; - break; - case 2: /* GeoUnicast */ - break; - case 3: switch (hdr_subtype) { - case 0: /* GeoAnycastCircle */ - break; - case 1: /* GeoAnycastRect */ - break; - case 2: /* GeoAnycastElipse */ - break; - } - break; - case 4: switch (hdr_subtype) { - case 0: /* GeoBroadcastCircle */ - break; - case 1: /* GeoBroadcastRect */ - break; - case 2: /* GeoBroadcastElipse */ - break; - } +static void process_optional_extended_header(netdissect_options *ndo, const u_char **bp, u_int *length, u_int header_type, u_int header_subtype) +{ + switch (header_type) + { + case HT_BEACON: + process_beacon_header_from_bytes(ndo, bp, length); + return; + break; + case HT_TSB: + switch (header_subtype) + { + case 0: + process_tsb_shb_header_from_bytes(ndo, bp, length); break; - case 5: switch (hdr_subtype) { - case 0: /* TopoScopeBcast-SH */ - hdr_size = 0; - break; - case 1: /* TopoScopeBcast-MH */ - hdr_size = 68 - 36; - break; - } + case 1: + process_tsb_header_from_bytes(ndo, bp, length); break; - case 6: switch (hdr_subtype) { - case 0: /* LocService-Request */ - break; - case 1: /* LocService-Reply */ - break; - } + default: + ND_PRINT(" (TSB Header-Subtype not supported)"); break; + } + break; + default: + ND_PRINT(" (Header-Type not supported)"); + break; } +} + +static void process_btp_header_from_bytes(netdissect_options *ndo, const u_char **bp, u_int *length, u_int common_header_next_header) +{ + u_int dst_port; + u_int src_port; + u_int dst_port_info; + + dst_port = GET_BE_U_2(*bp); + *bp += 2; + *length -= 2; + + switch (common_header_next_header) + { + case BTP_A: + src_port = GET_BE_U_2(*bp); + *bp += 2; + *length -= 2; + ND_PRINT("BTP-A dst:%s src:%s; ", tok2str(btp_port_values, "Unknown", dst_port), tok2str(btp_port_values, "Unknown", src_port)); + break; - /* Skip Extended headers */ - if (hdr_size >= 0) { - if (length < (u_int)hdr_size) { - ND_PRINT(" (header size %d > %u)", hdr_size, length); - goto invalid; + case BTP_B: + dst_port_info = GET_BE_U_2(*bp); + *bp += 2; + *length -= 2; + if (ndo->ndo_vflag > NDO_V_FLAG_SECOND_DEBUG_LEVEL) + { + ND_PRINT("BTP-B dst:%s dpi:%u; ", tok2str(btp_port_values, "Unknown", dst_port), dst_port_info); } - ND_TCHECK_LEN(bp, hdr_size); - length -= hdr_size; - bp += hdr_size; - switch (next_hdr) { - case 0: /* Any */ - break; - case 1: - case 2: /* BTP A/B */ - if (length < 4) { - ND_PRINT(" (BTP length %u < 4)", length); - goto invalid; - } - print_btp(ndo, bp); - length -= 4; - bp += 4; - if (length >= 2) { - /* - * XXX - did print_btp_body() - * return if length < 2 - * because this is optional, - * or was that just not - * reporting genuine errors? - */ - print_btp_body(ndo, bp); - } - break; - case 3: /* IPv6 */ - break; + else + { + ND_PRINT("BTP-B dst:%s; ", tok2str(btp_port_values, "Unknown", dst_port)); } + break; + + default: + break; + } +} + +void geonet_print(netdissect_options *ndo, const u_char *bp, u_int length) +{ + ndo->ndo_protocol = "geonet"; + ND_PRINT("GeoNet "); + + if (length < GN_BASIC_HEADER_MINIMUM_PACKET_LENGTH) + { + ND_PRINT(" (length %u < %u)", length, GN_BASIC_HEADER_MINIMUM_PACKET_LENGTH); + goto invalid; + } + + /* Process Basic Header */ + u_int basic_header_next_header; + gn_basic_header_decode_from_bytes(ndo, &bp, &length, &basic_header_next_header); + if (!is_value_in_list(basic_header_next_header, implemented_gn_nh_headers, IMPLEMENTED_GN_NEXT_HEADERS_NUM)) + { + ND_PRINT(" (Next-Header not supported: %s)", tok2str(basic_header_next_header_values, "Unknown", basic_header_next_header)); + goto invalid; + } + + /* Process Common Header */ + u_int header_type; + u_int header_subtype; + u_int common_header_next_header; + gn_common_header_decode_from_bytes(ndo, &bp, &length, &header_type, &header_subtype, &common_header_next_header); + if (!is_value_in_list(header_type, implemented_gn_header_types, IMPLEMENTED_GN_HEADER_TYPES_NUM)) + { + ND_PRINT(" (GeoNetworking Header-Type %s not supported)", tok2str(header_type_tok, "Unknown", HT_HST(header_type, header_subtype))); + goto invalid; + } + + /* Process Optional Extended Header*/ + process_optional_extended_header(ndo, &bp, &length, header_type, header_subtype); + if (common_header_next_header == BTP_A || common_header_next_header == BTP_B) + { + /* Print Basic Transport Header */ + process_btp_header_from_bytes(ndo, &bp, &length, common_header_next_header); } /* Print user data part */ @@ -261,5 +511,4 @@ geonet_print(netdissect_options *ndo, const u_char *bp, u_int length, invalid: nd_print_invalid(ndo); - /* XXX - print the remaining data as hex? */ } diff --git a/tests/TESTLIST b/tests/TESTLIST index 96f7b7f04..8849b1cae 100644 --- a/tests/TESTLIST +++ b/tests/TESTLIST @@ -354,8 +354,12 @@ of13_ericsson-vv of13_ericsson.pcapng of13_ericsson-vv.out -vv of10_inv_OFPST_FLOW-v of10_inv_OFPST_FLOW.pcap of10_inv_OFPST_FLOW-v.out -v of10_inv_QUEUE_GET_CONFIG_REPLY-vv of10_inv_QUEUE_GET_CONFIG_REPLY.pcap of10_inv_QUEUE_GET_CONFIG_REPLY-vv.out -vv -# GeoNetworking and CALM FAST tests -geonet_v0_and_calm_fast geonet_v0_and_calm_fast.pcap geonet_v0_and_calm_fast.out -vv + +# GeoNetworking +geonet_v1 geonet_v1.pcap geonet_v1.out +geonet_v1-v geonet_v1.pcap geonet_v1-v.out -v +geonet_v1-vv geonet_v1.pcap geonet_v1-vv.out -vv +geonet_v1-vvv geonet_v1.pcap geonet_v1-vvv.out -vvv # M3UA tests m3ua isup.pcap isup.out @@ -546,7 +550,6 @@ pptp-v pptp.pcap pptp-v.out -v # CVEs 2014 malformed packets from Steffen Bauch cve-2014-8767-OLSR cve-2014-8767-OLSR.pcap cve-2014-8767-OLSR.out -v -cve-2014-8768-Geonet cve-2014-8768-Geonet.pcap cve-2014-8768-Geonet.out -v cve-2014-8769-AODV cve-2014-8769-AODV.pcap cve-2014-8769-AODV.out -v # bad packets from Kevin Day @@ -648,8 +651,6 @@ heapoverflow-in_checksum heapoverflow-in_checksum.pcap heapoverflow-in_checksum. heapoverflow-tcp_print heapoverflow-tcp_print.pcap heapoverflow-tcp_print.out -v gre-heapoverflow-1 gre-heapoverflow-1.pcap gre-heapoverflow-1.out -v gre-heapoverflow-2 gre-heapoverflow-2.pcap gre-heapoverflow-2.out -v -calm-fast-mac-lookup-heapoverflow calm-fast-mac-lookup-heapoverflow.pcap calm-fast-mac-lookup-heapoverflow.out -v -geonet-mac-lookup-heapoverflow geonet-mac-lookup-heapoverflow.pcap geonet-mac-lookup-heapoverflow.out -v radiotap-heapoverflow radiotap-heapoverflow.pcap radiotap-heapoverflow.out -v isoclns-heapoverflow isoclns-heapoverflow.pcap isoclns-heapoverflow.out -v tcp-auth-heapoverflow tcp-auth-heapoverflow.pcap tcp-auth-heapoverflow.out -v diff --git a/tests/geonet_v1-v.out b/tests/geonet_v1-v.out new file mode 100644 index 000000000..42a9be2c6 --- /dev/null +++ b/tests/geonet_v1-v.out @@ -0,0 +1,113 @@ + 1 2025-12-11 17:47:17.016823 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 981f 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 2 2025-12-11 17:47:17.158256 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 98ad 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 3 2025-12-11 17:47:17.911431 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:Any ht:Beacon f:Stationary pl:0 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; + 4 2025-12-11 17:47:18.018623 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 9c09 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 5 2025-12-11 17:47:18.159958 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 9c97 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 6 2025-12-11 17:47:19.020634 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 9ff3 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 7 2025-12-11 17:47:19.092231 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:Any ht:Beacon f:Stationary pl:0 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; + 8 2025-12-11 17:47:19.161822 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 a081 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 9 2025-12-11 17:47:20.022409 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 a3dd 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 10 2025-12-11 17:47:20.163689 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 a46b 0002 7280 e483 6461 .......k..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 11 2025-12-11 17:47:20.914646 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:Any ht:Beacon f:Stationary pl:0 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; + 12 2025-12-11 17:47:21.024755 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 a7c7 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 13 2025-12-11 17:47:21.165463 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 a854 0002 7280 e483 6461 .......T..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 14 2025-12-11 17:47:22.026529 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 abb1 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 15 2025-12-11 17:47:22.093005 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:Any ht:Beacon f:Stationary pl:0 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; + 16 2025-12-11 17:47:22.166871 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 ac3e 0002 7280 e483 6461 .......>..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 17 2025-12-11 17:47:23.028469 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 af9b 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 18 2025-12-11 17:47:23.168647 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 b028 0002 7280 e483 6461 .......(..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 19 2025-12-11 17:47:23.917925 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:Any ht:Beacon f:Stationary pl:0 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; + 20 2025-12-11 17:47:24.030202 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 b385 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 21 2025-12-11 17:47:24.170273 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 b411 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 22 2025-12-11 17:47:25.032156 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 b76f 0009 ca03 920d 9185 .......o........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 23 2025-12-11 17:47:25.096244 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:Any ht:Beacon f:Stationary pl:0 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; + 24 2025-12-11 17:47:25.172470 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 b7fb 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 25 2025-12-11 17:47:26.033928 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 bb58 0009 ca03 920d 9185 .......X........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 26 2025-12-11 17:47:26.174926 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 bbe5 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 27 2025-12-11 17:47:26.918397 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:Any ht:Beacon f:Stationary pl:0 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; + 28 2025-12-11 17:47:27.035930 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 bf43 0009 ca03 920d 9185 .......C........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 29 2025-12-11 17:47:27.176339 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 bfcf 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 30 2025-12-11 17:47:28.037971 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 c32d 0009 ca03 920d 9185 .......-........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 31 2025-12-11 17:47:28.099650 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:Any ht:Beacon f:Stationary pl:0 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; + 32 2025-12-11 17:47:28.177505 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 c3b8 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 33 2025-12-11 17:47:29.039191 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:45 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 c716 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 34 2025-12-11 17:47:29.178795 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:BTP-B ht:TopoScopeBcast-SH f:Stationary pl:38 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] lat:413873040, lon:21124850; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 c7a2 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 35 2025-12-11 17:47:29.919228 GeoNet ver:1 nh:CommonHeader lt:60s rhl:1; nh:Any ht:Beacon f:Stationary pl:0 mhl:1; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] lat:413873040, lon:21124850; diff --git a/tests/geonet_v1-vv.out b/tests/geonet_v1-vv.out new file mode 100644 index 000000000..d5ffa53b5 --- /dev/null +++ b/tests/geonet_v1-vv.out @@ -0,0 +1,113 @@ + 1 2025-12-11 17:47:17.016823 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070307344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 981f 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 2 2025-12-11 17:47:17.158256 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070307344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 98ad 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 3 2025-12-11 17:47:17.911431 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070307344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 4 2025-12-11 17:47:18.018623 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070308344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 9c09 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 5 2025-12-11 17:47:18.159958 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070308344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 9c97 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 6 2025-12-11 17:47:19.020634 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070309344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 9ff3 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 7 2025-12-11 17:47:19.092231 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070308344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 8 2025-12-11 17:47:19.161822 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070309344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 a081 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 9 2025-12-11 17:47:20.022409 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070310344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 a3dd 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 10 2025-12-11 17:47:20.163689 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070310344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 a46b 0002 7280 e483 6461 .......k..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 11 2025-12-11 17:47:20.914646 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070310344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 12 2025-12-11 17:47:21.024755 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070311344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 a7c7 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 13 2025-12-11 17:47:21.165463 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070311344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 a854 0002 7280 e483 6461 .......T..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 14 2025-12-11 17:47:22.026529 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070312344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 abb1 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 15 2025-12-11 17:47:22.093005 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070311344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 16 2025-12-11 17:47:22.166871 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070312344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 ac3e 0002 7280 e483 6461 .......>..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 17 2025-12-11 17:47:23.028469 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070313344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 af9b 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 18 2025-12-11 17:47:23.168647 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070313344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 b028 0002 7280 e483 6461 .......(..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 19 2025-12-11 17:47:23.917925 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070313344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 20 2025-12-11 17:47:24.030202 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070314344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 b385 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 21 2025-12-11 17:47:24.170273 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070314344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 b411 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 22 2025-12-11 17:47:25.032156 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070315344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 b76f 0009 ca03 920d 9185 .......o........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 23 2025-12-11 17:47:25.096244 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070314344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 24 2025-12-11 17:47:25.172470 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070315344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 b7fb 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 25 2025-12-11 17:47:26.033928 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070316344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 bb58 0009 ca03 920d 9185 .......X........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 26 2025-12-11 17:47:26.174926 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070316344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 bbe5 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 27 2025-12-11 17:47:26.918397 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070316344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 28 2025-12-11 17:47:27.035930 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070317344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 bf43 0009 ca03 920d 9185 .......C........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 29 2025-12-11 17:47:27.176339 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070317344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 bfcf 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 30 2025-12-11 17:47:28.037971 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070318344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 c32d 0009 ca03 920d 9185 .......-........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 31 2025-12-11 17:47:28.099650 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070317344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 32 2025-12-11 17:47:28.177505 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070318344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 c3b8 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 33 2025-12-11 17:47:29.039191 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070319344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:CAM; + 0x0000: 0202 0000 0001 c716 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 34 2025-12-11 17:47:29.178795 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070319344 lat:413873040 lon:21124850 pai:0, s:0, h:0; BTP-B dst:VAM; + 0x0000: 0310 0000 0002 c7a2 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 35 2025-12-11 17:47:29.919228 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070319344 lat:413873040 lon:21124850 pai:0, s:0, h:0; diff --git a/tests/geonet_v1-vvv.out b/tests/geonet_v1-vvv.out new file mode 100644 index 000000000..9efece97d --- /dev/null +++ b/tests/geonet_v1-vvv.out @@ -0,0 +1,113 @@ + 1 2025-12-11 17:47:17.016823 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070307344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 981f 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 2 2025-12-11 17:47:17.158256 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070307344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 98ad 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 3 2025-12-11 17:47:17.911431 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070307344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 4 2025-12-11 17:47:18.018623 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070308344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 9c09 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 5 2025-12-11 17:47:18.159958 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070308344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 9c97 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 6 2025-12-11 17:47:19.020634 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070309344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 9ff3 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 7 2025-12-11 17:47:19.092231 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070308344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 8 2025-12-11 17:47:19.161822 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070309344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 a081 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 9 2025-12-11 17:47:20.022409 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070310344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 a3dd 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 10 2025-12-11 17:47:20.163689 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070310344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 a46b 0002 7280 e483 6461 .......k..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 11 2025-12-11 17:47:20.914646 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070310344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 12 2025-12-11 17:47:21.024755 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070311344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 a7c7 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 13 2025-12-11 17:47:21.165463 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070311344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 a854 0002 7280 e483 6461 .......T..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 14 2025-12-11 17:47:22.026529 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070312344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 abb1 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 15 2025-12-11 17:47:22.093005 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070311344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 16 2025-12-11 17:47:22.166871 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070312344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 ac3e 0002 7280 e483 6461 .......>..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 17 2025-12-11 17:47:23.028469 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070313344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 af9b 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 18 2025-12-11 17:47:23.168647 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070313344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 b028 0002 7280 e483 6461 .......(..r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 19 2025-12-11 17:47:23.917925 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070313344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 20 2025-12-11 17:47:24.030202 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070314344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 b385 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 21 2025-12-11 17:47:24.170273 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070314344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 b411 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 22 2025-12-11 17:47:25.032156 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070315344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 b76f 0009 ca03 920d 9185 .......o........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 23 2025-12-11 17:47:25.096244 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070314344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 24 2025-12-11 17:47:25.172470 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070315344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 b7fb 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 25 2025-12-11 17:47:26.033928 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070316344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 bb58 0009 ca03 920d 9185 .......X........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 26 2025-12-11 17:47:26.174926 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070316344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 bbe5 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 27 2025-12-11 17:47:26.918397 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070316344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 28 2025-12-11 17:47:27.035930 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070317344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 bf43 0009 ca03 920d 9185 .......C........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 29 2025-12-11 17:47:27.176339 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070317344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 bfcf 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 30 2025-12-11 17:47:28.037971 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070318344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 c32d 0009 ca03 920d 9185 .......-........ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 31 2025-12-11 17:47:28.099650 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070317344 lat:413873040 lon:21124850 pai:0, s:0, h:0; + 32 2025-12-11 17:47:28.177505 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070318344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 c3b8 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 33 2025-12-11 17:47:29.039191 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:45 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070319344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:CAM dpi:0; + 0x0000: 0202 0000 0001 c716 0009 ca03 920d 9185 ................ + 0x0010: 1e47 d07d 0001 b774 3400 000f c000 7ebf .G.}...t4.....~. + 0x0020: e9ed 0737 feeb fff6 00 ...7..... + 34 2025-12-11 17:47:29.178795 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:BTP-B reserved:0 ht:TopoScopeBcast-SH hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:38 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c002] tst:1070319344 lat:413873040 lon:21124850 pai:0, s:0, h:0; Media-Independent Data: 0; BTP-B dst:VAM dpi:0; + 0x0000: 0310 0000 0002 c7a2 0002 7280 e483 6461 ..........r...da + 0x0010: 4791 f41f 4000 6ddd 0d00 0708 fe00 03f5 G...@.m......... + 0x0020: 0730 .0 + 35 2025-12-11 17:47:29.919228 GeoNet ver:1 nh:CommonHeader reserved:0 lt:[base:2 mult:6 = 60s] rhl:1; nh:Any reserved:0 ht:Beacon hst:0 tc:[scf:0 co:0 id:0] f:Stationary pl:0 mhl:1 reserved2:0; GN_ADDR:[m:1 st:Cyclist reserved:0 mib:0xdd1408c7c001] tst:1070319344 lat:413873040 lon:21124850 pai:0, s:0, h:0; diff --git a/tests/geonet_v1.out b/tests/geonet_v1.out new file mode 100644 index 000000000..054b9e2e8 --- /dev/null +++ b/tests/geonet_v1.out @@ -0,0 +1,35 @@ + 1 2025-12-11 17:47:17.016823 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 2 2025-12-11 17:47:17.158256 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 3 2025-12-11 17:47:17.911431 GeoNet nh:Any nt:Beacon; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; + 4 2025-12-11 17:47:18.018623 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 5 2025-12-11 17:47:18.159958 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 6 2025-12-11 17:47:19.020634 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 7 2025-12-11 17:47:19.092231 GeoNet nh:Any nt:Beacon; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; + 8 2025-12-11 17:47:19.161822 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 9 2025-12-11 17:47:20.022409 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 10 2025-12-11 17:47:20.163689 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 11 2025-12-11 17:47:20.914646 GeoNet nh:Any nt:Beacon; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; + 12 2025-12-11 17:47:21.024755 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 13 2025-12-11 17:47:21.165463 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 14 2025-12-11 17:47:22.026529 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 15 2025-12-11 17:47:22.093005 GeoNet nh:Any nt:Beacon; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; + 16 2025-12-11 17:47:22.166871 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 17 2025-12-11 17:47:23.028469 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 18 2025-12-11 17:47:23.168647 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 19 2025-12-11 17:47:23.917925 GeoNet nh:Any nt:Beacon; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; + 20 2025-12-11 17:47:24.030202 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 21 2025-12-11 17:47:24.170273 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 22 2025-12-11 17:47:25.032156 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 23 2025-12-11 17:47:25.096244 GeoNet nh:Any nt:Beacon; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; + 24 2025-12-11 17:47:25.172470 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 25 2025-12-11 17:47:26.033928 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 26 2025-12-11 17:47:26.174926 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 27 2025-12-11 17:47:26.918397 GeoNet nh:Any nt:Beacon; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; + 28 2025-12-11 17:47:27.035930 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 29 2025-12-11 17:47:27.176339 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 30 2025-12-11 17:47:28.037971 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 31 2025-12-11 17:47:28.099650 GeoNet nh:Any nt:Beacon; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; + 32 2025-12-11 17:47:28.177505 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 33 2025-12-11 17:47:29.039191 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; BTP-B dst:CAM; + 34 2025-12-11 17:47:29.178795 GeoNet nh:BTP-B nt:TopoScopeBcast-SH; GN_ADDR:0xdd1408c7c002 lat:413873040, lon:21124850; BTP-B dst:VAM; + 35 2025-12-11 17:47:29.919228 GeoNet nh:Any nt:Beacon; GN_ADDR:0xdd1408c7c001 lat:413873040, lon:21124850; diff --git a/tests/geonet_v1.pcap b/tests/geonet_v1.pcap new file mode 100644 index 000000000..8f9ae8136 Binary files /dev/null and b/tests/geonet_v1.pcap differ