Keep the colleague's microbu-esp32c5 tree in this repository
obu-firmware builds against vanetza-idf from microbu-esp32c5/external, but that tree was gitignored, so a clone of this repository could not build the firmware it ships. It is now committed here as ordinary files in its own folder, microbu-esp32c5/: the colleague's commit cf4b99f plus the V2X2MAP bridge's signature verification (--trust) used on the bench. Nothing is fetched from or pushed to the colleague's repository; this repository and its remotes carry everything. The folder's own .gitignore keeps build output, downloaded components and private key material out, as it did there; the committed file set is identical to that repository's tracked files. The ESP32-C5 is still flashed from obu-firmware/, which only takes vanetza-idf from microbu-esp32c5/, so the two stay separate folders. FLASHING.md says how to take a newer version of the colleague's tree (copy it over the folder, rebuild, test, commit).
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# Wireshark VRU Awareness Service (VAM) Dissector Extension
|
||||
|
||||
## Purpose
|
||||
Wireshark natively dissects IEEE 1609.2 / ETSI TS 103 097 secured packets, but stops dissecting at `Ieee1609Dot2Data.unsecuredData` unless the ITS Application ID (PSID) is registered in Wireshark's internal `ieee1609dot2.psid` dissector table.
|
||||
|
||||
- Standard PSIDs like CAM (`36`) and DENM (`37`) are registered by default in Wireshark 4.x.
|
||||
- **PSID 638** (VRU Awareness Service, ETSI TS 102 965) is not registered in Wireshark 4.x.
|
||||
|
||||
This Lua plugin registers **PSID 638** to point to the GeoNetworking common header (`gnw.comm`), allowing Wireshark to continue dissecting the entire stack:
|
||||
```
|
||||
IEEE 802.11 (5.9 GHz ITS-G5) -> LLC/SNAP 0x8947 -> GeoNetworking -> BTP-B (port 2018) -> VAM (TS 103 300-3)
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
### Windows
|
||||
Copy `psid-vru.lua` into your personal Wireshark plugins directory:
|
||||
```powershell
|
||||
Copy-Item tools/wireshark/psid-vru.lua "$env:APPDATA\Wireshark\plugins\"
|
||||
```
|
||||
|
||||
### Linux
|
||||
Copy `psid-vru.lua` into:
|
||||
```bash
|
||||
mkdir -p ~/.local/lib/wireshark/plugins
|
||||
cp tools/wireshark/psid-vru.lua ~/.local/lib/wireshark/plugins/
|
||||
```
|
||||
|
||||
### macOS
|
||||
Copy `psid-vru.lua` into:
|
||||
```bash
|
||||
mkdir -p ~/.config/wireshark/plugins
|
||||
cp tools/wireshark/psid-vru.lua ~/.config/wireshark/plugins/
|
||||
```
|
||||
|
||||
## Verification
|
||||
1. Open Wireshark.
|
||||
2. Navigate to **Help -> About Wireshark -> Plugins**.
|
||||
3. Verify that `psid-vru.lua` is listed as active.
|
||||
|
||||
## Command-Line Usage (tshark)
|
||||
You can directly pass the Lua script to `tshark` without installing:
|
||||
```bash
|
||||
tshark -X lua_script:tools/wireshark/psid-vru.lua -r capture.pcap
|
||||
```
|
||||
@@ -0,0 +1,8 @@
|
||||
-- Wireshark stops dissecting a signed GeoNetworking packet at Ieee1609Dot2Data.unsecuredData
|
||||
-- unless the headerInfo PSID is registered in its "ieee1609dot2.psid" table; 638 (VRU awareness
|
||||
-- service, TS 102 965) is not in Wireshark 4.6 (36, 37, 137-141, 637, 639 are). Register it so the
|
||||
-- payload continues as GeoNetworking common header -> BTP-B port 2018 -> ITS (VAM), the way CAM (36)
|
||||
-- and DENM (37) already do. Copy to %APPDATA%\Wireshark\plugins\ or run tshark -X lua_script:this.
|
||||
local psid = DissectorTable.get("ieee1609dot2.psid")
|
||||
local gnw = Dissector.get("gnw.comm") -- the unsecured data starts at the GN common header
|
||||
psid:add(638, gnw)
|
||||
Reference in New Issue
Block a user