Hi list, so since the beginning of this week I've been poking at the last failure [1] in the nwfilter segment of the TCK suite. So, the errors come from libnl although I haven't been able to extract what the true underlying issue is since interface with ID '8' definitely exist on my system. A bit of background (you can either clone the repo or look at the Perl script attached), we're configuring the guest network interface as 'direct' with mode VEPA. IIUC, for proper VEPA support you need a compliant external switch which 1) I don't have 2) upstream CI planned to run in a nested env won't have either. The main issue lies in the test trying to set <virtualport> parameters on the interface. I've tried with regular network interfaces, vlan-tagged interfaces (as one of the other error messages complained about a missing vlan tag - which is something VEPA switches supposedly do on their own), and SR-IOV VFs with no luck. I'd be happy for any networking insights here, but given the setup which had clearly been tested with specialized HW I'd suggest simply disabling the test from the suite for upstream purposes - well, the correct approach would be to introduce a new config option indicating that specialized HW is necessary since currently the test case kind of abuses the config option assigning a virtual interface directly to the guest which in this case is a necessary condition, but not a sufficient one. However, with the Avocado<->TCK joined work happening, I'd rather not spent more time with Perl than necessary. [1] virNetDevVPortProfileOpSetLink:823 : error during virtual port configuration of ifindex 8: No such device or address virNetDevVPortProfileOpCommon:958 : internal error: sending of PortProfileRequest failed. Thanks, Erik
# -*- perl -*- # # Copyright (C) 2010 IBM Corp. # # This program is free software; You can redistribute it and/or modify # it under the GNU General Public License as published by the Free # Software Foundation; either version 2, or (at your option) any # later version # # The file "LICENSE" distributed along with this file provides full # details of the terms and conditions # =pod =head1 NAME nwfilter/300-vsitype.t - verify VSI informatio =head1 DESCRIPTION The test case validates that the corrrect VSI is set in the adjacent switch =cut use strict; use warnings; use Test::More; use Sys::Virt::TCK; use Test::Exception; use File::Spec::Functions qw(catfile catdir rootdir); my $tck = Sys::Virt::TCK->new(); my $conn = eval { $tck->setup(); }; BAIL_OUT "failed to setup test harness: $@" if $@; END { $tck->cleanup if $tck; } if ( ! -e '/usr/sbin/lldptool' ) { $tck->cleanup if $tck; eval "use Test::More skip_all => \"lldptool is not available\";"; } elsif (!$tck->get_host_network_device()) { $tck->cleanup if $tck; eval "use Test::More skip_all => \"no host net device configured\";"; } else { eval "use Test::More tests => 4"; } # create first domain and start it my $xml = $tck->generic_domain(name => "tck", fullos => 1, netmode => "vepa")->as_xml(); my $dom; ok_domain(sub { $dom = $conn->define_domain($xml) }, "created persistent domain object"); diag "Start domain"; $dom->create; ok($dom->get_id() > 0, "running domain has an ID > 0"); diag "Waiting 30 seconds for guest to finish booting"; sleep(30); # ping guest first nic my $mac = get_first_macaddress($dom); diag "mac is $mac"; # check vsi information diag "Verifying VSI information using lldptool"; my $lldptool = `/usr/sbin/lldptool -t -i eth2 -V vdp mode`; diag $lldptool; # check if instance is listed ok($lldptool =~ "instance", "check instance"); ok($lldptool =~ $mac, "check mac as well"); shutdown_vm_gracefully($dom); $dom->undefine(); exit 0;