)]}'
{"id":"openvpn~1521","triplet_id":"openvpn~master~I8b0d1cad7062856abcc40c4e16ec93b45295bbd3","project":"openvpn","branch":"master","attention_set":{"1000003":{"account":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"last_update":"2026-03-17 16:22:34.000000000","reason":"\u003cGERRIT_ACCOUNT_1000034\u003e replied on the change","reason_account":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"}},"1000034":{"account":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"last_update":"2026-03-25 12:14:12.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{"1000001":{"account":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"last_update":"2026-03-31 10:35:05.000000000","reason":"removed on reply"}},"hashtags":[],"change_id":"I8b0d1cad7062856abcc40c4e16ec93b45295bbd3","subject":"Add support for user defined network namespace","status":"NEW","created":"2026-02-13 12:35:18.000000000","updated":"2026-03-31 10:35:05.000000000","submit_type":"CHERRY_PICK","submittable":true,"total_comment_count":116,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"35cd71d6e23b7e472c6fe8f939f01c40198a60fe","_number":1521,"virtual_id_number":1521,"owner":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},{"value":2,"date":"2026-03-31 10:35:05.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."}],"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"},"default_value":0}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},{"_account_id":1000003,"name":"plaisthos","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-02-13 12:35:20.000000000","updated_by":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"reviewer":{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"},"state":"CC"},{"updated":"2026-02-13 12:35:20.000000000","updated_by":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"reviewer":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"state":"REVIEWER"},{"updated":"2026-02-16 12:10:39.000000000","updated_by":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"reviewer":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"state":"REVIEWER"}],"messages":[{"id":"6a4e7fb2bc28e02915eafb36c93779990b643012","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-02-13 12:35:18.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"27618e66e3b42fee5dcff84d729fb42784440ef6","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-02-16 12:10:39.000000000","message":"Patch Set 1: Code-Review-2\n\n(26 comments)","accounts_in_message":[],"_revision_number":1},{"id":"2ac22879173d198a24e3d3dc29eb0ea1f62bd152","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-02-16 12:25:19.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"b07f7e38840cd64c91d7d79a714c75ca3a3b8f47","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-02-26 09:43:39.000000000","message":"Uploaded patch set 2.\n\nCopied Votes:\n* Code-Review-2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR **is:MIN**\")\n","accounts_in_message":[],"_revision_number":2},{"id":"dd3d1acdbcc6f53d369a9394af42e1d8267c2b99","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-02-26 09:48:44.000000000","message":"Patch Set 2:\n\n(24 comments)","accounts_in_message":[],"_revision_number":2},{"id":"a75a01b6ba67e9d881aa540d9b246d7a905e7245","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-02-26 11:37:24.000000000","message":"Patch Set 2: Code-Review-2\n\n(6 comments)","accounts_in_message":[],"_revision_number":2},{"id":"88204253ca999ecbf6ceb1474b62c40560de2a38","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-02-26 13:39:13.000000000","message":"Uploaded patch set 3.\n\nCopied Votes:\n* Code-Review-2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR **is:MIN**\")\n","accounts_in_message":[],"_revision_number":3},{"id":"5fa74736976396f3472554888e9cfa932add9d9e","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-02-26 13:39:42.000000000","message":"Patch Set 3:\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"8c4077fdd5ab95548386fc6b498582b7161e778a","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-17 11:34:37.000000000","message":"Patch Set 3: Code-Review-1\n\n(4 comments)","accounts_in_message":[],"_revision_number":3},{"id":"73d11b0dc3b3762059cd40e0dce62ef03b94a3b9","author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-03-17 11:42:16.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"f009a30fea5b26c6902aff25b5aafc4d1131f489","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-17 16:19:57.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":4},{"id":"18075f1a50996834ebabba5ab322d7ba82ee807a","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-17 16:22:34.000000000","message":"Patch Set 3:\n\n(4 comments)","accounts_in_message":[],"_revision_number":3},{"id":"a1c9bb3add8636959503a0a7d7cef5622cdbeafb","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-18 10:21:01.000000000","message":"Patch Set 4: Code-Review-1\n\n(13 comments)","accounts_in_message":[],"_revision_number":4},{"id":"8b758aa60da500e4d4ebbe7212af464fd2f4ca18","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-18 10:39:58.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"9eb2adcc601a99a293a54e5da1f0b9bbd38c96f7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-18 16:14:47.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":5},{"id":"fe429870541ea2bc7dff5d0d0e8ebe3f241fc86b","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-18 16:15:32.000000000","message":"Patch Set 5:\n\n(12 comments)","accounts_in_message":[],"_revision_number":5},{"id":"6f9dad40b7bafe1a95e0dac0389dba5762cedc93","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-18 16:30:27.000000000","message":"Patch Set 5: Code-Review-1\n\n(4 comments)","accounts_in_message":[],"_revision_number":5},{"id":"e390a85feab9cc2de92f2b768062c07a01833e03","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-19 09:03:39.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":6},{"id":"31d2b5572467fc45f906fcf2e641aade228d7708","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-19 09:03:56.000000000","message":"Patch Set 5:\n\n(4 comments)","accounts_in_message":[],"_revision_number":5},{"id":"f6729a92d03dd41f057b943a3b80448fd2e434b0","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-19 12:30:40.000000000","message":"Patch Set 6: Code-Review-1\n\n(6 comments)","accounts_in_message":[],"_revision_number":6},{"id":"294caae1f4b94f4eb8908e433560bb8e12574850","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-24 16:13:29.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":7},{"id":"43961da5ecb0370e4bea2329d2c96e50868f1045","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-24 16:20:57.000000000","message":"Patch Set 7:\n\n(5 comments)","accounts_in_message":[],"_revision_number":7},{"id":"2d06845782bbbac7bcc380012fd0c5f55d60a9d7","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-24 16:26:22.000000000","message":"Patch Set 7: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"8b3104095030caf5d852f6b643f5ed193529af6b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-24 16:34:24.000000000","message":"Uploaded patch set 8.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":8},{"id":"1923df62dca2f5d33a5cb37d3980b1e56c92ff8c","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-24 16:35:00.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"ed436ec122a634fc7872955814c71507a6bcdb9f","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-25 12:14:12.000000000","message":"Patch Set 8: Code-Review+2","accounts_in_message":[],"_revision_number":8},{"id":"5084999a0a14e1bbae33171e2a88bb2332f3b347","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-25 12:40:50.000000000","message":"Hashtag added: mailsubmitted","accounts_in_message":[],"_revision_number":8},{"id":"e7331e3e0e07e1b5283a34a9a6e22f236e611bb1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-31 09:18:11.000000000","message":"Uploaded patch set 9.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":9},{"id":"0fbfa95a831448d67ffb1636a53be7cf2a171247","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-31 10:18:33.000000000","message":"Hashtag removed: mailsubmitted","accounts_in_message":[],"_revision_number":9},{"id":"ccf951ecb91a11dfe38c0cbc340f18ccebc9f332","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-03-31 10:29:23.000000000","message":"Uploaded patch set 10.","accounts_in_message":[],"_revision_number":10},{"id":"35cd71d6e23b7e472c6fe8f939f01c40198a60fe","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-31 10:35:05.000000000","message":"Patch Set 10: Code-Review+2","accounts_in_message":[],"_revision_number":10}],"current_revision_number":10,"current_revision":"4207d9e4d917057529a712cf5269037238dd2c17","revisions":{"058966190410f31dc1a862144ae52b74018376f9":{"kind":"REWORK","_number":1,"created":"2026-02-13 12:35:18.000000000","uploader":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/21/1521/1","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/21/1521/1","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/1 \u0026\u0026 git checkout -b change-1521 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/21/1521/1","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"0f4e9de2ad4a8af06ebc5c8dc15a3cb0ab305e12","subject":"start release/2.8 development cycle"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-12 13:39:12.000000000","tz":60},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-13 12:34:43.000000000","tz":60},"subject":"Add support for user defined network namespace","message":"Add support for user defined network namespace\n\nIntroduce the --netns option to allow moving the tunnel interface\ninto a user-defined network namespace.\nThis allows the VPN data plane to be isolated from the main\nOpenVPN process namespace.\n\nThe current netlink library integration supports interface creation\nand deletion in a target namespace. However, subsequent configuration\noperations (e.g. address or mtu set) are executed in the caller\u0027s\nnamespace, as they rely on the default netlink socket context.\nAs a result, interface-related configuration performed after creation\nmay be applied in the wrong namespace.\nIntroduce helper functions to temporarily switch the process to the\nrequested network namespace using setns(2), execute the required\nnetlink operations, and then restore the original namespace.\nThe namespace switch is temporary and scoped to each netlink\noperation. Once the operation completes, the original namespace\nis restored to preserve the process execution context.\n\nNote: This feature is Linux-only and depends on setns(2).\nIt is not compatible (yet) with Data Channel Offload (DCO).\n\nChange-Id: I8b0d1cad7062856abcc40c4e16ec93b45295bbd3\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"3d88d1d81b73abd8bbd4caa1bb6084670c9c2104":{"kind":"REWORK","_number":2,"created":"2026-02-26 09:43:39.000000000","uploader":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/21/1521/2","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/21/1521/2","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/2 \u0026\u0026 git checkout -b change-1521 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/21/1521/2","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"adc0febaeac0d83246dbd2cc77b2a5d80e41741e","subject":"Fixup version command on management interface"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-12 13:39:12.000000000","tz":60},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-26 09:19:22.000000000","tz":60},"subject":"Add support for user defined network namespace","message":"Add support for user defined network namespace\n\nIntroduce the --netns option to allow moving the tunnel interface\ninto a user-defined network namespace.\nThis allows the VPN data plane to be isolated from the main\nOpenVPN process namespace.\n\nThe current netlink library integration supports interface creation\nand deletion in a target namespace. However, subsequent configuration\noperations (e.g. address or mtu set) are executed in the caller\u0027s\nnamespace, as they rely on the default netlink socket context.\nAs a result, interface-related configuration performed after creation\nmay be applied in the wrong namespace.\nIntroduce helper functions to temporarily switch the process to the\nrequested network namespace using setns(2), execute the required\nnetlink operations, and then restore the original namespace.\nThe namespace switch is temporary and scoped to each netlink\noperation. Once the operation completes, the original namespace\nis restored to preserve the process execution context.\n\nNote: This feature is Linux-only and depends on setns(2).\nIt is not compatible (yet) with Data Channel Offload (DCO).\n\nChange-Id: I8b0d1cad7062856abcc40c4e16ec93b45295bbd3\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"a6fd921763ec490c5941619eee450be2ee34de03":{"kind":"REWORK","_number":3,"created":"2026-02-26 13:39:13.000000000","uploader":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/21/1521/3","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/21/1521/3","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/3 \u0026\u0026 git checkout -b change-1521 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/21/1521/3","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"adc0febaeac0d83246dbd2cc77b2a5d80e41741e","subject":"Fixup version command on management interface"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-12 13:39:12.000000000","tz":60},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-26 13:28:03.000000000","tz":60},"subject":"Add support for user defined network namespace","message":"Add support for user defined network namespace\n\nIntroduce the --netns option to allow moving the tunnel interface\ninto a user-defined network namespace.\nThis allows the VPN data plane to be isolated from the main\nOpenVPN process namespace.\n\nThe current netlink library integration supports interface creation\nand deletion in a target namespace. However, subsequent configuration\noperations (e.g. address or mtu set) are executed in the caller\u0027s\nnamespace, as they rely on the default netlink socket context.\nAs a result, interface-related configuration performed after creation\nmay be applied in the wrong namespace.\nIntroduce helper functions to temporarily switch the process to the\nrequested network namespace using setns(2), execute the required\nnetlink operations, and then restore the original namespace.\nThe namespace switch is temporary and scoped to each netlink\noperation. Once the operation completes, the original namespace\nis restored to preserve the process execution context.\n\nNote: This feature is Linux-only and depends on setns(2).\nIt is not compatible (yet) with Data Channel Offload (DCO).\n\nChange-Id: I8b0d1cad7062856abcc40c4e16ec93b45295bbd3\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"f4b6052c7d72e32a7c86bff02dad080a3c734803":{"kind":"REWORK","_number":4,"created":"2026-03-17 16:19:57.000000000","uploader":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/21/1521/4","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/21/1521/4","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/4 \u0026\u0026 git checkout -b change-1521 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/21/1521/4","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"a04a3cedd41a3b552e56d19dafc7042b95dd527d","subject":"ssl_mbedtls: Avoid conversion and sign-compare warnings"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-12 13:39:12.000000000","tz":60},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-03-17 15:29:18.000000000","tz":60},"subject":"Add support for user defined network namespace","message":"Add support for user defined network namespace\n\nIntroduce the --netns option to allow moving the tunnel interface\ninto a user-defined network namespace.\nThis allows the VPN data plane to be isolated from the main\nOpenVPN process namespace.\n\nThe current netlink library integration supports interface creation\nand deletion in a target namespace. However, subsequent configuration\noperations (e.g. address or mtu set) are executed in the caller\u0027s\nnamespace, as they rely on the default netlink socket context.\nAs a result, interface-related configuration performed after creation\nmay be applied in the wrong namespace.\nIntroduce helper functions to temporarily switch the process to the\nrequested network namespace using setns(2), execute the required\nnetlink operations, and then restore the original namespace.\nThe namespace switch is temporary and scoped to each netlink\noperation. Once the operation completes, the original namespace\nis restored to preserve the process execution context.\n\nNote: This feature is Linux-only and depends on setns(2).\nIt is not compatible (yet) with Data Channel Offload (DCO).\n\nChange-Id: I8b0d1cad7062856abcc40c4e16ec93b45295bbd3\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"1a5f6cd0a9102ceaa80047f3213a8ac6563c4d9f":{"kind":"REWORK","_number":5,"created":"2026-03-18 16:14:47.000000000","uploader":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/21/1521/5","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/21/1521/5","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/5 \u0026\u0026 git checkout -b change-1521 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/21/1521/5","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"a04a3cedd41a3b552e56d19dafc7042b95dd527d","subject":"ssl_mbedtls: Avoid conversion and sign-compare warnings"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-12 13:39:12.000000000","tz":60},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-03-18 16:02:32.000000000","tz":60},"subject":"Add support for user defined network namespace","message":"Add support for user defined network namespace\n\nIntroduce the --netns option to allow moving the tunnel interface\ninto a user-defined network namespace.\nThis allows the VPN data plane to be isolated from the main\nOpenVPN process namespace.\n\nThe current netlink library integration supports interface creation\nand deletion in a target namespace. However, subsequent configuration\noperations (e.g. address or mtu set) are executed in the caller\u0027s\nnamespace, as they rely on the default netlink socket context.\nAs a result, interface-related configuration performed after creation\nmay be applied in the wrong namespace.\nIntroduce helper functions to temporarily switch the process to the\nrequested network namespace using setns(2), execute the required\nnetlink operations, and then restore the original namespace.\nThe namespace switch is temporary and scoped to each netlink\noperation. Once the operation completes, the original namespace\nis restored to preserve the process execution context.\n\nNote: This feature is Linux-only and depends on setns(2).\nIt is not compatible (yet) with Data Channel Offload (DCO).\n\nChange-Id: I8b0d1cad7062856abcc40c4e16ec93b45295bbd3\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"960c8ce88f5efce5d4bb9aff4a8cd7a4b3f7d9d6":{"kind":"REWORK","_number":6,"created":"2026-03-19 09:03:39.000000000","uploader":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/21/1521/6","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/21/1521/6","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/6 \u0026\u0026 git checkout -b change-1521 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/21/1521/6","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/6 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"a04a3cedd41a3b552e56d19dafc7042b95dd527d","subject":"ssl_mbedtls: Avoid conversion and sign-compare warnings"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-12 13:39:12.000000000","tz":60},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-03-19 08:41:49.000000000","tz":60},"subject":"Add support for user defined network namespace","message":"Add support for user defined network namespace\n\nIntroduce the --netns option to allow moving the tunnel interface\ninto a user-defined network namespace.\nThis allows the VPN data plane to be isolated from the main\nOpenVPN process namespace.\n\nThe current netlink library integration supports interface creation\nand deletion in a target namespace. However, subsequent configuration\noperations (e.g. address or mtu set) are executed in the caller\u0027s\nnamespace, as they rely on the default netlink socket context.\nAs a result, interface-related configuration performed after creation\nmay be applied in the wrong namespace.\nIntroduce helper functions to temporarily switch the process to the\nrequested network namespace using setns(2), execute the required\nnetlink operations, and then restore the original namespace.\nThe namespace switch is temporary and scoped to each netlink\noperation. Once the operation completes, the original namespace\nis restored to preserve the process execution context.\n\nNote: This feature is Linux-only and depends on setns(2).\nIt is not compatible (yet) with Data Channel Offload (DCO).\n\nChange-Id: I8b0d1cad7062856abcc40c4e16ec93b45295bbd3\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"558efe202a3c39b9a69c158b5cd453e38eaefbae":{"kind":"REWORK","_number":7,"created":"2026-03-24 16:13:29.000000000","uploader":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/21/1521/7","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/21/1521/7","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/7 \u0026\u0026 git checkout -b change-1521 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/21/1521/7","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/7 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"ee2af6655d1dae8b87d8128e2afeec4f5506d79b","subject":"Use openssl_err_t typedef to deal with difference between TLS libraries"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-12 13:39:12.000000000","tz":60},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-03-24 15:53:28.000000000","tz":60},"subject":"Add support for user defined network namespace","message":"Add support for user defined network namespace\n\nIntroduce the --netns option to allow interface creation\ninto a user-defined network namespace.\nThis allows the VPN data plane to be isolated from the main\nOpenVPN process namespace.\n\nThe current netlink library integration supports interface creation\nand deletion in a target namespace. However, subsequent configuration\noperations (e.g. address or mtu set) are executed in the caller\u0027s\nnamespace, as they rely on the default netlink socket context.\nAs a result, interface-related configuration performed after creation\nmay be applied in the wrong namespace.\nIntroduce helper functions to temporarily switch the process to the\nrequested network namespace using setns(2), execute the required\nnetlink operations, and then restore the original namespace.\nThe namespace switch is temporary and scoped to each netlink\noperation. Once the operation completes, the original namespace\nis restored to preserve the process execution context.\n\nNote: This feature is Linux-only and depends on setns(2).\nIt is not compatible (yet) with Data Channel Offload (DCO).\n\nChange-Id: I8b0d1cad7062856abcc40c4e16ec93b45295bbd3\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"9c81c8013909a3a52aa2d87196c67dfe3e867ee1":{"kind":"REWORK","_number":8,"created":"2026-03-24 16:34:24.000000000","uploader":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/21/1521/8","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/21/1521/8","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/8 \u0026\u0026 git checkout -b change-1521 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/21/1521/8","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/8 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"ee2af6655d1dae8b87d8128e2afeec4f5506d79b","subject":"Use openssl_err_t typedef to deal with difference between TLS libraries"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-12 13:39:12.000000000","tz":60},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-03-24 16:33:40.000000000","tz":60},"subject":"Add support for user defined network namespace","message":"Add support for user defined network namespace\n\nIntroduce the --netns option to allow interface creation\ninto a user-defined network namespace.\nThis allows the VPN data plane to be isolated from the main\nOpenVPN process namespace.\n\nThe current netlink library integration supports interface creation\nand deletion in a target namespace. However, subsequent configuration\noperations (e.g. address or mtu set) are executed in the caller\u0027s\nnamespace, as they rely on the default netlink socket context.\nAs a result, interface-related configuration performed after creation\nmay be applied in the wrong namespace.\nIntroduce helper functions to temporarily switch the process to the\nrequested network namespace using setns(2), execute the required\nnetlink operations, and then restore the original namespace.\nThe namespace switch is temporary and scoped to each netlink\noperation. Once the operation completes, the original namespace\nis restored to preserve the process execution context.\n\nNote: This feature is Linux-only and depends on setns(2).\nIt is not compatible (yet) with Data Channel Offload (DCO).\n\nChange-Id: I8b0d1cad7062856abcc40c4e16ec93b45295bbd3\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"690f03eff80d8bcbe6c163c54e3f69c1abc86e78":{"kind":"REWORK","_number":9,"created":"2026-03-31 09:18:11.000000000","uploader":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/21/1521/9","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/21/1521/9","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/9 \u0026\u0026 git checkout -b change-1521 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/21/1521/9","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/9 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"3ba76022430adce09b1ead0438b5c1fe99d3e661","subject":"ssl_ncp: Fix type of \"found\" parameter of check_pull_client_ncp"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-12 13:39:12.000000000","tz":60},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-03-31 08:54:38.000000000","tz":120},"subject":"Add support for user defined network namespace","message":"Add support for user defined network namespace\n\nIntroduce the --netns option to allow interface creation\ninto a user-defined network namespace.\nThis allows the VPN data plane to be isolated from the main\nOpenVPN process namespace.\n\nThe current netlink library integration supports interface creation\nand deletion in a target namespace. However, subsequent configuration\noperations (e.g. address or mtu set) are executed in the caller\u0027s\nnamespace, as they rely on the default netlink socket context.\nAs a result, interface-related configuration performed after creation\nmay be applied in the wrong namespace.\nIntroduce helper functions to temporarily switch the process to the\nrequested network namespace using setns(2), execute the required\nnetlink operations, and then restore the original namespace.\nThe namespace switch is temporary and scoped to each netlink\noperation. Once the operation completes, the original namespace\nis restored to preserve the process execution context.\n\nNote: This feature is Linux-only and depends on setns(2).\nIt is not compatible (yet) with Data Channel Offload (DCO).\n\nChange-Id: I8b0d1cad7062856abcc40c4e16ec93b45295bbd3\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"4207d9e4d917057529a712cf5269037238dd2c17":{"kind":"REWORK","_number":10,"created":"2026-03-31 10:29:23.000000000","uploader":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/21/1521/10","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/21/1521/10","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/10 \u0026\u0026 git checkout -b change-1521 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/21/1521/10","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/21/1521/10 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"3ba76022430adce09b1ead0438b5c1fe99d3e661","subject":"ssl_ncp: Fix type of \"found\" parameter of check_pull_client_ncp"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-02-12 13:39:12.000000000","tz":60},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-03-31 10:21:41.000000000","tz":120},"subject":"Add support for user defined network namespace","message":"Add support for user defined network namespace\n\nIntroduce the --netns option to allow interface creation\ninto a user-defined network namespace.\nThis allows the VPN data plane to be isolated from the main\nOpenVPN process namespace.\n\nThe current netlink library integration supports interface creation\nand deletion in a target namespace. However, subsequent configuration\noperations (e.g. address or mtu set) are executed in the caller\u0027s\nnamespace, as they rely on the default netlink socket context.\nAs a result, interface-related configuration performed after creation\nmay be applied in the wrong namespace.\nIntroduce helper functions to temporarily switch the process to the\nrequested network namespace using setns(2), execute the required\nnetlink operations, and then restore the original namespace.\nThe namespace switch is temporary and scoped to each netlink\noperation. Once the operation completes, the original namespace\nis restored to preserve the process execution context.\n\nNote: This feature is Linux-only and depends on setns(2).\nIt is not compatible (yet) with Data Channel Offload (DCO).\n\nChange-Id: I8b0d1cad7062856abcc40c4e16ec93b45295bbd3\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Code-Review","status":"OK","applied_by":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."}}]},{"rule_name":"checks~ChecksSubmitRule","status":"OK"}],"submit_requirements":[{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX","-label:Code-Review\u003dMIN"],"failing_atoms":[]}},{"name":"checks~ChecksSubmitRule","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"rule:checks~ChecksSubmitRule","fulfilled":true,"status":"PASS","passing_atoms":["checks~ChecksSubmitRule"],"failing_atoms":[]}}]}
