summaryrefslogtreecommitdiffstats
path: root/sbin/route
Commit message (Collapse)AuthorAgeFilesLines
* Add META_MODE support.sjg2015-06-131-0/+21
|\ | | | | | | | | | | | | | | | | | | | | Off by default, build behaves normally. WITH_META_MODE we get auto objdir creation, the ability to start build from anywhere in the tree. Still need to add real targets under targets/ to build packages. Differential Revision: D2796 Reviewed by: brooks imp
| * dirdeps.mk now sets DEP_RELDIRsjg2015-06-081-2/+0
| |
| * Merge sync of headsjg2015-05-271-9/+1
| |\ | |/ |/|
| * Merge from head@274682sjg2014-11-193-9/+14
| |\
| * | Updated dependenciessjg2014-05-161-1/+0
| | |
| * | Updated dependenciessjg2014-05-101-0/+2
| | |
| * | Merge from headsjg2014-05-082-3/+1
| |\ \
| * \ \ Merge headsjg2014-04-283-136/+154
| |\ \ \
| * \ \ \ Merge head@256284sjg2013-10-131-0/+5
| |\ \ \ \
| * \ \ \ \ Merge from headsjg2013-09-052-405/+398
| |\ \ \ \ \
| * | | | | | Updated dependenciessjg2013-03-111-0/+1
| | | | | | |
| * | | | | | Updated dependenciessjg2013-02-161-2/+0
| | | | | | |
| * | | | | | Sync with HEAD.obrien2013-02-083-203/+486
| |\ \ \ \ \ \
| * | | | | | | Sync FreeBSD's bmake branch with Juniper's internal bmake branch.marcel2012-08-221-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Requested by: Simon Gerraty <sjg@juniper.net>
* | | | | | | | Eliminate incorrect IPv6 mask guessing:melifaro2015-01-161-9/+1
| |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RFC 2374 concept of 'IPv6 Aggregatable Global Unicast Address Format' was deprecated by RFC 3587 12 years ago. Before: 15:06 [1] edge# netstat -rn6 | grep 2a02:6b8:: 2a02:6b8::/32 2a02:978:2::1 UGS em0 15:06 [1] edge# route -6n get 2a02:6b8:: route: writing to routing socket: No such process After: 15:07 [1] edge# /usr/obj/usr/src/sbin/route/route -n6 get 2a02:6b8:: route to: 2a02:6b8:: destination: 2a02:6b8:: mask: ffff:ffff:: gateway: 2a02:978:2::1 fib: 0 interface: em0 flags: <UP,GATEWAY,DONE,STATIC> recvpipe sendpipe ssthresh rtt,msec mtu weight expire 0 0 0 0 1500 1 0 MFC after: 2 weeks
* | | | | | | Finish r274175: do control plane MTU tracking.melifaro2014-11-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update route MTU in case of ifnet MTU change. Add new RTF_FIXEDMTU to track explicitly specified MTU. Old behavior: ifconfig em0 mtu 1500->9000 -> all routes traversing em0 do not change MTU. User has to manually update all routes. ifconfig em0 mtu 9000->1500 -> all routes traversing em0 do not change MTU. However, if ip[6]_output finds route with rt_mtu > interface mtu, rt_mtu gets updated. New behavior: ifconfig em0 mtu 1500->9000 -> all interface routes in all fibs gets updated with new MTU unless RTF_FIXEDMTU flag set on them. ifconfig em0 mtu 9000->1500 -> all routes in all fibs gets updated with new MTU unless RTF_FIXEDMTU flag set on them AND rt_mtu is less than ifp mtu. route add ... -mtu XXX automatically sets RTF_FIXEDMTU flag. route change .. -mtu 0 automatically removes RTF_FIXEDMTU flag. PR: 194238 MFC after: 1 month CR: D1125
* | | | | | | Kill custom in_matroute() radix mathing function removing one rte mutex lock.melifaro2014-11-113-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initially in_matrote() in_clsroute() in their current state was introduced by r4105 20 years ago. Instead of deleting inactive routes immediately, we kept them in route table, setting RTPRF_OURS flag and some expire time. After that, either GC came or RTPRF_OURS got removed on first-packet. It was a good solution in that days (and probably another decade after that) to keep TCP metrics. However, after moving metrics to TCP hostcache in r122922, most of in_rmx functionality became unused. It might had been used for flushing icmp-originated routes before rte mutexes/refcounting, but I'm not sure about that. So it looks like this is nearly impossible to make GC do its work nowadays: in_rtkill() ignores non-RTPRF_OURS routes. route can only become RTPRF_OURS after dropping last reference via rtfree() which calls in_clsroute(), which, it turn, ignores UP and non-RTF_DYNAMIC routes. Dynamic routes can still be installed via received redirect, but they have default lifetime (no specific rt_expire) and no one has another trie walker to call RTFREE() on them. So, the changelist: * remove custom rnh_match / rnh_close matching function. * remove all GC functions * partially revert r256695 (proto3 is no more used inside kernel, it is not possible to use rt_expire from user point of view, proto3 support is not complete) * Finish r241884 (similar to this commit) and remove remaining IPv6 parts MFC after: 1 month
* | | | | | | Put "break" after err() to please coverity.melifaro2014-11-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reported by: Coverity CID: 1250795
* | | | | | | Print human-readable error for "route not found" case.melifaro2014-10-311-2/+11
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Submitted by: vsevolod (initial version) MFC after: 2 weeks Sponsored by: Yandex LLC
* | | | | | Fix incorrect netmasks being passed via rtsock.melifaro2014-05-081-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since radix has been ignoring sa_family in passed sockaddrs, no one ever has bothered filling valid sa_family in netmasks. Additionally, radix adjusts sa_len field in every netmask not to compare zero bytes at all. This leads us to rt_mask with sa_family of AF_UNSPEC (-1) and arbitrary sa_len field (0 for default route, for example). However, rtsock have been passing that rt_mask intact for ages, requiring all rtsock consumers to make ther own local hacks. We even have unfixed on in base: do `route -n monitor` in one window and issue `route -n get addr` for some directly-connected address. You will probably see the following: got message of size 304 on Thu May 8 15:06:06 2014 RTM_GET: Report Metrics: len 304, pid: 30493, seq 1, errno 0, flags:<UP,DONE,PINNED> locks: inits: sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA> 10.0.0.0 link#1 (255) ffff ffff ff em0:8.0.27.c5.29.d4 10.0.0.92 _________________^^^^^^^^^^^^^^^^^^ after the change: got message of size 312 on Thu May 8 15:44:07 2014 RTM_GET: Report Metrics: len 312, pid: 2895, seq 1, errno 0, flags:<UP,DONE,PINNED> locks: inits: sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA> 10.0.0.0 link#1 255.255.255.0 em0:8.0.27.c5.29.d4 10.0.0.92 _________________^^^^^^^^^^^^^^^^^^ Sponsored by: Yandex LLC MFC after: 1 month
* | | | | | Use src.opts.mk in preference to bsd.own.mk except where we need stuffimp2014-05-061-1/+1
| |_|_|_|/ |/| | | | | | | | | | | | | | from the latter.
* | | | | When switching variables to flags in r243185 a few cases were missed.bz2014-04-161-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After r263152 this leaves unused variables if route(8) is compiled without INET support. Switch the remaining variable accesses to flags and remove now obsolete variables. Reviewed by: glebius MFC after: 1 week
* | | | | Remove AppleTalk support.glebius2014-03-143-70/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AppleTalk was a network transport protocol for Apple Macintosh devices in 80s and then 90s. Starting with Mac OS X in 2000 the AppleTalk was a legacy protocol and primary networking protocol is TCP/IP. The last Mac OS X release to support AppleTalk happened in 2009. The same year routing equipment vendors (namely Cisco) end their support. Thus, AppleTalk won't be supported in FreeBSD 11.0-RELEASE.
* | | | | Remove IPX support.glebius2014-03-141-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IPX was a network transport protocol in Novell's NetWare network operating system from late 80s and then 90s. The NetWare itself switched to TCP/IP as default transport in 1998. Later, in this century the Novell Open Enterprise Server became successor of Novell NetWare. The last release that claimed to still support IPX was OES 2 in 2007. Routing equipment vendors (e.g. Cisco) discontinued support for IPX in 2011. Thus, IPX won't be supported in FreeBSD 11.0-RELEASE.
* | | | | Bump dates in nestat(1) and route(8) man pages.melifaro2014-01-111-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix several small errors introduced by r260524. Suggested by: glebius MFC after: 2 weeks
* | | | | Add -4/-6 shorthand for -finet/-finet6 in route(8) and netstat(8).melifaro2014-01-103-4/+44
| | | | | | | | | | | | | | | | | | | | MFC after: 2 weeks
* | | | | Do some more sanity checks in route(8): require netmask to havemelifaro2014-01-091-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the same address family as destination. Found by: jmg MFC after: 2 weeks
* | | | | route(1): Pull static data to the top of the file.eadler2013-12-041-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a pre-requisisite to some upcoming changes. Submitted by: Sebastian Huber <sebastian.huber@embedded-brains.de> Discussed on: -hackers
* | | | | route(1): Pull static buffer out of the function and into function scope.eadler2013-12-041-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will make it easier to link as a library. Submitted by: Sebastian Huber <sebastian.huber@embedded-brains.de> Discussed on: -hackers
* | | | | route(1): Pull static buffer out of the function and into function scope.eadler2013-12-041-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will make it easier to link as a library. Submitted by: Sebastian Huber <sebastian.huber@embedded-brains.de> (older version) Discussed on: -hackers
* | | | | route(1): Pull static variable out of the function and into function scope.eadler2013-12-041-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will make it easier to link as a library. Submitted by: Sebastian Huber <sebastian.huber@embedded-brains.de> (older version) Discussed on: -hackers
* | | | | route(1): Pull static buffer out of the function and into function scope.eadler2013-12-041-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will make it easier to link as a library. Submitted by: Sebastian Huber <sebastian.huber@embedded-brains.de> (older version) Discussed on: -hackers
* | | | | Avoid using a static buffer in atalk_ntoa. This will help allow users to ↵eadler2013-12-041-9/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | call route(1) as a library. Submitted by: Sebastian Huber <sebastian.huber@embedded-brains.de> (older version) Discussed on: -hackers Reviwed by: adri (different older version)
* | | | | Add const qualifier where appropriateeadler2013-12-041-2/+2
| | | | | | | | | | | | | | | | | | | | Submitted by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* | | | | Add const qualifier where appropriateeadler2013-12-041-1/+1
| | | | | | | | | | | | | | | | | | | | Submitted by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* | | | | Turn 'n' into a local variable. This is required for additional changes.eadler2013-12-041-1/+2
| | | | | | | | | | | | | | | | | | | | Submitted by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* | | | | Use long explicitly for the time difference.hrs2013-10-181-1/+2
| | | | |
* | | | | - Add relative specification in expiration time.hrs2013-10-173-11/+43
| |_|_|/ |/| | | | | | | | | | | | | | | - Add proto3 option for RTF_PROTO3. - Use %lu for members of struct rt_metrics.
* | | | When destination parameter is missing, exit with a clear synopsis,glebius2013-10-081-0/+5
| |_|/ |/| | | | | | | | | | | | | | | | | | | | instead of writing to kernel and printing EINVAL description. PR: bin/181532 Submitted by: Kurt Jaeger <fbsd-pr opsec.eu> Approved by: re (hrs)
* | | Fix boundary check of sockaddr array.hrs2013-08-011-3/+2
| | | | | | | | | | | | Reported by: uqs
* | | Fix a bug in cp += SA_SIZE() in RTA_* loop. This could preventhrs2013-07-241-8/+7
| | | | | | | | | | | | | | | | | | RTA_IFP from displaying correctly in route get subcommand. Spotted by: dim
* | | - Use getnameinfo() for both of AF_INET and AF_INET6 in routename().hrs2013-07-211-46/+54
| | | | | | | | | | | | - Add missing "static".
* | | - Fix nflag in routename().hrs2013-07-211-10/+33
| | | | | | | | | | | | | | | | | | | | | - Display a AF_LINK address in #linkN when sdl_{nlen,alen,slen) == 0 and sdl_index != 0. - Reduce unnecessary loop in pmsg_addrs(). - Remove iso_ntoa(). This is not used.
* | | - Simplify getaddr() and print_getmsg() by using RTAX_* instead of RTA_*hrs2013-07-201-80/+48
| | | | | | | | | | | | | | | as the argument. - Reduce unnecessary loop in print_getmsg().
* | | Show "default" for the zero-filled address consistently when nflag == 0.hrs2013-07-201-13/+10
| | |
* | | Add cast to (void *) to the following cases to suppress warnings byhrs2013-07-201-24/+23
| | | | | | | | | | | | | | | | | | | | | -Wcast-align. These do not increase the alignment requirement: - rtm = (struct rt_msghdr *)(rtm + rtm->rtm_msglen) - struct sockaddr *sa = &sa0; sX = (struct sockaddr_X *)sa
* | | Fix a gcc warning.hrs2013-07-181-1/+4
| | | | | | | | | | | | Pointy hat to: hrs
* | | Use NET_RT_DUMP.0.FIB leaf node instead of setting td_proc->p_fibnum.hrs2013-07-171-12/+2
| | |
* | | - Add support of MK_INET_SUPPORT=no.hrs2013-07-172-268/+278
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Fix a bug in sodump() which prevented struct sockaddr_in6 from displaying. - Fix a bug in in fiboptlist_csv() which could cause free() of uninitialized pointer. - Style cleanups: . Add missing "static" keywords. . Use an array of struct sockaddr_storage instead of sockunion for rtmsg. . Use err() and errx() instead of pair of fprintf(stderr, "...") + exit(1). . Use nitems() macro. . Various style(9) fixes.
* | | Simplify keywords.h generation.hrs2013-07-171-9/+5
| | |
OpenPOWER on IntegriCloud