From 506aa70d77cf4dfef92a7d9cb19ccb71e877d708 Mon Sep 17 00:00:00 2001
From: Pau Espin Pedrol <pespin@sysmocom.de>
Date: Tue, 7 Sep 2021 17:56:47 +0200
Subject: Support Neighbor Address Resolution over PCUIF IPA multiplex

While NACC was initially developed, it became clear there was need for
a way to interact PCU<->BSC in order resolve ARFCN+BSIC into CGI-PS
for later RIM usage.
Hence, this resolution was first (until today) implemented using an out
of bands RPC system using the CTRL interface, which required specific
config to be written and matches in osmo-pcu and osmo-bsc VTY (ip+port
of the CTRL interface to use).
However, this has several shortcomings:
* As explained above, specific configuration is required
* Since recently, we do support BSC redundancy in osmo-bts. Hence the BTS
  may switch to a BSC other than first one. If that happened, that'd mean
  the CTRL interface would still point to the initially configured one,
  which may not be the same currently serving the PCU.

During recent development of ANR related features, a similar need for
PCU<->BSC was required, but this time it was decided to extend the IPA
multiplex of the Abis OML connection to pass PCUIF messages,
transparently forwarded to each side by the BTS.
This has the advantage that connection PCU<->BTS is handled by BTS and
both sides send messages transparently.

Let's switch by default to using this new interface, while still
maintaing the old way for a while (announcing them as deprecated) to
avoid breaking existing deployments until they are upgraded to new
versions of osmo-pcu and osmo-bsc.

Change-Id: I9073a121564503f483c84263ac72476041e47c03
Related: SYS#4971
---
 doc/manuals/chapters/handover.adoc | 34 ++++++++++++++++++++++++++++------
 1 file changed, 28 insertions(+), 6 deletions(-)

(limited to 'doc/manuals/chapters/handover.adoc')

diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc
index ab0b1fa58..f56725977 100644
--- a/doc/manuals/chapters/handover.adoc
+++ b/doc/manuals/chapters/handover.adoc
@@ -747,19 +747,41 @@ network
 This PS information is solely used by the Neighbor Resolution Service, aimed at
 nodes other than BSC itself, and described below.
 
-=== Neighbor Resolution Service CTRL interface
+=== Neighbor Address Resolution Service
 
-This service is provided in order to provide the PCU a way to translate
+This service is provided in order to provide the PCU with a way to translate
 ARCFCN+BSIC into CGI-PS in order to use RIM services and accomplish PS
 Handovers.
 
 This interface is Osmocom specific, since the standard doesn't provide any
 specifications on how to provide this kind of information to the PCU.
 
-Since the PCU can be either BSC-colocated or BTS-colocated (hence on a different
-host than BSC), this must be a network-based interface. Since the service is
-Osmocom-specific, it was decided to re-use the CTRL interface available in most
-Osmocom processes (see <<control>>).
+Since the PCU can be either BSC co-located or BTS co-located (hence on a
+different host than BSC), messages may need to be sent over the network at some
+point.
+
+In consequence, it was decided implement a new _Container_ type message in
+PCUIF which the PCU can use to directly communicate with the BSC. If the PCU is
+BSC co-located, then the BSC can directly communicate over the unix socket. If
+the PCU is BTS co-located, then PCU sends PCUIF messages over the unix socket to
+the BTS, and the BTS forwards the PCUIF messages transparently over the the IPA
+multiplex of the OML connection towards the BSC and back.
+
+Support for this interface is available by default nowadays in OsmoPCU, OsmoBTS
+and OsmoBSC, and requires no specific configuration, it will just work out of
+the box.
+
+==== Neighbor Address Resolution Service CTRL interface (deprecated)
+
+Before the existence of the PCUIF forwarded over IPA multiplex interface (see
+above), the Neighbor Address Resolution Service was implemented by means of a
+CTRL interface, similar to the one used in most Osmocom processes (see
+<<control>>).
+
+CAUTION: This interface is nowadays considered deprecated and should not be used
+anymore. Any related VTY options should be dropped from configuration files, to
+let OsmoPCU use the new interface instead. This section is kept here for a while
+as a reference for old deployments using old versions of the programs.
 
 Due to security concerns, the set of CTRL commands available in this
 service is configured in a different IP address and port, since the service
-- 
cgit v1.2.3

