From: Hannes Laimer <h.laimer@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: superseded: [PATCH access-control/cluster/container/docs/manager/network/proxmox{-ebpf,-ve-rs,-perl-rs}/qemu-server v3 00/45] sdn: add microsegmentation support
Date: Thu, 5 Nov 2026 12:14:53 +0100 [thread overview]
Message-ID: <53dd0521-0152-476b-9558-8273a72dca56@proxmox.com> (raw)
In-Reply-To: <20261027085527.702738-1-h.laimer@proxmox.com>
superseded-by:
https://lore.proxmox.com/pve-devel/20261105111324.706922-1-h.laimer@proxmox.com
On 2026-10-27 09:56, Hannes Laimer wrote:
> This series adds group-based microsegmentation to SDN, enforced by eBPF
> programs on the guest interfaces. Assignments put guest interfaces into
> groups, and rules between groups decide which traffic passes. Sets that
> every rule treats the same share one identity, a 16-bit value that
> travels with the frame in the low bits of the packet mark. The host
> stamps it where a frame comes off the guest interface, so a guest cannot
> forge its own. A new zone option turns on VXLAN-GBP[2] for VXLAN and
> EVPN zones, which carries the identity across nodes. On a zone without
> it, traffic from another node arrives without an identity. An identity
> whose sets are gone after a config change is retired. Its value is
> reused only after a quarantine, since a frame stamped under the old
> config can still be in flight.
>
> The config in /etc/pve/sdn/microseg.cfg, with its API under
> /cluster/sdn/microseg and the ACL path /sdn/microseg, holds groups,
> rules and assignments and takes effect with an SDN apply. Groups can
> nest, and a member of a subgroup is in every group above it. A rule
> allows or denies traffic from a source predicate to a destination
> predicate at a priority. A predicate of the kind `any`, `all` or
> `exact` lists groups and matches an interface that has one of them, all
> of them, or those and no others. An `every` predicate lists none and
> matches each interface that has a group. Beyond the pair, a rule can be
> narrowed to a protocol and ports, an ICMP type, a firewall macro or
> non-first fragments. Which groups an interface has is determined by the
> assignments, an ordered list that matches interfaces by guest, tag or
> name regex. An interface takes the groups of the first one that covers
> it.
>
> Default is deny. Only interfaces that have at least one group assigned
> are enforced. Enforcement happens when a frame arrives at an enforced
> interface, so nothing is dropped on the way out of a guest's interface.
> Traffic from interfaces that are not enforced is untagged, which
> includes guests without groups on their NICs, the host and the outside.
> Such traffic has to be allowed explicitly with the built-in untagged
> group. Rules are stateless and directional, so a reply needs its own
> allow, or the rule is marked bidirectional. Stateless also means no
> reassembly, so fragments after the first carry no transport header. A
> narrowed rule matches them only when it is narrowed to fragments.
>
> The highest priority wins. At the same priority the rule with the more
> specific `all` or `exact` predicate decides, so a rule on a subgroup
> outranks the same rule on its parent. Equally specific rules deny if one
> of them denies. Narrowed rules are checked before the rules that decide
> the whole pair at the same priority.
>
> A guest interface gets its groups the moment it comes up, from the
> assignment that matches the guest at that moment. Changing the tags or
> the name of a running guest takes effect right after the config is
> written. The NICs get the groups the assignments now give them. Once no
> assignment matches the guest, their enforcement stops. A change that
> reaches the config another way, such as a restore or a migration, takes
> effect the next time the NIC comes up or at the next SDN apply. A tag
> or name the assignments match moves a guest between groups. So adding
> or removing such a tag, or renaming into or out of such a name, needs
> SDN.Use on /sdn/microseg besides the right to change the option.
> Putting a NIC on a vnet needs SDN.Use on the vnet the same way.
>
> As long as the policy has an assignment, every node keeps the programs
> and maps loaded, about 20 MiB plus what the pairs take. Without one, the
> nodes drop them. The BPF state does not survive a reboot, so a node
> applies the policy again at boot, before any guest starts. The programs
> are compiled into libpve-rs-perl, so an upgrade of that package applies
> the policy again as well.
>
> The SDN apply checks the policy against what a node can hold before it
> writes the running config, and refuses one that exceeds it. A node that
> cannot apply the policy fails its network reload task and keeps its
> previous enforcement. A node without loaded programs, as after a failed
> load at boot, starts no guest with an assigned interface until an apply
> or a reload succeeds there. A guest also does not start when its node
> cannot read or parse the running config, or cannot set up the
> enforcement of its assigned interface.
>
> ARP and neighbor solicitations/advertisements pass wherever either
> direction of a pair allows anything, so the two ends of a one-way allow
> can resolve each other's addresses. They also pass when the host itself
> sends them without an identity. That is how the suppression replies of
> an EVPN zone reach the guest. A frame the host turns around on the
> interface it came in on passes as a whole, since only the host can make
> one. Behind a firewall bridge the host's frames cannot be told from
> other unstamped ones, so an interface there takes these frames from
> every unstamped sender. The narrowed rules of a pair run first, so a
> narrowed rule that denies neighbor discovery still holds.
>
> In patch order, the series adds
> - proxmox-ebpf, the policy subsystem with the tc programs that stamp
> and check the identities
> - proxmox-ve-rs, the types, the identity engine and the desired state
> in proxmox-ve-config, and the new proxmox-microseg crate that hands
> the desired state to the subsystem
> - pve-cluster, microseg.cfg as an observed file
> - pve-access-control, the /sdn/microseg ACL path
> - proxmox-perl-rs, the config binding and the data plane binding in
> pve-rs
> - pve-network, the config, the API, the dry-run view, the zone option
> and the enforcement on interface plug and after a library upgrade
> - pve-manager, the panel, the dry-run view and the apply on network
> reload and at boot
> - qemu-server and pve-container, the immediate update of a running
> guest's NICs on a tag or name change, and SDN.Use for a tag or name
> the policy matches
> - pve-docs, documentation
>
> - pve-network needs pve-cluster, pve-access-control, pve-rs,
> pve-guest-common and ifupdown2 with the vxlan-gbp attribute
> - pve-manager needs pve-docs to build and pve-network and
> pve-access-control at runtime
> - pve-rs needs proxmox-microseg and proxmox-ve-config
> - qemu-server and pve-container need pve-network
> - proxmox-microseg needs proxmox-ebpf[1] and proxmox-ve-config
>
> The ifupdown2 vxlan-gbp attribute[2] is sent separately, and so is the
> pve-network patch that writes a VXLAN zone's local tunnel address[3].
> This series needs both. A GBP device that ifupdown2 changes in place
> drops every GBP frame afterward[4], and without[3] that happens when a
> VXLAN zone with GBP exists next to an EVPN zone. ifupdown2 gives the
> local tunnel address of the EVPN zone's interfaces to every VXLAN
> interface without one of its own, and on a reload sets that address on
> the VXLAN zone's live device.
>
> [1] https://lore.proxmox.com/pve-devel/20261019142413.2255644-1-h.laimer@proxmox.com/
> [2] https://lore.proxmox.com/pve-devel/20260828134708.692354-1-h.laimer@proxmox.com/
> [3] https://lore.proxmox.com/pve-devel/20260925134050.754528-1-h.laimer@proxmox.com/
> [4] https://lore.kernel.org/netdev/20261023-b4-vxlan-changelink-gbp-v1-0-f0d13951c09b@proxmox.com/
>
> note: I did also have this implemented with nft instead of ebpf as a
> dataplane. Without narrowing, packets per second (small UDP packets) was
> about the same, with multiple checks nft's rate went down, nothing super
> dramatic but about a 1.5-2x compared to eBPF (~140k vs ~250k). eBPF is
> also more flexible, in case we want to expand possible actions in the
> future, but replacing the dataplane is pretty simple which also allowed
> me to do the side-by-side testing.
>
>
> changelog
> v3:
> - the data plane is a library crate in the proxmox-ve-rs workspace that
> pve-rs binds, on a policy subsystem in proxmox-ebpf, no agent binary
> and no boot unit. A node loads the programs while the policy has an
> assignment and takes new programs on a package upgrade
> - the model changed in five places:
> * groups have no numeric mark and can form a hierarchy
> * assignments are an ordered list and an interface takes the groups
> of the first that covers it instead of the union of all
> * rules can be narrowed similar to how firewall rules work,
> additionally non-first fragments can be matched and an explicit
> bidirectional flag exists
> * at a priority tie the more specific rule decides
> * new `every` predicate that matches everything that has at least
> one group assigned
> - interface group (re)assignment happens whenever an interface comes
> up, sdn apply runs or the tags or name of a running guest change.
> Adding or removing a tag covered by an assignment, or renaming into
> or out of a name a regex assignment matches, now also needs SDN.Use
> on the policy, similar to how we check if a user is allowed to assign
> a vnet
> - if a node cannot apply the policy, its network reload task fails.
> while a node has no loaded programs, as after a failed load at boot,
> guests with an assigned NIC do not start on it. a nic with groups
> only comes up enforced
> - ARP and NS/NA are automatically allowed if there exists a (src,dst)
> -> [checks ->] allow in either direction, this is so address
> resolution for allowed connections is possible. Also host-generated
> ARP and NS/NA frames are allowed, this is specifically needed for
> EVPN suppression to work, and a frame the host turns around on the
> interface it came in on passes
> - api: section types and property keys are kebab-case, the endpoints
> check /sdn/microseg (a pve-access-control patch adds the ACL path),
> and the overview reports members, evaluation order and specificity
> instead of a realized state, plus the id space usage
> - rule and assignment ids are derived from their identifying fields,
> so those cannot change on an existing object
> - ui: a panel with the rule grid by priority, the assignments in match
> order, the dry-run view, the rule editor on the firewall's selectors,
> and a guest tab with its groups and rules
> - the SRv6 carrier and its bridge object are out, the ifupdown2
> vxlan-gbp attribute is a standalone patch, the zone option stays,
> docs rewritten
>
> v2:
> - core model reworked: each interface now holds a *set* of groups
> compiled into a per-NIC wire identity, replacing the single-group
> parent/child tree
> - rules gained explicit `src`/`dst` predicates (any/all/exact) and a
> `prio`, replacing the implicit tree-distance ordering
> - `untagged` is now a nameable built-in group (mark 0)
> - assignments are additive: a NIC's set is the union of all that
> resolve to it
> - added tag-matcher and name-regex assignments
> - rule and dynamic-assignment ids are now generated
> - identity allocation is fresh-first with quarantined reclamation, so
> churn cannot exhaust the id space
> - split the SRv6 carrier support into droppable tail patches
> - updated docs
> - updated cover-letter
>
>
> proxmox-ebpf:
>
> Hannes Laimer (3):
> build: keep the build directory out of the BPF objects
> policy: add the enforcement subsystem for guest interfaces
> policy: add a check for non-first fragments
>
> Cargo.toml | 1 +
> build.rs | 4 +
> debian/control | 6 +-
> src/bpf-shim/bpf/bpf_helpers.h | 1 +
> src/bpf-shim/vmlinux.h | 1 +
> src/lib.rs | 3 +
> src/policy/bpf/mark.h | 27 +
> src/policy/bpf/policy.bpf.c | 385 ++++++++++++
> src/policy/bpf/types.h | 75 +++
> src/policy/mod.rs | 1005 ++++++++++++++++++++++++++++++++
> src/policy/types.rs | 159 +++++
> src/subsystem.rs | 35 +-
> tests/common/mod.rs | 40 ++
> tests/policy.rs | 837 ++++++++++++++++++++++++++
> 14 files changed, 2573 insertions(+), 6 deletions(-)
> create mode 100644 src/policy/bpf/mark.h
> create mode 100644 src/policy/bpf/policy.bpf.c
> create mode 100644 src/policy/bpf/types.h
> create mode 100644 src/policy/mod.rs
> create mode 100644 src/policy/types.rs
> create mode 100644 tests/policy.rs
>
>
> proxmox-ve-rs:
>
> Hannes Laimer (11):
> ve-config: firewall: add a constructor for sctp matches
> ve-config: sdn: microseg: add identity allocation for group sets
> ve-config: sdn: microseg: add config types
> ve-config: sdn: microseg: add tag matcher
> ve-config: sdn: microseg: add name regex matcher
> ve-config: sdn: microseg: narrow rules by protocol and ports
> ve-config: sdn: microseg: add group hierarchy
> ve-config: firewall: expose protocol, icmp type and code numbers
> ve-config: sdn: microseg: add the desired state
> microseg: add a crate that applies the policy to a node's guest NICs
> microseg: add a rule option that matches non-first fragments
>
> Cargo.toml | 2 +
> proxmox-microseg/Cargo.toml | 20 +
> proxmox-microseg/debian/changelog | 5 +
> proxmox-microseg/debian/control | 46 +
> proxmox-microseg/debian/copyright | 18 +
> proxmox-microseg/debian/debcargo.toml | 7 +
> proxmox-microseg/debian/source/format | 1 +
> proxmox-microseg/src/ebpf.rs | 247 +++
> proxmox-microseg/src/lib.rs | 66 +
> proxmox-microseg/src/nic.rs | 120 ++
> proxmox-microseg/src/running_config.rs | 26 +
> proxmox-ve-config/src/firewall/fw_macros.rs | 7 +
> proxmox-ve-config/src/firewall/ports.rs | 65 +
> .../src/firewall/types/rule_match.rs | 63 +
> proxmox-ve-config/src/sdn/microseg/api.rs | 710 +++++++++
> .../src/sdn/microseg/identity.rs | 475 ++++++
> proxmox-ve-config/src/sdn/microseg/mod.rs | 1394 +++++++++++++++++
> proxmox-ve-config/src/sdn/microseg/state.rs | 616 ++++++++
> proxmox-ve-config/src/sdn/microseg/types.rs | 549 +++++++
> proxmox-ve-config/src/sdn/mod.rs | 1 +
> 20 files changed, 4438 insertions(+)
> create mode 100644 proxmox-microseg/Cargo.toml
> create mode 100644 proxmox-microseg/debian/changelog
> create mode 100644 proxmox-microseg/debian/control
> create mode 100644 proxmox-microseg/debian/copyright
> create mode 100644 proxmox-microseg/debian/debcargo.toml
> create mode 100644 proxmox-microseg/debian/source/format
> create mode 100644 proxmox-microseg/src/ebpf.rs
> create mode 100644 proxmox-microseg/src/lib.rs
> create mode 100644 proxmox-microseg/src/nic.rs
> create mode 100644 proxmox-microseg/src/running_config.rs
> create mode 100644 proxmox-ve-config/src/sdn/microseg/api.rs
> create mode 100644 proxmox-ve-config/src/sdn/microseg/identity.rs
> create mode 100644 proxmox-ve-config/src/sdn/microseg/mod.rs
> create mode 100644 proxmox-ve-config/src/sdn/microseg/state.rs
> create mode 100644 proxmox-ve-config/src/sdn/microseg/types.rs
>
>
> pve-cluster:
>
> Hannes Laimer (1):
> cfs: add 'sdn/microseg.cfg' to observed files
>
> src/PVE/Cluster.pm | 1 +
> src/pmxcfs/status.c | 1 +
> 2 files changed, 2 insertions(+)
>
>
> pve-access-control:
>
> Hannes Laimer (1):
> permissions: add ACL path for SDN microsegmentation
>
> src/PVE/AccessControl.pm | 1 +
> 1 file changed, 1 insertion(+)
>
>
> proxmox-perl-rs:
>
> Hannes Laimer (4):
> pve-rs: sdn: add microseg config binding
> pve-rs: sdn: microseg: bind the data plane
> pve-rs: sdn: microseg: check the data plane limits on render
> pve-rs: debian: fire the pve-microseg-update trigger on upgrade
>
> pve-rs/Cargo.toml | 2 +
> pve-rs/Makefile | 3 +
> pve-rs/debian/control | 1 +
> pve-rs/debian/triggers | 1 +
> pve-rs/src/bindings/sdn/microseg.rs | 350 ++++++++++++++++++++++++++++
> pve-rs/src/bindings/sdn/mod.rs | 1 +
> 6 files changed, 358 insertions(+)
> create mode 100644 pve-rs/src/bindings/sdn/microseg.rs
>
>
> pve-network:
>
> Hannes Laimer (10):
> sdn: zones: add vxlan-gbp option to vxlan and evpn zones
> sdn: microseg: add config, API and guest inventory
> sdn: dry-run: show pending microseg changes
> sdn: microseg: enforce the policy on guest NICs
> sdn: microseg: add tag matcher
> sdn: microseg: add name regex matcher
> sdn: microseg: add an update for a running NIC
> sdn: microseg: expose protocol, port and macro rule options
> sdn: microseg: allow nesting groups under a parent
> sdn: microseg: expose the fragments rule option
>
> debian/control | 1 +
> debian/libpve-network-perl.postinst | 21 +
> debian/triggers | 1 +
> src/PVE/API2/Network/SDN.pm | 47 +-
> src/PVE/API2/Network/SDN/Makefile | 2 +
> src/PVE/API2/Network/SDN/Microseg.pm | 236 +++++++++
> .../API2/Network/SDN/Microseg/Assignment.pm | 23 +
> src/PVE/API2/Network/SDN/Microseg/Base.pm | 382 ++++++++++++++
> src/PVE/API2/Network/SDN/Microseg/Group.pm | 17 +
> src/PVE/API2/Network/SDN/Microseg/Makefile | 11 +
> src/PVE/API2/Network/SDN/Microseg/Rule.pm | 22 +
> src/PVE/API2/Network/SDN/Zones.pm | 8 +
> src/PVE/Network/SDN.pm | 25 +
> src/PVE/Network/SDN/Makefile | 1 +
> src/PVE/Network/SDN/Microseg.pm | 494 ++++++++++++++++++
> src/PVE/Network/SDN/Zones.pm | 32 ++
> src/PVE/Network/SDN/Zones/EvpnPlugin.pm | 8 +
> src/PVE/Network/SDN/Zones/VxlanPlugin.pm | 12 +
> .../zones/evpn/gbp/expected_controller_config | 77 +++
> .../zones/evpn/gbp/expected_sdn_interfaces | 45 ++
> src/test/zones/evpn/gbp/interfaces | 7 +
> src/test/zones/evpn/gbp/sdn_config | 26 +
> .../zones/vxlan/gbp/expected_sdn_interfaces | 17 +
> src/test/zones/vxlan/gbp/interfaces | 7 +
> src/test/zones/vxlan/gbp/sdn_config | 11 +
> 25 files changed, 1531 insertions(+), 2 deletions(-)
> create mode 100644 src/PVE/API2/Network/SDN/Microseg.pm
> create mode 100644 src/PVE/API2/Network/SDN/Microseg/Assignment.pm
> create mode 100644 src/PVE/API2/Network/SDN/Microseg/Base.pm
> create mode 100644 src/PVE/API2/Network/SDN/Microseg/Group.pm
> create mode 100644 src/PVE/API2/Network/SDN/Microseg/Makefile
> create mode 100644 src/PVE/API2/Network/SDN/Microseg/Rule.pm
> create mode 100644 src/PVE/Network/SDN/Microseg.pm
> create mode 100644 src/test/zones/evpn/gbp/expected_controller_config
> create mode 100644 src/test/zones/evpn/gbp/expected_sdn_interfaces
> create mode 100644 src/test/zones/evpn/gbp/interfaces
> create mode 100644 src/test/zones/evpn/gbp/sdn_config
> create mode 100644 src/test/zones/vxlan/gbp/expected_sdn_interfaces
> create mode 100644 src/test/zones/vxlan/gbp/interfaces
> create mode 100644 src/test/zones/vxlan/gbp/sdn_config
>
>
> pve-manager:
>
> Hannes Laimer (11):
> network: apply the microseg policy on reload
> pve-sdn-commit: apply the microseg policy at boot
> ui: sdn: zones: add vxlan-gbp checkbox to vxlan and evpn
> ui: sdn: add microsegmentation panel
> ui: sdn: dry-run: show pending microseg diff
> ui: sdn: microseg: add tag matcher
> ui: sdn: microseg: add name regex matcher
> ui: sdn: microseg: add narrowing to the rule form
> ui: sdn: microseg: show and edit the group hierarchy
> ui: sdn: microseg: add fragments option to the rule form
> ui: sdn: microseg: add a guest tab with its groups and rules
>
> PVE/API2/Network.pm | 31 +-
> bin/pve-sdn-commit | 47 ++-
> services/pve-sdn-commit.service | 1 +
> www/css/ext6-pve.css | 23 ++
> www/manager6/Makefile | 10 +
> www/manager6/Utils.js | 98 +++++
> www/manager6/data/PermPathStore.js | 1 +
> www/manager6/dc/Config.js | 8 +
> www/manager6/form/SDNMicrosegGroupSelector.js | 105 ++++++
> www/manager6/grid/FirewallRules.js | 2 +
> www/manager6/lxc/Config.js | 10 +
> www/manager6/qemu/Config.js | 10 +
> www/manager6/sdn/MicrosegView.js | 98 +++++
> www/manager6/sdn/SdnDiffView.js | 29 ++
> www/manager6/sdn/microseg/AssignmentEdit.js | 148 ++++++++
> www/manager6/sdn/microseg/AssignmentView.js | 195 ++++++++++
> www/manager6/sdn/microseg/Base.js | 262 ++++++++++++++
> www/manager6/sdn/microseg/GroupEdit.js | 40 +++
> www/manager6/sdn/microseg/GuestPanel.js | 117 ++++++
> www/manager6/sdn/microseg/RuleEdit.js | 285 +++++++++++++++
> www/manager6/sdn/microseg/RuleView.js | 338 ++++++++++++++++++
> www/manager6/sdn/microseg/Tree.js | 278 ++++++++++++++
> www/manager6/sdn/zones/EvpnEdit.js | 8 +
> www/manager6/sdn/zones/VxlanEdit.js | 11 +
> 24 files changed, 2126 insertions(+), 29 deletions(-)
> create mode 100644 www/manager6/form/SDNMicrosegGroupSelector.js
> create mode 100644 www/manager6/sdn/MicrosegView.js
> create mode 100644 www/manager6/sdn/microseg/AssignmentEdit.js
> create mode 100644 www/manager6/sdn/microseg/AssignmentView.js
> create mode 100644 www/manager6/sdn/microseg/Base.js
> create mode 100644 www/manager6/sdn/microseg/GroupEdit.js
> create mode 100644 www/manager6/sdn/microseg/GuestPanel.js
> create mode 100644 www/manager6/sdn/microseg/RuleEdit.js
> create mode 100644 www/manager6/sdn/microseg/RuleView.js
> create mode 100644 www/manager6/sdn/microseg/Tree.js
>
>
> qemu-server:
>
> Hannes Laimer (1):
> network: update the microseg enforcement on a tag or name change
>
> src/PVE/API2/Qemu.pm | 26 ++++++++++++++++++++++++++
> src/PVE/QemuServer.pm | 12 +++++++++++-
> src/PVE/QemuServer/Network.pm | 14 ++++++++++++++
> 3 files changed, 51 insertions(+), 1 deletion(-)
>
>
> pve-container:
>
> Hannes Laimer (1):
> lxc: update the microseg enforcement on a tag or hostname change
>
> src/PVE/API2/LXC/Config.pm | 3 +++
> src/PVE/LXC.pm | 28 ++++++++++++++++++++++++++++
> 2 files changed, 31 insertions(+)
>
>
> pve-docs:
>
> Hannes Laimer (2):
> sdn: zones: document the VXLAN-GBP option
> sdn: add microsegmentation section
>
> pvesdn.adoc | 403 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 403 insertions(+)
>
>
> Summary over all repositories:
> 98 files changed, 11514 insertions(+), 38 deletions(-)
>
prev parent reply other threads:[~2026-11-05 11:21 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-27 8:54 [PATCH access-control/cluster/container/docs/manager/network/proxmox{-ebpf,-ve-rs,-perl-rs}/qemu-server v3 00/45] sdn: add microsegmentation support Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ebpf v3 01/45] build: keep the build directory out of the BPF objects Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ebpf v3 02/45] policy: add the enforcement subsystem for guest interfaces Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ebpf v3 03/45] policy: add a check for non-first fragments Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ve-rs v3 04/45] ve-config: firewall: add a constructor for sctp matches Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ve-rs v3 05/45] ve-config: sdn: microseg: add identity allocation for group sets Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ve-rs v3 06/45] ve-config: sdn: microseg: add config types Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ve-rs v3 07/45] ve-config: sdn: microseg: add tag matcher Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ve-rs v3 08/45] ve-config: sdn: microseg: add name regex matcher Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ve-rs v3 09/45] ve-config: sdn: microseg: narrow rules by protocol and ports Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ve-rs v3 10/45] ve-config: sdn: microseg: add group hierarchy Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ve-rs v3 11/45] ve-config: firewall: expose protocol, icmp type and code numbers Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ve-rs v3 12/45] ve-config: sdn: microseg: add the desired state Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ve-rs v3 13/45] microseg: add a crate that applies the policy to a node's guest NICs Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-ve-rs v3 14/45] microseg: add a rule option that matches non-first fragments Hannes Laimer
2026-10-27 8:54 ` [PATCH pve-cluster v3 15/45] cfs: add 'sdn/microseg.cfg' to observed files Hannes Laimer
2026-10-27 8:54 ` [PATCH pve-access-control v3 16/45] permissions: add ACL path for SDN microsegmentation Hannes Laimer
2026-10-27 8:54 ` [PATCH proxmox-perl-rs v3 17/45] pve-rs: sdn: add microseg config binding Hannes Laimer
2026-10-27 8:55 ` [PATCH proxmox-perl-rs v3 18/45] pve-rs: sdn: microseg: bind the data plane Hannes Laimer
2026-10-27 8:55 ` [PATCH proxmox-perl-rs v3 19/45] pve-rs: sdn: microseg: check the data plane limits on render Hannes Laimer
2026-10-27 8:55 ` [PATCH proxmox-perl-rs v3 20/45] pve-rs: debian: fire the pve-microseg-update trigger on upgrade Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-network v3 21/45] sdn: zones: add vxlan-gbp option to vxlan and evpn zones Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-network v3 22/45] sdn: microseg: add config, API and guest inventory Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-network v3 23/45] sdn: dry-run: show pending microseg changes Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-network v3 24/45] sdn: microseg: enforce the policy on guest NICs Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-network v3 25/45] sdn: microseg: add tag matcher Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-network v3 26/45] sdn: microseg: add name regex matcher Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-network v3 27/45] sdn: microseg: add an update for a running NIC Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-network v3 28/45] sdn: microseg: expose protocol, port and macro rule options Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-network v3 29/45] sdn: microseg: allow nesting groups under a parent Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-network v3 30/45] sdn: microseg: expose the fragments rule option Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-manager v3 31/45] network: apply the microseg policy on reload Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-manager v3 32/45] pve-sdn-commit: apply the microseg policy at boot Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-manager v3 33/45] ui: sdn: zones: add vxlan-gbp checkbox to vxlan and evpn Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-manager v3 34/45] ui: sdn: add microsegmentation panel Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-manager v3 35/45] ui: sdn: dry-run: show pending microseg diff Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-manager v3 36/45] ui: sdn: microseg: add tag matcher Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-manager v3 37/45] ui: sdn: microseg: add name regex matcher Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-manager v3 38/45] ui: sdn: microseg: add narrowing to the rule form Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-manager v3 39/45] ui: sdn: microseg: show and edit the group hierarchy Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-manager v3 40/45] ui: sdn: microseg: add fragments option to the rule form Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-manager v3 41/45] ui: sdn: microseg: add a guest tab with its groups and rules Hannes Laimer
2026-10-27 8:55 ` [PATCH qemu-server v3 42/45] network: update the microseg enforcement on a tag or name change Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-container v3 43/45] lxc: update the microseg enforcement on a tag or hostname change Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-docs v3 44/45] sdn: zones: document the VXLAN-GBP option Hannes Laimer
2026-10-27 8:55 ` [PATCH pve-docs v3 45/45] sdn: add microsegmentation section Hannes Laimer
2026-11-05 11:14 ` Hannes Laimer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53dd0521-0152-476b-9558-8273a72dca56@proxmox.com \
--to=h.laimer@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox