<!-- Kamailio Pull Request Template -->
<!-- IMPORTANT: - for detailed contributing guidelines, read: https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md - pull requests must be done to master branch, unless they are backports of fixes from master branch to a stable branch - backports to stable branches must be done with 'git cherry-pick -x ...' - code is contributed under BSD for core and main components (tm, sl, auth, tls) - code is contributed GPLv2 or a compatible license for the other components - GPL code is contributed with OpenSSL licensing exception -->
#### Pre-Submission Checklist <!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply --> <!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above--> <!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list --> - [X] Commit message has the format required by CONTRIBUTING guide - [X] Commits are split per component (core, individual modules, libs, utils, ...) - [X] Each component has a single commit (if not, squash them into one commit) - [X] No commits to README files for modules (changes must be done to docbook files in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change - [ ] Small bug fix (non-breaking change which fixes an issue) - [X] New feature (non-breaking change which adds new functionality) - [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist: <!-- Go over all points below, and after creating the PR, tick the checkboxes that apply --> - [ ] PR should be backported to stable branches - [X] Tested changes locally - [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description <!-- Describe your changes in detail --> Looks like htable module already exports API functions, but currently no other module uses them. Added 2 more API functions for table creation (so other modules can be able to create their own hash tables if they want to) You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4010
-- Commit Summary --
* htable: export table create api functions
-- File Changes --
M src/modules/htable/api.c (10) M src/modules/htable/api.h (4) M src/modules/htable/ht_api.c (4)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4010.patch https://github.com/kamailio/kamailio/pull/4010.diff
@stefan-mititelu-idt pushed 1 commit.
a3d545c9a8de0fdbc2bf0e2106e470e209367925 htable: export table create api functions
force-pushed for clang formatting
@stefan-mititelu-idt pushed 1 commit.
aa07e5b99f0c647cac30630e0f2faaf2a95c3e45 htable: fix ht_cell_pkg_copy str pointers
Added new commit to this PR to fix htable pkg cell "str" pointers.
@stefan-mititelu-idt pushed 1 commit.
fb321ffc4906d5d6063cbef021e78103ca905b70 htable: add param to api function
@stefan-mititelu-idt pushed 2 commits.
3040a20579e7878bd52f650c42c23495ad80b6ce topos_htable: Initial commit 1e4eb966345ceaaac71c01ca8b74645107ee6ea3 topos: add htable storage modparam
@stefan-mititelu-idt pushed 2 commits.
e202e4144d411904ef85c5402c758f556c5d42d4 topos_htable: Initial commit f3619e7a323ec98fd345fa17178ce8a890ea7e39 topos: add htable storage modparam
@stefan-mititelu-idt pushed 2 commits.
b782f6760c570bcf5528baffe338f07f3ccd6488 topos_htable: Initial commit 73bb64b6bd9d113c033e234cbdcf83dbf2852b41 topos: add htable storage modparam
Updated this PR with the new topos_htable module since it depends on the previous htable module commits.
The new module uses htable module api functions for implementing the topos api callbacks needed for storing/loading/updating topology data. It creates 2 new htables called "topos_transaction" and "topos_dialog" upon modinit. Synchronizes via DMQ only the "topos_dialog" htable.
Basic testing of a call using 2 x DMQ nodes, load balanced via DNS show on kamcmd that dialog topology info is shared between the two nodes. If ACK/BYE lands on the peer node, topology info is loaded for "topos_dialog" htable and requests are routed correctly. If DMQ fails to sync "topos_dialog" htable in time, we will rely on 200+ACK/BYE retransmissions, for now.
We decided internally that this is the best 'SHM' solution that fits for us.
Comments or opinions about this, appreciated.
Thank you, Stefan
@stefan-mititelu-idt pushed 1 commit.
1a57b635dc2dd2b10f500cd18f911b315209a2a0 htable: fix api init tables bug
Thanks! I haven't looked much over the new module since it is not something I can test right away, but over the changes to the old modules and I am fine to merge this PR.
Thanks @miconda.
Next week we will be doing some more testing for this new module, focusing on load-testing it. I will come with an update on this PR, right after.
@stefan-mititelu-idt pushed 3 commits.
865fec59f939c3ec772b734dd67aec076c9a936b htable: Updates for topos_htable module 94be40814d22d266862471f63101b4a2034031db topos: Updates for topos_htable module b4d0a73c5994d494131fe890b13b911e50360f7b topos_htable: Initial commit
force-pushed PR with a few changes since previous time: - a few bug fixes for topos_htable - call storage end dialog callback for topos received negative replies of INVITE/SUBSCRIBE => so will be cleaned up faster - didn't need the "mode" param for set_expires api function of htable module
Is this PR ready for review to merge? Or is still some work to be done and pushed here before?
Yes, this PR is ready for review.
At this point we are not planning any new features for the new module and are not aware of any bugs. If further bugs found, will be fixed in separate PRs.
Thank you, Stefan
@stefan-mititelu-idt pushed 1 commit.
78d7ea9333f653352434b3ce567a044c9230d9b2 topos_htable: Small update to doc
OK, thanks, I am merging it -- I focused on the small changes done to the existing modules, the new module can be adjusted as needed if issues are found.
Merged #4010 into master.