Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I0d7493404ea05ce2e795958041bbb6cb75a04d31
|
|
"sgsnemu" stopped with the message "Received create PDP context response. Cause value: 128",
but normaly at that poit it should continue working and create "user plane".
Reason: Funtion "create_pdp_conf" checking result of "in46a_from_eua" and mistakenly
returned EOF when more than 1 IP address provided by GGSN.
Now function "create_pdp_conf" stopped with error when 0 IP provided or error code comes from "in46a_from_eua".
Fixes: 2d6a69e69a4b4cb2b8cc63c4810dae44e5a4d8f6 ("Add support for IPv4v6 End User Addresses")
Change-Id: I7881b8e1f27c432007cb6e5ff665a2ce55f103b5
|
|
If the version received is not known, pdp is then uninitalized so we
should not be using it. Let's return an error to inform the caller.
Change-Id: Ib3e23b61a3521bd3c9002d3165ca8eff4361a35e
|
|
Change-Id: I99b73f7a6d4100789fa92021c6ec9117869c881b
|
|
Change-Id: I00db99ba8de3f3d90e85bf593ed31555eedb439b
|
|
Change-Id: I1bc65ef9af1144779ee91a2c9b9887233ad15671
|
|
Change-Id: Idbc6e4c912b958bde5916b87ec53c3c4db70bee0
|
|
Change-Id: I843071a090e877fd529e1e0b799df3585bf836d8
|
|
Change-Id: I636c81d0c0ff53c97e6aedbc00f90c1325a3d607
|
|
As reported by Viktor Tsymbalyuk, "Use the same LAN switch as the one
your SGSN is connected to." is of course completely bogus. As long as
you have IP routing in place, it doesn't matter at all which switch you
are using.
Change-Id: I748752337b863b317d2899017b1dc255ced2515d
|
|
Change-Id: I65eb80db4bcdc6da4d267bef3b907d3f98942a2e
|
|
The error is:
CC gtp-kernel.o
gtp-kernel.c:19:26: fatal error: libgtpnl/gtp.h: No such file or directory
#include <libgtpnl/gtp.h>
^
compilation terminated.
Fix it by using proper CFLAGS/LIBS for libgtpnl.
Change-Id: I5a24076778ea3ce263ac27211a6f45f935155b33
|
|
Change-Id: I7559807d54bec5da45ea5c41b10d396d992cb1b7
|
|
Previous commit added the ipv6 link-local vty cmd but forgot to add code
to print its value in config_write_apn.
Fixes: 37c45e3998fca240b5266abd3ac883d0a35bab50
Change-Id: I08aeaa98d6dc318b7e9740d837ba4ac48cd7051c
|
|
This vty cmd let's you set up a new link-local IP for a specific APN to
be used during ICMPv6 Router Advertisement procedure.
osmo-ggsn hence requires a link-local IPv6 address to be added to the
tun interface, otherwise the apn will not be configured correctly and it
won't be able to allocate addresses from the ipv6 pool later on.
This feature is useful in case your OS doesn't support autoconfiguring
link-local IPs when the interface is brought up (some linux versions are
known to fail at this) or in case you configured your OS specifically to
avoid automatic set up (sysctl net.ipv6.conf.*.autoconf).
If "no ipv6 link-local" is provided (default), osmo-ggsn will rely on the
OS or the ipup-script setting up the link-local IP for the tun
interface at creation time, then fetching it after ipup-script time and
using the first link-local ip found. On the other hand, if the "ipv6
link-local" cmd is provided, osmo-ggsn will add the link-local IP to the
interface manually and use that one for later Router Advertisement
procedures.
Change-Id: I09ef27f54940d4c47150e5f9016d1cd4298c16b5
|
|
sgsnemu (the only user of this API so far) has been modified to use the
new API with in46_addr.
FreeBSD code for IPv6 has not been tested.
Change-Id: Ie36afe6eaf393855a4a708000ef4ad0192bf4767
|
|
First of all, dstaddr can be NULL, avoid copying it in that case.
Second, we want to copy the addr data, not the pointer. I tested it and
the IP was not added (not shown in ip addr) until I copied the content
instead of the address.
Change-Id: I8da637b155f0e913cab6c5b0dde355c9f33375b5
|
|
Change-Id: I18fb952514712ff30d18c7626f84309055d3efa1
|
|
Change-Id: Ic392ed35946e076a39aa5f7bf80a8c2ffe73562c
|
|
Change-Id: I7ee741d4940e3c10a4944b676c9765d6808afba9
|
|
Before this commit, when an MS requested an ipv4v6 context osmo-ggsn
returned an error stating the type was unknown, and this text was
printed in the log:
Processing create PDP context request for APN 'ims'
Cannot decode EUA from MS/SGSN: f1 8d
This patch has been tested with an MS running the 3 types of addresses:
- IPv4 and IPv6: no regressions observed, the context is activated and
packets are sent to the ggsn.
- IPv4v6: Wireshark correctly parses request and reponse, and then
ICMPv6 traffic from both sides. Finally I see the MS using the IPv4 and
IPv6 DNS addresses advertised and TCP traffic over IPv4 (because
probably my IPv6 network setup is not correct). I also checked I can
disable/enable data (pdp ctx delete and activate) several times without
any issue.
Change-Id: Ic820759167fd3bdf329cb11d4b942e903fe50af5
|
|
The existing code would abort iterating over the list of PCO TLVs
if a TLV of length zero was encountered. However, there's nothing
in the spec that would make a zero-length PCO invalid, so we should
continue to iterate over any PCO TLVs after the zero-length one.
This issue was discovered while writing test cases in
osmo-ttcn3-hacks.git
Change-Id: I36660566a8ee2ca80ae6ee99c86e167e7c208df2
|
|
... this probably didn't show up as 8.8.8.8 is dual-endian. doh!
The address was already in network byte order, but msgb_put_u32 "of
course" expects host byte order, ending up the wrong way in the actual
packets :/
Change-Id: Ia4bcac5fcebfc24760432eb66be258a01d78f65f
Closes: OS#2685
|
|
Change-Id: I6f7ce33f6585b2b78e2b8a5c0f7111f0316d6ddd
|
|
This way they can be easily disabled later on when IPv6 support is made
optional.
Change-Id: I3906dbf55ccf1650083398e08ac870add0bbdcef
|
|
Change-Id: I207362e055dbfafc42fad2cfdd0cf1da9dcad88b
|
|
Change-Id: I7e226a12b074c96c572f90e3aaf62716d0cd47c5
|
|
In any case, if we add support for ipv6 in tun_addaddr we will need
tun_setaddr (and also change the API of tun_addaddr to use in46_addr).
Change-Id: Iadf51379455174a642b477040ec96f28022c24c7
|
|
Change-Id: Id7f7d33a33730d57c5ecf7ebf5612f4744cf5163
|
|
Fixes sanitize build failures:
Testing gtpie_tlv()
../../../../src/osmo-ggsn/tests/gtp/gtpie_test.c:30:2: runtime error: load of misaligned address 0x55c0a0830f21 for type 'uint16_t', which requires 2 byte alignment
0x55c0a0830f21: note: pointer points here
00 00 00 17 00 06 01 02 03 04 05 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
Testing gtpie_tv0()
Testing gtpie_tv1()
Testing gtpie_tv2()
../../../../src/osmo-ggsn/tests/gtp/gtpie_test.c:76:2: runtime error: load of misaligned address 0x55c0a0830f21 for type 'uint16_t', which requires 2 byte alignment
0x55c0a0830f21: note: pointer points here
00 00 00 2a ab cd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
Testing gtpie_tv4()
../../../../src/osmo-ggsn/tests/gtp/gtpie_test.c:90:2: runtime error: load of misaligned address 0x55c0a0830f21 for type 'uint32_t', which requires 4 byte alignment
0x55c0a0830f21: note: pointer points here
00 00 00 2a ab cd 01 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
Testing gtpie_tv8()
../../../../src/osmo-ggsn/tests/gtp/gtpie_test.c:104:2: runtime error: load of misaligned address 0x55c0a0830f21 for type 'uint32_t', which requires 4 byte alignment
0x55c0a0830f21: note: pointer points here
00 00 00 2a 00 01 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
../../../../src/osmo-ggsn/tests/gtp/gtpie_test.c:105:2: runtime error: load of misaligned address 0x55c0a0830f25 for type 'uint32_t', which requires 4 byte alignment
0x55c0a0830f25: note: pointer points here
00 01 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
Change-Id: I9eb16450af942d6464211e190f6a4d5a1d814842
|
|
Change-Id: I5efbd1848a7974cb8dc614c4567de2658b9a7269
|
|
* changes:
contrib/jenkins.sh: Enable Werror in C(PP)FLAGS
ggsn_vty: Stop using deprecated API vty_install_default
|
|
Change-Id: I439ff2b2cb36a5c29347a914c0f2e21bed598b06
|
|
Change-Id: Id4724fe07f6641e82c3bd9cde2d8d759aa492288
|
|
Changes made as requested by the deprecation text.
Fixes warning below:
warning: ‘vty_install_default’ is deprecated: Now happens implicitly with install_node() [-Wdeprecat
ed-declarations]
vty_install_default(GGSN_NODE);
^~~~~~~~~~~~~~~~~~~
Change-Id: I5c6197129e0c251a4e8dd174027b011c8f6476c6
|
|
Change-Id: I83319aa6e5e7dde229ae5a036b5a1800879cbf81
|
|
Change-Id: Iad0e7a9fa48fcddc31b8d555244581efdbd61b4e
|
|
This allows us to distinguish "add" from "del" operatons in the log
Change-Id: Ibe2e76a6eecc7b5fa5f44ab2c1578597138e30b9
|
|
SYS_ERR is for logging an error from the (operating) system including
the errno value. For general logging, we have DEBUGP/LOGP. Let's
convert the gtp-kernel logging over. This also fixes the related line
ending mess-up as SYS_ERR adds a LF while LOGP/DEBUGP don't.
Change-Id: Idb4069a28227b770e20d62bf306cd294f47146ae
|
|
When genl_socket_open() succeeds but genl_lookup_family() fails,
we have to clean up the socket that we just opened.
This requires a new version of libgtpnl :/
Change-Id: I31df046530347f88cb7b16c37a899b456ed1b080
|
|
We have to factor out the "run once" code and make sure to really
only run that once, while the per-device code remains in the
gtp_kernel_init() function.
Change-Id: Iba5bd71e4b725eef59fe4f233fbb965e396a06c3
|
|
Whether or not GTP kernel support is enabled is the property of a
given APN, and not a global state variable.
Change-Id: Iff3bd8a52bd6c20f9811ee41ff700486d08591f3
|
|
Change-Id: Ie53d37f151e8b6448636a8cde5777b3841989d05
|
|
When we take the APN down, we should also take the GTP device down.
Change-Id: Idd250dd454a1603834d388884a24a63e044fdd7b
|
|
The existing kernel GTP support code inherited from OpenGGSN was overly
simplistic and didn't support multiple GTP devices or user-defined GTP
device names. Let's remove that restriction in this patch
Change-Id: I51df223788fd5b7cf8099463b8aa0ca4a4fd1c96
|
|
When we branched off osmo-ggsn from the old openggsn code base, the
support for kernel-gtp got temporarily removed. This patch
re-introduces support for handling the GTP-U plane in the Linux kernel
by means of libgtpnl + the kernel GTP-U driver.
This only works for IPv4 at the moment, until the kernel GTP-U code
gains IPv6 support.
Kernel GTP currently also is restricted to a single APN per GSN.
Change-Id: Ieb1bc1bd0d51d41947f0abd6ebbc2e5d102592d6
|
|
Rather than taking an explicit in_addr, prefix_length and a
string-formatted prefix, let's pass in an in46_prefix and derive
the other representations from it.
Also, don't refer to a no-longer-existing global 'ipup' variable but
add it as a function argument.
Change-Id: Ife87142c86589b4fa4062d62afe3670467548589
|
|
This ensures that in case of error, any caller can still safely
call talloc_free() on the blacklist pointerm as free on NULL
is well-defined. With the code prior to this patch we fear
a double-free.
Change-Id: Idc511cb3f0dfb922920aba8f88ea77df1722ecdc
|
|
netdev_ip_local_get() is a generalized version of tun_ip_local_get()
which supports the net device as argument, rather than a tun_t.
Change-Id: I072aa1a55e7bf110706e9207021b776d9b977fb6
|
|
Change-Id: I4d3ea077ba46446e537ec9a6de6f4080fcaa428c
|