Bug 1836405

Summary: Multus whereabouts assign network address to the pod
Product: OpenShift Container Platform Reporter: Weibin Liang <weliang>
Component: NetworkingAssignee: Douglas Smith <dosmith>
Networking sub component: multus QA Contact: Weibin Liang <weliang>
Status: CLOSED ERRATA Docs Contact:
Severity: medium    
Priority: unspecified CC: aconstan, dapark, dosmith, xingli
Version: 4.6   
Target Milestone: ---   
Target Release: 4.5.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1854504 1856783 (view as bug list) Environment:
Last Closed: 2020-10-27 16:00:05 UTC 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:
Bug Depends On:    
Bug Blocks: 1854504, 1856783    

Description Weibin Liang 2020-05-15 19:57:42 UTC
Description of problem:
For whereabouts DHCP testing, if setup "range": "192.168.21.100/30" in yaml file,  then 192.168.22.100/30 is network address, 192.168.22.101/30 to 192.168.22.102/30 are host addresses, 192.168.22.103/30 is broadcast address, the pod should only get 192.168.22.101 and 192.168.22.102, but right now one pod can get network address 192.168.22.100

Version-Release number of selected component (if applicable):
4.5.0-0.nightly-2020-05-15-123950

How reproducible:
Always

Steps to Reproduce:
1. oc create -f https://raw.githubusercontent.com/weliang1/Openshift_Networking/master/Features/multus/whereabouts-macvlan.yaml
2. Create 4 pods to absorbing above net-attach-def
[weliang@weliang networking]$ oc get pods
NAME                              READY   STATUS              RESTARTS   AGE
macvlan-bridge-whereabouts-pod1   1/1     Running             0          40s
macvlan-bridge-whereabouts-pod2   1/1     Running             0          25s
macvlan-bridge-whereabouts-pod3   1/1     Running             0          20s
macvlan-bridge-whereabouts-pod4   0/1     ContainerCreating   0          15s
[weliang@weliang networking]$ oc exec macvlan-bridge-whereabouts-pod1 -- ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: eth0@if62: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8951 qdisc noqueue state UP group default 
    link/ether 0a:58:0a:80:00:39 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.128.0.57/23 brd 10.128.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::4c2:75ff:fe51:189c/64 scope link 
       valid_lft forever preferred_lft forever
4: net1@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc noqueue state UP group default 
    link/ether 82:4e:a0:d4:4c:1a brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.22.100/30 brd 192.168.22.103 scope global net1
       valid_lft forever preferred_lft forever
    inet6 fe80::804e:a0ff:fed4:4c1a/64 scope link 
       valid_lft forever preferred_lft forever
[weliang@weliang networking]$ oc exec macvlan-bridge-whereabouts-pod2 -- ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: eth0@if63: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8951 qdisc noqueue state UP group default 
    link/ether 0a:58:0a:80:00:3a brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.128.0.58/23 brd 10.128.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::f4eb:abff:fe94:1db8/64 scope link 
       valid_lft forever preferred_lft forever
4: net1@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc noqueue state UP group default 
    link/ether ae:61:98:3b:da:a5 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.22.101/30 brd 192.168.22.103 scope global net1
       valid_lft forever preferred_lft forever
    inet6 fe80::ac61:98ff:fe3b:daa5/64 scope link 
       valid_lft forever preferred_lft forever
[weliang@weliang networking]$ oc exec macvlan-bridge-whereabouts-pod3 -- ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: eth0@if64: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8951 qdisc noqueue state UP group default 
    link/ether 0a:58:0a:80:00:3b brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.128.0.59/23 brd 10.128.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::f455:d4ff:fea1:4857/64 scope link 
       valid_lft forever preferred_lft forever
4: net1@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc noqueue state UP group default 
    link/ether 52:44:d4:4f:ef:56 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.22.102/30 brd 192.168.22.103 scope global net1
       valid_lft forever preferred_lft forever
    inet6 fe80::5044:d4ff:fe4f:ef56/64 scope link 
       valid_lft forever preferred_lft forever
[weliang@weliang networking]$ 
[weliang@weliang networking]$ 
[weliang@weliang networking]$ oc get net-attach-def
NAME                         AGE
macvlan-bridge-whereabouts   86s
[weliang@weliang networking]$ oc get net-attach-def macvlan-bridge-whereabouts -o yaml
apiVersion: k8s.cni.cncf.io/v1
kind: NetworkAttachmentDefinition
metadata:
  creationTimestamp: "2020-05-15T19:47:34Z"
  generation: 1
  managedFields:
  - apiVersion: k8s.cni.cncf.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:spec:
        .: {}
        f:config: {}
    manager: oc
    operation: Update
    time: "2020-05-15T19:47:34Z"
  name: macvlan-bridge-whereabouts
  namespace: qi18r
  resourceVersion: "153560"
  selfLink: /apis/k8s.cni.cncf.io/v1/namespaces/qi18r/network-attachment-definitions/macvlan-bridge-whereabouts
  uid: eea85ce4-b021-4674-bb01-f31d0dbd9516
spec:
  config: '{ "cniVersion": "0.3.0", "type": "macvlan", "master": "ens3","mode": "bridge",
    "ipam": { "type": "whereabouts", "range": "192.168.22.100/30"} }'
[weliang@weliang networking]$ 

Actual results:
192.168.22.100 was assigned to macvlan-bridge-whereabouts-pod1

Expected results:
192.168.22.100 should not be assigned to any pod

Additional info:

Comment 4 Weibin Liang 2020-06-08 14:15:59 UTC
PR merged 5 days ago, but it is still not in the nightly image

Comment 5 Weibin Liang 2020-06-11 18:06:12 UTC
(In reply to Weibin Liang from comment #4)
> PR merged 5 days ago, but it is still not in the nightly image

QA still wait for the nightly image with PR fixing

Comment 6 Weibin Liang 2020-06-16 14:20:12 UTC
Tested and verified in 4.6.0-0.nightly-2020-06-16-125323

Comment 7 Douglas Smith 2020-08-21 12:00:21 UTC
updating target release for bz bot.

Comment 16 errata-xmlrpc 2020-10-27 16:00:05 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (OpenShift Container Platform 4.6 GA Images), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:4196