Skip to content

Conversation

@venkataanil
Copy link

@venkataanil venkataanil commented Sep 25, 2025

As using "!=" in ACL matches potentially cause a lot of openflow rules to be created by ovn-controller, we want to avoid using negative exclusion (!=) in OVN ACL for IPBlock.exclude fields.

  • Use IPSetBuilder API to the build the allowed CIDR by excluding IPBlock.except
  • Then union of these allowed CIDRs will be done to get minimal CIDR ranges, which will be joined into brace-delimited lists for ACL L3 matches (e.g., ip4.src == {p1, p2}).
  • This reduces ACL churn by emitting a single match per IP family when possible.
  • This path maintains Kubernetes NetworkPolicy union semantics.

TODO: Need to fix the unit tests. Also please ignore my previous commit where I tried with "drop" rules.

This is D/S PR for Perf testing
Ref: ovn-kubernetes/ovn-kubernetes#5589

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Sep 25, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 25, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: venkataanil
Once this PR has been reviewed and has the lgtm label, please assign jcaamano for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jtaleric
Copy link

/test

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 25, 2025

@jtaleric: The /test command needs one or more targets.
The following commands are available to trigger required jobs:

/test 4.20-upgrade-from-stable-4.19-e2e-aws-ovn-upgrade
/test 4.20-upgrade-from-stable-4.19-e2e-gcp-ovn-rt-upgrade
/test 4.20-upgrade-from-stable-4.19-images
/test e2e-aws-ovn
/test e2e-aws-ovn-edge-zones
/test e2e-aws-ovn-hypershift
/test e2e-aws-ovn-local-gateway
/test e2e-aws-ovn-local-to-shared-gateway-mode-migration
/test e2e-aws-ovn-serial
/test e2e-aws-ovn-shared-to-local-gateway-mode-migration
/test e2e-aws-ovn-upgrade
/test e2e-aws-ovn-upgrade-local-gateway
/test e2e-aws-ovn-windows
/test e2e-azure-ovn-upgrade
/test e2e-gcp-ovn
/test e2e-gcp-ovn-techpreview
/test e2e-metal-ipi-ovn-dualstack
/test e2e-metal-ipi-ovn-dualstack-bgp
/test e2e-metal-ipi-ovn-dualstack-bgp-local-gw
/test e2e-metal-ipi-ovn-ipv6
/test gofmt
/test images
/test lint
/test okd-scos-images
/test qe-perfscale-payload-control-plane-6nodes
/test unit

The following commands are available to trigger optional jobs:

/test 4.20-upgrade-from-stable-4.19-e2e-aws-ovn-upgrade-ipsec
/test e2e-agent-compact-ipv4
/test e2e-aws-ovn-clusternetwork-cidr-expansion
/test e2e-aws-ovn-fdp-qe
/test e2e-aws-ovn-hypershift-conformance-techpreview
/test e2e-aws-ovn-hypershift-kubevirt
/test e2e-aws-ovn-serial-ipsec
/test e2e-aws-ovn-single-node-techpreview
/test e2e-aws-ovn-techpreview
/test e2e-aws-ovn-upgrade-ipsec
/test e2e-azure-ovn
/test e2e-azure-ovn-techpreview
/test e2e-metal-ipi-ovn-bgp-virt-dualstack
/test e2e-metal-ipi-ovn-bgp-virt-dualstack-techpreview
/test e2e-metal-ipi-ovn-dualstack-local-gateway
/test e2e-metal-ipi-ovn-dualstack-local-gateway-techpreview
/test e2e-metal-ipi-ovn-dualstack-techpreview
/test e2e-metal-ipi-ovn-ipv4
/test e2e-metal-ipi-ovn-ipv6-techpreview
/test e2e-metal-ipi-ovn-techpreview
/test e2e-openstack-ovn
/test e2e-ovn-hybrid-step-registry
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-techpreview
/test e2e-vsphere-windows
/test okd-scos-e2e-aws-ovn
/test openshift-e2e-gcp-ovn-techpreview-upgrade
/test ovncore-perfscale-aws-ovn-large-cluster-density-v2
/test ovncore-perfscale-aws-ovn-large-node-density-cni
/test ovncore-perfscale-aws-ovn-xlarge-cluster-density-v2
/test ovncore-perfscale-aws-ovn-xlarge-node-density-cni
/test perfscale-aws-ovn-medium-cluster-density-v2
/test perfscale-aws-ovn-medium-node-density-cni
/test perfscale-aws-ovn-small-cluster-density-v2
/test perfscale-aws-ovn-small-node-density-cni
/test qe-perfscale-aws-ovn-small-udn-density-churn-l3
/test qe-perfscale-aws-ovn-small-udn-density-l2
/test qe-perfscale-aws-ovn-small-udn-density-l3
/test security

Use /test all to run the following jobs that were automatically triggered:

pull-ci-openshift-ovn-kubernetes-master-4.20-upgrade-from-stable-4.19-e2e-aws-ovn-upgrade
pull-ci-openshift-ovn-kubernetes-master-4.20-upgrade-from-stable-4.19-e2e-aws-ovn-upgrade-ipsec
pull-ci-openshift-ovn-kubernetes-master-4.20-upgrade-from-stable-4.19-e2e-gcp-ovn-rt-upgrade
pull-ci-openshift-ovn-kubernetes-master-4.20-upgrade-from-stable-4.19-images
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-edge-zones
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-hypershift
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-hypershift-conformance-techpreview
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-hypershift-kubevirt
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-local-gateway
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-local-to-shared-gateway-mode-migration
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-serial
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-serial-ipsec
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-shared-to-local-gateway-mode-migration
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-single-node-techpreview
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-techpreview
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-upgrade
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-upgrade-ipsec
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-upgrade-local-gateway
pull-ci-openshift-ovn-kubernetes-master-e2e-aws-ovn-windows
pull-ci-openshift-ovn-kubernetes-master-e2e-azure-ovn
pull-ci-openshift-ovn-kubernetes-master-e2e-azure-ovn-techpreview
pull-ci-openshift-ovn-kubernetes-master-e2e-azure-ovn-upgrade
pull-ci-openshift-ovn-kubernetes-master-e2e-gcp-ovn
pull-ci-openshift-ovn-kubernetes-master-e2e-gcp-ovn-techpreview
pull-ci-openshift-ovn-kubernetes-master-e2e-metal-ipi-ovn-dualstack
pull-ci-openshift-ovn-kubernetes-master-e2e-metal-ipi-ovn-dualstack-bgp
pull-ci-openshift-ovn-kubernetes-master-e2e-metal-ipi-ovn-dualstack-bgp-local-gw
pull-ci-openshift-ovn-kubernetes-master-e2e-metal-ipi-ovn-dualstack-local-gateway-techpreview
pull-ci-openshift-ovn-kubernetes-master-e2e-metal-ipi-ovn-dualstack-techpreview
pull-ci-openshift-ovn-kubernetes-master-e2e-metal-ipi-ovn-ipv6
pull-ci-openshift-ovn-kubernetes-master-e2e-metal-ipi-ovn-ipv6-techpreview
pull-ci-openshift-ovn-kubernetes-master-e2e-metal-ipi-ovn-techpreview
pull-ci-openshift-ovn-kubernetes-master-e2e-openstack-ovn
pull-ci-openshift-ovn-kubernetes-master-e2e-ovn-hybrid-step-registry
pull-ci-openshift-ovn-kubernetes-master-e2e-vsphere-ovn
pull-ci-openshift-ovn-kubernetes-master-e2e-vsphere-ovn-techpreview
pull-ci-openshift-ovn-kubernetes-master-gofmt
pull-ci-openshift-ovn-kubernetes-master-images
pull-ci-openshift-ovn-kubernetes-master-lint
pull-ci-openshift-ovn-kubernetes-master-okd-scos-e2e-aws-ovn
pull-ci-openshift-ovn-kubernetes-master-okd-scos-images
pull-ci-openshift-ovn-kubernetes-master-openshift-e2e-gcp-ovn-techpreview-upgrade
pull-ci-openshift-ovn-kubernetes-master-qe-perfscale-aws-ovn-small-udn-density-churn-l3
pull-ci-openshift-ovn-kubernetes-master-qe-perfscale-aws-ovn-small-udn-density-l3
pull-ci-openshift-ovn-kubernetes-master-qe-perfscale-payload-control-plane-6nodes
pull-ci-openshift-ovn-kubernetes-master-security
pull-ci-openshift-ovn-kubernetes-master-unit

In response to this:

/test

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

As using "!=" in ACL matches potentially cause a lot of openflow rules
to be created by ovn-controller, we want to avoid using negative
exclusion (!=) in OVN ACL for IPBlock.exclude fields.

- Use IPSetBuilder API to the build the allowed CIDR by excluding
  IPBlock.except
- Then union of these allowed CIDRs will be done to get minimal CIDR
  ranges, which will be joined into brace-delimited lists for ACL L3
  matches (e.g., ip4.src == {p1, p2}).
- This reduces ACL churn by emitting a single match per IP family
  when possible.
- This path maintains Kubernetes NetworkPolicy union semantics.

TODO: Need to fix the unit tests. Also please ignore my previous
commit where I tried with "drop" rules.

Signed-off-by: venkataanil <[email protected]>
@venkataanil
Copy link
Author

/test qe-perfscale-aws-ovn-small-udn-density-churn-l3

@mrobson
Copy link

mrobson commented Sep 25, 2025

/test images

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 9, 2025

@venkataanil: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-metal-ipi-ovn-dualstack c926772 link true /test e2e-metal-ipi-ovn-dualstack
ci/prow/e2e-aws-ovn-shared-to-local-gateway-mode-migration c926772 link true /test e2e-aws-ovn-shared-to-local-gateway-mode-migration
ci/prow/e2e-metal-ipi-ovn-ipv6-techpreview c926772 link false /test e2e-metal-ipi-ovn-ipv6-techpreview
ci/prow/okd-scos-e2e-aws-ovn c926772 link false /test okd-scos-e2e-aws-ovn
ci/prow/4.20-upgrade-from-stable-4.19-e2e-aws-ovn-upgrade c926772 link true /test 4.20-upgrade-from-stable-4.19-e2e-aws-ovn-upgrade
ci/prow/e2e-metal-ipi-ovn-dualstack-bgp-local-gw c926772 link true /test e2e-metal-ipi-ovn-dualstack-bgp-local-gw
ci/prow/e2e-metal-ipi-ovn-techpreview c926772 link false /test e2e-metal-ipi-ovn-techpreview
ci/prow/e2e-gcp-ovn c926772 link true /test e2e-gcp-ovn
ci/prow/e2e-aws-ovn-single-node-techpreview c926772 link false /test e2e-aws-ovn-single-node-techpreview
ci/prow/e2e-metal-ipi-ovn-ipv6 c926772 link true /test e2e-metal-ipi-ovn-ipv6
ci/prow/e2e-gcp-ovn-techpreview c926772 link true /test e2e-gcp-ovn-techpreview
ci/prow/qe-perfscale-aws-ovn-small-udn-density-churn-l3 c926772 link false /test qe-perfscale-aws-ovn-small-udn-density-churn-l3
ci/prow/e2e-aws-ovn-serial c926772 link true /test e2e-aws-ovn-serial
ci/prow/e2e-metal-ipi-ovn-dualstack-techpreview c926772 link false /test e2e-metal-ipi-ovn-dualstack-techpreview
ci/prow/e2e-aws-ovn-windows c926772 link true /test e2e-aws-ovn-windows
ci/prow/e2e-aws-ovn-serial-ipsec c926772 link false /test e2e-aws-ovn-serial-ipsec
ci/prow/e2e-aws-ovn-hypershift-conformance-techpreview c926772 link false /test e2e-aws-ovn-hypershift-conformance-techpreview
ci/prow/e2e-aws-ovn-upgrade-ipsec c926772 link false /test e2e-aws-ovn-upgrade-ipsec
ci/prow/e2e-azure-ovn-techpreview c926772 link false /test e2e-azure-ovn-techpreview
ci/prow/e2e-aws-ovn-local-gateway c926772 link true /test e2e-aws-ovn-local-gateway
ci/prow/security c926772 link false /test security
ci/prow/e2e-metal-ipi-ovn-dualstack-bgp c926772 link true /test e2e-metal-ipi-ovn-dualstack-bgp
ci/prow/e2e-aws-ovn-edge-zones c926772 link true /test e2e-aws-ovn-edge-zones
ci/prow/e2e-aws-ovn-local-to-shared-gateway-mode-migration c926772 link true /test e2e-aws-ovn-local-to-shared-gateway-mode-migration
ci/prow/gofmt c926772 link true /test gofmt
ci/prow/e2e-aws-ovn c926772 link true /test e2e-aws-ovn
ci/prow/e2e-aws-ovn-hypershift c926772 link true /test e2e-aws-ovn-hypershift
ci/prow/e2e-aws-ovn-hypershift-kubevirt c926772 link false /test e2e-aws-ovn-hypershift-kubevirt
ci/prow/e2e-vsphere-ovn-techpreview c926772 link false /test e2e-vsphere-ovn-techpreview
ci/prow/openshift-e2e-gcp-ovn-techpreview-upgrade c926772 link false /test openshift-e2e-gcp-ovn-techpreview-upgrade
ci/prow/e2e-aws-ovn-techpreview c926772 link false /test e2e-aws-ovn-techpreview
ci/prow/e2e-openstack-ovn c926772 link false /test e2e-openstack-ovn
ci/prow/4.20-upgrade-from-stable-4.19-e2e-gcp-ovn-rt-upgrade c926772 link true /test 4.20-upgrade-from-stable-4.19-e2e-gcp-ovn-rt-upgrade
ci/prow/e2e-azure-ovn c926772 link false /test e2e-azure-ovn
ci/prow/e2e-aws-ovn-upgrade-local-gateway c926772 link true /test e2e-aws-ovn-upgrade-local-gateway
ci/prow/e2e-azure-ovn-upgrade c926772 link true /test e2e-azure-ovn-upgrade
ci/prow/4.20-upgrade-from-stable-4.19-e2e-aws-ovn-upgrade-ipsec c926772 link false /test 4.20-upgrade-from-stable-4.19-e2e-aws-ovn-upgrade-ipsec
ci/prow/lint c926772 link true /test lint
ci/prow/qe-perfscale-payload-control-plane-6nodes c926772 link true /test qe-perfscale-payload-control-plane-6nodes
ci/prow/e2e-metal-ipi-ovn-dualstack-local-gateway-techpreview c926772 link false /test e2e-metal-ipi-ovn-dualstack-local-gateway-techpreview
ci/prow/e2e-aws-ovn-upgrade c926772 link true /test e2e-aws-ovn-upgrade
ci/prow/e2e-ovn-hybrid-step-registry c926772 link false /test e2e-ovn-hybrid-step-registry
ci/prow/e2e-vsphere-ovn c926772 link false /test e2e-vsphere-ovn
ci/prow/qe-perfscale-aws-ovn-small-udn-density-l3 c926772 link false /test qe-perfscale-aws-ovn-small-udn-density-l3
ci/prow/4.21-upgrade-from-stable-4.20-e2e-gcp-ovn-rt-upgrade c926772 link true /test 4.21-upgrade-from-stable-4.20-e2e-gcp-ovn-rt-upgrade

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants