Commit Graph

168 Commits

Author SHA1 Message Date
christos
a17e9ce771 Add a prog_setsockopt (thanks kre@) 2020-04-02 18:32:31 +00:00
roy
ae92cb1896 route: Enable receive error reporting on the routing socket 2020-03-14 22:26:39 +00:00
kamil
7cd593c092 Avoid undefined behavior
route.c:1523:20, left shift of 1073741824 by 1 places cannot be represented
in type 'int'
2020-02-22 00:42:15 +00:00
roy
b433cf8862 route: address flags are more useful than interface flags for address msgs 2020-01-22 19:22:06 +00:00
roy
cdc408b51e route: Decode the correct flags for interface address messages 2020-01-22 17:55:41 +00:00
roy
99b959ff0d route(8): Show addres for RTM_LOSING
While here, add /* FALLTHROUGH */.
2019-09-02 00:30:01 +00:00
roy
68a5c140d2 route(8): show addrs for RTM_MISS 2019-08-31 18:20:08 +00:00
roy
2b94ade947 route(8): print RTM_CHANGE messages
XXX Pullup -9
2019-08-22 16:10:48 +00:00
roy
5d499f6897 Resolve every route(4) message type before printing anything more about it
other than the type and length.

This solves the issue where RTM_ONEWADDR is received and it tries to
parse route information from it.
2018-08-14 20:53:07 +00:00
roy
68900ca448 Handle the routing socket overflowing gracefully. 2018-03-23 11:57:33 +00:00
christos
97576db071 Use the definitions from the standard header files and replace homebrew
snprintb with the libutil one.
2017-12-13 17:42:44 +00:00
uwe
034a499654 Fix typo in flag name. We should probably just use IFFBITS string
that <net/if.h> defines.

PR bin/52815
2017-12-13 11:31:42 +00:00
ozaki-r
a49d9c85a4 Support -c <count> option for route monitor
route command exits if it receives <count> routing messages where
<count> is a value specified by -c.

The option is useful to get only particular message(s) in a test script.
2017-06-16 04:40:16 +00:00
roy
d8c60740ae Report the PID for the process changing the address. 2017-03-17 16:13:44 +00:00
ozaki-r
09973b35ac Separate nexthop caches from the routing table
By this change, nexthop caches (IP-MAC address pair) are not stored
in the routing table anymore. Instead nexthop caches are stored in
each network interface; we already have lltable/llentry data structure
for this purpose. This change also obsoletes the concept of cloning/cloned
routes. Cloned routes no longer exist while cloning routes still exist
with renamed to connected routes.

Noticeable changes are:
- Nexthop caches aren't listed in route show/netstat -r
  - sysctl(NET_RT_DUMP) doesn't return them
  - If RTF_LLDATA is specified, it returns nexthop caches
- Several definitions of routing flags and messages are removed
  - RTF_CLONING, RTF_XRESOLVE, RTF_LLINFO, RTF_CLONED and RTM_RESOLVE
- RTF_CONNECTED is added
  - It has the same value of RTF_CLONING for backward compatibility
- route's -xresolve, -[no]cloned and -llinfo options are removed
  - -[no]cloning remains because it seems there are users
  - -[no]connected is introduced and recommended
    to be used instead of -[no]cloning
- route show/netstat -r drops some flags
  - 'L' and 'c' are not seen anymore
  - 'C' now indicates a connected route
- Gateway value of a route of an interface address is now not
  a L2 address but "link#N" like a connected (cloning) route
- Proxy ARP: "arp -s ... pub" doesn't create a route

You can know details of behavior changes by seeing diffs under tests/.

Proposed on tech-net and tech-kern:
  http://mail-index.netbsd.org/tech-net/2016/03/11/msg005701.html
2016-04-04 07:37:07 +00:00
christos
9c39ccca16 no need for <sys/mbuf.h> 2016-01-23 21:05:51 +00:00
christos
4f3d9e304d PR/50671: David Binderman: fix memory leak. 2016-01-17 15:59:26 +00:00
roy
a37502b2b6 Add RTF_BROADCAST to mark routes used for the broadcast address when
they are created on the fly. This makes it clear what the route is for
and allows an optimisation in ip_output() by avoiding a call to
in_broadcast() because most of the time we do talk to a host.
It also avoids a needless allocation for the storage of llinfo_arp and
thus vanishes from arp(8) - it showed as incomplete anyway so this
is a nice side effect.

Guard against this and routes marked with RTF_BLACKHOLE in
ip_fastforward().
While here, guard against routes marked with RTF_BLACKHOLE in
ip6_fastforward().
RTF_BROADCAST is IPv4 only, so don't bother checking that here.
2015-03-23 18:33:17 +00:00
roy
43800a7e73 Teach route(8) about RTF_LOCAL. 2015-02-26 09:56:11 +00:00
prlw1
f44489f8dc MKINET6=no build fixes
http://mail-index.netbsd.org/tech-net/2014/12/13/msg004898.html
2014-12-20 13:15:48 +00:00
roy
62cbe5902e Note that RTM_CHANGE can also change the gateway 2014-12-17 10:56:09 +00:00
christos
2bd97efc9a PR/47704: Takahiro HAYASHI: Add -L flag 2014-11-12 03:34:08 +00:00
christos
74d147444a Now that the code can support tags and verbose route printing, enable them.
Also document previously undocumented flags.
2014-11-07 14:57:08 +00:00
christos
30f4c8e6f6 Factor out the netstat route printing code and use it here. There is no
point in having 2 different copies; fixes PR/49371
2014-11-06 21:29:32 +00:00
christos
740c6aa538 use correct function 2013-10-19 15:59:15 +00:00
christos
730b60ec52 use symbolic flags 2013-10-19 15:50:26 +00:00
christos
f304780793 use scopeid functions 2013-10-19 00:39:39 +00:00
christos
77f96119f9 avoid pointer gymnastics 2013-10-18 21:01:00 +00:00
joerg
e240adbd0b Retire OSI network stack. OK core@ 2013-03-01 18:25:13 +00:00
uwe
a855fb9e85 Fix fallout from 1.129 that converted sou::so_foo from unions to
pointers but missed (char *)&soup->so_foo => (char *)soup->so_foo in
mask_addr().  It worked by luck - unless it didn't: due to pointer
numerology on amd64 route add -net ClassC without explicit /24 prefix
length specification would result into /16 destination instead of /24.
2012-10-04 00:01:48 +00:00
christos
1e5d8920de remove useless rump headers. 2012-08-08 14:04:26 +00:00
christos
e101c08658 PR/42179: Christoph Badura: Be a little friendlier about missing args. 2012-03-17 02:13:44 +00:00
christos
76898fae15 Off by one and clarity improvement from Christian Biere 2011-12-26 00:20:43 +00:00
christos
9feffc5f5a PR/45661: Henning Petersen: Overlapping buffer in route.c. 2011-12-24 23:48:17 +00:00
gdt
c9bfbf1142 Move RTF_ANNOUNCE flag so that it no longer conflicts with RTF_PROTO2.
RTF_ANNOUNCE was defined as RTF_PROTO2.  The flag is used to indicated
that host should act as a proxy for a link level arp or ndp request.
(If RTF_PROTO2 is used as an experimental flag (as advertised),
various problems can occur.)

This commit provides a first-class definition with its own bit for
RTF_ANNOUNCE, removes the old aliasing definitions, and adds support
for the new RTF_ANNOUNCE flag to netstat(8) and route(8).,

Also, remove unused RTF_ flags that collide with RTF_PROTO1:
  netinet/icmp6.h defined RTF_PROBEMTU as RTF_PROTO1
  netinet/if_inarp.h defined RTF_USETRAILERS as RTF_PROTO1
  (Neither of these flags are used anywhere.  Both have been removed
  to reduce chances of collision with RTF_PROTO1.)

Figuring this out and the diff are the work of Beverly Schwartz of
BBN.

(Passed release build, boot in VM, with no apparently related atf
failures.)

Approved for Public Release, Distribution Unlimited
This material is based upon work supported by the Defense Advanced
Research Projects Agency and Space and Naval Warfare Systems Center,
Pacific, under Contract No. N66001-09-C-2073.
2011-11-11 15:09:32 +00:00
joerg
f843de8680 Simplify. 2011-10-07 09:56:15 +00:00
joerg
baa8e84b6f Use __dead 2011-08-29 14:34:58 +00:00
joerg
017dd250ef Fix memset usage. 2011-07-01 02:46:24 +00:00
kefren
2715676450 don't compile tag functions if SMALL is defined. Should fix the build 2011-06-22 04:57:28 +00:00
kefren
0c463ade62 Alloc dynamically sockunions in sou.
Teach route(8) about multiple tags. E.G.: -tag 100,20,33
XXX: needs documentation
2011-06-21 14:33:14 +00:00
matt
4d5d6d9aa5 Add a new AF/PF_ROUTE which is 64-bit clean which makes the routing socket
interface (and its associated sysctls) act identically for both 32 and 64 bit
programs.  The old unclean one remains for backward compatibility.
2011-02-01 01:39:19 +00:00
pooka
e3d9b779d8 Convert from RUMP_ACTION to RUMPPRG. 2010-12-13 17:39:47 +00:00
roy
50de1251a3 Support the new RTM_IFINFO and RTM_CHGADDR messages. 2010-11-12 16:32:18 +00:00
pooka
7d1c54af24 adapt to new rumpclient_init() signature 2010-11-05 13:52:41 +00:00
pooka
b10965b180 #ifdef variable correctly 2010-11-04 23:38:18 +00:00
pooka
243f716534 be consistent in what to leave outside of SMALL 2010-11-04 23:37:27 +00:00
pooka
ddce2e059a Support RUMP_ACTION to compile a rump kernel client. 2010-11-04 23:36:10 +00:00
kefren
a7449c28c6 add MPLS clue - mpls and tag keywords 2010-06-26 14:29:36 +00:00
christos
c69676936c PR/40455: Mihai Chelaru: Add noreject noblackhole options 2010-05-12 17:56:13 +00:00
christos
b09dc428f4 parse unsigned long with strtoul not atoi 2008-12-28 20:12:31 +00:00