iproute2 add hoplimit parsing and update usage and documentation
- Parse and handle the hoplimit ip route option and add it to the usage line and documentation. - Add the missing reordering ip route option to the usage line. - Add documentation for initcwnd ip route option. Tested by setting hoplimit and retreiving it via "show". Signed-off-by: Gilad Ben-Yossef <gilad@codefidence.com> [ported to HEAD, fixed a bug with hoplimit lock handling, added documentation] Signed-off-by: Ori Finkelman <ori@comsleep.com> Signed-off-by: Yony Amit <yony@comsleep.com>
This commit is contained in:
parent
232642c28c
commit
71e5815105
|
|
@ -1324,7 +1324,17 @@ peers are allowed to send to us.
|
|||
If it is not given, Linux uses the value selected with \verb|sysctl|
|
||||
variable \verb|net/ipv4/tcp_reordering|.
|
||||
|
||||
\item \verb|hoplimit NUMBER|
|
||||
|
||||
--- [2.5.74+ only] Maximum number of hops on the path to this destination.
|
||||
The default is the value selected with the \verb|sysctl| variable
|
||||
\verb|net/ipv4/ip_default_ttl|.
|
||||
|
||||
\item \verb|initcwnd NUMBER|
|
||||
--- [2.5.70+ only] Initial congestion window size for connections to
|
||||
this destination. Actual window size is this value multiplied by the
|
||||
MSS (``Maximal Segment Size'') for same connection. The default is
|
||||
zero, meaning to use the values specified in~\cite{RFC2414}.
|
||||
|
||||
\item \verb|nexthop NEXTHOP|
|
||||
|
||||
|
|
@ -2653,6 +2663,9 @@ http://www.cisco.com/univercd/cc/td/doc/product/software/ios120.
|
|||
\bibitem{RFC-DHCP} R.~Droms.
|
||||
``Dynamic Host Configuration Protocol.'', RFC-2131
|
||||
|
||||
\bibitem{RFC2414} M.~Allman, S.~Floyd, C.~Partridge.
|
||||
``Increasing TCP's Initial Window'', RFC-2414.
|
||||
|
||||
\end{thebibliography}
|
||||
|
||||
|
||||
|
|
|
|||
16
ip/iproute.c
16
ip/iproute.c
|
|
@ -65,10 +65,10 @@ static void usage(void)
|
|||
fprintf(stderr, "INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...\n");
|
||||
fprintf(stderr, "NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS\n");
|
||||
fprintf(stderr, "OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ]\n");
|
||||
fprintf(stderr, " [ rtt TIME ] [ rttvar TIME ]\n");
|
||||
fprintf(stderr, " [ rtt TIME ] [ rttvar TIME ] [reordering NUMBER ]\n");
|
||||
fprintf(stderr, " [ window NUMBER] [ cwnd NUMBER ] [ initcwnd NUMBER ]\n");
|
||||
fprintf(stderr, " [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]\n");
|
||||
fprintf(stderr, " [ rto_min TIME ]\n");
|
||||
fprintf(stderr, " [ rto_min TIME ] [ hoplimit NUMBER ] \n");
|
||||
fprintf(stderr, "TYPE := [ unicast | local | broadcast | multicast | throw |\n");
|
||||
fprintf(stderr, " unreachable | prohibit | blackhole | nat ]\n");
|
||||
fprintf(stderr, "TABLE_ID := [ local | main | default | all | NUMBER ]\n");
|
||||
|
|
@ -763,6 +763,18 @@ int iproute_modify(int cmd, unsigned flags, int argc, char **argv)
|
|||
if (get_unsigned(&mtu, *argv, 0))
|
||||
invarg("\"mtu\" value is invalid\n", *argv);
|
||||
rta_addattr32(mxrta, sizeof(mxbuf), RTAX_MTU, mtu);
|
||||
#ifdef RTAX_HOPLIMIT
|
||||
} else if (strcmp(*argv, "hoplimit") == 0) {
|
||||
unsigned hoplimit;
|
||||
NEXT_ARG();
|
||||
if (strcmp(*argv, "lock") == 0) {
|
||||
mxlock |= (1<<RTAX_HOPLIMIT);
|
||||
NEXT_ARG();
|
||||
}
|
||||
if (get_unsigned(&hoplimit, *argv, 0))
|
||||
invarg("\"hoplimit\" value is invalid\n", *argv);
|
||||
rta_addattr32(mxrta, sizeof(mxbuf), RTAX_HOPLIMIT, hoplimit);
|
||||
#endif
|
||||
#ifdef RTAX_ADVMSS
|
||||
} else if (strcmp(*argv, "advmss") == 0) {
|
||||
unsigned mss;
|
||||
|
|
|
|||
Loading…
Reference in New Issue