Bug 1914282
| Summary: | [RFE] implement watch_port for logical router policies with multiple nexthops | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux Fast Datapath | Reporter: | Alexander Constantinescu <aconstan> | ||||||||
| Component: | ovn2.13 | Assignee: | Numan Siddique <nusiddiq> | ||||||||
| Status: | NEW --- | QA Contact: | Jianlin Shi <jishi> | ||||||||
| Severity: | high | Docs Contact: | |||||||||
| Priority: | medium | ||||||||||
| Version: | FDP 20.H | CC: | ctrautma, jishi, ralongi, trozet | ||||||||
| Target Milestone: | --- | ||||||||||
| Target Release: | --- | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Whiteboard: | |||||||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||||||
| Doc Text: | Story Points: | --- | |||||||||
| Clone Of: | Environment: | ||||||||||
| Last Closed: | Type: | Bug | |||||||||
| Regression: | --- | Mount Type: | --- | ||||||||
| Documentation: | --- | CRM: | |||||||||
| Verified Versions: | Category: | --- | |||||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||||
| Embargoed: | |||||||||||
| Attachments: |
|
||||||||||
|
Description
Alexander Constantinescu
2021-01-08 14:20:06 UTC
Assigning to Numan, since he's most familiar with what is being requested. Hi Alex, is this RFE still relevant? I remember we spoke some time back and I thought the conclusion was that watch_port wont help you here since it only checks for local port being up. I thought what you needed was BFD, but that is not supported on a distributed router. Yes, the RFE is still relevant. I am not sure what you mean specifically, as I managed to make it work using a watch_port with a BFD session (see #comment 0) Uploading some fresh databases as discussed off-band with Numan. The OVN-Kubernetes topology has changes slightly since this RFE was created, I have thus implemented the same POC as I originally did but on this slightly different topology. I am attaching the NB and SB DB
This is the final outcome from my POC: the logical router policy;
_uuid : a23ed366-90a5-4af3-a0d9-b655e3a73c5f
action : reroute
external_ids : {name=egressip}
match : "ip4.src == 10.244.0.3"
nexthop : []
nexthops : ["100.64.0.2", "100.64.0.4"]
options : {}
priority : 100
ends up writing an OVS group on the node:
group_id=5,type=select,selection_method=dp_hash,bucket=bucket_id:0,weight:100,actions=load:0x1->OXM_OF_PKT_REG4[48..63],resubmit(,21),bucket=bucket_id:1,weight:100,actions=load:0x2->OXM_OF_PKT_REG4[48..63],resubmit(,21)
In the POC I have made I have enabled BFD sessions between the tunnel port on all cluster nodes. On the node in question (ovn-worker) we have the following OVS ports:
_uuid : d9900576-0f01-4246-bdbc-19adee42d782
admin_state : up
bfd : {enable="true"}
bfd_status : {diagnostic="No Diagnostic", flap_count="1", forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up, state=up}
cfm_fault : []
cfm_fault_status : []
cfm_flap_count : []
cfm_health : []
cfm_mpid : []
cfm_remote_mpids : []
cfm_remote_opstate : []
duplex : []
error : []
external_ids : {}
ifindex : 4
ingress_policing_burst: 0
ingress_policing_rate: 0
lacp_current : []
link_resets : 0
link_speed : []
link_state : up
lldp : {}
mac : []
mac_in_use : "26:e7:06:54:d4:69"
mtu : []
mtu_request : []
name : ovn-ce36ce-0
ofport : 3
ofport_request : []
options : {csum="true", key=flow, remote_ip="172.18.0.4"}
other_config : {}
statistics : {rx_bytes=70624, rx_packets=1049, tx_bytes=70304, tx_packets=1059}
status : {tunnel_egress_iface=breth0, tunnel_egress_iface_carrier=up}
type : geneve
_uuid : 5f669662-e6a6-4e48-a68d-adb6c7b9d757
admin_state : up
bfd : {enable="true"}
bfd_status : {diagnostic="No Diagnostic", flap_count="1", forwarding="true", remote_diagnostic="No Diagnostic", remote_state=up, state=up}
cfm_fault : []
cfm_fault_status : []
cfm_flap_count : []
cfm_health : []
cfm_mpid : []
cfm_remote_mpids : []
cfm_remote_opstate : []
duplex : []
error : []
external_ids : {}
ifindex : 4
ingress_policing_burst: 0
ingress_policing_rate: 0
lacp_current : []
link_resets : 0
link_speed : []
link_state : up
lldp : {}
mac : []
mac_in_use : "d6:b5:a2:61:58:e5"
mtu : []
mtu_request : []
name : ovn-f4d5f8-0
ofport : 1
ofport_request : []
options : {csum="true", key=flow, remote_ip="172.18.0.2"}
other_config : {}
statistics : {rx_bytes=76520, rx_packets=1092, tx_bytes=74968, tx_packets=1116}
status : {tunnel_egress_iface=breth0, tunnel_egress_iface_carrier=up}
type : geneve
The final outcome of this RFE is to have the logical router policy write out the OVS group as:
group_id=5,type=select,selection_method=dp_hash,bucket=bucket_id:0,watch_port:ovn-f4d5f8-0,weight:100,actions=load:0x1->OXM_OF_PKT_REG4[48..63],resubmit(,21),bucket=bucket_id:1,watch_port:ovn-ce36ce-0,weight:100,actions=load:0x2->OXM_OF_PKT_REG4[48..63],resubmit(,21)
Created attachment 1788565 [details]
NB DB
Created attachment 1788566 [details]
SB DB
|