Commit Graph
36 Commits
Author SHA1 Message Date
Robert Schmidt dfa012162b Rewrite sctp_create_new_listener() to handle DNS, IPv6
Rewrite sctp_create_new_listener() to use getaddrinfo() to look up
IPv4/IPv6 addresses via a common interface. This allows to use e.g. DNS,
and enables the SCTP library to listen on IPv6 ports.

To support the above, the corresponding message is changed to not take
an IPv4 address on 4 bytes (and separate IPv6), but a single name that
will be resolved via getaddrinfo()

The previous init message used to allow multiple IPv4/IPv6 addresses;
since this is not used anywhere, remove the corresponding functionality.

Modify all uses of this ITTI message to copy te SCTP init bind addr into
ITTI message.
2024-04-13 05:15:11 +02:00
Laurent THOMAS f50d5f5a9b make multiple config instead of one implicit global 2023-11-10 10:23:11 +01:00
Laurent THOMAS bba9aac079 fix most of doxygen warnings and errors 2023-10-26 16:47:19 +02:00
Robert Schmidt 87c82e8a85 Don't send subframe process tick to RRC, to X2AP directly if necessary 2023-05-25 22:16:19 +02:00
francescomani 2385bc364a fixing most warning when compiling nr-softmodem 2023-03-09 19:01:46 +01:00
Laurent Thomas 85eb5926dd x2 nsa bug 2022-04-28 14:36:03 +02:00
Robert Schmidt f19ea82f8e Drop an sgNB release request if no SCTP endpoint available 2022-02-24 12:54:04 +01:00
Laurent THOMAS ee0e7c97a3 merge develop 2021-07-02 12:22:42 +02:00
matzakos 5bce383cc9 Remove X2 data RB tree entry at eNB after receiving sctp shutdown event from gNB
-If the gNB crashes when the X2 connection is established with the eNB, an sctp shutdown event is received from the eNB. However the x2 data related with
the connection were not removed from the RB tree. Then if the gNB tried to reconnect, it made the eNB exit because the eNB had kept the previous data.
Now we remove the x2 data as soon as the sctp shutdown event is received so that the eNB does not exit anymore at the next connection attempts.
2021-06-16 22:44:02 +02:00
Cedric Roux c63abcd0f2 nsa: x2ap: hack: exit gNB if connection to eNB failed
Exit gNB if connection to eNB failed - to be modified if needed.

We may want to try to connect over and over again until we succeed
but the modifications to the code to get this behavior are complex.

Exit on error is a simple solution.
2021-04-16 12:36:44 +02:00
Cedric Roux 6c6b46985b x2: exit if connection between eNB and gNB breaks
Before this commit, when the gNB crashes, the eNB keeps running.
Same, if the eNB crashes, the gNB keeps running.

In a far past when this happened, the other program (the one not
crashing) was forced to exit.

Then this behavior was changed, for some reason.
But the code was not finished, so now we have a system in an inconsistent
state.

So either we accept that the connection between eNB and gNB can break,
that is one of the programs crashes, and we clean the state of the
program that keeps running. But this is a complex work and it will
surely not survive very long, because someone will change something
in the code later that will break this complex behavior.

Or, simpler, we go back to initial behavior, which is: the program that
did not crash does actually exit when the other crashes.

This commit provides the second solution.

It can easily be reverted whenever someone wants to implement the complex
solution.
2021-03-31 16:39:30 +02:00
Laurent 42a110338c itti dynamic queue creation, and 64 bits instance id 2020-12-23 13:56:01 +01:00
matzakos 648ef92ac7 Remove hardcoding of x2 configuration parameters used in ENDC setup request message at gNB side 2020-11-16 15:19:39 +01:00
Cedric Roux 4236ff2b3e nr: improve x2/rrc for ENDC
This commit introduces several enhancements in X2AP and RRC to deal
with ENDC. The main goal is to deal with UE's on/off and with various
errors.

The following work is included:

    - DC prep and DC overall X2 timers
    - X2 messages for UE release and DC timers' timeout

Open problems:

    - what to do when the UE sends an scg Failure? This commit removes
      the UE. And this removal may not be correctly done
    - UE removal in the gNB's PHY layer (a next commit is coming,
      but it is hackish and will need a rework)
2020-09-22 11:57:31 +02:00
Raphael Defosseux a385ad5244 Putting back SIGINT detection for lte-softmodem and initial skeleton to retrieve runtime stats from eNB/gNB
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-03 14:03:20 +02:00
s.rampalli d988eb82fc Removed temporary values in x2ap and rrc 2020-06-09 17:47:08 +05:45
matzakos 07a2a095d3 ENDC path switch S1-U: Integrated S1AP E-RAB-Modification indication message at eNB, interfacing with RRC and X2AP to get proper configuration of E-RABs to be modified and GTP-U configuration at gNB 2020-03-11 10:37:48 +01:00
Cedric Roux 51ab31a3b9 trigger NR activation based on RRC measurements
An NR-capable UE will transmit some NR measurements.
Once received, the whole process on nr-cell addition is started.
It will fail quickly.

Many things are still missing.

What is not handled properly with this commit:
- in x2ap_eNB_handle_sgNB_add_req we hardcode the gNB ID
- nr triggering is done if we receive a measurement but this measurement is
  not analyzed at all
- no timers (T_dc_overall, T_dc_prep) and as is the code fails and then the
  next triggering after UE reconnection will not work (x2 ID are not well
  handled here and there in the code)

Note also that the gNB part has not been looked at all for this commit.

This is work in progress...
2020-01-23 16:10:29 +01:00
matzakos 2865eb95a6 ENDC X2AP: Add generation of X2 sGNB Reconfiguration Complete message 2020-01-17 12:43:07 +01:00
Sakthivel Velumani 5bda11024d Enabling ITTI interactions between RRC and X2AP for the generation of sgb addition request ACK message at the gNB side 2019-12-04 15:30:17 +01:00
matzakos 7916e17666 ENDC: Add X2AP initial configuration and X2AP task in nr-softmodem. Small issue with parsing NRCCPARAMS_DESC from RCconfig_NR_X2() needs to be resolved 2019-10-08 18:48:39 +02:00
matzakos 2e8b93ef8b ENDC: Reverse the role of eNB and gNB for the ENDC X2 setup procedure. Currently, gNB: slave sending the setup request, eNB:master. 2019-10-03 18:11:58 +02:00
Cedric Roux a0f0a49336 x2ho for lte: have it functional again (plus remove some logs) 2019-09-24 16:32:51 +02:00
matzakos d605e5ffc3 ENDC for 5G NSA support: Basic implementation of x2ap_gNB_generate_ENDC_x2_setup_response() and x2ap_gNB_handle_ENDC_x2_setup_response() 2019-08-01 12:20:18 +02:00
Cedric Roux 9456fe584a x2ap: timers, cleanup
This commit introduces X2AP timers (t_reloc_prep, tx2_reloc_overall).
You need to set the values in the configuration file.

X2AP can be enabled or disabled in the configuration file too (disabled
by default).

Some deadcode was removed.
2019-03-13 15:28:37 +01:00
Cedric Roux c394188e73 x2: first implementation of ID management, some cleanup
Some deadcode was removed.

The implementation of the ID management is not finished.
It will only work if the handover is successful. No error
recovery has been done. For error recovery, we need to
implement the X2AP timers. As it is, in case of error, an ID
might very well never be released.

It has been tested with 1 and 2 UEs doing handover more or less
at the same time.
2019-03-05 14:56:42 +01:00
Konstantinos Alexandris 02193f4bab x2: some cleanup in instance management
- manage target eNB based on target cell id received by measurement report
  for Handover Request
- manage source eNB based on association id for Handover Request Ack
- use only x2ap instance and not x2ap data instance points to x2ap instance
2019-03-05 14:56:42 +01:00
Konstantinos Alexandris 52a52eefb9 X2AP UE Context Release (generate/handle message), Release eNB resources 2019-03-05 14:53:00 +01:00
Cedric Roux be68e1e651 Merge remote-tracking branch 'origin/develop' into x2
Conflicts:
	common/utils/msc/msc.h
	openair2/X2AP/x2ap_eNB.c
2019-02-01 14:27:55 +01:00
frtabu 9d0c70c9fe remove L1L2 task, also remove some call to send messages to UNKNOWN_TASK, removed in new itti. Align LOG in rlc sources with new LOG code (remove DEBUG_RLC...) 2019-01-21 19:43:19 +01:00
Konstantinos Alexandris ea105c39b1 X2AP MOBILITY PROCEDURES (X2AP HANDOVER REQUEST/REQUEST ACK)
S1AP PATH SWITCH REQUEST/REQUEST ACK/FAILURE
RRC MEASUREMENT REPORT
MINOR CHANGES IN MAC LAYER
2018-12-18 13:45:03 +01:00
Konstantinos Alexandris 67cc97a42c Merge remote-tracking branch 'origin/develop' into x2 2018-09-21 16:01:52 +02:00
Konstantinos Alexandris 2c27a38dc3 x2ap: implement x2setuprequest, x2setupresponse, x2setupfailure 2018-09-21 15:58:36 +02:00
Cedric Roux 00e21e74a6 integration fix: better error reporting in case of X2 failure
If the IP address for X2AP is not good, the error message reported
was very unclear. Attempt to make it better.
2018-09-10 16:32:20 +02:00
Konstantinos Alexandris 2b85c4a3a6 Pass multi socket descriptor in SCTP + add SCTP multi init req/resp mechanism 2018-09-07 15:15:41 +02:00
Konstantinos Alexandris 1729b3dc66 X2AP: init funcs (register/association) + handler/management functions
SCTP: one to many sockets implementation
2018-09-06 15:49:59 +02:00