Re: [PATCH net-next] selftests: forwarding: Add suppport to create veth interfaces

2018-03-04 Thread David Ahern
On 3/4/18 1:14 AM, Ido Schimmel wrote:
> On Fri, Mar 02, 2018 at 08:45:53AM -0800, David Ahern wrote:
>> For tests using veth interfaces, the test infrastructure can create
>> the netdevs if they do not exist. Arguably this is a preferred approach
>> since the tests require p$N and p$(N+1) to be pairs.
>>
>> Signed-off-by: David Ahern 
> 
> [...]
> 
>> diff --git a/tools/testing/selftests/net/forwarding/lib.sh 
>> b/tools/testing/selftests/net/forwarding/lib.sh
>> index d0af52109360..2ce98c6a8c25 100644
>> --- a/tools/testing/selftests/net/forwarding/lib.sh
>> +++ b/tools/testing/selftests/net/forwarding/lib.sh
>> @@ -76,6 +76,39 @@ done
>>  
>> ##
>>  # Network interfaces configuration
>>  
>> +create_netif_veth()
>> +{
>> +local i
>> +
>> +for i in $(eval echo {1..$NUM_NETIFS}); do
>> +j=$((i+1))
> 
> local j=$((i+1)) and drop a line.

not sure how it drops a line but added the 'local' for j since it was
missing.


> 
>> +ip link show dev ${NETIFS[p$i]} &> /dev/null
>> +if [[ $? -ne 0 ]]; then
>> +ip link add ${NETIFS[p$i]} type veth peer name 
>> ${NETIFS[p$j]}
> 
> Need to break this one. FWIW, I have this in my config:

going for readability over strict line lengths. Wrapped in v2.


> 
> $ cat ~/.vim/after/ftplugin/sh.vim
> ...
> highlight OverLength ctermbg=red ctermfg=white
> match OverLength /\%81v.\+/
> 
> Cool patch! Tested on my machine.
> 
>> +if [[ $? -ne 0 ]]; then
>> +echo "Failed to create netif"
>> +exit 1
>> +fi
>> +fi
>> +i=$j
>> +done
>> +}
>> +
>> +create_netif()
>> +{
>> +case "$NETIF_TYPE" in
>> +veth) create_netif_veth
>> +  ;;
>> +*) echo "Can not create interfaces of type \'$NETIF_TYPE\'"
>> +   exit 1
>> +   ;;
>> +esac
>> +}
>> +
>> +if [[ "$NETIF_CREATE" = "yes" ]]; then
>> +create_netif
>> +fi
>> +
>>  for i in $(eval echo {1..$NUM_NETIFS}); do
>>  ip link show dev ${NETIFS[p$i]} &> /dev/null
>>  if [[ $? -ne 0 ]]; then
>> -- 
>> 2.11.0
>>



Re: [PATCH net-next] selftests: forwarding: Add suppport to create veth interfaces

2018-03-04 Thread Ido Schimmel
On Fri, Mar 02, 2018 at 08:45:53AM -0800, David Ahern wrote:
> For tests using veth interfaces, the test infrastructure can create
> the netdevs if they do not exist. Arguably this is a preferred approach
> since the tests require p$N and p$(N+1) to be pairs.
> 
> Signed-off-by: David Ahern 

[...]

> diff --git a/tools/testing/selftests/net/forwarding/lib.sh 
> b/tools/testing/selftests/net/forwarding/lib.sh
> index d0af52109360..2ce98c6a8c25 100644
> --- a/tools/testing/selftests/net/forwarding/lib.sh
> +++ b/tools/testing/selftests/net/forwarding/lib.sh
> @@ -76,6 +76,39 @@ done
>  
> ##
>  # Network interfaces configuration
>  
> +create_netif_veth()
> +{
> + local i
> +
> + for i in $(eval echo {1..$NUM_NETIFS}); do
> + j=$((i+1))

local j=$((i+1)) and drop a line.

> + ip link show dev ${NETIFS[p$i]} &> /dev/null
> + if [[ $? -ne 0 ]]; then
> + ip link add ${NETIFS[p$i]} type veth peer name 
> ${NETIFS[p$j]}

Need to break this one. FWIW, I have this in my config:

$ cat ~/.vim/after/ftplugin/sh.vim
...
highlight OverLength ctermbg=red ctermfg=white
match OverLength /\%81v.\+/

Cool patch! Tested on my machine.

> + if [[ $? -ne 0 ]]; then
> + echo "Failed to create netif"
> + exit 1
> + fi
> + fi
> + i=$j
> + done
> +}
> +
> +create_netif()
> +{
> + case "$NETIF_TYPE" in
> + veth) create_netif_veth
> +   ;;
> + *) echo "Can not create interfaces of type \'$NETIF_TYPE\'"
> +exit 1
> +;;
> + esac
> +}
> +
> +if [[ "$NETIF_CREATE" = "yes" ]]; then
> + create_netif
> +fi
> +
>  for i in $(eval echo {1..$NUM_NETIFS}); do
>   ip link show dev ${NETIFS[p$i]} &> /dev/null
>   if [[ $? -ne 0 ]]; then
> -- 
> 2.11.0
> 


[PATCH net-next] selftests: forwarding: Add suppport to create veth interfaces

2018-03-02 Thread David Ahern
For tests using veth interfaces, the test infrastructure can create
the netdevs if they do not exist. Arguably this is a preferred approach
since the tests require p$N and p$(N+1) to be pairs.

Signed-off-by: David Ahern 
---
 .../net/forwarding/forwarding.config.sample|  5 
 tools/testing/selftests/net/forwarding/lib.sh  | 33 ++
 2 files changed, 38 insertions(+)

diff --git a/tools/testing/selftests/net/forwarding/forwarding.config.sample 
b/tools/testing/selftests/net/forwarding/forwarding.config.sample
index ab235c124f20..df54c9eb5100 100644
--- a/tools/testing/selftests/net/forwarding/forwarding.config.sample
+++ b/tools/testing/selftests/net/forwarding/forwarding.config.sample
@@ -14,6 +14,11 @@ NETIFS[p6]=veth5
 NETIFS[p7]=veth6
 NETIFS[p8]=veth7
 
+NETIF_TYPE=veth
+
+# only virtual interfaces (veth) can be created by test infra
+#NETIF_CREATE=yes
+
 ##
 # Defines
 
diff --git a/tools/testing/selftests/net/forwarding/lib.sh 
b/tools/testing/selftests/net/forwarding/lib.sh
index d0af52109360..2ce98c6a8c25 100644
--- a/tools/testing/selftests/net/forwarding/lib.sh
+++ b/tools/testing/selftests/net/forwarding/lib.sh
@@ -76,6 +76,39 @@ done
 ##
 # Network interfaces configuration
 
+create_netif_veth()
+{
+   local i
+
+   for i in $(eval echo {1..$NUM_NETIFS}); do
+   j=$((i+1))
+   ip link show dev ${NETIFS[p$i]} &> /dev/null
+   if [[ $? -ne 0 ]]; then
+   ip link add ${NETIFS[p$i]} type veth peer name 
${NETIFS[p$j]}
+   if [[ $? -ne 0 ]]; then
+   echo "Failed to create netif"
+   exit 1
+   fi
+   fi
+   i=$j
+   done
+}
+
+create_netif()
+{
+   case "$NETIF_TYPE" in
+   veth) create_netif_veth
+ ;;
+   *) echo "Can not create interfaces of type \'$NETIF_TYPE\'"
+  exit 1
+  ;;
+   esac
+}
+
+if [[ "$NETIF_CREATE" = "yes" ]]; then
+   create_netif
+fi
+
 for i in $(eval echo {1..$NUM_NETIFS}); do
ip link show dev ${NETIFS[p$i]} &> /dev/null
if [[ $? -ne 0 ]]; then
-- 
2.11.0