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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.