Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
34f1042
clusterer_controller: zero-config HA clusterer control module (devel)
Jul 14, 2026
4348580
clusterer/clusterer_controller: enforce use_controller vs module-load…
Jul 14, 2026
8a19310
clusterer_controller docs: make every cluster explicit in config exam…
Jul 14, 2026
b7a173e
clusterer: declare controller-managed clusters via cluster_options
Jul 14, 2026
18c199e
clusterer: gate controller integration behind a build-time flag; excl…
Jul 15, 2026
880a2f9
clusterer_controller: libsodium-only crypto, drop the wolfSSL fallback
Jul 17, 2026
df26bf2
clusterer_controller: dedup send tails and peer lookups (net -77 lines)
Jul 17, 2026
ffca3dd
clusterer_controller: replace the hand-rolled join handshake with Noi…
Jul 17, 2026
d1ee636
clusterer_controller: docs - Noise join handshake, libsodium-only crypto
Jul 17, 2026
6980446
clusterer_controller: log this node role transitions on every election
Jul 18, 2026
0167474
tm: render the anycast Via cid from the live node id, not a frozen one
Jul 18, 2026
5dc976d
clusterer_controller: trim the maintenance-mode roadmap comment
Jul 18, 2026
9913e5c
clusterer_controller: rename the cc_/CC_ prefix to cl_ctr_/CL_CTR_
Jul 19, 2026
8561f25
clusterer_controller: unicast the KEY_GRANT to the joining node
Jul 19, 2026
aea959b
clusterer_controller: ACK + bounded retransmit for the join handshake
Jul 19, 2026
781a644
clusterer_controller: membership digest in MASTER_ALIVE + RESYNC repair
Jul 19, 2026
bfb808a
clusterer_controller: unicast the join-time state to the joiner
Jul 19, 2026
6773aed
clusterer_controller: drop the redundant MEMBER_LIST re-broadcast on …
Jul 19, 2026
9eb92a5
clusterer_controller: master-mediated ALIVE liveness (O(N^2) -> O(N))
Jul 20, 2026
fabcdd1
clusterer_controller: fall back to multicast when clusters share a port
Jul 20, 2026
db39f15
clusterer_controller: route shared-port unicast by cluster_id
Jul 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,19 @@ include Makefile.defs
# always exclude the SVN dir
override exclude_modules+= .svn $(skip_modules)

# The clusterer module exposes its controller-support API (and the extra
# cluster_options modparam) only when the clusterer_controller module is part of
# this build; otherwise it is a stock module. Mirror the module-selection rule
# below (built if force-included, else unless excluded) and export the result so
# clusterer/Makefile can define -DCLUSTERER_CTRL_SUPPORT. Derived from the
# configured include/exclude lists (not the current 'modules' subset) so it stays
# consistent whether you 'make all' or rebuild just modules/clusterer.
ifneq ($(filter clusterer_controller,$(include_modules)),)
export CLUSTERER_CTRL_SUPPORT:=1
else ifeq ($(filter clusterer_controller,$(exclude_modules)),)
export CLUSTERER_CTRL_SUPPORT:=1
endif

#always include this modules
#include_modules?=

Expand Down
2 changes: 1 addition & 1 deletion Makefile.conf.template
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
#uuid= UUID generator | uuid-dev

# Modules omitted from the default build, generally due to external dependencies.
exclude_modules?= aaa_diameter aaa_radius auth_jwt auth_web3 b2b_logic_xml cachedb_cassandra cachedb_couchbase cachedb_dynamodb cachedb_memcached cachedb_mongodb cachedb_redis carrierroute cgrates compression cpl_c db_berkeley db_http db_mysql db_oracle db_perlvdb db_postgres db_sqlite db_unixodbc dialplan emergency event_rabbitmq event_kafka event_sqs h350 httpd http2d identity jabber json launch_darkly ldap lua mi_xmlrpc mmgeoip opentelemetry osp perl pi_http presence presence_dialoginfo presence_mwi presence_reginfo presence_xml presence_dfks proto_ipsec proto_sctp proto_tls proto_wss pua pua_bla pua_dialoginfo pua_mi pua_reginfo pua_usrloc pua_xmpp python regex rabbitmq_consumer rest_client rls rtp.io siprec sngtc snmpstats stir_shaken tls_mgm tls_openssl tls_wolfssl uuid xcap xcap_client xml xmpp
exclude_modules?= aaa_diameter aaa_radius auth_jwt auth_web3 b2b_logic_xml cachedb_cassandra cachedb_couchbase cachedb_dynamodb cachedb_memcached cachedb_mongodb cachedb_redis carrierroute cgrates clusterer_controller compression cpl_c db_berkeley db_http db_mysql db_oracle db_perlvdb db_postgres db_sqlite db_unixodbc dialplan emergency event_rabbitmq event_kafka event_sqs h350 httpd http2d identity jabber json launch_darkly ldap lua mi_xmlrpc mmgeoip opentelemetry osp perl pi_http presence presence_dialoginfo presence_mwi presence_reginfo presence_xml presence_dfks proto_ipsec proto_sctp proto_tls proto_wss pua pua_bla pua_dialoginfo pua_mi pua_reginfo pua_usrloc pua_xmpp python regex rabbitmq_consumer rest_client rls rtp.io siprec sngtc snmpstats stir_shaken tls_mgm tls_openssl tls_wolfssl uuid xcap xcap_client xml xmpp

# Modules forced into the build, even when also listed in exclude_modules.
include_modules?=
Expand Down
8 changes: 8 additions & 0 deletions modules/clusterer/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,12 @@ NAME=clusterer.so
#DEFS+= -DCLUSTERER_DBG
#DEFS+= -DCLUSTERER_EXTRA_BIN_DBG

# Controller support (the clusterer_ctrl API, the cluster_options modparam and
# the controller hooks) is compiled only when the clusterer_controller module is
# part of this build - the top-level Makefile exports CLUSTERER_CTRL_SUPPORT=1 in
# that case. A stock build produces the vanilla clusterer module.
ifeq ($(CLUSTERER_CTRL_SUPPORT),1)
DEFS+= -DCLUSTERER_CTRL_SUPPORT
endif

include ../../Makefile.modules
Loading