[Users] install a f18 host with ovirtmgmt vlan tagged

Gianluca Cecchi gianluca.cecchi at gmail.com
Thu Mar 7 11:05:12 EST 2013


On Thu, Mar 7, 2013 at 4:38 PM, Gianluca Cecchi
<gianluca.cecchi at gmail.com> wrote:
> On Thu, Mar 7, 2013 at 3:58 PM, Gianluca Cecchi  wrote:
>>
>> # cat ifcfg-em3.65
>> DEVICE=em3.65
>> ONBOOT=yes
>> BOOTPROTO=none
>> VLAN=yes
>> IPADDR=10.4.4.57
>> NETMASK=255.255.255.0
>> GATEWAY=10.4.4.250
>> NM_CONTROLLED=no
>>
>> How should I configure the host at the beginning to have ovirtmgmt
>> configured as VLAN tagged and host deploy with no complain?
>>
>> Thanks in advance,
>> Gianluca
>
> Tried also the alternative configuration with ifcfg-vlan65 instead of
> ifcfg-em3.65:
>
> # cat ifcfg-vlan65
> DEVICE=vlan65
> PHYSDEV=em3
> ONBOOT=yes
> BOOTPROTO=none
> VLAN=yes
> IPADDR=10.4.4.57
> NETMASK=255.255.255.0
> GATEWAY=10.4.4.250
> NM_CONTROLLED=no
>
> But I get
> Failed to execute stage 'Setup validation': Interface vlan65 is VLAN
> interface However its configuration is unexpected.
>
> Possibly the involved code is on engine
> /usr/share/otopi/plugins/ovirt-host-deploy/vdsm/bridge.py ?
>
> In host-deploy log:
>
> 2013-03-07 16:31:53 DEBUG otopi.plugins.ovirt_host_deploy.vdsm.bridge
> bridge._getInterfaceForDestination:302 determine interface
>  for 10.4.4.60
> 2013-03-07 16:31:53 DEBUG otopi.plugins.ovirt_host_deploy.vdsm.bridge
> plugin.executeRaw:347 execute: ('/sbin/ip', 'route', 'get'
> , 'to', '10.4.4.60'), executable='None', cwd='None', env=None
> 2013-03-07 16:31:53 DEBUG otopi.plugins.ovirt_host_deploy.vdsm.bridge
> plugin.executeRaw:364 execute-result: ('/sbin/ip', 'route'
> , 'get', 'to', '10.4.4.60'), rc=0
> 2013-03-07 16:31:53 DEBUG otopi.plugins.ovirt_host_deploy.vdsm.bridge
> plugin.execute:411 execute-output: ('/sbin/ip', 'route', '
> get', 'to', '10.4.4.60') stdout:
> 10.4.4.60 dev vlan65  src 10.4.4.57
>     cache
>
> 2013-03-07 16:31:53 DEBUG otopi.plugins.ovirt_host_deploy.vdsm.bridge
> plugin.execute:416 execute-output: ('/sbin/ip', 'route', '
> get', 'to', '10.4.4.60') stderr:
>
>
> 2013-03-07 16:31:53 DEBUG otopi.plugins.ovirt_host_deploy.vdsm.bridge
> bridge._getInterfaceForDestination:337 interface for 10.4.
> 4.60 is vlan65
> 2013-03-07 16:31:53 DEBUG otopi.context context._executeMethod:130
> method exception
> Traceback (most recent call last):
>   File "/tmp/ovirt-xz8p0a0BfX/pythonlib/otopi/context.py", line 120,
> in _executeMethod
>     method['method']()
>   File "/tmp/ovirt-xz8p0a0BfX/otopi-plugins/ovirt-host-deploy/vdsm/bridge.py",
> line 733, in _validation
>     self._getVlanMasterDevice(name=interface)
>   File "/tmp/ovirt-xz8p0a0BfX/otopi-plugins/ovirt-host-deploy/vdsm/bridge.py",
> line 393, in _getVlanMasterDevice
>     interface=name,
> RuntimeError: Interface vlan65 is VLAN interface However its
> configuration is unexpected
> 2013-03-07 16:31:53 ERROR otopi.context context._executeMethod:139
> Failed to execute stage 'Setup validation': Interface vlan65 is VLAN
> interface However its configuration is unexpected
>
>
> Do I have perhaps to name it ovirtmgmt from the beginning?
>
> Gianluca

I'm all but a python expert.....

but I think these blocks in
/usr/share/otopi/plugins/ovirt-host-deploy/vdsm/bridge.py are the ones
involved

...
    _RE_VLAN_ID = re.compile(
        flags=re.VERBOSE,
        pattern=r"""
            .*
            VID: ([0-9]+)
            .*
            """
    )
    _RE_VLAN_ID_VLANID = 1

    _RE_VLAN_DEVICE = re.compile(
        flags=re.VERBOSE,
        pattern=r"""
            ^
            Device:
            \s+
            (\S+)
            \s*
            $
            """
    )
    _RE_VLAN_DEVICE_DEVICE = 1

...


    def _getVlanMasterDevice(self, name):
        interface = None
        vlanid = None
        try:
            with open(
                os.path.join(
                    '/proc/net/vlan',
                    name
                ),
                'r'
            ) as f:
                for line in f:
                    m = self._RE_VLAN_ID.match(line)
                    if m is not None:
                        vlanid = m.group(self._RE_VLAN_ID_VLANID)
                    else:
                        m = self._RE_VLAN_DEVICE.match(line)
                        if m is not None:
                            interface = m.group(self._RE_VLAN_DEVICE_DEVICE)

            if interface is None or vlanid is None:
                raise RuntimeError(
...

In my case:
# cat /proc/net/vlan/vlan65
vlan65  VID: 65 REORDER_HDR: 1  dev->priv_flags: 1
         total frames received         1910
          total bytes received      1319518
      Broadcast/Multicast Rcvd            4

      total frames transmitted         2232
       total bytes transmitted       426338
Device: em3
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
 EGRESS priority mappings:


More information about the Users mailing list