Richard Fuchs
1925ab925f
MT#55283 use obj_release
Change-Id: I06434bb580d30025ab793f9eb0e8622577103f16
3 months ago
Richard Fuchs
82f5158775
MT#63317 add sink_handler_set_generic
Change-Id: Ibef8d6a6b3c868c2b4f844c3bf1e095be23cae30
4 months ago
Richard Fuchs
acb0e47a1a
MT#63317 rename determine_sink_handler
and annotate some functions
Change-Id: I26cfe17f9bb93c1cc87b8365b3eed10fc03956f4
4 months ago
Richard Fuchs
64d3c7646c
MT#63317 parse out RTP header extensions
Stub function for now.
Change-Id: I7ad2a203f42fb118e50273a57772cac4fbd1738f
5 months ago
Richard Fuchs
c525cb9e09
MT#63317 remove duplicate header parsing
Pass down RTP/RTCP header to crypto functions so that they don't need to
parse it out again.
Change-Id: I551ab6a668cc99c903cde8807f6f9c10fc0cf6d5
5 months ago
Richard Fuchs
2f52fb2511
MT#63317 return RTP extensions from rtp_payload
Change-Id: If7451e3d32ba39cab40f6f09488cd75ccbefa1cc
5 months ago
Richard Fuchs
8795e92fab
MT#63317 refactor RTP parsing code
Split up demuxing, parsing, stats, and the setting of ingress and egress
streams.
Change-Id: I1ed736024b3df8c3f24b68dc9bb8ef3e886712be
5 months ago
Richard Fuchs
eddff91357
MT#63317 annotate rtcp_payload
Change-Id: I2a08441c0c7e262d3d7a43e8fabc0a5766de7c7f
5 months ago
Richard Fuchs
3540a8334f
MT#63317 annotate rtp_payload
Change-Id: Ib8ba5e2002c75ec711c2f8e04b4e98b9a5fc8e0a
5 months ago
Richard Fuchs
529a701f49
MT#55283 use an intrusive list for ports release
Save some allocations
Change-Id: Ie78e370168a038fccfa2ee33258f674792fc178c
4 months ago
Richard Fuchs
b85e007ff1
MT#55283 add extra dtls_connection_cleanup
To release any references early
Change-Id: Ib4417301e4f02fbc7d9f4d77d78cb827bb481726
4 months ago
Richard Fuchs
7cf0b86240
MT#55283 move kernelize_state into scope
That gives us the benefit of not needing the manual cleanup.
Change-Id: Ia5681d0bcb60c887a4174adddd5076eb324105bf
4 months ago
Richard Fuchs
08239c9510
MT#55283 clarify _destroy_ptr
Change-Id: Ib453648d21e907bffd7120a9c9b50275f7bf0846
4 months ago
Richard Fuchs
e03f814855
MT#55283 combine in/out_lock
With selected_sfd being protected by in_lock, we pretty much have to
hold at least in_lock everywhere, and end up requiring both locks in
many places. The distinction has become pointless.
Change-Id: Ic0ad976c2d68d9639b9434da7f0e6e9c0d84c185
4 months ago
John Burke
afce798034
MT#55283 early exit heuristic endpoint learning if endpoint matches SDP
Closes #1987
Change-Id: I906a8b1538d75356ea1b0f43d9b0ff5b37dbda52
4 months ago
Orgad Shaneh
fa7b4667d0
MT#55283 respect pause recording command
The command was accepted, but recording continued as usual.
Closes #1981
Change-Id: I994a9ebf75bc2d0d0ce5c601c29843c4bc0e9d0d
5 months ago
Richard Fuchs
052f16da56
MT#55283 allow allocation of out-of-pool ports
Different instances of rtpengine may be configured with different port
ranges. If HA requests usage of a port not part of our pool, allow it.
Change-Id: Ib4ace6c4facac35ea44948720fa46bcbdaf441d3
5 months ago
Richard Fuchs
589bf0b22d
MT#55283 split up reserve_port
Use different function to get a port from a pool and return it, and
reserve a port in a pool permanently during startup.
Change-Id: I030dc2ebbe30c9b47252669717f235177f15219d
5 months ago
Richard Fuchs
215500bf4a
MT#55283 add port_is_in_range helper
Change-Id: I65ff5f7efdb67ce4db447d3c4cfdc4ccd3613143
5 months ago
Richard Fuchs
3118b1e258
MT#55283 update function to bool
Change-Id: I290fc3b803db4ac0b5d95ef9609c158dff303af5
5 months ago
Richard Fuchs
ffc539c0d8
MT#55283 locking updates
Protect selected_sfd with in_lock.
Protect RTCP sending with in_lock and out_lock as appropriate.
Has the odd side effect of RTCP reports expected in tests to be sent one
packet later than before.
Closes #1966
Probably fixes #1927
Change-Id: I225b43dff8e8fbb938d3be6aad50249997615d77
5 months ago
Richard Fuchs
1b077c300a
MT#55283 use auto lock in a few more places
Change-Id: Ibf34fa6e8cdcbf122e548475ba086101a6757a66
5 months ago
Richard Fuchs
a2c9d5c7a1
MT#55283 add media PUBLIC flag
A simple mechanism to track whether a given media endpoint has been
advertised to the public. If it hasn't, then any media received on it is
considered suspicious, and source addresses are ignored for learning
purposes.
Change-Id: I76a08e3f442f263dad192ff496a5d734a9349d26
6 months ago
Richard Fuchs
dd8450518c
MT#55283 fix log message format
Change-Id: Ib294200c9a55f59f60c9add9096fa0476d188707
6 months ago
Richard Fuchs
21b0df222c
MT#55283 update asymmetric handling
Better distinction between endpoint-learning=off and asymmetric mode
Change-Id: I100d0d0476b312ddfee21d09a4e5c79f2e18ed60
7 months ago
Richard Fuchs
5132e74a41
MT#62735 honour strict-source during learning
Change-Id: Ic4eb9ebf20020bfea1840102e542d3ec5b9adcf2
7 months ago
Richard Fuchs
1a382b9a3b
MT#55283 use endpoint_print_buf
Change-Id: If688e85a3a51ebcd80a7c42d7b77f75413855954
7 months ago
Richard Fuchs
8a1b420af3
MT#62735 add `recrypt` flag
Change-Id: Ia2779bf51c155df473e523d30bd018ce54bea900
8 months ago
Richard Fuchs
88cb8abf51
MT#62735 pull up SRTP decryption
Decrypt SRTP (and possibly discard packet) first, before doing source
address checking/learning.
Change-Id: I2a2cdd94768e93d58e0cdd4614b8ac53ea680724
8 months ago
Richard Fuchs
9068638a4d
MT#62735 fix heuristic learning mode
Change-Id: I2bfd09eefaf6a13f1c7435efa2e07c9ccecfa964
8 months ago
Richard Fuchs
c8dd521e33
MT#55283 obsolete SSRC tracking
Change-Id: Ic0a3c7826180e1e1f4a783dcc6d775c92fe38d1f
8 months ago
Richard Fuchs
cf22d82932
MT#55283 eliminate input/output combination SSRC
Change-Id: I94636b7f6fb6fb31cd3bf332fffe0203e17f6c16
8 months ago
Richard Fuchs
19af8034a4
MT#55283 split SSRC hash into in and out
Change-Id: Ie1d378ee455e6fadb39a16f4c1d86f604870c536
8 months ago
Richard Fuchs
ad65c9096f
MT#55283 convert call structs to int64_t
Change-Id: If1a077d206d96914651b3e4624e7fc09f239ed09
8 months ago
Richard Fuchs
952429aa89
MT#55283 convert last_packet to int64_t
Change-Id: I21aec3c852a213c433b3a6c62d8b039303ec0f01
8 months ago
Richard Fuchs
e92f260e7a
MT#55283 convert daemon/ to int64_t
Change-Id: Ie557204821fddfa5af0be96cc8f0ff2dd093fc7c
8 months ago
Richard Fuchs
165c42fb8e
MT#55283 convert calls to int64_t
Change-Id: I7c9a2229ba3eea418e009bb04def336476d2ec25
8 months ago
Richard Fuchs
f34786dade
MT#55283 convert media_packet to int64_t
Change-Id: I4b1da113cf01d34473027987d4ee60215655fdec
8 months ago
Richard Fuchs
c70510303a
MT#55283 convert rtpe_now to int64_t
First step in converting (almost) all timeval uses to int64_t
Change-Id: If20fd749c61c278273c535b68287df7e6f042808
8 months ago
Richard Fuchs
238dc9d5be
MT#55283 integrate ssrc_hash into upper objects
Change-Id: Ib8f78ef6bc3028fc342fe07253ebe628af322e55
8 months ago
Richard Fuchs
954bac923b
MT#55283 move SSRC hash from monologue to media
Change-Id: Id03603982692e9f6aef3b96d2a04514459eb30a7
8 months ago
Richard Fuchs
9f9aaa5332
MT#55283 remove unused argument
Change-Id: I79893f756c89cfec65b56b927b98c0c818ed2d98
8 months ago
Richard Fuchs
0b61f4f067
MT#55283 use embedded list link
Avoids repeated calls to allocator
Change-Id: Ibbf1324996e723dc36639885de0916a9ad82e367
8 months ago
Richard Fuchs
4d8156bf91
MT#55283 remove remnants of g_slice
The GLib slice allocator has been obsoleted. Having a mixture of two
allocators can lead to hidden issues on systems that use different
implementations. Take the leap and replace everything with g_new/g_free.
Change-Id: I025c8383ef47b2c2472573360407fd6a6ca339b3
8 months ago
Richard Fuchs
78d7d93acd
MT#55283 fix array indexing
Entries can be removed within the loop
Change-Id: I173849591edd36ee3eac50087a5768966af98000
9 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
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
Richard Fuchs
ef2e31b69d
MT#55283 split up kernelize_one
Split function into one part handling the "target" (i.e. ingress)
portion of the forwarding chain, and one function handling just the
outputs.
Change-Id: I3766da3c4bc5caee4eb6bae8978f177a83cc231a
9 months ago
Richard Fuchs
490b5af6f5
MT#55283 use typed GQueue for r*_destination_info
Also switch allocator to g_new/g_free as the slice allocator is
obsolete.
Change-Id: I2f243d8b24aa8a79dc9d6131a34969313067d05f
9 months ago