Linux wireless drivers development
 help / color / mirror / Atom feed
* [RFC PATCH net-next v0.1 0/1] add GeoNetworking protocol
@ 2026-07-18 21:00 Simon Dietz
  2026-07-18 21:00 ` [RFC PATCH net-next v0.1 1/1] net: " Simon Dietz
  2026-07-19 16:21 ` [RFC PATCH net-next v0.1 0/1] " Andrew Lunn
  0 siblings, 2 replies; 10+ messages in thread
From: Simon Dietz @ 2026-07-18 21:00 UTC (permalink / raw)
  To: netdev
  Cc: andrew+netdev, davem, edumazet, johannes, kuniyu, linux-wireless,
	simon.dietz, dietz23838

Implement the GeoNetworking / ETSI ITS-G5 ('net/gn') protocol which
is based on 802.11p wifi and used for vehicle2x applications. It is
standardized by the ETSI and used by some car manufacturers
(especially in europe). It enables ad-hoc, multi-hop geographical
communication and routing among vehicles (and road- or railside
infrastructure).

Most work of this implementation has been done by the bachelor
project 2018/2019 of the operating systems and middleware group of
the Hasso Plattner Institute, University of Potsdam, which the author
was part of.

The code [1] is published under the GPL v2 at this location:
https://gitlab.com/hpi-potsdam/osm/g5-on-linux/linux-geonetworking/

This patch set is not merge-ready, yet. E.g. network namespaces are
not supported at all, documentation is missing, ...

Purpose of this RFC is to determine if GeoNetworking support in the
linux kernel is desirable and if so what steps would have to be done
next.

In the original implementation new ioctl calls have been used. For the
removal of them and changing their functionality to use netlink (and
only this change) help of AI has been used as stated in the commit.

Changes since v0:
* replace ioctl interface changes with netlink
* remove profcs
* remove magic value in unix/ETSI epoch conversion
* add _HLEN macros
* remove inline from static functions
* remove commented out code
* change default log level to debug
* adhere to line limit of 80

Changes in v0:
* rebase to current-net next
* fix (most) of coding style violations
* fix SPDX-License Identifiers
* use kzalloc_obj instead of kzalloc
* change __attribute__((packed)) to __packed
* (partially?) fix locking
* adhere to kernel error code conventions
* add various bounds, 0, NULL, ... checks
* use has_for_each_safe
* refactor forward_packet helper functions
* document -EEXIST return on existing dev
* add gn_fill_depv and ls_flush logic
* add nexthop query logic
* replace timespec64 with uapi conform __kernel_timespec
* fix default hop limit

Detailed explaination of the changes:

net: gn: remove procfs

Remove any procfs usage for debugging purposes. Procfs has been used
during the development of the gn module for passing gps data from the
user space to the kernel. This behaviour has been changed to ioctl.
Procfs has only been kept for debugging reasons and is removed hereby.

net: gn: remove magic value in unix/ETSI epoc conversion

ETSI uses a different epoch than the unix default 1970-01-01 00:00:00.
For epoch conversion a magic value has been used, which now is replaced
by a constant.

net: gn: add _HLEN macros

Add _HLEN macros and use them to shorten code lines.

net: gn: remove inline from static functions
net: gn: remove commented out code
net: gn: change default log level to debug
net: gn: enforce line lenght limit of 80

For an explaination of changes in v0 compared to the original code base
[1] consult the patch series v0.

Greetings,
Simon

PS: The commit message date is off, because I squashed the commits.

Simon Dietz (1):
  net: add GeoNetworking protocol

 include/linux/gn.h                  |  363 +++++
 include/linux/gn_routing.h          |   68 +
 include/linux/socket.h              |    6 +-
 include/uapi/linux/gn.h             |   84 ++
 include/uapi/linux/if_ether.h       |    1 +
 include/uapi/linux/if_link.h        |   10 +
 net/Kconfig                         |    2 +
 net/Makefile                        |    1 +
 net/gn/Kconfig                      |    4 +
 net/gn/Makefile                     |    7 +
 net/gn/gn_netlink.c                 |  266 ++++
 net/gn/gn_prot.c                    | 1908 +++++++++++++++++++++++++++
 net/gn/gn_routing.c                 |  646 +++++++++
 net/gn/sysctl_net_gn.c              |   33 +
 security/selinux/hooks.c            |    5 +-
 security/selinux/include/classmap.h |    3 +-
 16 files changed, 3403 insertions(+), 4 deletions(-)
 create mode 100644 include/linux/gn.h
 create mode 100644 include/linux/gn_routing.h
 create mode 100644 include/uapi/linux/gn.h
 create mode 100644 net/gn/Kconfig
 create mode 100644 net/gn/Makefile
 create mode 100644 net/gn/gn_netlink.c
 create mode 100644 net/gn/gn_prot.c
 create mode 100644 net/gn/gn_routing.c
 create mode 100644 net/gn/sysctl_net_gn.c

-- 
2.55.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-07-23  0:30 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-18 21:00 [RFC PATCH net-next v0.1 0/1] add GeoNetworking protocol Simon Dietz
2026-07-18 21:00 ` [RFC PATCH net-next v0.1 1/1] net: " Simon Dietz
2026-07-19 17:16   ` Andrew Lunn
2026-07-19 17:28   ` Andrew Lunn
2026-07-19 23:33   ` Andrew Lunn
2026-07-19 16:21 ` [RFC PATCH net-next v0.1 0/1] " Andrew Lunn
2026-07-20 18:36   ` short description of GeoNetworking Simon Dietz
2026-07-20 20:16     ` Andrew Lunn
2026-07-22 21:34       ` Simon Dietz
2026-07-23  0:30         ` Andrew Lunn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox