Bug 863105 - REST API: unable to add vlan network over bond using setupnetworks
Summary: REST API: unable to add vlan network over bond using setupnetworks
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: ovirt-engine-restapi
Version: 3.1.0
Hardware: x86_64
OS: Linux
high
urgent
Target Milestone: ---
: ---
Assignee: Moti Asayag
QA Contact: Yaniv Kaul
URL:
Whiteboard: network
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-10-04 12:59 UTC by Avi Tal
Modified: 2016-04-22 04:59 UTC (History)
10 users (show)

Fixed In Version: SI21
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-12-04 19:59:40 UTC
oVirt Team: Network
Target Upstream Version:
Embargoed:


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

Description Avi Tal 2012-10-04 12:59:16 UTC
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 13:05:56 UTC
vlan id 0 is invalid, 

Normal Range IDs: 1 – 1005
Extended Range IDs: 1006 – 4094

Comment 2 Moti Asayag 2012-10-04 13:30:18 UTC
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 20:30:22 UTC
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 08:43:10 UTC
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 08:16:36 UTC
verify on SI21.1 - PASS


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