)]}'
{"id":"openvpn~1786","triplet_id":"openvpn~master~I64e0850d48647a2c0e3d385c2f20a9f445931727","project":"openvpn","branch":"master","full_branch":"refs/heads/master","topic":"multi subnet-pool","attention_set":{"1000003":{"account":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"last_update":"2026-07-14 22:17:31.000000000","reason":"Reviewer was added"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I64e0850d48647a2c0e3d385c2f20a9f445931727","subject":"multi: assign IPv6 addresses from a tagged subnet-pool","status":"NEW","created":"2026-07-14 22:17:28.000000000","updated":"2026-10-18 11:32:56.000000000","submit_type":"CHERRY_PICK","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"ee29692ff4d2928d36c1a66bd322b8c4496cdfa1","_number":1786,"virtual_id_number":1786,"owner":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"actions":{},"labels":{"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"}],"values":{"-2":"This shall not be submitted","-1":"I would prefer this is not submitted as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"}],"CC":[{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-14 22:17:31.000000000","updated_by":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"real_updated_by":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"reviewer":{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"},"state":"CC"},{"updated":"2026-07-14 22:17:31.000000000","updated_by":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"real_updated_by":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"reviewer":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"state":"REVIEWER"}],"messages":[{"id":"10d597cf7f22279bf0c84f2802408e8fbd5280fc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-07-14 22:17:28.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"87cf02283d94f75c83163cf290c594a1010aca85","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-07-14 22:18:09.000000000","message":"Topic set to multi subnet-pool","accounts_in_message":[],"_revision_number":1},{"id":"54fb96d030da8cee556ad134fdce7d889c82e8c8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-07-15 07:56:56.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"4724dd261fbadff1f8de821877ded73adb116e07","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-07-15 13:23:53.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"491b624ab1aeb6a60a94c8c3a61ebe61c68c6c14","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-10-17 22:52:22.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"ac35d8ce42788b64f24e76bad14c1c5c71d1b132","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-10-17 23:53:52.000000000","message":"Uploaded patch set 5: Patch Set 4 was rebased. Commit message was updated.","accounts_in_message":[],"_revision_number":5},{"id":"b14b84ea5dbd3d92983d5b1a1add6c5694bd7858","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-10-17 23:54:59.000000000","message":"Patch Set 5:\n\nChanges since PS3 (PS4/PS5), rebased on top of the 1783 changes:\n\n- --subnet-pool-ipv6 is now validated when the config is loaded: network between /64 and /124 without host bits, gateway a host address inside it, unique tags, no overlap with another pool or with the --server-ipv6 network. It requires --server-ipv6, --dev tun and --topology subnet, and is refused outside server mode.\n- The IPv6 gateway is reserved in the pool and never handed out (IPv4 and IPv6 of a client share one pool slot).\n- The remote end pushed in ifconfig-ipv6 is now the pool gateway instead of the server\u0027s own address, which is off-link for the client.\n- The IPv6 tag is resolved again after every client-connect handler, like IPv4.\n- The server routes each IPv6 pool into its tun device (route-ipv6; on tun this is gateway-less already, so it is fine with DCO too).\n- New unit tests for the IPv6 validation.","accounts_in_message":[],"_revision_number":5},{"id":"f14f21e7f4cb2b18caa1e429dac26dbbfe943ae8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-10-18 08:39:43.000000000","message":"Uploaded patch set 6: Patch Set 5 was rebased.","accounts_in_message":[],"_revision_number":6},{"id":"cdc793d845b9824c422cc4134c73b42a83334ce6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-10-18 11:32:19.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"ee29692ff4d2928d36c1a66bd322b8c4496cdfa1","author":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2026-10-18 11:32:56.000000000","message":"Patch Set 7:\n\nPS7: cppcheck cleanup only, no functional change.\n\n- options.c: the --subnet-pool-ipv6 prefix-length error message used %d for the unsigned netbits; now %u (invalidPrintfArgType_sint).\n- multi.c: multi_get_group_pool() picked the pool tag with \"d4 ? d4-\u003etag : d6-\u003etag\", safe only because of the preceding ASSERT(d4 || d6), which cppcheck does not model (nullPointerRedundantCheck); the tag is now chosen with an explicit NULL check and asserted.\n- test_subnet_pool.c: one pair of pool definitions per scenario in the IPv6 test, as in 1783 (redundantAssignment).\n\nWith this, \"make cppcheck CPPCHECK_CHECK_LEVEL\u003dnormal\" reports no new findings for any patch of the series compared to master.","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"5255415de686e0056566ac9daf1b536d83ef9667","revisions":{"72c1d8d81e3a2fc5962597d5d8d627718ca8952d":{"kind":"REWORK","_number":1,"created":"2026-07-14 22:17:28.000000000","uploader":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/86/1786/1","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/86/1786/1","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/1 \u0026\u0026 git checkout -b change-1786 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/86/1786/1","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"7bd1cbc8374c890b03e3a9e5c6d9a63639d63255","subject":"tests: add subnet-pool tag lookup unit test"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-07-14 22:08:29.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-07-14 22:17:07.000000000","tz":120},"subject":"multi: assign IPv6 addresses from a tagged subnet-pool","message":"multi: assign IPv6 addresses from a tagged subnet-pool\n\nAdd the IPv6 counterpart of --subnet-pool:\n\n  subnet-pool-ipv6 \u003ctag\u003e \u003cnetwork\u003e/\u003cbits\u003e [\u003cgateway\u003e]   (main config)\n\nselected by the same per-client --subnet-pool-tag. A client\u0027s tag is\nresolved against the IPv6 pool list too and, when it matches, an IPv6\naddress is handed out from the group\u0027s pool alongside any IPv4 one (a\nsingle dual-stack ifconfig_pool per tag). A tag matching neither family\nis still declined with AUTH_FAILED.\n\nChange-Id: I64e0850d48647a2c0e3d385c2f20a9f445931727\nGitHub: closes openvpn/OpenVPN#987\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"41378df81fccebcb8f6b93afe22a9df245814925":{"kind":"REWORK","_number":2,"created":"2026-07-15 07:56:56.000000000","uploader":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/86/1786/2","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/86/1786/2","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/2 \u0026\u0026 git checkout -b change-1786 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/86/1786/2","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"2a490d454859483bd3e4946c7063077a316cf1e9","subject":"tests: add subnet-pool tag lookup unit test"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-07-15 07:35:47.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-07-15 07:35:47.000000000","tz":120},"subject":"multi: assign IPv6 addresses from a tagged subnet-pool","message":"multi: assign IPv6 addresses from a tagged subnet-pool\n\nAdd the IPv6 counterpart of --subnet-pool:\n\n  subnet-pool-ipv6 \u003ctag\u003e \u003cnetwork\u003e/\u003cbits\u003e [\u003cgateway\u003e]   (main config)\n\nselected by the same per-client --subnet-pool-tag. A client\u0027s tag is\nresolved against the IPv6 pool list too and, when it matches, an IPv6\naddress is handed out from the group\u0027s pool alongside any IPv4 one (a\nsingle dual-stack ifconfig_pool per tag). A tag matching neither family\nis still declined with AUTH_FAILED.\n\nChange-Id: I64e0850d48647a2c0e3d385c2f20a9f445931727\nGitHub: closes openvpn/OpenVPN#987\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"f5038725a0104d7f238ff7080c8ee13ab1ccdca0":{"kind":"REWORK","_number":3,"created":"2026-07-15 13:23:53.000000000","uploader":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/86/1786/3","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/86/1786/3","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/3 \u0026\u0026 git checkout -b change-1786 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/86/1786/3","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"e81f65f2b97d657d6747bef40e2911b19ea1a938","subject":"multi: assign clients from a named, tagged subnet-pool"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-07-15 11:11:51.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-07-15 11:54:58.000000000","tz":120},"subject":"multi: assign IPv6 addresses from a tagged subnet-pool","message":"multi: assign IPv6 addresses from a tagged subnet-pool\n\nAdd the IPv6 counterpart of --subnet-pool:\n\n  subnet-pool-ipv6 \u003ctag\u003e \u003cnetwork\u003e/\u003cbits\u003e [\u003cgateway\u003e]   (main config)\n\nselected by the same per-client --subnet-pool-tag. A client\u0027s tag is\nresolved against the IPv6 pool list too and, when it matches, an IPv6\naddress is handed out from the group\u0027s pool alongside any IPv4 one (a\nsingle dual-stack ifconfig_pool per tag). A tag matching neither family\nis still declined with AUTH_FAILED.\n\nChange-Id: I64e0850d48647a2c0e3d385c2f20a9f445931727\nGitHub: closes openvpn/OpenVPN#987\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"2369a67b315d68f2559b80d70ab68aba8681defc":{"kind":"REWORK","_number":4,"created":"2026-10-17 22:52:22.000000000","uploader":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/86/1786/4","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/86/1786/4","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/4 \u0026\u0026 git checkout -b change-1786 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/86/1786/4","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"3e543fe30b84e2f41c8c75aba832014e14ed0af2","subject":"multi: assign clients from a named, tagged subnet-pool"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-07-15 11:11:51.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-10-17 21:23:10.000000000","tz":120},"subject":"multi: assign IPv6 addresses from a tagged subnet-pool","message":"multi: assign IPv6 addresses from a tagged subnet-pool\n\nAdd the IPv6 counterpart of --subnet-pool:\n\n  subnet-pool-ipv6 \u003ctag\u003e \u003cnetwork\u003e/\u003cbits\u003e [\u003cgateway\u003e]   (main config)\n\nselected by the same per-client --subnet-pool-tag. A client\u0027s tag is\nresolved against the IPv6 pool list too and, when it matches, an IPv6\naddress is handed out from the group\u0027s pool alongside any IPv4 one (a\nsingle dual-stack ifconfig_pool per tag). The pool gateway is pushed as\nthe remote end of the client\u0027s ifconfig-ipv6, as the server\u0027s own\naddress is off-link for it. A tag matching neither family is still\ndeclined with AUTH_FAILED.\n\nAs for IPv4 the pools are checked when the config is loaded (network\nbetween /64 and /124 without host bits, gateway a host address inside\nit, unique tags, no overlap with another pool or the --server-ipv6\nnetwork), created at startup with their gateway reserved, and routed\ninto the server\u0027s tun device.\n\nChange-Id: I64e0850d48647a2c0e3d385c2f20a9f445931727\nGitHub: closes openvpn/OpenVPN#987\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n\n"},"branch":"refs/heads/master"},"8a3b7286141a31ae051b81d827cb398480f3394e":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":5,"created":"2026-10-17 23:53:52.000000000","uploader":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/86/1786/5","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/86/1786/5","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/5 \u0026\u0026 git checkout -b change-1786 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/86/1786/5","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"df02c7ab40bfaf61fcaf7f5b03b2a1fbf180fe74","subject":"multi: assign clients from a named, tagged subnet-pool"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-07-15 11:11:51.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-10-17 23:28:56.000000000","tz":120},"subject":"multi: assign IPv6 addresses from a tagged subnet-pool","message":"multi: assign IPv6 addresses from a tagged subnet-pool\n\nAdd the IPv6 counterpart of --subnet-pool:\n\n  subnet-pool-ipv6 \u003ctag\u003e \u003cnetwork\u003e/\u003cbits\u003e [\u003cgateway\u003e]   (main config)\n\nselected by the same per-client --subnet-pool-tag. A client\u0027s tag is\nresolved against the IPv6 pool list too and, when it matches, an IPv6\naddress is handed out from the group\u0027s pool alongside any IPv4 one (a\nsingle dual-stack ifconfig_pool per tag). The pool gateway is pushed as\nthe remote end of the client\u0027s ifconfig-ipv6, as the server\u0027s own\naddress is off-link for it. A tag matching neither family is still\ndeclined with AUTH_FAILED.\n\nAs for IPv4 the pools are checked when the config is loaded (network\nbetween /64 and /124 without host bits, gateway a host address inside\nit, unique tags, no overlap with another pool or the --server-ipv6\nnetwork), created at startup with their gateway reserved, and routed\ninto the server\u0027s tun device.\n\nChange-Id: I64e0850d48647a2c0e3d385c2f20a9f445931727\nGitHub: closes openvpn/OpenVPN#987\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"ce6a957c55b81aa14fa126150bd135d400a480eb":{"kind":"TRIVIAL_REBASE","_number":6,"created":"2026-10-18 08:39:43.000000000","uploader":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/86/1786/6","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/86/1786/6","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/6 \u0026\u0026 git checkout -b change-1786 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/86/1786/6","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/6 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"690ed32a0c87a92f2be1aecd90650d31f56953b4","subject":"multi: assign clients from a named, tagged subnet-pool"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-07-15 11:11:51.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-10-18 08:34:44.000000000","tz":120},"subject":"multi: assign IPv6 addresses from a tagged subnet-pool","message":"multi: assign IPv6 addresses from a tagged subnet-pool\n\nAdd the IPv6 counterpart of --subnet-pool:\n\n  subnet-pool-ipv6 \u003ctag\u003e \u003cnetwork\u003e/\u003cbits\u003e [\u003cgateway\u003e]   (main config)\n\nselected by the same per-client --subnet-pool-tag. A client\u0027s tag is\nresolved against the IPv6 pool list too and, when it matches, an IPv6\naddress is handed out from the group\u0027s pool alongside any IPv4 one (a\nsingle dual-stack ifconfig_pool per tag). The pool gateway is pushed as\nthe remote end of the client\u0027s ifconfig-ipv6, as the server\u0027s own\naddress is off-link for it. A tag matching neither family is still\ndeclined with AUTH_FAILED.\n\nAs for IPv4 the pools are checked when the config is loaded (network\nbetween /64 and /124 without host bits, gateway a host address inside\nit, unique tags, no overlap with another pool or the --server-ipv6\nnetwork), created at startup with their gateway reserved, and routed\ninto the server\u0027s tun device.\n\nChange-Id: I64e0850d48647a2c0e3d385c2f20a9f445931727\nGitHub: closes openvpn/OpenVPN#987\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"5255415de686e0056566ac9daf1b536d83ef9667":{"kind":"REWORK","_number":7,"created":"2026-10-18 11:32:19.000000000","uploader":{"_account_id":1000007,"name":"Antonio Quartulli","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/86/1786/7","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/86/1786/7","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/7 \u0026\u0026 git checkout -b change-1786 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/86/1786/7","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/86/1786/7 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"9cb5d3bc93878e351b5f822e8ff2ddd21dddf0f6","subject":"multi: assign clients from a named, tagged subnet-pool"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-07-15 11:11:51.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2026-10-18 09:53:37.000000000","tz":120},"subject":"multi: assign IPv6 addresses from a tagged subnet-pool","message":"multi: assign IPv6 addresses from a tagged subnet-pool\n\nAdd the IPv6 counterpart of --subnet-pool:\n\n  subnet-pool-ipv6 \u003ctag\u003e \u003cnetwork\u003e/\u003cbits\u003e [\u003cgateway\u003e]   (main config)\n\nselected by the same per-client --subnet-pool-tag. A client\u0027s tag is\nresolved against the IPv6 pool list too and, when it matches, an IPv6\naddress is handed out from the group\u0027s pool alongside any IPv4 one (a\nsingle dual-stack ifconfig_pool per tag). The pool gateway is pushed as\nthe remote end of the client\u0027s ifconfig-ipv6, as the server\u0027s own\naddress is off-link for it. A tag matching neither family is still\ndeclined with AUTH_FAILED.\n\nAs for IPv4 the pools are checked when the config is loaded (network\nbetween /64 and /124 without host bits, gateway a host address inside\nit, unique tags, no overlap with another pool or the --server-ipv6\nnetwork), created at startup with their gateway reserved, and routed\ninto the server\u0027s tun device.\n\nChange-Id: I64e0850d48647a2c0e3d385c2f20a9f445931727\nGitHub: closes openvpn/OpenVPN#987\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n"},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"NOT_READY","labels":[{"label":"Code-Review","status":"NEED"}]},{"rule_name":"checks~ChecksSubmitRule","status":"OK"}]}
