Merge branch 'iproute2-master' into iproute2-next
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
commit
db71144c0c
|
|
@ -483,43 +483,43 @@ seconds and ms, msec or msecs to specify milliseconds.
|
||||||
|
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI rttvar " TIME " "(2.3.15+ only)"
|
.BI rttvar " TIME " "(Linux 2.3.15+ only)"
|
||||||
the initial RTT variance estimate. Values are specified as with
|
the initial RTT variance estimate. Values are specified as with
|
||||||
.BI rtt
|
.BI rtt
|
||||||
above.
|
above.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI rto_min " TIME " "(2.6.23+ only)"
|
.BI rto_min " TIME " "(Linux 2.6.23+ only)"
|
||||||
the minimum TCP Retransmission TimeOut to use when communicating with this
|
the minimum TCP Retransmission TimeOut to use when communicating with this
|
||||||
destination. Values are specified as with
|
destination. Values are specified as with
|
||||||
.BI rtt
|
.BI rtt
|
||||||
above.
|
above.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI ssthresh " NUMBER " "(2.3.15+ only)"
|
.BI ssthresh " NUMBER " "(Linux 2.3.15+ only)"
|
||||||
an estimate for the initial slow start threshold.
|
an estimate for the initial slow start threshold.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI cwnd " NUMBER " "(2.3.15+ only)"
|
.BI cwnd " NUMBER " "(Linux 2.3.15+ only)"
|
||||||
the clamp for congestion window. It is ignored if the
|
the clamp for congestion window. It is ignored if the
|
||||||
.B lock
|
.B lock
|
||||||
flag is not used.
|
flag is not used.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI initcwnd " NUMBER " "(2.5.70+ only)"
|
.BI initcwnd " NUMBER " "(Linux 2.5.70+ only)"
|
||||||
the initial congestion window size for connections to this destination.
|
the initial congestion window size for connections to this destination.
|
||||||
Actual window size is this value multiplied by the MSS
|
Actual window size is this value multiplied by the MSS
|
||||||
(``Maximal Segment Size'') for same connection. The default is
|
(``Maximal Segment Size'') for same connection. The default is
|
||||||
zero, meaning to use the values specified in RFC2414.
|
zero, meaning to use the values specified in RFC2414.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI initrwnd " NUMBER " "(2.6.33+ only)"
|
.BI initrwnd " NUMBER " "(Linux 2.6.33+ only)"
|
||||||
the initial receive window size for connections to this destination.
|
the initial receive window size for connections to this destination.
|
||||||
Actual window size is this value multiplied by the MSS of the connection.
|
Actual window size is this value multiplied by the MSS of the connection.
|
||||||
The default value is zero, meaning to use Slow Start value.
|
The default value is zero, meaning to use Slow Start value.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI features " FEATURES " (3.18+ only)
|
.BI features " FEATURES " (Linux 3.18+ only)
|
||||||
Enable or disable per-route features. Only available feature at this
|
Enable or disable per-route features. Only available feature at this
|
||||||
time is
|
time is
|
||||||
.B ecn
|
.B ecn
|
||||||
|
|
@ -531,17 +531,17 @@ also be used even if the
|
||||||
sysctl is set to 0.
|
sysctl is set to 0.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI quickack " BOOL " "(3.11+ only)"
|
.BI quickack " BOOL " "(Linux 3.11+ only)"
|
||||||
Enable or disable quick ack for connections to this destination.
|
Enable or disable quick ack for connections to this destination.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI fastopen_no_cookie " BOOL " "(4.15+ only)"
|
.BI fastopen_no_cookie " BOOL " "(Linux 4.15+ only)"
|
||||||
Enable TCP Fastopen without a cookie for connections to this destination.
|
Enable TCP Fastopen without a cookie for connections to this destination.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI congctl " NAME " "(3.20+ only)"
|
.BI congctl " NAME " "(Linux 3.20+ only)"
|
||||||
.TP
|
.TP
|
||||||
.BI "congctl lock" " NAME " "(3.20+ only)"
|
.BI "congctl lock" " NAME " "(Linux 3.20+ only)"
|
||||||
Sets a specific TCP congestion control algorithm only for a given destination.
|
Sets a specific TCP congestion control algorithm only for a given destination.
|
||||||
If not specified, Linux keeps the current global default TCP congestion control
|
If not specified, Linux keeps the current global default TCP congestion control
|
||||||
algorithm, or the one set from the application. If the modifier
|
algorithm, or the one set from the application. If the modifier
|
||||||
|
|
@ -554,14 +554,14 @@ control algorithm for that destination, thus it will be enforced/guaranteed to
|
||||||
use the proposed algorithm.
|
use the proposed algorithm.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI advmss " NUMBER " "(2.3.15+ only)"
|
.BI advmss " NUMBER " "(Linux 2.3.15+ only)"
|
||||||
the MSS ('Maximal Segment Size') to advertise to these
|
the MSS ('Maximal Segment Size') to advertise to these
|
||||||
destinations when establishing TCP connections. If it is not given,
|
destinations when establishing TCP connections. If it is not given,
|
||||||
Linux uses a default value calculated from the first hop device MTU.
|
Linux uses a default value calculated from the first hop device MTU.
|
||||||
(If the path to these destination is asymmetric, this guess may be wrong.)
|
(If the path to these destination is asymmetric, this guess may be wrong.)
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI reordering " NUMBER " "(2.3.15+ only)"
|
.BI reordering " NUMBER " "(Linux 2.3.15+ only)"
|
||||||
Maximal reordering on the path to this destination.
|
Maximal reordering on the path to this destination.
|
||||||
If it is not given, Linux uses the value selected with
|
If it is not given, Linux uses the value selected with
|
||||||
.B sysctl
|
.B sysctl
|
||||||
|
|
@ -782,7 +782,7 @@ is a set of encapsulation attributes specific to the
|
||||||
.IR SEG6_ACTION " [ "
|
.IR SEG6_ACTION " [ "
|
||||||
.IR SEG6_ACTION_PARAM " ] "
|
.IR SEG6_ACTION_PARAM " ] "
|
||||||
- Operation to perform on matching packets.
|
- Operation to perform on matching packets.
|
||||||
The following actions are currently supported (\fB4.14+ only\fR).
|
The following actions are currently supported (\fBLinux 4.14+ only\fR).
|
||||||
.in +2
|
.in +2
|
||||||
|
|
||||||
.B End
|
.B End
|
||||||
|
|
@ -830,7 +830,7 @@ address is set as described in \fBip-sr\fR(8).
|
||||||
.in -8
|
.in -8
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI expires " TIME " "(4.4+ only)"
|
.BI expires " TIME " "(Linux 4.4+ only)"
|
||||||
the route will be deleted after the expires time.
|
the route will be deleted after the expires time.
|
||||||
.B Only
|
.B Only
|
||||||
support IPv6 at present.
|
support IPv6 at present.
|
||||||
|
|
|
||||||
|
|
@ -42,24 +42,22 @@ static void yyerror(char *s)
|
||||||
%nonassoc '!'
|
%nonassoc '!'
|
||||||
|
|
||||||
%%
|
%%
|
||||||
applet: null exprlist
|
applet: exprlist
|
||||||
{
|
{
|
||||||
*yy_ret = $2;
|
*yy_ret = $1;
|
||||||
$$ = $2;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
| null
|
| null
|
||||||
;
|
;
|
||||||
|
|
||||||
null: /* NOTHING */ { $$ = NULL; }
|
null: /* NOTHING */ { $$ = NULL; }
|
||||||
;
|
;
|
||||||
|
|
||||||
exprlist: expr
|
exprlist: expr
|
||||||
| '!' expr
|
| '!' expr
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_NOT, $2);
|
$$ = alloc_node(SSF_NOT, $2);
|
||||||
}
|
}
|
||||||
| '(' exprlist ')'
|
|
||||||
{
|
|
||||||
$$ = $2;
|
|
||||||
}
|
|
||||||
| exprlist '|' expr
|
| exprlist '|' expr
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_OR, $1);
|
$$ = alloc_node(SSF_OR, $1);
|
||||||
|
|
@ -77,13 +75,21 @@ exprlist: expr
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
expr: DCOND HOSTCOND
|
eq: '='
|
||||||
|
| /* nothing */
|
||||||
|
;
|
||||||
|
|
||||||
|
expr: '(' exprlist ')'
|
||||||
|
{
|
||||||
|
$$ = $2;
|
||||||
|
}
|
||||||
|
| DCOND eq HOSTCOND
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_DCOND, $2);
|
$$ = alloc_node(SSF_DCOND, $3);
|
||||||
}
|
}
|
||||||
| SCOND HOSTCOND
|
| SCOND eq HOSTCOND
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_SCOND, $2);
|
$$ = alloc_node(SSF_SCOND, $3);
|
||||||
}
|
}
|
||||||
| DPORT GEQ HOSTCOND
|
| DPORT GEQ HOSTCOND
|
||||||
{
|
{
|
||||||
|
|
@ -101,7 +107,7 @@ expr: DCOND HOSTCOND
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_NOT, alloc_node(SSF_D_GE, $3));
|
$$ = alloc_node(SSF_NOT, alloc_node(SSF_D_GE, $3));
|
||||||
}
|
}
|
||||||
| DPORT '=' HOSTCOND
|
| DPORT eq HOSTCOND
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_DCOND, $3);
|
$$ = alloc_node(SSF_DCOND, $3);
|
||||||
}
|
}
|
||||||
|
|
@ -126,7 +132,7 @@ expr: DCOND HOSTCOND
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_NOT, alloc_node(SSF_S_GE, $3));
|
$$ = alloc_node(SSF_NOT, alloc_node(SSF_S_GE, $3));
|
||||||
}
|
}
|
||||||
| SPORT '=' HOSTCOND
|
| SPORT eq HOSTCOND
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_SCOND, $3);
|
$$ = alloc_node(SSF_SCOND, $3);
|
||||||
}
|
}
|
||||||
|
|
@ -134,7 +140,7 @@ expr: DCOND HOSTCOND
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_NOT, alloc_node(SSF_SCOND, $3));
|
$$ = alloc_node(SSF_NOT, alloc_node(SSF_SCOND, $3));
|
||||||
}
|
}
|
||||||
| DEVNAME '=' DEVCOND
|
| DEVNAME eq DEVCOND
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_DEVCOND, $3);
|
$$ = alloc_node(SSF_DEVCOND, $3);
|
||||||
}
|
}
|
||||||
|
|
@ -142,7 +148,7 @@ expr: DCOND HOSTCOND
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_NOT, alloc_node(SSF_DEVCOND, $3));
|
$$ = alloc_node(SSF_NOT, alloc_node(SSF_DEVCOND, $3));
|
||||||
}
|
}
|
||||||
| FWMARK '=' MARKMASK
|
| FWMARK eq MARKMASK
|
||||||
{
|
{
|
||||||
$$ = alloc_node(SSF_MARKMASK, $3);
|
$$ = alloc_node(SSF_MARKMASK, $3);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ endif
|
||||||
TMP_ERR=`mktemp /tmp/tc_testsuite.XXXXXX`; \
|
TMP_ERR=`mktemp /tmp/tc_testsuite.XXXXXX`; \
|
||||||
TMP_OUT=`mktemp /tmp/tc_testsuite.XXXXXX`; \
|
TMP_OUT=`mktemp /tmp/tc_testsuite.XXXXXX`; \
|
||||||
STD_ERR="$$TMP_ERR" STD_OUT="$$TMP_OUT" \
|
STD_ERR="$$TMP_ERR" STD_OUT="$$TMP_OUT" \
|
||||||
TC="$$i/tc/tc" IP="$$i/ip/ip" DEV="$(DEV)" IPVER="$@" SNAME="$$i" \
|
TC="$$i/tc/tc" IP="$$i/ip/ip" SS=$$i/misc/ss DEV="$(DEV)" IPVER="$@" SNAME="$$i" \
|
||||||
ERRF="$(RESULTS_DIR)/$@.$$o.err" $(KENV) $(PREFIX) tests/$@ > $(RESULTS_DIR)/$@.$$o.out; \
|
ERRF="$(RESULTS_DIR)/$@.$$o.err" $(KENV) $(PREFIX) tests/$@ > $(RESULTS_DIR)/$@.$$o.out; \
|
||||||
if [ "$$?" = "127" ]; then \
|
if [ "$$?" = "127" ]; then \
|
||||||
echo "SKIPPED"; \
|
echo "SKIPPED"; \
|
||||||
|
|
|
||||||
|
|
@ -26,16 +26,17 @@ ts_skip()
|
||||||
exit 127
|
exit 127
|
||||||
}
|
}
|
||||||
|
|
||||||
ts_tc()
|
__ts_cmd()
|
||||||
{
|
{
|
||||||
|
CMD=$1; shift
|
||||||
SCRIPT=$1; shift
|
SCRIPT=$1; shift
|
||||||
DESC=$1; shift
|
DESC=$1; shift
|
||||||
|
|
||||||
$TC $@ 2> $STD_ERR > $STD_OUT
|
$CMD $@ 2> $STD_ERR > $STD_OUT
|
||||||
|
|
||||||
if [ -s $STD_ERR ]; then
|
if [ -s $STD_ERR ]; then
|
||||||
ts_err "${SCRIPT}: ${DESC} failed:"
|
ts_err "${SCRIPT}: ${DESC} failed:"
|
||||||
ts_err "command: $TC $@"
|
ts_err "command: $CMD $@"
|
||||||
ts_err "stderr output:"
|
ts_err "stderr output:"
|
||||||
ts_err_cat $STD_ERR
|
ts_err_cat $STD_ERR
|
||||||
if [ -s $STD_OUT ]; then
|
if [ -s $STD_OUT ]; then
|
||||||
|
|
@ -50,29 +51,19 @@ ts_tc()
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ts_tc()
|
||||||
|
{
|
||||||
|
__ts_cmd "$TC" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
ts_ip()
|
ts_ip()
|
||||||
{
|
{
|
||||||
SCRIPT=$1; shift
|
__ts_cmd "$IP" "$@"
|
||||||
DESC=$1; shift
|
}
|
||||||
|
|
||||||
$IP $@ 2> $STD_ERR > $STD_OUT
|
ts_ss()
|
||||||
RET=$?
|
{
|
||||||
|
__ts_cmd "$SS" "$@"
|
||||||
if [ -s $STD_ERR ] || [ "$RET" != "0" ]; then
|
|
||||||
ts_err "${SCRIPT}: ${DESC} failed:"
|
|
||||||
ts_err "command: $IP $@"
|
|
||||||
ts_err "stderr output:"
|
|
||||||
ts_err_cat $STD_ERR
|
|
||||||
if [ -s $STD_OUT ]; then
|
|
||||||
ts_err "stdout output:"
|
|
||||||
ts_err_cat $STD_OUT
|
|
||||||
fi
|
|
||||||
elif [ -s $STD_OUT ]; then
|
|
||||||
echo "${SCRIPT}: ${DESC} succeeded with output:"
|
|
||||||
cat $STD_OUT
|
|
||||||
else
|
|
||||||
echo "${SCRIPT}: ${DESC} succeeded"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ts_qdisc_available()
|
ts_qdisc_available()
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,48 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. lib/generic.sh
|
||||||
|
|
||||||
|
# % ./misc/ss -Htna
|
||||||
|
# LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
|
||||||
|
# ESTAB 0 0 10.0.0.1:22 10.0.0.1:36266
|
||||||
|
# ESTAB 0 0 10.0.0.1:36266 10.0.0.1:22
|
||||||
|
# ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312
|
||||||
|
export TCPDIAG_FILE="$(dirname $0)/ss1.dump"
|
||||||
|
|
||||||
|
ts_log "[Testing ssfilter]"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match dport = 22" -Htna dport = 22
|
||||||
|
test_on "ESTAB 0 0 10.0.0.1:36266 10.0.0.1:22"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match dport 22" -Htna dport 22
|
||||||
|
test_on "ESTAB 0 0 10.0.0.1:36266 10.0.0.1:22"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match (dport)" -Htna '( dport = 22 )'
|
||||||
|
test_on "ESTAB 0 0 10.0.0.1:36266 10.0.0.1:22"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match src = 0.0.0.0" -Htna src = 0.0.0.0
|
||||||
|
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match src 0.0.0.0" -Htna src 0.0.0.0
|
||||||
|
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match src sport" -Htna src 0.0.0.0 sport = 22
|
||||||
|
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match src and sport" -Htna src 0.0.0.0 and sport = 22
|
||||||
|
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match src and sport and dport" -Htna src 10.0.0.1 and sport = 22 and dport = 50312
|
||||||
|
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match src and sport and (dport)" -Htna 'src 10.0.0.1 and sport = 22 and ( dport = 50312 )'
|
||||||
|
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match src and (sport and dport)" -Htna 'src 10.0.0.1 and ( sport = 22 and dport = 50312 )'
|
||||||
|
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match (src and sport) and dport" -Htna '( src 10.0.0.1 and sport = 22 ) and dport = 50312'
|
||||||
|
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||||
|
|
||||||
|
ts_ss "$0" "Match (src or src) and dst" -Htna '( src 0.0.0.0 or src 10.0.0.1 ) and dst 10.0.0.2'
|
||||||
|
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||||
Loading…
Reference in New Issue