
/sys/class/net/ens4f0/device/sriov_numvfs it will set all of the VFs mac addresses to all zeros. Then when we assign=
--_004_CO1PR17MB074340FDFE652923C0697FB1F9A20CO1PR17MB0743namp_ Content-Type: multipart/alternative; boundary="_000_CO1PR17MB074340FDFE652923C0697FB1F9A20CO1PR17MB0743namp_" --_000_CO1PR17MB074340FDFE652923C0697FB1F9A20CO1PR17MB0743namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable I am working with a customer on enabling sriov within oVirt and were notici= ng a couple of issues. 1. Whenever we assign the Number of VFs to a physical adapter in one of = our hosts, it seems to set the mac addresses of each of the VFs to somethin= g other than all zeros. Ex. 02:00:00:00:00:01 2. The above behavior seems to create duplicate mac addresses when we as= sign 2 or more VFs to a guest VM. All zeros will tell the guest VM that it= needs to set the mac. If the guest vm sees something other than all zeros= , it will think that it was administratively assigned already and leave as = is. 3. We were expecting oVirt to set all of the MAC addresses of the VFs in= itially to all zeros. Then when we assign these VFs to the guest VM, the g= uest VM will assign a unique MAC to each of the VFs. 4. Please note that we are assigning the VF to the guest VM by adding a = Host Device (the specific pci host device for the VF). This seems to be di= fferent than your docs which shows adding a Network Interface with type PCI= Passthrough. 5. If we manually run the following command from an ssh session: echo 4= the pci host device to the guest VM through oVirt, it creates unique macs = for both vnics. However, when we reboot the Host, it seems to revert back = to the oVirt assigned macs of 02:00:00:00:00:01. Do know why this might be happening? Should we be assigning the VFs to the= guest VM by adding a network interface with type PCI Passthrough? Ultimat= ely our goal is to enable sriov within oVirt and be able to assign multiple= VFs to the guest VMs with each getting a unique mac. We also want to do t= he vlan tagging via an application running on the guest VM (not at the Host= level.) Thank you for any help, jp Joe Paolicelli (JP) Virtualization Specialist, Ixia Solutions Group Keysight Technologies e: jp@keysight.com<mailto:jp@keysight.com> t: 469.556.6042 www.ixiacom.com<http://www.ixiacom.com/> [cid:image002.png@01D2DA11.7BFEC8C0] --_000_CO1PR17MB074340FDFE652923C0697FB1F9A20CO1PR17MB0743namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr= osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:= //www.w3.org/TR/REC-html40"> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)"> <!--[if !mso]><style>v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style><![endif]--><style><!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:11.0pt; font-family:"Calibri",sans-serif;} a:link, span.MsoHyperlink {mso-style-priority:99; color:#0563C1; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:#954F72; text-decoration:underline;} span.EmailStyle17 {mso-style-type:personal-compose; font-family:"Calibri",sans-serif; color:windowtext;} .MsoChpDefault {mso-style-type:export-only; font-family:"Calibri",sans-serif;} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:245310953; mso-list-template-ids:1019524408;} ol {margin-bottom:0in;} ul {margin-bottom:0in;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--> </head> <body lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72"> <div class=3D"WordSection1"> <p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a= lt:auto">I am working with a customer on enabling sriov within oVirt and we= re noticing a couple of issues.<o:p></o:p></p> <ol start=3D"1" type=3D"1"> <li class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-= alt:auto;mso-list:l0 level1 lfo1"> Whenever we assign the Number of VFs to a physical adapter in one of our ho= sts, it seems to set the mac addresses of each of the VFs to something othe= r than all zeros. Ex. 02:00:00:00:00:01<o:p></o:p></li><li class=3D"M= soNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-l= ist:l0 level1 lfo1"> The above behavior seems to create duplicate mac addresses when we assign 2= or more VFs to a guest VM. All zeros will tell the guest VM that it = needs to set the mac. If the guest vm sees something other than all z= eros, it will think that it was administratively assigned already and leave as is.<o:p></o:p></li><li class=3D"MsoNormal" s= tyle=3D"mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 leve= l1 lfo1"> We were expecting oVirt to set all of the MAC addresses of the VFs initiall= y to all zeros. Then when we assign these VFs to the guest VM, the gu= est VM will assign a unique MAC to each of the VFs.<o:p></o:p></li><li clas= s=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-alt:auto= ;mso-list:l0 level1 lfo1"> Please note that we are assigning the VF to the guest VM by adding a Host D= evice (the specific pci host device for the VF). This seems to be dif= ferent than your docs which shows adding a Network Interface with type PCI = Passthrough.<o:p></o:p></li><li class=3D"MsoNormal" style=3D"mso-margin-top= -alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1"> If we manually run the following command from an ssh session: <b><spa= n style=3D"font-size:10.0pt;color:#0070C0">echo 4 > /sys/class/net/ens4f= 0/device/sriov_numvfs</span></b><o:p></o:p></li></ol> <p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a= lt:auto"><span style=3D"font-size:10.0pt">it will set all of the VFs mac ad= dresses to all zeros. Then when we assign the pci host device to the = guest VM through oVirt, it creates unique macs for both vnics. However, when we reboot the Host, it seems to revert= back to the oVirt assigned macs of 02:00:00:00:00:01.</span><o:p></o:p></p=
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a= lt:auto">Do know why this might be happening? Should we be assigning = the VFs to the guest VM by adding a network interface with type PCI Passthr= ough? Ultimately our goal is to enable sriov within oVirt and be able to assign multiple VFs to the guest VMs with each= getting a unique mac. We also want to do the vlan tagging via an app= lication running on the guest VM (not at the Host level.)<o:p></o:p></p> <p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a= lt:auto">Thank you for any help,<o:p></o:p></p> <p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a= lt:auto">jp<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal" style=3D"mso-margin-top-alt:6.0pt;margin-right:0in;m= argin-bottom:8.0pt;margin-left:0in;line-height:105%"> <b><span style=3D"font-size:10.0pt;line-height:105%;font-family:"Arial= ",sans-serif;color:#37B0C9">Joe Paolicelli (JP)<br> </span></b><span style=3D"font-size:10.0pt;line-height:105%;font-family:&qu= ot;Arial",sans-serif;color:#5F6369;letter-spacing:.4pt">Virtualization= Specialist, Ixia Solutions Group<br> Keysight Technologies<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ar= ial",sans-serif;color:#37B0C9">e:</span><span style=3D"font-size:10.0p= t;font-family:"Arial",sans-serif;color:#5F6369"> </span><u><span style=3D"font-size:12.0pt;font-family:"Arial",san= s-serif;color:#0563C1"><a href=3D"mailto:jp@keysight.com">jp@keysight.com</= a></span></u><span style=3D"font-size:10.0pt;font-family:"Arial",= sans-serif;color:#5F6369"><br> </span><span style=3D"font-size:10.0pt;font-family:"Arial",sans-s= erif;color:#37B0C9">t:</span><span style=3D"font-size:10.0pt;font-family:&q= uot;Arial",sans-serif;color:#5F6369"> 469.556.6042<br> </span><a href=3D"http://www.ixiacom.com/"><span style=3D"font-size:10.0pt;= font-family:"Arial",sans-serif;color:#37B0C9">www.ixiacom.com</sp= an></a><o:p></o:p></p> <p class=3D"MsoNormal"><u><span style=3D"font-size:10.0pt;font-family:"= ;Arial",sans-serif;color:#37B0C9;letter-spacing:1.0pt"><br> </span></u><img border=3D"0" width=3D"622" height=3D"78" style=3D"width:6.4= 833in;height:.8166in" id=3D"Picture_x0020_6" src=3D"cid:image001.png@01D3C7= 33.EEB671F0" alt=3D"cid:image002.png@01D2DA11.7BFEC8C0"><o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> </body> </html> --_000_CO1PR17MB074340FDFE652923C0697FB1F9A20CO1PR17MB0743namp_-- --_004_CO1PR17MB074340FDFE652923C0697FB1F9A20CO1PR17MB0743namp_ Content-Type: image/png; name="image001.png" Content-Description: image001.png Content-Disposition: inline; filename="image001.png"; size=20599; creation-date="Thu, 29 Mar 2018 14:59:59 GMT"; modification-date="Thu, 29 Mar 2018 14:59:59 GMT" Content-ID: <image001.png@01D3C733.EEB671F0> Content-Transfer-Encoding: base64 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 h+P19hyWhqCgoIEDB+bk5Jiamh47dmzTpk2FhYUYhlHWHvU3NY/4jq1i/x9g0l/C+8Djcb8YOYKu BxqafxNYaqbixHkGWAJgACQAS0vh2AQ0yDbvY3d/41CiYXkEDmImuALgAAgAQQKGAFN7KwUCQkye qTh9SWf2NwCgikvEitJQMKRuBmBg8FIZHcf0buGYFWrFJjWFplGObt26DR069PTp02ZmZvv37/f2 9vb398cwTKlU8ni84uLiFStWaBte1AqaDh06aBuLVMxKpVKpVDbZdjVmzJgbN25kZ2cbGhquXr3a y8tLX1+/qKjo+fPnKIq+fPlyzpw51NINHMepM2i0VXbZsmUqlSo6OlooFJ4/fz4uLs7a2prJZCqV yurqaio/SqWSKg5BENQsIHWUaPOyK5VK6kju5vYxlfn3Oa2TFkIaGhqaVoy1mlpgMRH+q+k9vKBc OnIqCQ0I8HEoBUAQ4KBgAUC18gQT7OSXTjIWOQs2LgWAuhmrZNG/MsEBAAdgklCLQwUKfBzqGWCG gB4AprEmG77fxv1yGCrSb9y4mwQVDtUkNKBgCEAiwKpfu5HTtw8z0K25EFLTeE3sp/Dw8OzsbGqO cOPGjadOnaLO2lar1QwGQ3sxOQDweDxjY+PmA5Kag6qbRM7j8bZv375z587Hjx9LJJLLly9jGMbl co2Nja2trefPn69ZXENlr3kMq1evDgoKunDhQmFhoVQqffToEXWdz+cbGxv7+vr27NlTs9GQerzF PdDvOEe7tczTQkhDQ0PzV4RQoZKGfkOUV6PWZlCrVD9/ROJyAB4i0DE8dJhhaymdMEOd8YgB7V47 V2IywLJhU4Ty+DUgMLX4CRNsAZgACAEVAKT+Dzs5o/sojlysX/sdgAoBIwAcgGSAOV5dJnHphnD1 sdJcBFgsD1/+uuWoiQGpUAKTQRSJSXkLB4w4OTnt27eP0jBLrUO7dHR0NmzYUF1dTZ0RWldX169f Py8vrxYnCAmCoHasa180MDDYsmULpSXm5k1PkTQyMvruu+/KyspycnKkUimO41wu18rKytXVVTuJ nj17urm5oSja3It43759+/btm5+fX1hYWFdXR5Ikh8MxNDS0trbW3gVna2u7d+9e6m/tAlKquXHj RmqvRZMgAFi8eDHl5pDasPf/RQipzsgH94pOEERZWZlCoTA0NHwf10JVVVW1tbUmJiZNHDt8QnAc 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 DQCCge63Am7piwAAAABJRU5ErkJggg== --_004_CO1PR17MB074340FDFE652923C0697FB1F9A20CO1PR17MB0743namp_--

Hi Joe, First of all, if you using the SR-IOV feature, you should use it only as pci-passthrough vNICs only. Not as host-devices. Our documentation is correct and is says : "adding a Network Interface with type PCI Passthrough" When enabling VFs on the host level, the expected MAC address for the VFs is 02:00:00:00:00:01 and that is the correct behaviour. Once you will create a network with 'passthrough' vNIC profile and then add this as a vNIC to the guest VM, once the guest will run, you will see that each pci-passthrough vNIC got it's own unique MAC address. No matter how much VFs you are using, each pci-passthrough vNIC will get it's own MAC address. For vlan, you can create the network(passthrough) with the desired vlan tag and it will be passed to the guest on run VM. Cheers) On Thu, Mar 29, 2018 at 6:00 PM, <joe.paolicelli@keysight.com> wrote:
I am working with a customer on enabling sriov within oVirt and were noticing a couple of issues.
1. Whenever we assign the Number of VFs to a physical adapter in one of our hosts, it seems to set the mac addresses of each of the VFs to something other than all zeros. Ex. 02:00:00:00:00:01 2. The above behavior seems to create duplicate mac addresses when we assign 2 or more VFs to a guest VM. All zeros will tell the guest VM that it needs to set the mac. If the guest vm sees something other than all zeros, it will think that it was administratively assigned already and leave as is. 3. We were expecting oVirt to set all of the MAC addresses of the VFs initially to all zeros. Then when we assign these VFs to the guest VM, the guest VM will assign a unique MAC to each of the VFs. 4. Please note that we are assigning the VF to the guest VM by adding a Host Device (the specific pci host device for the VF). This seems to be different than your docs which shows adding a Network Interface with type PCI Passthrough. 5. If we manually run the following command from an ssh session: *echo 4 > /sys/class/net/ens4f0/device/sriov_numvfs*
it will set all of the VFs mac addresses to all zeros. Then when we assign the pci host device to the guest VM through oVirt, it creates unique macs for both vnics. However, when we reboot the Host, it seems to revert back to the oVirt assigned macs of 02:00:00:00:00:01.
Do know why this might be happening? Should we be assigning the VFs to the guest VM by adding a network interface with type PCI Passthrough? Ultimately our goal is to enable sriov within oVirt and be able to assign multiple VFs to the guest VMs with each getting a unique mac. We also want to do the vlan tagging via an application running on the guest VM (not at the Host level.)
Thank you for any help,
jp
*Joe Paolicelli (JP) *Virtualization Specialist, Ixia Solutions Group Keysight Technologies
e: *jp@keysight.com <jp@keysight.com>* t: 469.556.6042 <(469)%20556-6042> www.ixiacom.com
[image: cid:image002.png@01D2DA11.7BFEC8C0]
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
-- Michael Burman Senior Quality engineer - rhv network - redhat israel Red Hat <https://www.redhat.com> mburman@redhat.com M: 0545355725 IM: mburman <https://red.ht/sig>
participants (2)
-
joe.paolicelli@keysight.com
-
Michael Burman