aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2022-08-22Bump version: 0.1.0.32-823b → 0.1.10.1.1Oliver Smith1-0/+44
Tag a new release with all the packaging fixes, so building libosmo-pfcp for latest isn't failing anymore on obs.osmocom.org. Related: OS#5654 Change-Id: I9a7be8342754fdbc21b83281c8ebcbf38112c61b
2022-08-22packaging: depend on libosmocore >= 1.7.0Oliver Smith2-2/+2
Require the same libosmocore version in configure.ac and rpm spec as already set in debian/control. Change-Id: I701f1aacca22a697f35aba0041a71945c5aea107
2022-08-22debian/control: move -dev deps of libosmo-gtlv-devOliver Smith1-3/+3
Only the -dev package of libosmo-gtlv should depend on other -dev packages. Change-Id: I4a7ba317e54f7f19d0947e95f7ab0b4f1e8fd43a
2022-08-22rpm spec: use --disable-staticOliver Smith1-2/+1
Follow what we are doing in other Osmocom rpm packaging by not building and packaging static libraries. Fix for rpmlint errors when building for OpenSUSE: libosmo-gtlv-devel.x86_64: E: static-library-without-debuginfo /usr/lib64/libosmo-gtlv.a libosmo-pfcp-devel.x86_64: E: static-library-without-debuginfo /usr/lib64/libosmo-pfcp.a libosmo-gtlv-devel.x86_64: E: lto-no-text-in-archive (Badness: 10000) /usr/lib64/libosmo-gtlv.a libosmo-pfcp-devel.x86_64: E: lto-no-text-in-archive (Badness: 10000) /usr/lib64/libosmo-pfcp.a (If we wanted to build with static libraries, we would need to use -ffat-lto-objects to get rid of the second error.) Related: https://github.com/rpm-software-management/rpmlint/issues/458 Change-Id: I49dd454afd8bd3473bcadbc8cd8724574011f886
2022-08-21rpm spec: reduce summary line lengthHarald Welte1-1/+1
Fixes the following rpmlint error: [ 17s] libosmo-pfcp.src: E: summary-too-long (Badness: 200) libosmo-pfcp: PFCP protocol encoding and decoding, and generic PFCP endpoint implementation [ 17s] The 'Summary:' must not exceed 79 characters. also, coincidentally it fixes: [ 17s] libosmo-pfcp.src: E: summary-not-capitalized (Badness: 20) libosmo-pfcp: PFCP protocol encoding and decoding, and generic PFCP endpoint implementation [ 17s] Summary doesn't begin with a capital letter. and the non-critical warning: [ 17s] libosmo-pfcp.src: W: name-repeated-in-summary libosmo-pfcp [ 17s] The name of the package is repeated in its summary. Make the summary brief and [ 17s] to the point without including redundant information in it. Related: OS#5653 Change-Id: I293f77849d50e68753b82d7b5476c19217ecc2de
2022-08-19gitreview: fix projectOliver Smith1-1/+1
Change-Id: I97245dd141c185b35ccfb5b262c1057a18eef07e
2022-08-19RPM: fix configure and typo "gltv" in .spec.inNeels Hofmeyr1-2/+3
Change-Id: Ideff7942a3250fa6541cfa6252a1c2927afdfc45
2022-08-16configure.ac: do not require unused dlopenVadim Yanitskiy1-3/+0
Change-Id: Ic012f7b19a46ee38db0172b07bad2098567192b0
2022-08-13pfcp_cp_peer: check use count correctnessNeels Hofmeyr1-1/+1
Related: CID#275418 Change-Id: Id79a84312b3ff8d562e26a525866b8bb09f9d0bf
2022-08-13doc: minor fix in pfcp_cp_peer_fsm.dotNeels Hofmeyr1-0/+1
Change-Id: I0de10d5331df128081d6b875e3ba9c0c3c32bd9f
2022-08-12.gitignore fixes: generated sources, .spec fileNeels Hofmeyr1-1/+12
Change-Id: Id8f6c80f13a09a3dedd4577fd1460f2f72faa8f8
2022-08-12fix warnings: 'uninitialized'Neels Hofmeyr2-3/+3
Though these can never be used uninitialized, initialize to NULL to avoid compiler warnings like: pfcp_msg.c:188:66: warning: 'h_no_seid' may be used uninitialized Change-Id: Icb338b200fe3186ccd7fd3f502c1723f60947190
2022-08-12libosmo-gtlv.pc.in: tweak DescriptionNeels Hofmeyr1-1/+1
Change-Id: Idcdffe4528370b8580a30fbdde6645ec5d814021
2022-08-12debian: fix missing dep gtlv0 <- pfcp0Neels Hofmeyr1-2/+4
Change-Id: I8af60305543b06b74859e83b840b171d29af1abd
2022-08-12debian/control: fix confusion in descriptionNeels Hofmeyr1-2/+2
Change-Id: I380b1dd626b3e6a35f17ae09a6758bef59f51c84
2022-08-12debian: add missing *-dev.install filesNeels Hofmeyr2-0/+10
Change-Id: I6b03624f3d93ad6b2551fb3ff673e7c7cb246f4c
2022-08-12RPM: fix .spec fileNeels Hofmeyr2-7/+77
Change-Id: Ie2fa0770b94af8637483434068b7c0df4b4272c6
2022-08-12configure.ac: drop dependencies on vty and ctrlNeels Hofmeyr1-2/+0
Change-Id: Idea223e9b039241dd35c735922b8794573730fc3
2022-08-10README.md: tweak clone URLNeels Hofmeyr1-1/+1
Change-Id: Idcfd4421189c711f95926f7e66da3402c059dfff
2022-08-10debian packaging of libosmo-gtlv and libosmo-pfcpNeels Hofmeyr8-32/+95
Fix debian packaging, so far a copy-paste from osmo-upf.git crept in here by accident. Related: SYS#5895 Change-Id: Id7169fc67b4f8f77dfbeff9f199e6557ced67a53
2022-08-09comment / whitespace tweaks in pfcp_endpoint.cNeels Hofmeyr1-5/+8
Related: SYS#5599 Change-Id: Ia2818106fe257a237d1875034b77c1d4cb136fa1
2022-08-09set LIBVERSION=0:0:0Neels Hofmeyr2-2/+2
I wrote '1:0:0', but we should start with '0:0:0', according to https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html Since the packaging for this repository is not functional yet, i.e. it was never packaged by anyone anywhere, i assume it is safe to go back from '1:0:0' to '0:0:0'. Related: SYS#5895 Change-Id: I5b80de2f486fdae62f0da1b74cb70dc9de7bb9cc
2022-08-06contrib/libosmo-pfcp.spec.in: do not disable LTOVadim Yanitskiy1-4/+0
AFAICT, everything compiles just fine with -flto=auto. Change-Id: I632cfd8deaaaa50f0ffba04aca4d422b7b51034e
2022-08-06contrib/libosmo-pfcp.spec.in: do not depend on systemdVadim Yanitskiy1-4/+0
There is no need to do so, this project has nothing to do with systemd. Change-Id: I57d6c46a6b9aab161f7ccfa663c26ea2e7f05e7b
2022-08-05gitignore: ignore *.la objects: libosmo-{gtlv,pfcp}.laVadim Yanitskiy1-0/+1
Change-Id: I72b2b62cfa232accb4f8ae114be40058ccd512c7
2022-08-03configure: fix warning: AC_OUTPUT should be used without argumentsVadim Yanitskiy1-2/+3
Change-Id: I71fc8dc78b8b10628ef0533c69e42c0298fb27df
2022-08-03configure: fix AC_CONFIG_MACRO_DIRS related warningsVadim Yanitskiy2-0/+1
Create m4/.gitkeep to eliminate the following warning: aclocal: warning: couldn't open directory 'm4': No such file or directory Add 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac to as suggested: libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac Change-Id: Id9d605490c4b403b99ed54745838cc9f242030c3
2022-07-28pfcp_endpoint: fix final PFCP retrans resp_cbNeels Hofmeyr1-7/+8
After the final retransmission of a sent request, still keep the message in the queue for its expiry period, so that a later response is matched to the request. The osmo_pfcp_msg.resp_cb() depends on the sent message to remain in the queue until it times out. That was not the case in an earlier stage of libosmo-pfcp development. I noticed this during ttcn3 testing, where osmo-hnbgw continuously resends PFCP Association Setup Requests, and fails to associate if ttcn3 happens to respond to the final retransmission of a request. Related: SYS#5599 Change-Id: Iaca396891921f7057015ce6e1e4528b955757809
2022-07-28apply code review: refactor pfcp_endpoint APINeels Hofmeyr3-58/+119
Code review requested that the API should use functions instead of direct access to a struct. I have moved all user provided config to a separate struct osmo_pfcp_endpoint_cfg, to be passed to osmo_pfcp_endpoint_create(). Halfway through those changes, I am not so certain whether that is what reviewers had in mind. It makes sense from the point of view to keep nr of arguments passed to osmo_pfcp_endpoint_create() small, and to allow changing the user provided config without requiring a new osmo_pfcp_endpoint_create2() API function. Though that again has ABI compat problems, and makes no sense from the point of view that all access should be done via API functions. Personally I don't really agree with this change, which is probably the reason why this patch ended up this way. Related: SYS#5599 Change-Id: If80c35c6a942bf9593781b5a6bc28ba37323ce5e
2022-07-23clarify osmo_pfcp_msg alloc APINeels Hofmeyr5-27/+48
Looking at the osmo_pfcp_msg_alloc API with a bit of distance now, I found that: - it is confusing to have a single function for req and resp. A resp may pass remote_addr as NULL, and a req may pass in_reply_to as NULL. Make this much more obvious with separate req/resp functions. - the osmo_pfcp_endpoint_tx() implicitly puts the local Node ID into sent PFCP messages, so the local_node_id arg for msg alloc is redundant. Drop that. Refactor without backwards compat, because we have not yet officially released this API. This requires a fixup patch to osmo-upf.git (and affects unmerged patches to osmo-hnbgw.git). Related: SYS#5599 Related: I73e6da3b80f05e9408c81f41ac05d6578b8e31cf (osmo-upf) Change-Id: I0d71134e42932cc72992eba73a15e82bc7cd11bd
2022-07-23fix wrong constants used in osmo_pfcp_tdefs (typo)Neels Hofmeyr1-2/+2
s/MSGT/TIMER Related: SYS#5599 Change-Id: Iaecce86064b65aa003e9903d09f60d760e0689c3
2022-07-20separate pfcp_queue_timer_cb() in req and respNeels Hofmeyr1-17/+30
Having separate callbacks for request and response messages makes for an easier read. No functional change. This applies code review from https://gerrit.osmocom.org/c/osmo-upf/+/28244 Ic8d42e201b63064a71b40ca45a5a40e29941e8ac (osmo-upf.git) Related: SYS#5599 Change-Id: Ic8ab71f5efd4cf669689a0b075f9a52ce66bdd5d
2022-07-19fix incorrect timeout values: milliseconds vs microsecondsVadim Yanitskiy1-2/+2
osmo_timer_schedule() takes (*timer, seconds, microseconds), so the last argument must be in microseconds, not milliseconds. Change-Id: I1e0b319033415e42ca7f4da9bae348c5cb1da38c
2022-06-17add generic PFCP CP peer implementation0.1.0Neels Hofmeyr4-0/+469
Will be used by osmo-hnbgw, our first PFCP Control Plane entity. The implementation is generic enough that it can be re-used by other CP entities. Related: SYS#5895 Change-Id: If8c5f69f596ea6ba8bd1723f4dc57b91d3799795
2022-06-17add osmo_pfcp_ie_f_seid_cmpNeels Hofmeyr2-0/+26
Related: SYS#5599 Change-Id: Iacaeebfad0fe77788da40c3ed7da2ffa3b27043c
2022-06-17install libosmo-pfcpNeels Hofmeyr5-5/+24
The first user of this is osmo-hnbgw, to implement GTP mapping via a UPF. Related: SYS#5895 Change-Id: If4465095000a898296d69d5b725507f909c87aa3
2022-06-17install libosmo-gtlvNeels Hofmeyr9-11/+34
Related: SYS#5895 Change-Id: I9f4651b6bee457583aba99052dc82bbf675515e6
2022-06-16add pfcp_endpointNeels Hofmeyr5-0/+585
Related: SYS#5599 Change-Id: Ic8d42e201b63064a71b40ca45a5a40e29941e8ac
2022-06-16add initial FSM design chartsNeels Hofmeyr10-0/+207
Related: SYS#5599 Change-Id: I55474daa6bb204a0fe7da0a3bf888bb7d1c46677
2022-06-16add pfcp msg testNeels Hofmeyr6-0/+706
Related: SYS#5599 Change-Id: I30bdfc66a8f96c0639513ef406e9b66525dced6d
2022-06-16libosmo-pfcp: implement PFCP header and msg handlingNeels Hofmeyr5-1/+741
Related: SYS#5599 Change-Id: I3f85ea052a6b7c064244a8093777e53a47c8c61e
2022-06-16api: add osmo_pfcp_ie_node_id_to_str_c()Neels Hofmeyr2-2/+14
So far we had only osmo_pfcp_enc_to_str_node_id(), used for PFCP message to string conversion. It behaves like a common _to_str_buf() function, but has an inconvenient void* arg (for use with libosmo-tlv). Implement the string conversion as common _to_str_buf() and _to_str_c() functions, and call that from osmo_pfcp_enc_to_str_node_id(). That's useful for log messages coming up in a subsequent patch. Related: SYS#5599 Change-Id: I5c580bc510afce58a03dea0861db9630b063b2ae
2022-06-16pfcp ie: tweak CP Function FeaturesNeels Hofmeyr1-1/+1
The spec indicates three bytes of CP Function Features, but both wireshark and ttcn3 expect only one byte. This makes sense because only eight CP F.F. flags are defined. Drop those two always-zero bytes, hence pass the wireshark dissector and ttcn3 parsing without warnings. Related: SYS#5599 Change-Id: Icda891a2f3401e58f142f229465403d5dc8befe5
2022-06-16pfcp/Makefile.am: add missing pfcp_ies_auto.h entryNeels Hofmeyr1-0/+1
Even though it is a generated header, it must still be listed in pfcp_HEADERS. Related: SYS#5599 Change-Id: I6fbfe1fcd084f2d16334bb3e44d9891d9485d59f
2022-06-16libosmo-pfcp: implement/generate TLV and IE value codingNeels Hofmeyr5-0/+1565
Related: SYS#5599 Change-Id: I3069045b2d42dac88d955c636230adc64a7a4aa7
2022-06-16libosmo-pfcp: add pfcp_proto.h pfcp_strs.hNeels Hofmeyr5-0/+1148
Related: SYS#5599 Change-Id: I568b821e89007ed52eeefcdbcb6edd8052a8b5be
2022-06-16contrib: add PFCP cause and IEI string mapsNeels Hofmeyr2-0/+290
These help to build enums and value_strings using regexes. They are a verbatim copy from 3GPP TS 29.244 version 16.6.0 Release 16, paired with C-compatible and possibly abbreviated name strings. Related: SYS#5599 Change-Id: I7f37efd3cfc4c7b0ae49740ac15e461c52fae6e8
2022-06-16libosmo-gtlv: add TLIV capabilityNeels Hofmeyr18-173/+939
During code review, it was indicated that some TLV protocols that we will likely deal with in the near future also employ an I, and instance value of a tag. Add TLIV support. A usage example for a manually implemented TLIV structure is found in tests/libosmo-gtlv/gtlv_test.c. A usage example for a generated TLIV protocol is found in tests/libosmo-gtlv/test_tliv/. Related: SYS#5599 Change-Id: I0a076e54dfba6038cc779cb7c8f3967d212226aa
2022-06-16libosmo-gtlv: add C code generator for IE structs and arraysNeels Hofmeyr13-0/+1442
Defining a protocol of message types with lists of IEs bears a lot of repetitive, copy-paste-error-prone writing out of data structures. Add a third layer to libosmo-gtlv, which allows helpful code generation. By non-repetitive data structures that briefly describe the protocol's messages and IEs, generate possibly repetitive IE list arrays and decoded-struct definitions automatically, avoiding grunt work errors. I tried C macros for this at first, but it became too convoluted. Generating C code that can be read and grepped makes things easier. A usage example is found in tests/libosmo-gtlv/test_gtlv_gen/. Related: SYS#5599 Change-Id: Ifb3ea54d2797ce060b95834aa117725ec2d6c4cf
2022-06-16libosmo-gtlv: add auto dec/enc to/from structsNeels Hofmeyr8-0/+1288
Add osmo_gtlv_coding: describe the value part of a TLV (decode and encode), describe a struct with its members, and get/put readily decoded structs from/to a raw PDU, directly. With osmo_gtlv_coding defined for a protocol's tags, we only deal with encoded PDUs or fully decoded C structs, no TLV related re-implementations clutter up the message handling code. A usage example is given in gtlv_dec_enc_test. The first real use will be the PFCP protocol in osmo-upf.git. With osmo_gtlv_coding, there still is a lot of monkey work involved in describing the decoded structs. A subsequent patch adds a generator for osmo_gtlv_coding and message structs from tag value lists. Related: SYS#5599 Change-Id: I65de793105882a452124ee58adb0e58469e6e796