Bug 863105 - REST API: unable to add vlan network over bond using setupnetworks
REST API: unable to add vlan network over bond using setupnetworks
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: ovirt-engine-restapi (Show other bugs)
3.1.0
x86_64 Linux
high Severity urgent
: ---
: ---
Assigned To: Moti Asayag
Yaniv Kaul
network
: Regression, Reopened
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-10-04 08:59 EDT by Avi Tal
Modified: 2016-04-22 00:59 EDT (History)
10 users (show)

See Also:
Fixed In Version: SI21
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-12-04 14:59:40 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: Network
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
engine log (280.54 KB, application/x-compressed-tar)
2012-10-04 08:59 EDT, Avi Tal
no flags Details

  None (edit)
Description Avi Tal 2012-10-04 08:59:16 EDT
Created attachment 621633 [details]
engine log

Description of problem:
Adding Vlan over bond Failed if vlan id is 0.
vlan id 0 means untagged packet.
Having a vlan id 0 is common use case when user would like to treat vlan interface as the interface it self.

note: It was fully supported in rhevm 3.0

Problem:
try to configure vlan (id=0) over bond with setupnetworks:
SEND:
<action>
 <host_nics>
  <host_nic>
   <name>eth0</name>
   <network id="ef0930ab-3b7c-445f-bced-2e1d3f068f61"/>
   <boot_protocol>dhcp</boot_protocol>
  </host_nic>
  <host_nic>
   <name>bond0</name>
   <bonding>
    <options>
     <option name="mode" value="1"/>
    </options>
    <slaves>
     <host_nic id="a11f32cb-8931-4d46-981d-15e431467725">
     </host_nic>
     <host_nic id="aaf02414-eb9f-40dc-aca6-9c02809b56ca">
     </host_nic>
    </slaves>
   </bonding>
   <boot_protocol>none</boot_protocol>
  </host_nic>
  <host_nic>
   <name>bond0.0</name>
   <network id="ec2427d3-221e-4bc2-871b-e8cb81b47b89"/>
  </host_nic>
 </host_nics>
</action>


RECEIVE:
<fault>
    <reason>Operation Failed</reason>
    <detail>[- General command validation failure.]</detail>
</fault>


Bakcend Exception:
2012-10-04 12:38:57,198 WARN  [org.jboss.resteasy.core.SynchronousDispatcher] (ajp-/127.0.0.1:8009-10) failed to execute: org.ovirt.engine.api.restapi.resource.BaseBackendResource$WebFaultException
        at org.ovirt.engine.api.restapi.resource.BaseBackendResource.handleError(BaseBackendResource.java:219) [restapi-jaxrs.jar:]
        at org.ovirt.engine.api.restapi.resource.BackendResource.performAction(BackendResource.java:153) [restapi-jaxrs.jar:]
        at org.ovirt.engine.api.restapi.resource.BackendHostNicsResource.setupNetworks(BackendHostNicsResource.java:333) [restapi-jaxrs.jar:]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_05-icedtea]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_05-icedtea]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_05-icedtea]
        at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_05-icedtea]
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:152) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:106) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:147) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:91) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:525) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:502) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs.jar:2.3.3.Final-redhat-1]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec.jar:1.0.1.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb.jar:]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb.jar:]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb.jar:]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb.jar:]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:489) [jbossweb.jar:]
        at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web.jar:7.1.2.Final-redhat-1]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb.jar:]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb.jar:]
        at org.jboss.web.rewrite.RewriteValve.invoke(RewriteValve.java:466) [jbossweb.jar:]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb.jar:]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb.jar:]
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:505) [jbossweb.jar:]
        at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:452) [jbossweb.jar:]
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931) [jbossweb.jar:]
        at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_05-icedtea]
Comment 1 Michael Pasternak 2012-10-04 09:05:56 EDT
vlan id 0 is invalid, 

Normal Range IDs: 1 – 1005
Extended Range IDs: 1006 – 4094
Comment 2 Moti Asayag 2012-10-04 09:30:18 EDT
Michael, regardless the vlan tag values which are being enforced by adding/editing network, there is a bug here:

You cannot attach a vlan over bond since the list of slaves is being sent as shallow list of nics - see more information on the patch commit message.

See the suggested patch to address this:

http://gerrit.ovirt.org/8359
Comment 3 Avi Tal 2012-10-04 16:30:22 EDT
vlan id 0 is not Invalid!
It is reserved just like 1002 to 1005 (which are reserved for Token Ring and FDDI VLANs) so lets remove/not support them as well.

Well few reasons we should support these vlans:
1. if RHEL support these vlans configuration, we should.
2. vlan 0 represent untagging and commonly used by RHEV clients (i got this information from GSS back in the days. when users like to add the physical interface to VM even though it contain vlan interfaces.)
3. the formal range of 802.1Q is 0 to 4096 (including reserved IDs).
4. * this is backward compatibility, 3.0 support vlan id 0 over bond.
5. One of the main issues here is that, this exception occurred only above bonded interface but it works on regular interface.

BTW, reserved IDs aren't blocks from using in Local Area Network.

(In reply to comment #1)
> vlan id 0 is invalid, 
> 
> Normal Range IDs: 1 – 1005
> Extended Range IDs: 1006 – 4094
Comment 6 Mike Kolesnik 2012-10-11 04:43:10 EDT
The previous patch didn't address slaves by name only, this one will:
http://gerrit.ovirt.org/8490
Comment 8 Avi Tal 2012-10-24 04:16:36 EDT
verify on SI21.1 - PASS

Note You need to log in before you can comment on or make changes to this bug.