summaryrefslogtreecommitdiffstats
path: root/sbin/route
Commit message (Collapse)AuthorAgeFilesLines
* MFC r315690:ngie2017-03-271-4/+4
| | | | Delete trailing whitespace (no functional change)
* MFC r303374:ae2016-08-141-1/+27
| | | | | | | Due to dropped mbuf in netisr queue route(8) can fall into infinity loop of reading the rtsock's feed. When it used by some scripts, this leads to growing number of not finished route(8) instances and thus growing number of rtsock consumers. Add SIGALRM handler to prevent this.
* MFHgjb2016-03-021-2/+0
|\ | | | | | | Sponsored by: The FreeBSD Foundation
| * DIRDEPS_BUILD: Regenerate without local dependencies.bdrewery2016-02-241-2/+0
| | | | | | | | | | | | | | | | These are no longer needed after the recent 'beforebuild: depend' changes and hooking DIRDEPS_BUILD into a subset of FAST_DEPEND which supports skipping 'make depend'. Sponsored by: EMC / Isilon Storage Division
* | Explicitly add more files to the 'runtime' package.gjb2016-02-091-0/+1
|/ | | | Sponsored by: The FreeBSD Foundation
* Fix /sbin/route to never look up (invalid) interface names through DNSrstone2015-09-171-0/+3
| | | | | | | | | | | | | /sbin/route has a bug where if it is passed an interface name that does not exist, it falls through and winds up interpreting it as a hostname. It fails out eventually, but on a system where DNS lookup is broken you can end up waiting for up to 60 seconds waiting for the DNS lookup to timeout. I'm not quite sure what happens if the DNS lookup somehow succeeds but I doubt that can end well. Reviewed by: markj, cem MFC after: 2 weeks Sponsored by: EMC/Isilon Storage Division
* 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().
OpenPOWER on IntegriCloud