-
Bug
-
Resolution: Done
-
Undefined
-
None
-
4.20.0
-
None
-
Quality / Stability / Reliability
-
False
-
-
None
-
None
-
None
-
None
-
None
-
None
-
Done
-
Release Note Not Required
-
N/A
-
None
-
None
-
None
-
None
Description of problem:
Creating a BGPPeer with disableMP:true does not work, the value is set to true in BGPPeer resource but set to false in frrconfiguration. This causes RouteAdvertisement created for advertising pods networks in OVNK to be erroneous state.
Though user is warned during creation of BGPPeer resource about it being deprecated.
Warning: disable mp is deprecated and has no effect since it's the default behavior now
Version-Release number of selected component (if applicable):
4.20
How reproducible:
Always
Steps to Reproduce:
1. Set up OVNK BGP route advertisement to advertise routes
apiVersion: k8s.ovn.org/v1
kind: RouteAdvertisements
metadata:
name: default
spec:
advertisements:
- PodNetwork
frrConfigurationSelector: {}
networkSelectors:
- networkSelectionType: DefaultNetwork
nodeSelector: {}
2. Install metallb operator, create metallb resource, set up FRR router and create BGPPeer
apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
name: peer-64500
namespace: metallb-system
spec:
disableMP: true
holdTime: 10s
myASN: 64512
peerASN: 64500
peerAddress: 192.168.111.60
oc create -f ~/Documents/scalelab-yaml/singlehop-RDU/peer-64500-64512.yaml Warning: disable mp is deprecated and has no effect since it's the default behavior now bgppeer.metallb.io/peer-64500 created
Actual results:
The BGPPeer resource is created with warning with value set to true but set to false in frrconfiguration and RouteAdvertisement ends up being non functional in Not Accepted state.
oc get ra
NAME STATUS
default Not Accepted: configuration error: DisableMP==false not supported, seen on FRRConfiguration openshift-frr-k8s/metallb-worker-2 neighbor 192.168.111.60
apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
name: peer-64500
namespace: metallb-system
spec:
disableMP: true
holdTime: 10s
myASN: 64512
peerASN: 64500
peerAddress: 192.168.111.60
oc -n openshift-frr-k8s get frrconfigurations.frrk8s.metallb.io metallb-worker-0 -oyaml
apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
creationTimestamp: "2025-07-30T14:05:58Z"
generation: 1
name: metallb-worker-0
namespace: openshift-frr-k8s
resourceVersion: "535396"
uid: 88289ce5-ac18-486b-9980-9121a79d89db
spec:
bgp:
routers:
- asn: 64512
neighbors:
- address: 192.168.111.60
asn: 64500
disableMP: false
dualStackAddressFamily: false
holdTime: 10s
keepaliveTime: 3.333333333s
passwordSecret: {}
port: 179
toAdvertise:
allowed:
mode: filtered
prefixes:
- 10.10.10.1/32
- 10.10.10.2/32
- 10.10.10.3/32
withCommunity:
- community: 65001:65500
prefixes:
- 10.10.10.1/32
- 10.10.10.2/32
- 10.10.10.3/32
toReceive:
allowed:
mode: filtered
prefixes:
- 10.10.10.1/32
- 10.10.10.2/32
- 10.10.10.3/32
nodeSelector:
matchLabels:
kubernetes.io/hostname: worker-0
raw: {}
Expected results:
The value to be set to true in frrconfiguration so that routeadvertisement resource is functional.
Additional info: