osmo-upf/src/osmo-upf
Neels Hofmeyr 4e1c680e59 tunmap: refactor nft ruleset: fix "martians" and "1024"
Take care of two problems:
- limitation of <= 1024 base chains in nftables, so far meaning we can
  establish at most 1024 GTP tunnel mappings.
- mangling of source IP in prerouting so far meaning that the system
  needs to be configured to permit 'martian' packets

The new ruleset separates in pre- and post-routing, so that we set a new
destination IP address in pre-routing, and set a new source IP address
in post-routing. Hence no problem with martian packet rejection.

The new ruleset uses verdict maps, which are more efficient, and do not
hit a limit of 1024 as base chains do.

Before, the nft rule used one chain id. In the new ruleset, each tunmap
now needs two distinct chain ids. Refactor.

Related: SYS#6327 SYS#6264
Change-Id: Iccb975a1c0f8a2087f7b7dc4942a6b41f5675a13
2023-02-09 18:14:09 +01:00
..
Makefile.am tunmap: choose local GTP addr by Network Instance IEs 2022-12-09 17:25:58 +00:00
netinst.c tunmap: choose local GTP addr by Network Instance IEs 2022-12-09 17:25:58 +00:00
osmo_upf_main.c fix deprecation: use telnet_init_default() 2023-02-03 02:24:34 +01:00
up_endpoint.c fix copy-paste bug in up_endpoint.c 2023-02-01 14:54:56 +01:00
up_gtp_action.c tunmap: refactor nft ruleset: fix "martians" and "1024" 2023-02-09 18:14:09 +01:00
up_peer.c drop unused function up_peer_tx 2023-02-09 00:13:08 +01:00
up_peer_fsm.c add osmo-upf 2022-06-19 14:13:28 +02:00
up_session.c fix some PFCP peer,session error handling paths 2023-02-09 00:13:08 +01:00
upf.c tunmap: refactor nft ruleset: fix "martians" and "1024" 2023-02-09 18:14:09 +01:00
upf_gtp.c error log: fix msg for gtp_del_tunnel() failure 2023-02-03 02:24:34 +01:00
upf_gtpu_echo.c gtpu_echo: do not osmo_fd_register twice 2022-12-09 17:25:58 +00:00
upf_nft.c tunmap: refactor nft ruleset: fix "martians" and "1024" 2023-02-09 18:14:09 +01:00
upf_vty.c tunmap: refactor nft ruleset: fix "martians" and "1024" 2023-02-09 18:14:09 +01:00