Andreas Beckmann
5aa9ad5fdc
MT#55283 fix dkms comment
Ref: https://bugs.debian.org/1101804
Change-Id: Ide293f0b6f6f715d8ea58e38fa85586d44b4c996
9 months ago
Andreas Beckmann
cc10df6314
MT#55283 dkms.conf: declare BUILD_EXCLUSIVE_KERNEL_MIN
Ref: https://bugs.debian.org/1101804
Change-Id: Idda0701ee08887470917741a96a91ae4baa76f87
9 months ago
Richard Fuchs
094c3d93d2
MT#55283 report correct error
Change-Id: I102a52434581569c04f255a3fd09a39599e3fff2
9 months ago
Richard Fuchs
8e1bbc24df
MT#55283 allow stack storage for dummy uring send
Change-Id: Iae5067f7e8bd492f10db946160d2c4af54c2fc2b
9 months ago
Richard Fuchs
dd91f0ec11
MT#55283 centralise uring methods
Introduce struct to keep uring-specific thread-local method pointers
Change-Id: I7b0d1fd82cf5f3d114e8072553cb74054ac7e133
9 months ago
Richard Fuchs
f090376d9a
MT#55283 move defines
to a more appropriate place to remove an otherwise unneeded dependency
Change-Id: If82707e937a9102de1a405a25f7f3f436df878e6
9 months ago
Richard Fuchs
6c19b19069
MT#55283 type safety for uring allocs
Change-Id: I1f1e49b986f7a2cd83b898167e0c314b8862bb69
9 months ago
Richard Fuchs
4146d0f60b
MT#55283 convert log info stack to array
Change-Id: I585c1e0a4aba4b53aaf1cd1db591a41f7e23939a
9 months ago
Richard Fuchs
bcbe751dec
MT#55283 make bufferpool (mostly) lock-free
Change-Id: I9c6803c3b01deacafc20bcca4c6ddd89fd69d3e9
9 months ago
Donat Zenichev
746c68de45
MT#62272 moh: document new config option `moh-prevent-double-hold`
Add a documentation to describe a usage
of `moh-prevent-double-hold`.
Change-Id: I2df2900c2934b15837fd8b12fc639ba746b153fa
9 months ago
Donat Zenichev
37afe18840
MT#62272 auto-daemon-tests-moh: allocate different ports for sockets
For each new MoH test take a new pair of ports.
Change-Id: I980707da44764d629ee323f95b2c5c133b7febfb
9 months ago
Donat Zenichev
c420a17c3b
MT#62272 moh: add double hold test
Test double hold case.
Change-Id: I136eef73f63d0a3814fe220a1fe95f41d6d44d18
9 months ago
Donat Zenichev
57e095eb43
MT#62272 auto-daemon-tests-moh: use text config
Instead of start-up options just use the text
file for configuring things, easier and simpler to keep.
Additionally: introduced config options:
- `moh-attr-name = rtpengine-hold`
- `moh-prevent-double-hold = false`
Fix tests accordingly.
Change-Id: I128b531af6a21623105e5933f8b0b572fdc5620a
9 months ago
Donat Zenichev
254dee8ae9
MT#62272 moh: consider `moh-attr-name` as generic
To be able to keep on passing it through,
to let all other further rtpengine instances see it.
Change-Id: Ia0b6d90b9e54ab09a7a99bd95228b9bddd4e466b
9 months ago
Donat Zenichev
9a3c54a523
MT#62272 Introduce `moh-prevent-double-hold` config option
Protects against double MoH played,
e.g. when inadvertently two rtpengine instances try to trigger MoH.
This gives a clue to the current rtpengine instance,
that another one already started MoH for this call.
By default is set to false.
Change-Id: I7cc36a177b0ce1bdb64ff8b42bf31f13fb1e4c91
9 months ago
Richard Fuchs
26072ed6a1
MT#55283 support CFLAGS in str hash helper
Fixes #1919
Change-Id: Ibac4475c96063b69868546e54e27f9f61b7b909b
9 months ago
Richard Fuchs
95f75d690b
MT#55283 use embedded links in bufferpool
Avoids repeated calls to allocator
Change-Id: I2b85fef3d0fd976bc9bf8a4b0cb9b29b62318cbf
9 months ago
Richard Fuchs
58054f2c0f
MT#55283 use typed queue for bpool shards
Change-Id: Iebe8286a930add93a179cbf0dabc08ea23152f37
9 months ago
Richard Fuchs
0551c2549a
MT#55283 obsolete bufferpool shard array
Remove the sorted pointer array and the associated lock. We can now
directly look up the shard associated with a particular memory block and
so this isn't needed any more.
Change-Id: I6b2972c3b8837cdabdf92cf957c69dc2d559a06c
9 months ago
Richard Fuchs
d43575dc06
MT#55283 look up bufferpool shard from metadata
Use the pointer we stored as metadata to quickly look up the respective
shard.
Change-Id: I01c39d9dbe229bb9bd98d90efb95adfe076e426d
9 months ago
Richard Fuchs
69e634f94a
MT#55283 store metadata head pointer
Put a pointer to the shard itself in the beginning of the buffer. This
facilitates quick lookup.
Change-Id: I0109d77e56afac3189775dd708970288f175dfe6
9 months ago
Richard Fuchs
f7fbe490b0
MT#55283 request aligned addresses from mmap
Or rather, request double the amount, then use the contained aligned
block.
Change-Id: Iaf1da4b3df243a1d4391fc2ff46eba1fec3d738c
9 months ago
Richard Fuchs
9bd5670f89
MT#55283 use fixed allocation size
Allocate all bufferpool shards of the same size, regardless of
underlying allocator. This way increase memory usage a bit, but we're
already quite heavy on that, so no big deal.
Change-Id: Icbe09cd2f9b33bc58ab1efe7de293dea00236fec
9 months ago
Richard Fuchs
1a837e6ab1
MT#55283 add `empty` pointer
With this we can reserve some head room to store our own metadata.
Change-Id: I525c2df7db85ce22c0a4a9810e4c75fdd7731c0c
9 months ago
Richard Fuchs
5f9e43b3e0
MT#55283 move alignment macros to header file
Change-Id: I266cbefe8351f77399bb6e50b2122f9a45249529
9 months ago
Richard Fuchs
1a98502a1b
MT#55283 used aligned memory for bufferpool
Use allocators that return memory blocks aligned to the requested size,
instead of generic malloc. This makes it easier to play tricks with the
memory blocks.
Change-Id: Iad4b1127c76e48c2e9b4ad8489118d4883a24f6a
9 months ago
Richard Fuchs
73616ae28d
MT#55283 implement munmap
Requires reference-counting the VM area
Change-Id: I975527667b2d92e31c55048af3de3bc092474ab3
9 months ago
Richard Fuchs
aa3fb81395
MT#55283 store pointer to table in re_shm
Change-Id: I61ff5ebb0115f83100645e53f7a52789c63780c2
9 months ago
Richard Fuchs
fa938c1ec4
MT#55283 rename `table`
Avoid shadow local variables
Change-Id: I1abd646eae2c9a1690c41011fa5295718b4b5e1e
9 months ago
Richard Fuchs
18926baf85
MT#55283 store shm in vm_private_area
... instead of just the head pointer
Change-Id: I53077b7d43493890ac94585f1247fc4a7b19e2ea
9 months ago
Richard Fuchs
54de3e12c6
MT#55283 use vmalloc instead of alloc_pages
We don't need contiguous physical pages, we only need contiguous virtual
memory. This allows for larger allocation sizes.
Change-Id: I915fdb42c3fd2387aaf08d2f16d0528435038dc6
9 months ago
Richard Fuchs
78d7d93acd
MT#55283 fix array indexing
Entries can be removed within the loop
Change-Id: I173849591edd36ee3eac50087a5768966af98000
9 months ago
Dennis Yurasov
969dfd9390
MT#55283 Restore sequencer values from stats
Closes #1918
Change-Id: If7f3f5aca2cbb94fe10baeaaaaf70f3dfc88ed3e
9 months ago
Richard Fuchs
189de8ed28
MT#55283 check pthread_create return value
Change-Id: Iecf0a650bcc6408677282660f0fcd409cd741626
Warned-by: Coverity
9 months ago
Richard Fuchs
af0b157821
MT#55283 fix possible null dererefence
... when jitter buffer is in use
Change-Id: I7b4dbbcfd98c643394ec3c049c4d99b97c22bc10
9 months ago
Richard Fuchs
a49b0b690a
MT#55283 add T.38 codec test
Change-Id: I5972a4b683526a82b49837eefabd83d52ddacabd
9 months ago
Richard Fuchs
ef7aa06801
MT#55283 shorten lock duration
We can do the freeing safely after having removed the shard from the
list.
Change-Id: I15d7ec71b0c44b916571c420b07c715ad2feaf50
9 months ago
Richard Fuchs
162e982088
MT#55283 fix typo
Technically inconsequential because both functions call the same
underlying pthread_rwlock_unlock
Change-Id: I6fddc55f70772592d17f496e5c16edf6ba7a88e5
9 months ago
Richard Fuchs
9a5069f53c
MT#61625 add "transform" tests
Change-Id: I6976929522b0098729fd8b317bf7c46e791407ef
10 months ago
Richard Fuchs
7dbcb578ab
MT#61625 add "transform" transcode handler
Change-Id: I9b9ef39859f196a9c0ea8a7aee657311a70a5d03
10 months ago
Richard Fuchs
6b5fac9dc7
MT#61625 add "transcode-config"
Adds a new config section that allows adjusting behaviour for certain
transcoding scenarios. This only adds the initial support for the config
option.
Change-Id: Ia3d43061adc540fab054e5c99ab804dc1ff53b84
10 months ago
Richard Fuchs
ab3113bff7
MT#61625 support "blackhole" codec handler
Special codec handler to support not forwarding (nor any processing
whatsoever) of particular payload types at all. Support this in the
kernel module as well.
Change-Id: If10227affa54307e1e9b448eadd0bf2bfc5774ba
10 months ago
Richard Fuchs
fb84336d1a
MT#61625 add global memory arena
Change-Id: I49c9f786d0826c090df348eb7ae600f6887611bd
10 months ago
Richard Fuchs
13d9923374
MT#61625 introduce codec_pipeline_index
Serves as a lookup index into a hash table. Use a union in the existing
struct so that we don't have to do any word replacements.
Change-Id: I15f33982ae929e6ed7c1264f7d11a2dca8e03741
10 months ago
Richard Fuchs
1b6ad783a8
MT#61625 refactor codec_handlers hash index
Change-Id: I52a34cbd6940ab3bd18ebb5d0c024303eb3381fd
10 months ago
Richard Fuchs
8399b36d28
MT#61625 refactor stats chain code
Change-Id: Iaf7c59d94e645ab8d8516baa38445868cb818c01
10 months ago
Richard Fuchs
e72f7e4b0f
MT#61625 add ng_client code
Change-Id: If216cedc5b2ff81dadf1ec7d1df2b767c9dd3abc
10 months ago
Richard Fuchs
135a95ef02
MT#61625 implement "transform" method
Change-Id: I2113b76d97f5cf6cc8927f92b8a178795322a77e
10 months ago
Richard Fuchs
ee707993f4
MT#61625 restrict decision to codec handler
Only use the codec handler's "kernelize" flag to determine whether a
particular payload type can be handled by the kernel or not. It's
supposed to be a reliable indicator, making checking the other flags
unnecessary.
Change-Id: I5fe58eded55ea973ed555e4376ee8200f112d162
9 months ago
Richard Fuchs
a47d848bee
MT#55283 streamline kernelize function
Further separate out logic that relates to ingress from egress
Change-Id: Ifde5bbb5d306b3fdbdbc8cf4d358217b0582f3b6
9 months ago