)]}'
{"id":"openvpn~1981","triplet_id":"openvpn~master~I0051effe7f0636e30557d9ce92c50c458002f9e6","project":"openvpn","branch":"master","full_branch":"refs/heads/master","topic":"dco_feature_negotiation","attention_set":{"1000003":{"account":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"last_update":"2026-10-06 11:34:13.000000000","reason":"Reviewer was added"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I0051effe7f0636e30557d9ce92c50c458002f9e6","subject":"dco: detect local kernel capabilities through netlink policies","status":"NEW","created":"2026-10-06 11:34:12.000000000","updated":"2026-10-20 09:16:58.000000000","submit_type":"CHERRY_PICK","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"a3b25e2135cf1b8fef15269f05e17ca0d37c7a65","_number":1981,"virtual_id_number":1981,"owner":{"_account_id":1000034,"name":"Gianmarco De Gregori","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"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-10-06 11:34:13.000000000","updated_by":{"_account_id":1000034,"name":"Gianmarco De Gregori","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"real_updated_by":{"_account_id":1000034,"name":"Gianmarco De Gregori","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-10-06 11:34:13.000000000","updated_by":{"_account_id":1000034,"name":"Gianmarco De Gregori","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"real_updated_by":{"_account_id":1000034,"name":"Gianmarco De Gregori","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"reviewer":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"state":"REVIEWER"}],"messages":[{"id":"804becb3970c2e49fff79d991083febbe1b14873","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"Gianmarco De Gregori","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-10-06 11:34:12.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"a3b25e2135cf1b8fef15269f05e17ca0d37c7a65","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"Gianmarco De Gregori","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"date":"2026-10-20 09:16:58.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"cb3188c1d4f5b0437c0b4af3b6003c3f662a6e87","revisions":{"94a7f519348c3d96cee72ac53f5d80f1f5f96e9e":{"kind":"REWORK","_number":1,"created":"2026-10-06 11:34:12.000000000","uploader":{"_account_id":1000034,"name":"Gianmarco De Gregori","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/81/1981/1","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/81/1981/1","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/81/1981/1 \u0026\u0026 git checkout -b change-1981 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/81/1981/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/81/1981/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/81/1981/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/81/1981/1","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/81/1981/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"10bc348ce70008bb150d37ad2ce4c5891117f299","subject":"mbuf: don\u0027t count dereferenced items in the queue length"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-09-24 10:09:31.000000000","tz":120},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-10-06 08:26:21.000000000","tz":120},"subject":"dco: detect local kernel capabilities through netlink policies","message":"dco: detect local kernel capabilities through netlink policies\n\nThe ovpn module lives in the kernel, so the attributes it accepts may\ndiffer from what we were built against. CTRL_CMD_GETPOLICY dumps the\nvalidation policy of a family: which attributes each command takes, of\nwhat type, and for a nested one the sub-policy that validates it.\n\nAdd a helper to query it, wrapped in dco_probe_capabilities() so the\nrest of the tree never talks to netlink itself. Answering a requirement\nmeans following a chain - which policy validates the command, where its\nnested attribute points if it has one, what type the target attribute\nhas there - and CTRL_ATTR_OP narrows the dump enough to collect all\nthree in one pass.\n\nThe answer has three values rather than two: without \"could not ask\", a\nnetlink error would look the same as an old kernel.\n\nNo capability is defined yet, so the bitmap comes back empty; the rows\nthat fill it arrive with the features that need them. The unit test\ndrives the pass and the decision separately, on dumps built by hand.\n\nChange-Id: I0051effe7f0636e30557d9ce92c50c458002f9e6\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"cb3188c1d4f5b0437c0b4af3b6003c3f662a6e87":{"kind":"REWORK","_number":2,"created":"2026-10-20 09:16:58.000000000","uploader":{"_account_id":1000034,"name":"Gianmarco De Gregori","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"ref":"refs/changes/81/1981/2","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/81/1981/2","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/81/1981/2 \u0026\u0026 git checkout -b change-1981 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/81/1981/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/81/1981/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/81/1981/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/81/1981/2","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/81/1981/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"796c78e1a3df60918a2bde06b991bb7a68939734","subject":"gen-sample-keys.sh: use a random serial"}],"author":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-09-24 10:09:31.000000000","tz":120},"committer":{"name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","date":"2026-10-20 08:23:42.000000000","tz":120},"subject":"dco: detect local kernel capabilities through netlink policies","message":"dco: detect local kernel capabilities through netlink policies\n\nThe ovpn module lives in the kernel, so the attributes it accepts may\ndiffer from what we were built against. CTRL_CMD_GETPOLICY dumps the\nvalidation policy of a family: which attributes each command takes, of\nwhat type, and for a nested one the sub-policy that validates it.\n\nAdd a helper to query it, wrapped in dco_probe_capabilities() so the\nrest of the tree never talks to netlink itself. Answering a requirement\nmeans following a chain - which policy validates the command, where its\nnested attribute points if it has one, what type the target attribute\nhas there - and CTRL_ATTR_OP narrows the dump enough to collect all\nthree in one pass.\n\nThe answer has three values rather than two: without \"could not ask\", a\nnetlink error would look the same as an old kernel.\n\nNo capability is defined yet, so the bitmap comes back empty; the rows\nthat fill it arrive with the features that need them. The unit test\ndrives the pass and the decision separately, on dumps built by hand.\n\nChange-Id: I0051effe7f0636e30557d9ce92c50c458002f9e6\nSigned-off-by: Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e\n"},"branch":"refs/heads/master"}},"requirements":[{"status":"NOT_READY","fallback_text":"All required checks must pass","type":"checks_pass"}],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"NOT_READY","labels":[{"label":"Code-Review","status":"NEED"}]},{"rule_name":"checks~ChecksSubmitRule","status":"NOT_READY","requirements":[{"status":"NOT_READY","fallback_text":"All required checks must pass","type":"checks_pass"}]}]}
