Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
6ffd4ef
clusterer: controller-support API, gated behind a build-time flag
Aug 9, 2026
cb19612
tm: render the anycast Via cid from the live node id, not a frozen one
Aug 9, 2026
1574da1
clusterer_controller: zero-config HA clusterer control module
Aug 9, 2026
31a6d5c
clusterer_controller: a consumer messaging API over the encrypted plane
Aug 9, 2026
790e31c
clusterer_controller: a member list says who belongs, not who is alive
Aug 9, 2026
5aaf72f
clusterer_controller: make a co-bound port loud instead of silent
Aug 9, 2026
6eae096
clusterer_controller: NODE_ASSIGN is membership too, not liveness
Aug 9, 2026
7121f0b
clusterer: close a node's BIN connection when it leaves the cluster
Aug 9, 2026
6cd3bfb
clusterer: close every BIN connection to a departing node, and say wh…
Aug 10, 2026
da9516e
clusterer_controller: never learn a peer from our own looped-back roster
Aug 10, 2026
2732d5d
clusterer: a controller-managed cluster never adds nodes from the wire
Aug 10, 2026
fc5d332
clusterer_controller: a yielding master must re-JOIN, not just concede
Aug 10, 2026
e8ae4f8
clusterer_controller: document that RELIABLE needs a serialised channel
Aug 10, 2026
d7a5ca0
clusterer_controller: size the transmit buffers from the bound that g…
Aug 11, 2026
f24e86f
clusterer_controller: gate CLCTR_SEND_RELIABLE behind enable_reliable…
Aug 12, 2026
26697ce
clusterer_controller: retransmit the sealed packet, not its plaintext…
Aug 12, 2026
ed2cc41
clusterer_controller: accept each sequence number exactly once
Aug 12, 2026
3453976
clusterer_controller: arm the retransmit timer for the earliest deadline
Aug 12, 2026
2ef79ff
clusterer_controller: size the retransmit cache from the MTU, per entry
Aug 12, 2026
ab13b84
clusterer_controller: cl_ctr_send_req_list must use the MTU-derived b…
Aug 12, 2026
bcc5fb6
clusterer_controller: enable_reliable_send defaults on; document the …
Aug 12, 2026
2f778c2
clusterer_controller: survive a sequence-number wrap without going deaf
Aug 12, 2026
ee2e13c
clusterer_controller: honour the interface MTU instead of padding up …
Aug 13, 2026
7adcdd6
clusterer_controller: publish the runtime payload bound through the API
Aug 13, 2026
9eaf9e2
clusterer_controller: detect the cluster-plane MTU from the interface
Aug 12, 2026
1739f48
clusterer_controller: refuse a joiner whose MTU differs from the clus…
Aug 12, 2026
9535025
clusterer_controller: detect an MTU change under a running node
Aug 12, 2026
3bf3cfe
clusterer_controller: a failed MTU read is not a recovery
Aug 13, 2026
17efcf6
clusterer_controller: say what the DF bit actually does
Aug 13, 2026
eeb553b
clusterer_controller: document the uniform-MTU rule, the join_pending…
Aug 13, 2026
2f23e3d
clusterer_controller: carry the master's config in the JOIN_REJECT, a…
Aug 14, 2026
b11a3ea
clusterer_controller: warn when THIS master is the config outlier, mi…
Aug 14, 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