All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH iproute2-next 0/4] Cleanup of ip scripts
@ 2021-09-01 20:46 Stephen Hemminger
  2021-09-01 20:46 ` [PATCH iproute2-next 1/4] ip: remove old rtpr script Stephen Hemminger
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Stephen Hemminger @ 2021-09-01 20:46 UTC (permalink / raw)
  To: netdev; +Cc: Stephen Hemminger

Remove several old useless scripts and fix the routel script
by rewriting it.

Stephen Hemminger (4):
  ip: remove old rtpr script
  ip: remove ifcfg script
  ip: remove routef script
  ip: rewrite routel in python

 ip/Makefile       |   2 +-
 ip/ifcfg          | 150 ----------------------------------------------
 ip/routef         |  10 ----
 ip/routel         | 124 ++++++++++++++++++--------------------
 ip/rtpr           |   5 --
 man/man8/ifcfg.8  |  48 ---------------
 man/man8/routef.8 |   1 -
 man/man8/routel.8 |  17 ++----
 man/man8/rtpr.8   |  25 --------
 9 files changed, 64 insertions(+), 318 deletions(-)
 delete mode 100755 ip/ifcfg
 delete mode 100755 ip/routef
 delete mode 100755 ip/rtpr
 delete mode 100644 man/man8/ifcfg.8
 delete mode 100644 man/man8/routef.8
 delete mode 100644 man/man8/rtpr.8

-- 
2.30.2


Stephen Hemminger (4):
  ip: remove old rtpr script
  ip: remove ifcfg script
  ip: remove routef script
  ip: rewrite routel in python

 ip/Makefile       |   2 +-
 ip/ifcfg          | 150 ----------------------------------------------
 ip/routef         |  10 ----
 ip/routel         | 124 ++++++++++++++++++--------------------
 ip/rtpr           |   5 --
 man/man8/ifcfg.8  |  48 ---------------
 man/man8/routef.8 |   1 -
 man/man8/routel.8 |  36 ++++++-----
 man/man8/rtpr.8   |  25 --------
 9 files changed, 79 insertions(+), 322 deletions(-)
 delete mode 100755 ip/ifcfg
 delete mode 100755 ip/routef
 delete mode 100755 ip/rtpr
 delete mode 100644 man/man8/ifcfg.8
 delete mode 100644 man/man8/routef.8
 delete mode 100644 man/man8/rtpr.8

-- 
2.30.2


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH iproute2-next 1/4] ip: remove old rtpr script
  2021-09-01 20:46 [PATCH iproute2-next 0/4] Cleanup of ip scripts Stephen Hemminger
@ 2021-09-01 20:46 ` Stephen Hemminger
  2021-09-01 20:46 ` [PATCH iproute2-next 2/4] ip: remove ifcfg script Stephen Hemminger
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2021-09-01 20:46 UTC (permalink / raw)
  To: netdev; +Cc: Stephen Hemminger

From: Stephen Hemminger <stephen@networkplumber.org>

This script was a one off hack for a special case.
Now that ip commands have better formatting, there is no
real reason for it.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 ip/Makefile     |  2 +-
 ip/rtpr         |  5 -----
 man/man8/rtpr.8 | 25 -------------------------
 3 files changed, 1 insertion(+), 31 deletions(-)
 delete mode 100755 ip/rtpr
 delete mode 100644 man/man8/rtpr.8

diff --git a/ip/Makefile b/ip/Makefile
index 2ae9df89b5a6..a3b4249e7e06 100644
--- a/ip/Makefile
+++ b/ip/Makefile
@@ -18,7 +18,7 @@ RTMONOBJ=rtmon.o
 include ../config.mk
 
 ALLOBJ=$(IPOBJ) $(RTMONOBJ)
-SCRIPTS=ifcfg rtpr routel routef
+SCRIPTS=ifcfg routel routef
 TARGETS=ip rtmon
 
 all: $(TARGETS) $(SCRIPTS)
diff --git a/ip/rtpr b/ip/rtpr
deleted file mode 100755
index 7e48674bcf53..000000000000
--- a/ip/rtpr
+++ /dev/null
@@ -1,5 +0,0 @@
-#! /bin/sh
-# SPDX-License-Identifier: GPL-2.0
-
-exec tr "[\\\\]" "[
-]"
diff --git a/man/man8/rtpr.8 b/man/man8/rtpr.8
deleted file mode 100644
index 87f291ab50ac..000000000000
--- a/man/man8/rtpr.8
+++ /dev/null
@@ -1,25 +0,0 @@
-.TH RTPR 8 "18 September, 2015"
-
-.SH NAME
-rtpr \- replace backslashes with newlines.
-
-.SH DESCRIPTION
-.B rtpr
-is a trivial shell script which converts backslashes in standard input to newlines. It's sole purpose is to be fed with input from
-.B ip
-when executed with it's
-.B --oneline
-flag.
-
-.SH EXAMPLES
-.TP
-ip --oneline address show | rtpr
-Undo oneline converted
-.B ip-address
-output.
-
-.SH SEE ALSO
-.BR ip (8)
-
-.SH AUTHORS
-Stephen Hemminger <shemming@brocade.com>
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH iproute2-next 2/4] ip: remove ifcfg script
  2021-09-01 20:46 [PATCH iproute2-next 0/4] Cleanup of ip scripts Stephen Hemminger
  2021-09-01 20:46 ` [PATCH iproute2-next 1/4] ip: remove old rtpr script Stephen Hemminger
@ 2021-09-01 20:46 ` Stephen Hemminger
  2021-09-01 20:47 ` [PATCH iproute2-next 3/4] ip: remove routef script Stephen Hemminger
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2021-09-01 20:46 UTC (permalink / raw)
  To: netdev; +Cc: Stephen Hemminger

From: Stephen Hemminger <stephen@networkplumber.org>

This script was from olden days of ifcfg.
I don't see any distribution using it and it is time to put
it out to pasture.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 ip/Makefile      |   2 +-
 ip/ifcfg         | 150 -----------------------------------------------
 man/man8/ifcfg.8 |  48 ---------------
 3 files changed, 1 insertion(+), 199 deletions(-)
 delete mode 100755 ip/ifcfg
 delete mode 100644 man/man8/ifcfg.8

diff --git a/ip/Makefile b/ip/Makefile
index a3b4249e7e06..e27dfa097877 100644
--- a/ip/Makefile
+++ b/ip/Makefile
@@ -18,7 +18,7 @@ RTMONOBJ=rtmon.o
 include ../config.mk
 
 ALLOBJ=$(IPOBJ) $(RTMONOBJ)
-SCRIPTS=ifcfg routel routef
+SCRIPTS=routel routef
 TARGETS=ip rtmon
 
 all: $(TARGETS) $(SCRIPTS)
diff --git a/ip/ifcfg b/ip/ifcfg
deleted file mode 100755
index 5b34decd4480..000000000000
--- a/ip/ifcfg
+++ /dev/null
@@ -1,150 +0,0 @@
-#! /bin/sh
-# SPDX-License-Identifier: GPL-2.0
-
-CheckForwarding () {
-  local sbase fwd
-  sbase=/proc/sys/net/ipv4/conf
-  fwd=0
-  if [ -d $sbase ]; then
-    for dir in $sbase/*/forwarding; do
-      fwd=$(( fwd + $(cat "$dir") ))
-    done
-  else
-    fwd=2
-  fi
-  return $fwd
-}
-
-RestartRDISC () {
-  killall -HUP rdisc || rdisc -fs
-}
-
-ABCMaskLen () {
-  local class;
-
-  class=${1%%.*}
-  if [ "$1" = "" -o $class -eq 0 -o $class -ge 224 ]; then return 0
-  elif [ $class -ge 224 ]; then return 0
-  elif [ $class -ge 192 ]; then return 24
-  elif [ $class -ge 128 ]; then return 16
-  else return 8; fi
-}
-
-label="label $1"
-ldev="$1"
-dev=${1%:*}
-if [ "$dev" = "" -o "$1" = "help" ]; then
-  echo "Usage: ifcfg DEV [[add|del [ADDR[/LEN]] [PEER] | stop]" 1>&2
-  echo "       add - add new address" 1>&2
-  echo "       del - delete address" 1>&2
-  echo "       stop - completely disable IP" 1>&2
-  exit 1
-fi
-shift
-
-CheckForwarding
-fwd=$?
-if [ $fwd -ne 0 ]; then
-  echo "Forwarding is ON or its state is unknown ($fwd). OK, No RDISC." 1>&2
-fi
-
-
-deleting=0
-case "$1" in
-add) shift ;;
-stop)
-  if [ "$ldev" != "$dev" ]; then
-    echo "Cannot stop alias $ldev" 1>&2
-    exit 1;
-  fi
-  ip -4 addr flush dev $dev $label || exit 1
-  if [ $fwd -eq 0 ]; then RestartRDISC; fi
-  exit 0 ;;
-del*)
-  deleting=1; shift ;;
-*)
-esac
-
-ipaddr=
-pfxlen=
-if [ "$1" != "" ]; then
-  ipaddr=${1%/*}
-  if [ "$1" != "$ipaddr" ]; then
-    pfxlen=${1#*/}
-  fi
-  if [ "$ipaddr" = "" ]; then
-    echo "$1 is bad IP address." 1>&2
-    exit 1
-  fi
-fi
-shift
-
-peer=$1
-if [ "$peer" != "" ]; then
-  if [ "$pfxlen" != "" -a "$pfxlen" != "32" ]; then
-    echo "Peer address with non-trivial netmask." 1>&2
-    exit 1
-  fi
-  pfx="$ipaddr peer $peer"
-else
-  if [ "$ipaddr" = "" ]; then
-    echo "Missing IP address argument." 1>&2
-    exit 1
-  fi
-  if [ "$pfxlen" = "" ]; then
-    ABCMaskLen $ipaddr
-    pfxlen=$?
-  fi
-  pfx="$ipaddr/$pfxlen"
-fi
-
-if [ "$ldev" = "$dev" -a "$ipaddr" != "" ]; then
-  label=
-fi
-
-if [ $deleting -ne 0 ]; then
-  ip addr del $pfx dev $dev $label || exit 1
-  if [ $fwd -eq 0 ]; then RestartRDISC; fi
-  exit 0
-fi
-
-
-if ! ip link set up dev $dev ; then
-  echo "Error: cannot enable interface $dev." 1>&2
-  exit 1
-fi
-if [ "$ipaddr" = "" ]; then exit 0; fi
-
-if ! arping -q -c 2 -w 3 -D -I $dev $ipaddr ; then
-  echo "Error: some host already uses address $ipaddr on $dev." 1>&2
-  exit 1
-fi
-
-if ! ip address add $pfx brd + dev $dev $label; then
-  echo "Error: failed to add $pfx on $dev." 1>&2
-  exit 1
-fi
-
-arping -q -A -c 1 -I $dev $ipaddr
-noarp=$?
-( sleep 2 ;
-  arping -q -U -c 1 -I $dev $ipaddr ) >/dev/null 2>&1 </dev/null &
-
-ip route add unreachable 224.0.0.0/24 >/dev/null 2>&1
-ip route add unreachable 255.255.255.255 >/dev/null 2>&1
-if [ "`ip link ls $dev | grep -c MULTICAST`" -ge 1 ]; then
-  ip route add 224.0.0.0/4 dev $dev scope global >/dev/null 2>&1
-fi
-
-if [ $fwd -eq 0 ]; then
-  if [ $noarp -eq 0 ]; then
-    ip ro append default dev $dev metric 30000 scope global
-  elif [ "$peer" != "" ]; then
-    if ping -q -c 2 -w 4 $peer ; then
-      ip ro append default via $peer dev $dev metric 30001
-    fi
-  fi
-  RestartRDISC
-fi
-
-exit 0
diff --git a/man/man8/ifcfg.8 b/man/man8/ifcfg.8
deleted file mode 100644
index 1a3786c1b0d9..000000000000
--- a/man/man8/ifcfg.8
+++ /dev/null
@@ -1,48 +0,0 @@
-.TH IFCFG 8 "September 24 2009" "iproute2" "Linux"
-.SH NAME
-ifcfg \- simplistic script which replaces ifconfig IP management
-.SH SYNOPSIS
-.ad l
-.in +8
-.ti -8
-.B ifcfg
-.RI "[ " DEVICE " ] [ " command " ] " ADDRESS " [ " PEER " ] "
-.sp
-
-.SH DESCRIPTION
-This manual page documents briefly the
-.B ifcfg
-command.
-.PP
-This is a simplistic script replacing one option of
-.B ifconfig
-, namely, IP address management. It not only adds
-addresses, but also carries out Duplicate Address Detection RFC-DHCP,
-sends unsolicited ARP to update the caches of other hosts sharing
-the interface, adds some control routes and restarts Router Discovery
-when it is necessary.
-
-.SH IFCONFIG - COMMAND SYNTAX
-
-.SS
-.TP
-.B DEVICE
-- it may have alias, suffix, separated by colon.
-
-.TP
-.B command
-- add, delete or stop.
-
-.TP
-.B ADDRESS
-- optionally followed by prefix length.
-
-.TP
-.B peer
-- optional peer address for pointpoint interfaces.
-
-.SH NOTES
-This script is not suitable for use with IPv6.
-
-.SH SEE ALSO
-.RB "IP Command reference " ip-cref.ps
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH iproute2-next 3/4] ip: remove routef script
  2021-09-01 20:46 [PATCH iproute2-next 0/4] Cleanup of ip scripts Stephen Hemminger
  2021-09-01 20:46 ` [PATCH iproute2-next 1/4] ip: remove old rtpr script Stephen Hemminger
  2021-09-01 20:46 ` [PATCH iproute2-next 2/4] ip: remove ifcfg script Stephen Hemminger
@ 2021-09-01 20:47 ` Stephen Hemminger
  2021-09-01 20:47 ` [PATCH iproute2-next 4/4] ip: rewrite routel in python Stephen Hemminger
  2021-09-06 22:33 ` [PATCH iproute2-next 0/4] Cleanup of ip scripts David Ahern
  4 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2021-09-01 20:47 UTC (permalink / raw)
  To: netdev; +Cc: Stephen Hemminger

From: Stephen Hemminger <stephen@networkplumber.org>

This script is old and limited to IPv4.
Using ip route command directly is better option.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 ip/Makefile       |  2 +-
 ip/routef         | 10 ----------
 man/man8/routef.8 |  1 -
 man/man8/routel.8 | 12 ++----------
 4 files changed, 3 insertions(+), 22 deletions(-)
 delete mode 100755 ip/routef
 delete mode 100644 man/man8/routef.8

diff --git a/ip/Makefile b/ip/Makefile
index e27dfa097877..bcc5f816b319 100644
--- a/ip/Makefile
+++ b/ip/Makefile
@@ -18,7 +18,7 @@ RTMONOBJ=rtmon.o
 include ../config.mk
 
 ALLOBJ=$(IPOBJ) $(RTMONOBJ)
-SCRIPTS=routel routef
+SCRIPTS=routel
 TARGETS=ip rtmon
 
 all: $(TARGETS) $(SCRIPTS)
diff --git a/ip/routef b/ip/routef
deleted file mode 100755
index c251e7b87efd..000000000000
--- a/ip/routef
+++ /dev/null
@@ -1,10 +0,0 @@
-#! /bin/sh
-# SPDX-License-Identifier: GPL-2.0
-
-if [ -z "$*" ] ; then
-	exec ip -4 ro flush  scope global  type unicast
-else
-	echo "Usage: routef"
-	echo
-	echo "This script will flush the IPv4 routing table"
-fi
diff --git a/man/man8/routef.8 b/man/man8/routef.8
deleted file mode 100644
index c2a70598923f..000000000000
--- a/man/man8/routef.8
+++ /dev/null
@@ -1 +0,0 @@
-.so man8/routel.8
diff --git a/man/man8/routel.8 b/man/man8/routel.8
index 2270eacb51fb..b32eeafcf69d 100644
--- a/man/man8/routel.8
+++ b/man/man8/routel.8
@@ -2,21 +2,13 @@
 .SH "NAME"
 .LP
 routel \- list routes with pretty output format
-.br
-routef \- flush routes
 .SH "SYNTAX"
 .LP
 routel [\fItablenr\fP [\fIraw ip args...\fP]]
-.br
-routef
 .SH "DESCRIPTION"
 .LP
-These programs are a set of helper scripts you can use instead of raw iproute2 commands.
-.br
-The routel script will list routes in a format that some might consider easier to interpret then the ip route list equivalent.
-.br
-The routef script does not take any arguments and will simply flush the routing table down the drain. Beware! This means deleting all routes which will make your network unusable!
-
+The routel script will list routes in a format that some might consider easier to interpret
+then the ip route list equivalent.
 .SH "AUTHORS"
 .LP
 The routel script was written by Stephen R. van den Berg <srb@cuci.nl>, 1999/04/18 and donated to the public domain.
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH iproute2-next 4/4] ip: rewrite routel in python
  2021-09-01 20:46 [PATCH iproute2-next 0/4] Cleanup of ip scripts Stephen Hemminger
                   ` (2 preceding siblings ...)
  2021-09-01 20:47 ` [PATCH iproute2-next 3/4] ip: remove routef script Stephen Hemminger
@ 2021-09-01 20:47 ` Stephen Hemminger
  2021-09-06 22:33 ` [PATCH iproute2-next 0/4] Cleanup of ip scripts David Ahern
  4 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2021-09-01 20:47 UTC (permalink / raw)
  To: netdev; +Cc: Stephen Hemminger

From: Stephen Hemminger <stephen@networkplumber.org>

Not sure if anyone uses the routel script. The script was
a combination of ip route, shell and awk doing command scraping.
It is now possible to do this much better using the JSON
output formats and python.

Rewriting also fixes the bug where the old script could not parse
the current output format.  At the end was getting:
/usr/bin/routel: 48: shift: can't shift that many

The new script also has IPv6 as option.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 ip/routel         | 124 +++++++++++++++++++++-------------------------
 man/man8/routel.8 |  30 ++++++++---
 2 files changed, 79 insertions(+), 75 deletions(-)

diff --git a/ip/routel b/ip/routel
index 7056886d0f94..09a901267fb3 100755
--- a/ip/routel
+++ b/ip/routel
@@ -1,72 +1,62 @@
-#!/bin/sh
+#! /usr/bin/env python3
 # SPDX-License-Identifier: GPL-2.0
-
-#
-# Script created by: Stephen R. van den Berg <srb@cuci.nl>, 1999/04/18
-# Donated to the public domain.
-#
-# This script transforms the output of "ip" into more readable text.
-# "ip" is the Linux-advanced-routing configuration tool part of the
-# iproute package.
 #
+# This is simple script to process JSON output from ip route
+# command and format it.  Based on earlier shell script version.
+"""Script to parse ip route output into more readable text."""
+
+import sys
+import json
+import getopt
+import subprocess
+
+
+def usage():
+    '''Print usage and exit'''
+    print("Usage: {} [tablenr [raw ip args...]]".format(sys.argv[0]))
+    sys.exit(64)
+
+
+def main():
+    '''Process the arguments'''
+    family = 'inet'
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], "h46f:", ["help", "family="])
+    except getopt.GetoptError as err:
+        print(err)
+        usage()
+
+    for opt, arg in opts:
+        if opt in ["-h", "--help"]:
+            usage()
+        elif opt == '-6':
+            family = 'inet6'
+        elif opt == "-4":
+            family = 'inet'
+        elif opt in ["-f", "--family"]:
+            family = arg
+        else:
+            assert False, "unhandled option"
+
+    if not args:
+        args = ['0']
+
+    cmd = ['ip', '-f', family, '-j', 'route', 'list', 'table'] + args
+    process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
+    tbl = json.load(process.stdout)
+    if family == 'inet':
+        fmt = '{:15} {:15} {:15} {:8} {:8}{:<16} {}'
+    else:
+        fmt = '{:32} {:32} {:32} {:8} {:8}{:<16} {}'
+
+    # ip route json keys
+    keys = ['dst', 'gateway', 'prefsrc', 'protocol', 'scope', 'dev', 'table']
+    print(fmt.format(*map(lambda x: x.capitalize(), keys)))
 
-test "X-h" = "X$1" && echo "Usage: $0 [tablenr [raw ip args...]]" && exit 64
+    for record in tbl:
+        fields = [record[k] if k in record else '' for k in keys]
+        print(fmt.format(*fields))
 
-test -z "$*" && set 0
 
-ip route list table "$@" |
- while read network rest
- do set xx $rest
-    shift
-    proto=""
-    via=""
-    dev=""
-    scope=""
-    src=""
-    table=""
-    case $network in
-       broadcast|local|unreachable) via=$network
-          network=$1
-          shift
-          ;;
-    esac
-    while test $# != 0
-    do
-       case "$1" in
-          proto|via|dev|scope|src|table)
-             key=$1
-             val=$2
-             eval "$key='$val'"
-             shift 2
-             ;;
-          dead|onlink|pervasive|offload|notify|linkdown|unresolved)
-             shift
-             ;;
-          *)
-             # avoid infinite loop on unknown keyword without value at line end
-             shift
-             shift
-             ;;
-       esac
-    done
-    echo "$network	$via	$src	$proto	$scope	$dev	$table"
- done | awk -F '	' '
-BEGIN {
-   format="%15s%-3s %15s %15s %8s %8s%7s %s\n";
-   printf(format,"target","","gateway","source","proto","scope","dev","tbl");
- }
- { network=$1;
-   mask="";
-   if(match(network,"/"))
-    { mask=" "substr(network,RSTART+1);
-      network=substr(network,0,RSTART);
-    }
-   via=$2;
-   src=$3;
-   proto=$4;
-   scope=$5;
-   dev=$6;
-   table=$7;
-   printf(format,network,mask,via,src,proto,scope,dev,table);
- }
-'
+if __name__ == "__main__":
+    main()
diff --git a/man/man8/routel.8 b/man/man8/routel.8
index b32eeafcf69d..b1668e73615a 100644
--- a/man/man8/routel.8
+++ b/man/man8/routel.8
@@ -1,17 +1,31 @@
-.TH "ROUTEL" "8" "3 Jan, 2008" "iproute2" "Linux"
+.TH ROUTEL 8 "1 Sept, 2021" "iproute2" "Linux"
 .SH "NAME"
-.LP
 routel \- list routes with pretty output format
-.SH "SYNTAX"
-.LP
-routel [\fItablenr\fP [\fIraw ip args...\fP]]
+.SH SYNOPSIS
+.B routel
+.RI "[ " OPTIONS " ]"
+.RI "[ " tablenr
+[ \fIip route options...\fR ] ]
+.P
+.ti 8
+.IR OPTIONS " := {"
+\fB-h\fR | \fB--help\fR |
+[{\fB-f\fR | \fB--family\fR }
+{\fBinet\fR | \fBinet6\fR } |
+\fB-4\fR | \fB-6\fR }
+
 .SH "DESCRIPTION"
 .LP
-The routel script will list routes in a format that some might consider easier to interpret
-then the ip route list equivalent.
+The routel script will list routes in a format that some might consider
+easier to interpret then the
+.B ip
+route list equivalent.
+
 .SH "AUTHORS"
 .LP
-The routel script was written by Stephen R. van den Berg <srb@cuci.nl>, 1999/04/18 and donated to the public domain.
+Rewritten by Stephen Hemminger <stephen@networkplumber.org>.
+.br
+Original script by Stephen R. van den Berg <srb@cuci.nl>.
 .br
 This manual page was written by Andreas Henriksson  <andreas@fatal.se>, for the Debian GNU/Linux system.
 .SH "SEE ALSO"
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH iproute2-next 0/4] Cleanup of ip scripts
  2021-09-01 20:46 [PATCH iproute2-next 0/4] Cleanup of ip scripts Stephen Hemminger
                   ` (3 preceding siblings ...)
  2021-09-01 20:47 ` [PATCH iproute2-next 4/4] ip: rewrite routel in python Stephen Hemminger
@ 2021-09-06 22:33 ` David Ahern
  4 siblings, 0 replies; 6+ messages in thread
From: David Ahern @ 2021-09-06 22:33 UTC (permalink / raw)
  To: Stephen Hemminger, netdev; +Cc: Stephen Hemminger

On 9/1/21 2:46 PM, Stephen Hemminger wrote:
> Remove several old useless scripts and fix the routel script
> by rewriting it.
> 

applied to iproute2-next


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-09-06 22:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-01 20:46 [PATCH iproute2-next 0/4] Cleanup of ip scripts Stephen Hemminger
2021-09-01 20:46 ` [PATCH iproute2-next 1/4] ip: remove old rtpr script Stephen Hemminger
2021-09-01 20:46 ` [PATCH iproute2-next 2/4] ip: remove ifcfg script Stephen Hemminger
2021-09-01 20:47 ` [PATCH iproute2-next 3/4] ip: remove routef script Stephen Hemminger
2021-09-01 20:47 ` [PATCH iproute2-next 4/4] ip: rewrite routel in python Stephen Hemminger
2021-09-06 22:33 ` [PATCH iproute2-next 0/4] Cleanup of ip scripts David Ahern

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.