Overview
Why Ethernet
CAN’s 500 kbit/s is fast enough for fault reads but slow for live data and large services. Automotive Ethernet at 100 Mbit/s (the same physical layer as office Ethernet) supports much faster reads. The F-series BMW put the diagnostic bus on the in-car Ethernet specifically for this reason.
Discovery: UDP port 13400
When Beemuu connects to a car via DoIP, it sends a UDP broadcast on port 13400. The car’s gateway replies with its IP and the car’s VIN. The client then opens a TCP connection to the gateway’s IP on a separate port and runs the UDS session over TCP. Beemuu’s broadcast discovery is the documented gap; the TCP path works once a connection is established.
Session: TCP
The UDS frames are wrapped in DoIP headers and sent over TCP. The standard port range is 13400–13500. Beemuu picks an unallocated port from this range.
Routing through the gateway
On F/G-series BMWs, the central gateway (ZGW) is the DoIP endpoint. The gateway routes UDS messages to the appropriate CAN bus to reach the target module. DME on the powertrain bus, KOMBI on the body bus, etc.
Beemuu support
Beemuu’s DoIP path works for the TCP session once the connection is established. The UDP broadcast discovery gap is well-scoped and ready to claim; the v0.14.5 cycle is the natural home for it.
FAQ
What is DoIP?
Diagnostics over Internet Protocol, ISO 13400. The transport that puts UDS over automotive Ethernet.
Why does F-series use DoIP?
Faster than CAN. CAN’s 500 kbit/s is slow for live data and large services; automotive Ethernet at 100 Mbit/s is much faster. The F-series moved to DoIP to support the data rates F/G-series modules need.
What port does DoIP use?
UDP 13400 for discovery, TCP 13400–13500 for the actual session. The car’s gateway listens on 13400; Beemuu picks an unallocated port in the 13400–13500 range for the session.