CVS log for src/sys/netinet/if_ether.c
Up to [FreeBSD] / src / sys / netinet
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Revision 1.240.2.2: download - view: text, markup, annotated - select for diffs
Thu Feb 9 22:54:16 2012 UTC (20 hours, 34 minutes ago) by bz
Branches: RELENG_9
Diff to: previous 1.240.2.1: preferred, colored; branchpoint 1.240: preferred, colored; next MAIN 1.241: preferred, colored
Changes since revision 1.240.2.1: +1 -1 lines
SVN rev 231316 on 2012-02-09 22:54:16Z by bz MFC r230387: Remove a superfluous INET6 check (no opt_inet6.h included anyway).
Revision 1.208.2.21: download - view: text, markup, annotated - select for diffs
Thu Feb 9 22:54:07 2012 UTC (20 hours, 35 minutes ago) by bz
Branches: RELENG_8
Diff to: previous 1.208.2.20: preferred, colored; branchpoint 1.208: preferred, colored; next MAIN 1.209: preferred, colored
Changes since revision 1.208.2.20: +1 -1 lines
SVN rev 231315 on 2012-02-09 22:54:07Z by bz MFC r230387: Remove a superfluous INET6 check (no opt_inet6.h included anyway).
Revision 1.250: download - view: text, markup, annotated - select for diffs
Sun Jan 22 02:13:19 2012 UTC (2 weeks, 5 days ago) by bz
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.249: preferred, colored
Changes since revision 1.249: +1 -1 lines
SVN rev 230442 on 2012-01-22 02:13:19Z by bz Clean up some #endif comments removing from short sections. Add #endif comments to longer, also refining strange ones. Properly use #ifdef rather than #if defined() where possible. Four #if defined(PCBGROUP) occurances (netinet and netinet6) were ignored to avoid conflicts with eventually upcoming changes for RSS. Reported by: bde (most) Reviewed by: bde MFC after: 3 days
Revision 1.249: download - view: text, markup, annotated - select for diffs
Fri Jan 20 17:18:54 2012 UTC (3 weeks ago) by bz
Branches: MAIN
Diff to: previous 1.248: preferred, colored
Changes since revision 1.248: +1 -1 lines
SVN rev 230387 on 2012-01-20 17:18:54Z by bz Remove a superfluous INET6 check (no opt_inet6.h included anyway). MFC after: 3 days
Revision 1.248: download - view: text, markup, annotated - select for diffs
Sun Jan 8 17:25:15 2012 UTC (4 weeks, 5 days ago) by glebius
Branches: MAIN
Diff to: previous 1.247: preferred, colored
Changes since revision 1.247: +19 -10 lines
SVN rev 229816 on 2012-01-08 17:25:15Z by glebius Make it possible to use alternative source hardware address in the ARP datagram generated by arprequest(). If caller doesn't supply the address, then it is either picked from CARP or hardware address of the interface is taken. While here, make several minor fixes: - Hold IF_ADDR_RLOCK(ifp) while traversing address list. - Remove not true comment. - Access internet address and mask via in_ifaddr fields, rather than ifaddr.
Revision 1.247: download - view: text, markup, annotated - select for diffs
Sun Jan 8 13:34:00 2012 UTC (4 weeks, 5 days ago) by glebius
Branches: MAIN
Diff to: previous 1.246: preferred, colored
Changes since revision 1.246: +0 -2 lines
SVN rev 229810 on 2012-01-08 13:34:00Z by glebius Move arprequest() declaration to if_ether.h.
Revision 1.246: download - view: text, markup, annotated - select for diffs
Thu Jan 5 19:00:36 2012 UTC (5 weeks, 1 day ago) by jhb
Branches: MAIN
Diff to: previous 1.245: preferred, colored
Changes since revision 1.245: +3 -3 lines
SVN rev 229621 on 2012-01-05 19:00:36Z by jhb Convert all users of IF_ADDR_LOCK to use new locking macros that specify either a read lock or write lock. Reviewed by: bz MFC after: 2 weeks
Revision 1.245: download - view: text, markup, annotated - select for diffs
Thu Dec 29 15:59:14 2011 UTC (6 weeks, 1 day ago) by glebius
Branches: MAIN
Diff to: previous 1.244: preferred, colored
Changes since revision 1.244: +3 -1 lines
SVN rev 228959 on 2011-12-29 15:59:14Z by glebius Don't fallback to a CARP address in BACKUP state.
Revision 1.244: download - view: text, markup, annotated - select for diffs
Fri Dec 16 12:16:56 2011 UTC (8 weeks ago) by glebius
Branches: MAIN
Diff to: previous 1.243: preferred, colored
Changes since revision 1.243: +12 -20 lines
SVN rev 228571 on 2011-12-16 12:16:56Z by glebius A major overhaul of the CARP implementation. The ip_carp.c was started from scratch, copying needed functionality from the old implemenation on demand, with a thorough review of all code. The main change is that interface layer has been removed from the CARP. Now redundant addresses are configured exactly on the interfaces, they run on. The CARP configuration itself is, as before, configured and read via SIOCSVH/SIOCGVH ioctls. A new prefix created with SIOCAIFADDR or SIOCAIFADDR_IN6 may now be configured to a particular virtual host id, which makes the prefix redundant. ifconfig(8) semantics has been changed too: now one doesn't need to clone carpXX interface, he/she should directly configure a vhid on a Ethernet interface. To supply vhid data from the kernel to an application the getifaddrs(8) function had been changed to pass ifam_data with each address. [1] The new implementation definitely closes all PRs related to carp(4) being an interface, and may close several others. It also allows to run a single redundant IP per interface. Big thanks to Bjoern Zeeb for his help with inet6 part of patch, for idea on using ifam_data and for several rounds of reviewing! PR: kern/117000, kern/126945, kern/126714, kern/120130, kern/117448 Reviewed by: bz Submitted by: bz [1]
Revision 1.243: download - view: text, markup, annotated - select for diffs
Mon Nov 21 13:40:35 2011 UTC (2 months, 2 weeks ago) by glebius
Branches: MAIN
Diff to: previous 1.242: preferred, colored
Changes since revision 1.242: +4 -2 lines
SVN rev 227790 on 2011-11-21 13:40:35Z by glebius Be more informative for "unknown hardware address format" message. Submitted by: Andrzej Tobola <ato iem.pw.edu.pl>
Revision 1.242: download - view: text, markup, annotated - select for diffs
Mon Nov 21 12:07:18 2011 UTC (2 months, 2 weeks ago) by glebius
Branches: MAIN
Diff to: previous 1.241: preferred, colored
Changes since revision 1.241: +13 -12 lines
SVN rev 227785 on 2011-11-21 12:07:18Z by glebius - Reduce severity for all ARP events, that can be triggered from remote machine to LOG_NOTICE. Exception left to "using my IP address". - Fix multicast ARP warning: add newline and also log the bad MAC address. Tested by: Alexander Wittig <wittigal msu.edu>
Revision 1.240.2.1.2.1: download - view: text, markup, annotated - select for diffs
Fri Nov 11 04:20:22 2011 UTC (3 months ago) by kensmith
Branches: RELENG_9_0
CVS tags: RELENG_9_0_0_RELEASE
Diff to: previous 1.240.2.1: preferred, colored; next MAIN 1.240.2.2: preferred, colored
Changes since revision 1.240.2.1: +0 -0 lines
SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release cycle. Approved by: re (implicit)
Revision 1.241: download - view: text, markup, annotated - select for diffs
Mon Nov 7 15:43:11 2011 UTC (3 months ago) by ed
Branches: MAIN
Diff to: previous 1.240: preferred, colored
Changes since revision 1.240: +2 -2 lines
SVN rev 227309 on 2011-11-07 15:43:11Z by ed Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
Revision 1.240.2.1: download - view: text, markup, annotated - select for diffs
Fri Sep 23 00:51:37 2011 UTC (4 months, 2 weeks ago) by kensmith
Branches: RELENG_9
CVS tags: RELENG_9_0_BP
Branch point for: RELENG_9_0
Diff to: previous 1.240: preferred, colored
Changes since revision 1.240: +0 -0 lines
SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith Copy head to stable/9 as part of 9.0-RELEASE release cycle. Approved by: re (implicit)
Revision 1.162.2.9: download - view: text, markup, annotated - select for diffs
Wed Aug 3 04:28:16 2011 UTC (6 months, 1 week ago) by ae
Branches: RELENG_7
Diff to: previous 1.162.2.8: preferred, colored; branchpoint 1.162: preferred, colored; next MAIN 1.163: preferred, colored
Changes since revision 1.162.2.8: +1 -0 lines
SVN rev 224623 on 2011-08-03 04:28:16Z by ae MFC r223753: ARP code reuses mbuf from ARP request to make a reply, but it does not reset rcvif to NULL. Since rcvif is not NULL, ipfw(4) supposes that ARP replies were received on specified interface. Reset rcvif to NULL for ARP replies to fix this issue. PR: kern/131817
Revision 1.208.2.20: download - view: text, markup, annotated - select for diffs
Wed Aug 3 04:27:47 2011 UTC (6 months, 1 week ago) by ae
Branches: RELENG_8
Diff to: previous 1.208.2.19: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.19: +1 -0 lines
SVN rev 224622 on 2011-08-03 04:27:47Z by ae MFC r223753: ARP code reuses mbuf from ARP request to make a reply, but it does not reset rcvif to NULL. Since rcvif is not NULL, ipfw(4) supposes that ARP replies were received on specified interface. Reset rcvif to NULL for ARP replies to fix this issue. PR: kern/131817
Revision 1.208.2.19: download - view: text, markup, annotated - select for diffs
Thu Jul 14 04:21:27 2011 UTC (6 months, 4 weeks ago) by ae
Branches: RELENG_8
Diff to: previous 1.208.2.18: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.18: +7 -5 lines
SVN rev 223995 on 2011-07-14 04:21:27Z by ae MFC r223840: Add again the checking for log_arp_permanent_modify that was by accident removed in the r186119. PR: kern/154831
Revision 1.240: download - view: text, markup, annotated - select for diffs
Thu Jul 7 11:59:51 2011 UTC (7 months ago) by ae
Branches: MAIN
CVS tags: RELENG_9_BP
Branch point for: RELENG_9
Diff to: previous 1.239: preferred, colored
Changes since revision 1.239: +7 -5 lines
SVN rev 223840 on 2011-07-07 11:59:51Z by ae Add again the checking for log_arp_permanent_modify that was by accident removed in the r186119. PR: kern/154831 MFC after: 1 week
Revision 1.239: download - view: text, markup, annotated - select for diffs
Mon Jul 4 05:47:48 2011 UTC (7 months, 1 week ago) by ae
Branches: MAIN
Diff to: previous 1.238: preferred, colored
Changes since revision 1.238: +1 -0 lines
SVN rev 223753 on 2011-07-04 05:47:48Z by ae ARP code reuses mbuf from ARP request to make a reply, but it does not reset rcvif to NULL. Since rcvif is not NULL, ipfw(4) supposes that ARP replies were received on specified interface. Reset rcvif to NULL for ARP replies to fix this issue. PR: kern/131817 Reviewed by: glebius MFC after: 1 month
Revision 1.238: download - view: text, markup, annotated - select for diffs
Sat Jun 18 13:54:36 2011 UTC (7 months, 3 weeks ago) by bz
Branches: MAIN
Diff to: previous 1.237: preferred, colored
Changes since revision 1.237: +1 -1 lines
SVN rev 223261 on 2011-06-18 13:54:36Z by bz Remove a these days incorrect comment left from before new-arp. MFC after: 1 week
Revision 1.237: download - view: text, markup, annotated - select for diffs
Mon Mar 21 09:40:01 2011 UTC (10 months, 3 weeks ago) by jeff
Branches: MAIN
Diff to: previous 1.236: preferred, colored
Changes since revision 1.236: +2 -1 lines
SVN rev 219819 on 2011-03-21 09:40:01Z by jeff - Merge changes to the base system to support OFED. These include a wider arg2 for sysctl, updates to vlan code, IFT_INFINIBAND, and other miscellaneous small features.
Revision 1.162.2.8: download - view: text, markup, annotated - select for diffs
Thu Feb 24 10:45:41 2011 UTC (11 months, 2 weeks ago) by brucec
Branches: RELENG_7
Diff to: previous 1.162.2.7: preferred, colored; branchpoint 1.162: preferred, colored
Changes since revision 1.162.2.7: +1 -1 lines
SVN rev 218993 on 2011-02-24 10:45:41Z by brucec MFC r218909: Fix typos - remove duplicate "the". PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com>
Revision 1.208.2.18: download - view: text, markup, annotated - select for diffs
Thu Feb 24 10:23:22 2011 UTC (11 months, 2 weeks ago) by brucec
Branches: RELENG_8
Diff to: previous 1.208.2.17: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.17: +1 -1 lines
SVN rev 218992 on 2011-02-24 10:23:22Z by brucec MFC r218909: Fix typos - remove duplicate "the". PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com>
Revision 1.236: download - view: text, markup, annotated - select for diffs
Mon Feb 21 09:01:34 2011 UTC (11 months, 2 weeks ago) by brucec
Branches: MAIN
Diff to: previous 1.235: preferred, colored
Changes since revision 1.235: +1 -1 lines
SVN rev 218909 on 2011-02-21 09:01:34Z by brucec Fix typos - remove duplicate "the". PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com> MFC after: 3 days
Revision 1.208.2.17: download - view: text, markup, annotated - select for diffs
Tue Jan 25 20:59:47 2011 UTC (12 months, 2 weeks ago) by jhb
Branches: RELENG_8
Diff to: previous 1.208.2.16: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.16: +3 -3 lines
SVN rev 217848 on 2011-01-25 20:59:47Z by jhb MFC 214675: Don't leak the LLE lock if the arptimer callout is pending or inactive.
Revision 1.235: download - view: text, markup, annotated - select for diffs
Tue Jan 25 17:15:23 2011 UTC (12 months, 2 weeks ago) by thompsa
Branches: MAIN
Diff to: previous 1.234: preferred, colored
Changes since revision 1.234: +2 -2 lines
SVN rev 217829 on 2011-01-25 17:15:23Z by thompsa When matching an incoming ARP against a bridge, ensure both interfaces belong to the same bridge. Submitted by: Alexander Zagrebin
Revision 1.234: download - view: text, markup, annotated - select for diffs
Wed Jan 12 23:07:51 2011 UTC (12 months, 4 weeks ago) by csjp
Branches: MAIN
Diff to: previous 1.233: preferred, colored
Changes since revision 1.233: +1 -1 lines
SVN rev 217333 on 2011-01-12 23:07:51Z by csjp Un-break the build: use the correct format specifier for sizeof()
Revision 1.208.2.16: download - view: text, markup, annotated - select for diffs
Wed Jan 12 20:44:11 2011 UTC (12 months, 4 weeks ago) by gnn
Branches: RELENG_8
Diff to: previous 1.208.2.15: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.15: +55 -16 lines
SVN rev 217329 on 2011-01-12 20:44:11Z by gnn MFC: 215207 Add a queue to hold packets while we await an ARP reply. When a fast machine first brings up some non TCP networking program it is quite possible that we will drop packets due to the fact that only one packet can be held per ARP entry. This leads to packets being missed when a program starts or restarts if the ARP data is not currently in the ARP cache. This code adds a new sysctl, net.link.ether.inet.maxhold, which defines a system wide maximum number of packets to be held in each ARP entry. Up to maxhold packets are queued until an ARP reply is received or the ARP times out. The default setting is the old value of 1 which has been part of the BSD networking code since time immemorial. Expose the time we hold an incomplete ARP entry by adding the sysctl net.link.ether.inet.wait, which defaults to 20 seconds, the value used when the new ARP code was added.. Reviewed by: bz, rpaulo
Revision 1.233: download - view: text, markup, annotated - select for diffs
Wed Jan 12 19:11:17 2011 UTC (12 months, 4 weeks ago) by gnn
Branches: MAIN
Diff to: previous 1.232: preferred, colored
Changes since revision 1.232: +16 -1 lines
SVN rev 217315 on 2011-01-12 19:11:17Z by gnn Fix several bugs in the ARP code related to improperly formatted packets. *) Reject requests with a protocol length not equal to 4. This is IPv4 and there is no reason to accept anything else. *) Reject packets that have a multicast source hardware address. *) Drop requests where the hardware address length is not equal to the hardware address length of the interface. Pointed out by: Rozhuk Ivan MFC after: 1 week
Revision 1.232: download - view: text, markup, annotated - select for diffs
Fri Jan 7 20:02:05 2011 UTC (13 months ago) by gnn
Branches: MAIN
Diff to: previous 1.231: preferred, colored
Changes since revision 1.231: +1 -2 lines
SVN rev 217121 on 2011-01-07 20:02:05Z by gnn Fix a memory leak in ARP queues. Pointed out by: jhb@ MFC after: 2 weeks
Revision 1.231: download - view: text, markup, annotated - select for diffs
Fri Jan 7 18:14:58 2011 UTC (13 months ago) by gnn
Branches: MAIN
Diff to: previous 1.230: preferred, colored
Changes since revision 1.230: +3 -2 lines
SVN rev 217113 on 2011-01-07 18:14:58Z by gnn Adjust ARP hold queue locking. Submitted by: Rozhuk Ivan, jhb MFC after: 2 weeks
Revision 1.162.2.7.6.1: download - view: text, markup, annotated - select for diffs
Tue Dec 21 17:10:29 2010 UTC (13 months, 2 weeks ago) by kensmith
Branches: RELENG_7_4
CVS tags: RELENG_7_4_0_RELEASE
Diff to: previous 1.162.2.7: preferred, colored; next MAIN 1.162.2.8: preferred, colored
Changes since revision 1.162.2.7: +0 -0 lines
SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release. Approved by: re (implicit)
Revision 1.208.2.15.2.1: download - view: text, markup, annotated - select for diffs
Tue Dec 21 17:09:25 2010 UTC (13 months, 2 weeks ago) by kensmith
Branches: RELENG_8_2
CVS tags: RELENG_8_2_0_RELEASE
Diff to: previous 1.208.2.15: preferred, colored; next MAIN 1.208.2.16: preferred, colored
Changes since revision 1.208.2.15: +0 -0 lines
SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release. Approved by: re (implicit)
Revision 1.230: download - view: text, markup, annotated - select for diffs
Tue Nov 30 15:57:00 2010 UTC (14 months, 1 week ago) by glebius
Branches: MAIN
Diff to: previous 1.229: preferred, colored
Changes since revision 1.229: +5 -5 lines
SVN rev 216075 on 2010-11-30 15:57:00Z by glebius Use time_uptime instead of non-monotonic time_second to drive ARP timeouts. Suggested by: bde
Revision 1.208.2.15: download - view: text, markup, annotated - select for diffs
Fri Nov 26 15:45:34 2010 UTC (14 months, 2 weeks ago) by zec
Branches: RELENG_8
CVS tags: RELENG_8_2_BP
Branch point for: RELENG_8_2
Diff to: previous 1.208.2.14: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.14: +0 -2 lines
SVN rev 215870 on 2010-11-26 15:45:34Z by zec MFC r215677: Remove an apparently redundant CURVNET_SET() / CURVNET_RESTORE() pair.
Revision 1.208.2.14: download - view: text, markup, annotated - select for diffs
Wed Nov 24 05:37:12 2010 UTC (14 months, 2 weeks ago) by glebius
Branches: RELENG_8
Diff to: previous 1.208.2.13: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.13: +1 -1 lines
SVN rev 215791 on 2010-11-24 05:37:12Z by glebius MFhead r214508: Revert a small part of the r198301, that is entirely unrelated to the r198301 itself. It also broke the logic of not sending more than one ARP request per second, that consequently lead to a potential problem of flooding network with broadcast packets.
Revision 1.229: download - view: text, markup, annotated - select for diffs
Mon Nov 22 19:32:54 2010 UTC (14 months, 2 weeks ago) by dim
Branches: MAIN
Diff to: previous 1.228: preferred, colored
Changes since revision 1.228: +5 -5 lines
SVN rev 215701 on 2010-11-22 19:32:54Z by dim After some off-list discussion, revert a number of changes to the DPCPU_DEFINE and VNET_DEFINE macros, as these cause problems for various people working on the affected files. A better long-term solution is still being considered. This reversal may give some modules empty set_pcpu or set_vnet sections, but these are harmless. Changes reverted: ------------------------------------------------------------------------ r215318 | dim | 2010-11-14 21:40:55 +0100 (Sun, 14 Nov 2010) | 4 lines Instead of unconditionally emitting .globl's for the __start_set_xxx and __stop_set_xxx symbols, only emit them when the set_vnet or set_pcpu sections are actually defined. ------------------------------------------------------------------------ r215317 | dim | 2010-11-14 21:38:11 +0100 (Sun, 14 Nov 2010) | 3 lines Apply the STATIC_VNET_DEFINE and STATIC_DPCPU_DEFINE macros throughout the tree. ------------------------------------------------------------------------ r215316 | dim | 2010-11-14 21:23:02 +0100 (Sun, 14 Nov 2010) | 2 lines Add macros to define static instances of VNET_DEFINE and DPCPU_DEFINE.
Revision 1.228: download - view: text, markup, annotated - select for diffs
Mon Nov 22 14:16:23 2010 UTC (14 months, 2 weeks ago) by zec
Branches: MAIN
Diff to: previous 1.227: preferred, colored
Changes since revision 1.227: +0 -2 lines
SVN rev 215677 on 2010-11-22 14:16:23Z by zec Remove an apparently redundant CURVNET_SET() / CURVNET_RESTORE() pair. MFC after: 3 days
Revision 1.227: download - view: text, markup, annotated - select for diffs
Sun Nov 14 20:38:11 2010 UTC (14 months, 3 weeks ago) by dim
Branches: MAIN
Diff to: previous 1.226: preferred, colored
Changes since revision 1.226: +5 -5 lines
SVN rev 215317 on 2010-11-14 20:38:11Z by dim Apply the STATIC_VNET_DEFINE and STATIC_DPCPU_DEFINE macros throughout the tree.
Revision 1.226: download - view: text, markup, annotated - select for diffs
Fri Nov 12 22:03:02 2010 UTC (14 months, 4 weeks ago) by gnn
Branches: MAIN
Diff to: previous 1.225: preferred, colored
Changes since revision 1.225: +56 -17 lines
SVN rev 215207 on 2010-11-12 22:03:02Z by gnn Add a queue to hold packets while we await an ARP reply. When a fast machine first brings up some non TCP networking program it is quite possible that we will drop packets due to the fact that only one packet can be held per ARP entry. This leads to packets being missed when a program starts or restarts if the ARP data is not currently in the ARP cache. This code adds a new sysctl, net.link.ether.inet.maxhold, which defines a system wide maximum number of packets to be held in each ARP entry. Up to maxhold packets are queued until an ARP reply is received or the ARP times out. The default setting is the old value of 1 which has been part of the BSD networking code since time immemorial. Expose the time we hold an incomplete ARP entry by adding the sysctl net.link.ether.inet.wait, which defaults to 20 seconds, the value used when the new ARP code was added.. Reviewed by: bz, rpaulo MFC after: 3 weeks
Revision 1.225: download - view: text, markup, annotated - select for diffs
Tue Nov 2 13:00:56 2010 UTC (15 months, 1 week ago) by jhb
Branches: MAIN
Diff to: previous 1.224: preferred, colored
Changes since revision 1.224: +3 -3 lines
SVN rev 214675 on 2010-11-02 13:00:56Z by jhb Don't leak the LLE lock if the arptimer callout is pending or inactive. Reported by: David Rhodus MFC after: 1 month
Revision 1.224: download - view: text, markup, annotated - select for diffs
Fri Oct 29 11:13:42 2010 UTC (15 months, 1 week ago) by glebius
Branches: MAIN
Diff to: previous 1.223: preferred, colored
Changes since revision 1.223: +0 -2 lines
SVN rev 214509 on 2010-10-29 11:13:42Z by glebius Remove meaningless XXXXX, that is a remain of comment, removed in r186200.
Revision 1.223: download - view: text, markup, annotated - select for diffs
Fri Oct 29 10:57:18 2010 UTC (15 months, 1 week ago) by glebius
Branches: MAIN
Diff to: previous 1.222: preferred, colored
Changes since revision 1.222: +1 -1 lines
SVN rev 214508 on 2010-10-29 10:57:18Z by glebius Revert a small part of the r198301, that is entirely unrelated to the r198301 itself. It also broke the logic of not sending more than one ARP request per second, that consequently lead to a potential problem of flooding network with broadcast packets. MFC after: 1 week
Revision 1.208.2.13: download - view: text, markup, annotated - select for diffs
Sat Sep 11 22:02:36 2010 UTC (16 months, 4 weeks ago) by will
Branches: RELENG_8
Diff to: previous 1.208.2.12: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.12: +5 -15 lines
SVN rev 212482 on 2010-09-11 22:02:36Z by will MFC r211157, r211193, r212265, r212266: make it possible to load carp(4) as a kld using function pointer hooks and {pf_,ip,ip6}proto_{un,}register(). Reviewed by: bz Approved by: ken (mentor)
Revision 1.222: download - view: text, markup, annotated - select for diffs
Wed Aug 11 20:18:19 2010 UTC (18 months ago) by will
Branches: MAIN
Diff to: previous 1.221: preferred, colored
Changes since revision 1.221: +3 -4 lines
SVN rev 211193 on 2010-08-11 20:18:19Z by will Unbreak LINT by moving all carp hooks to net/if.c / netinet/ip_carp.h, with the appropriate ifdefs. Reviewed by: bz Approved by: ken (mentor)
Revision 1.221: download - view: text, markup, annotated - select for diffs
Wed Aug 11 00:51:50 2010 UTC (18 months ago) by will
Branches: MAIN
Diff to: previous 1.220: preferred, colored
Changes since revision 1.220: +6 -15 lines
SVN rev 211157 on 2010-08-11 00:51:50Z by will Allow carp(4) to be loaded as a kernel module. Follow precedent set by bridge(4), lagg(4) etc. and make use of function pointers and pf_proto_register() to hook carp into the network stack. Currently, because of the uncertainty about whether the unload path is free of race condition panics, unloads are disallowed by default. Compiling with CARPMOD_CAN_UNLOAD in CFLAGS removes this anti foot shooting measure. This commit requires IP6PROTOSPACER, introduced in r211115. Reviewed by: bz, simon Approved by: ken (mentor) MFC after: 2 weeks
Revision 1.208.2.12: download - view: text, markup, annotated - select for diffs
Fri Aug 6 11:49:52 2010 UTC (18 months ago) by bz
Branches: RELENG_8
Diff to: previous 1.208.2.11: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.11: +3 -5 lines
SVN rev 210928 on 2010-08-06 11:49:52Z by bz MFC r210703: Document the mandatory argument to the arptimer() and nd6_llinfo_timer() functions with a KASSERT(). Note: there is no need to return after panic. In the legacy IP case, only assign the arg after the check, in the IPv6 case, remove the extra checks for the table and interface as they have to be there unless we freed and forgot to cancel the timer. It doesn't matter anyway as we would panic on the NULL pointer deref immediately and the bug is elsewhere. This unifies the code of both address families to some extend. Reviewed by: rwatson
Revision 1.220: download - view: text, markup, annotated - select for diffs
Sat Jul 31 21:33:18 2010 UTC (18 months, 1 week ago) by bz
Branches: MAIN
Diff to: previous 1.219: preferred, colored
Changes since revision 1.219: +3 -5 lines
SVN rev 210703 on 2010-07-31 21:33:18Z by bz Document the mandatory argument to the arptimer() and nd6_llinfo_timer() functions with a KASSERT(). Note: there is no need to return after panic. In the legacy IP case, only assign the arg after the check, in the IPv6 case, remove the extra checks for the table and interface as they have to be there unless we freed and forgot to cancel the timer. It doesn't matter anyway as we would panic on the NULL pointer deref immediately and the bug is elsewhere. This unifies the code of both address families to some extend. Reviewed by: rwatson MFC after: 6 days
Revision 1.208.2.11.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 14 02:09:06 2010 UTC (19 months, 4 weeks ago) by kensmith
Branches: RELENG_8_1
CVS tags: RELENG_8_1_0_RELEASE
Diff to: previous 1.208.2.11: preferred, colored; next MAIN 1.208.2.12: preferred, colored
Changes since revision 1.208.2.11: +0 -0 lines
SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith Copy stable/8 to releng/8.1 in preparation for 8.1-RC1. Approved by: re (implicit)
Revision 1.208.2.11: download - view: text, markup, annotated - select for diffs
Thu May 6 06:44:19 2010 UTC (21 months ago) by bz
Branches: RELENG_8
CVS tags: RELENG_8_1_BP
Branch point for: RELENG_8_1
Diff to: previous 1.208.2.10: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.10: +4 -6 lines
SVN rev 207695 on 2010-05-06 06:44:19Z by bz MFC r207369: MFP4: @176978-176982, 176984, 176990-176994, 177441 "Whitspace" churn after the VIMAGE/VNET whirls. Remove the need for some "init" functions within the network stack, like pim6_init(), icmp_init() or significantly shorten others like ip6_init() and nd6_init(), using static initialization again where possible and formerly missed. Move (most) variables back to the place they used to be before the container structs and VIMAGE_GLOABLS (before r185088) and try to reduce the diff to stable/7 and earlier as good as possible, to help out-of-tree consumers to update from 6.x or 7.x to 8 or 9. This also removes some header file pollution for putatively static global variables. Revert VIMAGE specific changes in ipfilter::ip_auth.c, that are no longer needed. Reviewed by: jhb Discussed with: rwatson Sponsored by: The FreeBSD Foundation Sponsored by: CK Software GmbH
Revision 1.219: download - view: text, markup, annotated - select for diffs
Thu Apr 29 11:52:42 2010 UTC (21 months, 1 week ago) by bz
Branches: MAIN
Diff to: previous 1.218: preferred, colored
Changes since revision 1.218: +4 -6 lines
SVN rev 207369 on 2010-04-29 11:52:42Z by bz MFP4: @176978-176982, 176984, 176990-176994, 177441 "Whitspace" churn after the VIMAGE/VNET whirls. Remove the need for some "init" functions within the network stack, like pim6_init(), icmp_init() or significantly shorten others like ip6_init() and nd6_init(), using static initialization again where possible and formerly missed. Move (most) variables back to the place they used to be before the container structs and VIMAGE_GLOABLS (before r185088) and try to reduce the diff to stable/7 and earlier as good as possible, to help out-of-tree consumers to update from 6.x or 7.x to 8 or 9. This also removes some header file pollution for putatively static global variables. Revert VIMAGE specific changes in ipfilter::ip_auth.c, that are no longer needed. Reviewed by: jhb Discussed with: rwatson Sponsored by: The FreeBSD Foundation Sponsored by: CK Software GmbH MFC after: 6 days
Revision 1.208.2.10: download - view: text, markup, annotated - select for diffs
Wed Apr 21 19:51:22 2010 UTC (21 months, 3 weeks ago) by bz
Branches: RELENG_8
Diff to: previous 1.208.2.9: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.9: +15 -3 lines
SVN rev 207013 on 2010-04-21 19:51:22Z by bz
MFC r206481:
Plug reference leaks in the link-layer code ("new-arp") that previously
prevented the link-layer entry from being freed.
In both in.c and in6.c (though that code path seems to be basically dead)
plug a reference leak in case of a pending callout being drained.
In if_ether.c consistently add a reference before resetting the callout
and in case we canceled a pending one remove the reference for that.
In the final case in arptimer, before freeing the expired entry, remove
the reference again and explicitly call callout_stop() to clear the active
flag.
In nd6.c:nd6_free() we are only ever called from the callout function and
thus need to remove the reference there as well before calling into
llentry_free().
In if_llatbl.c when freeing the entire tables make sure that in case we
cancel a pending callout to remove the reference as well.
Reviewed by: qingli (earlier version)
MFC after: 10 days
Problem observed, patch tested by: simon on ipv6gw.f.o,
Christian Kratzer (ck cksoft.de),
Evgenii Davidov (dado korolev-net.ru)
PR: kern/144564
Configurations still affected: with options FLOWTABLE
Revision 1.218: download - view: text, markup, annotated - select for diffs
Sun Apr 11 16:04:08 2010 UTC (22 months ago) by bz
Branches: MAIN
Diff to: previous 1.217: preferred, colored
Changes since revision 1.217: +15 -3 lines
SVN rev 206481 on 2010-04-11 16:04:08Z by bz
Plug reference leaks in the link-layer code ("new-arp") that previously
prevented the link-layer entry from being freed.
In both in.c and in6.c (though that code path seems to be basically dead)
plug a reference leak in case of a pending callout being drained.
In if_ether.c consistently add a reference before resetting the callout
and in case we canceled a pending one remove the reference for that.
In the final case in arptimer, before freeing the expired entry, remove
the reference again and explicitly call callout_stop() to clear the active
flag.
In nd6.c:nd6_free() we are only ever called from the callout function and
thus need to remove the reference there as well before calling into
llentry_free().
In if_llatbl.c when freeing entire tables make sure that in case we cancel
a pending callout to remove the reference as well.
Reviewed by: qingli (earlier version)
MFC after: 10 days
Problem observed, patch tested by: simon on ipv6gw.f.o,
Christian Kratzer (ck cksoft.de),
Evgenii Davidov (dado korolev-net.ru)
PR: kern/144564
Configurations still affected: with options FLOWTABLE
Revision 1.162.2.7.4.1: download - view: text, markup, annotated - select for diffs
Wed Feb 10 00:26:20 2010 UTC (2 years ago) by kensmith
Branches: RELENG_7_3
CVS tags: RELENG_7_3_0_RELEASE
Diff to: previous 1.162.2.7: preferred, colored; next MAIN 1.162.2.8: preferred, colored
Changes since revision 1.162.2.7: +0 -0 lines
SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process. Approved by: re (implicit)
Revision 1.208.2.9: download - view: text, markup, annotated - select for diffs
Thu Jan 28 16:48:44 2010 UTC (2 years ago) by gnn
Branches: RELENG_8
Diff to: previous 1.208.2.8: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.8: +20 -1 lines
SVN rev 203120 on 2010-01-28 16:48:44Z by gnn MFC r196797: Add ARP statistics to the kernel and netstat.
Revision 1.208.2.8: download - view: text, markup, annotated - select for diffs
Thu Jan 21 10:12:21 2010 UTC (2 years ago) by np
Branches: RELENG_8
Diff to: previous 1.208.2.7: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.7: +2 -2 lines
SVN rev 202739 on 2010-01-21 10:12:21Z by np MFC r201416: Avoid NULL dereference in arpresolve. Requested by: kib@
Revision 1.208.2.7: download - view: text, markup, annotated - select for diffs
Tue Jan 12 00:04:13 2010 UTC (2 years ago) by qingli
Branches: RELENG_8
Diff to: previous 1.208.2.6: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.6: +15 -9 lines
SVN rev 202132 on 2010-01-12 00:04:13Z by qingli MFC r201544 An existing incomplete ARP entry would expire a subsequent statically configured entry of the same host. This bug was due to the expiration timer was not cancelled when installing the static entry. Since there exist a potential race condition with respect to timer cancellation, simply check for the LLE_STATIC bit inside the expiration function instead of cancelling the active timer.
Revision 1.217: download - view: text, markup, annotated - select for diffs
Tue Jan 5 00:35:46 2010 UTC (2 years, 1 month ago) by qingli
Branches: MAIN
Diff to: previous 1.216: preferred, colored
Changes since revision 1.216: +16 -10 lines
SVN rev 201544 on 2010-01-05 00:35:46Z by qingli An existing incomplete ARP entry would expire a subsequent statically configured entry of the same host. This bug was due to the expiration timer was not cancelled when installing the static entry. Since there exist a potential race condition with respect to timer cancellation, simply check for the LLE_STATIC bit inside the expiration function instead of cancelling the active timer. MFC after: 5 days
Revision 1.216: download - view: text, markup, annotated - select for diffs
Sun Jan 3 06:43:13 2010 UTC (2 years, 1 month ago) by np
Branches: MAIN
Diff to: previous 1.215: preferred, colored
Changes since revision 1.215: +2 -2 lines
SVN rev 201416 on 2010-01-03 06:43:13Z by np Avoid NULL dereference in arpresolve.
Revision 1.208.2.6: download - view: text, markup, annotated - select for diffs
Wed Oct 28 21:45:25 2009 UTC (2 years, 3 months ago) by qingli
Branches: RELENG_8
Diff to: previous 1.208.2.5: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.5: +1 -1 lines
SVN rev 198567 on 2009-10-28 21:45:25Z by qingli MFC r198418 Use the correct option name in the preprocessor command to enable or disable diagnostic messages. Reviewed by: ru
Revision 1.208.2.5.2.1: download - view: text, markup, annotated - select for diffs
Sun Oct 25 01:10:29 2009 UTC (2 years, 3 months ago) by kensmith
Branches: RELENG_8_0
CVS tags: RELENG_8_0_0_RELEASE
Diff to: previous 1.208.2.5: preferred, colored; next MAIN 1.208.2.6: preferred, colored
Changes since revision 1.208.2.5: +0 -0 lines
SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure. Approved by: re (implicit)
Revision 1.215: download - view: text, markup, annotated - select for diffs
Fri Oct 23 18:27:34 2009 UTC (2 years, 3 months ago) by qingli
Branches: MAIN
Diff to: previous 1.214: preferred, colored
Changes since revision 1.214: +1 -1 lines
SVN rev 198418 on 2009-10-23 18:27:34Z by qingli Use the correct option name in the preprocessor command to enable or disable diagnostic messages. Reviewed by: ru MFC after: 3 days
Revision 1.208.2.5: download - view: text, markup, annotated - select for diffs
Tue Oct 20 21:36:56 2009 UTC (2 years, 3 months ago) by qingli
Branches: RELENG_8
CVS tags: RELENG_8_0_BP
Branch point for: RELENG_8_0
Diff to: previous 1.208.2.4: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.4: +9 -9 lines
SVN rev 198308 on 2009-10-20 21:36:56Z by qingli MFC 198301 In the ARP callout timer expiration function, the current time_second is compared against the entry expiration time value (that was set based on time_second) to check if the current time is larger than the set expiration time. Due to the +/- timer granularity value, the comparison returns false, causing the alternative code to be executed. The alternative code path freed the memory without removing that entry from the table list, causing a use-after-free bug. Reviewed by: discussed with kmacy Approved by: re Verified by: rnoland, yongari
Revision 1.214: download - view: text, markup, annotated - select for diffs
Tue Oct 20 17:55:42 2009 UTC (2 years, 3 months ago) by qingli
Branches: MAIN
Diff to: previous 1.213: preferred, colored
Changes since revision 1.213: +9 -9 lines
SVN rev 198301 on 2009-10-20 17:55:42Z by qingli In the ARP callout timer expiration function, the current time_second is compared against the entry expiration time value (that was set based on time_second) to check if the current time is larger than the set expiration time. Due to the +/- timer granularity value, the comparison returns false, causing the alternative code to be executed. The alternative code path freed the memory without removing that entry from the table list, causing a use-after-free bug. Reviewed by: discussed with kmacy MFC after: immediately Verified by: rnoland, yongari
Revision 1.208.2.4: download - view: text, markup, annotated - select for diffs
Tue Oct 20 17:44:50 2009 UTC (2 years, 3 months ago) by qingli
Branches: RELENG_8
Diff to: previous 1.208.2.3: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.3: +10 -7 lines
SVN rev 198298 on 2009-10-20 17:44:50Z by qingli MFC r198111 This patch fixes the following issues in the ARP operation: 1. There is a regression issue in the ARP code. The incomplete ARP entry was timing out too quickly (1 second timeout), as such, a new entry is created each time arpresolve() is called. Therefore the maximum attempts made is always 1. Consequently the error code returned to the application is always 0. 2. Set the expiration of each incomplete entry to a 20-second lifetime. 3. Return "incomplete" entries to the application. 4. The return error code was incorrect. Reviewed by: kmacy Approved by: re
Revision 1.213: download - view: text, markup, annotated - select for diffs
Thu Oct 15 06:12:04 2009 UTC (2 years, 3 months ago) by qingli
Branches: MAIN
Diff to: previous 1.212: preferred, colored
Changes since revision 1.212: +10 -7 lines
SVN rev 198111 on 2009-10-15 06:12:04Z by qingli This patch fixes the following issues in the ARP operation: 1. There is a regression issue in the ARP code. The incomplete ARP entry was timing out too quickly (1 second timeout), as such, a new entry is created each time arpresolve() is called. Therefore the maximum attempts made is always 1. Consequently the error code returned to the application is always 0. 2. Set the expiration of each incomplete entry to a 20-second lifetime. 3. Return "incomplete" entries to the application. Reviewed by: kmacy MFC after: 3 days
Revision 1.208.2.3: download - view: text, markup, annotated - select for diffs
Tue Sep 15 22:37:17 2009 UTC (2 years, 4 months ago) by qingli
Branches: RELENG_8
Diff to: previous 1.208.2.2: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.2: +53 -45 lines
SVN rev 197238 on 2009-09-15 22:37:17Z by qingli MFC r197225 This patch enables the node to respond to ARP requests for configured proxy ARP entries. Reviewed by: bz Approved by: re
Revision 1.212: download - view: text, markup, annotated - select for diffs
Tue Sep 15 18:39:27 2009 UTC (2 years, 4 months ago) by qingli
Branches: MAIN
Diff to: previous 1.211: preferred, colored
Changes since revision 1.211: +53 -45 lines
SVN rev 197225 on 2009-09-15 18:39:27Z by qingli This patch enables the node to respond to ARP requests for configured proxy ARP entries. Reviewed by: bz MFC after: immediately
Revision 1.211: download - view: text, markup, annotated - select for diffs
Tue Sep 8 21:17:17 2009 UTC (2 years, 5 months ago) by np
Branches: MAIN
Diff to: previous 1.210: preferred, colored
Changes since revision 1.210: +2 -0 lines
SVN rev 196995 on 2009-09-08 21:17:17Z by np Add arp_update_event. This replaces route_arp_update_event, which has not worked since the arp-v2 rewrite. The event handler will be called with the llentry write-locked and can examine la_flags to determine whether the entry is being added or removed. Reviewed by: gnn, kmacy Approved by: gnn (mentor) MFC after: 1 month
Revision 1.210: download - view: text, markup, annotated - select for diffs
Thu Sep 3 21:10:57 2009 UTC (2 years, 5 months ago) by gnn
Branches: MAIN
Diff to: previous 1.209: preferred, colored
Changes since revision 1.209: +25 -6 lines
SVN rev 196797 on 2009-09-03 21:10:57Z by gnn Add ARP statistics to the kernel and netstat. New counters now exist for: requests sent replies sent requests received replies received packets received total packets dropped due to no ARP entry entrys timed out Duplicate IPs seen The new statistics are seen in the netstat command when it is given the -s command line switch. MFC after: 2 weeks In collaboration with: bz
Revision 1.208.2.2: download - view: text, markup, annotated - select for diffs
Wed Sep 2 16:35:57 2009 UTC (2 years, 5 months ago) by bz
Branches: RELENG_8
Diff to: previous 1.208.2.1: preferred, colored; branchpoint 1.208: preferred, colored
Changes since revision 1.208.2.1: +10 -12 lines
SVN rev 196770 on 2009-09-02 16:35:57Z by bz MFC r196738: In case an upper layer protocol tries to send a packet but the L2 code does not have the ethernet address for the destination within the broadcast domain in the table, we remember the original mbuf in `la_hold' in arpresolve() and send out a different packet with an arp request. In case there will be more upper layer packets to send we will free an earlier one held in `la_hold' and queue the new one. Once we get a packet in, with which we can perfect our arp table entry we send out the original 'on hold' packet, should there be any. Rather than continuing to process the packet that we received, we returned without freeing the packet that came in, which basically means that we leaked an mbuf for every arp request we sent. Rather than freeing the received packet and returning, continue to process the incoming arp packet as well. This should (a) improve some setups, also proxy-arp, in case it was an incoming arp request and (b) resembles the behaviour FreeBSD had from day 1, which alignes with RFC826 "Packet reception" (merge case). Rename 'm0' to 'hold' to make the code more understandable as well as diffable to earlier versions more easily. Handle the link-layer entry 'la' lock comepletely in the block where needed and release it as early as possible, rather than holding it longer, down to the end of the function. Found by: pointyhat, ns1 Bug hunting session with: erwin, simon, rwatson Tested by: simon on cluster machines Reviewed by: ratson, kmacy, julian Approved by: re (kib)
Revision 1.209: download - view: text, markup, annotated - select for diffs
Tue Sep 1 17:53:01 2009 UTC (2 years, 5 months ago) by bz
Branches: MAIN
Diff to: previous 1.208: preferred, colored
Changes since revision 1.208: +10 -12 lines
SVN rev 196738 on 2009-09-01 17:53:01Z by bz In case an upper layer protocol tries to send a packet but the L2 code does not have the ethernet address for the destination within the broadcast domain in the table, we remember the original mbuf in `la_hold' in arpresolve() and send out a different packet with an arp request. In case there will be more upper layer packets to send we will free an earlier one held in `la_hold' and queue the new one. Once we get a packet in, with which we can perfect our arp table entry we send out the original 'on hold' packet, should there be any. Rather than continuing to process the packet that we received, we returned without freeing the packet that came in, which basically means that we leaked an mbuf for every arp request we sent. Rather than freeing the received packet and returning, continue to process the incoming arp packet as well. This should (a) improve some setups, also proxy-arp, in case it was an incoming arp request and (b) resembles the behaviour FreeBSD had from day 1, which alignes with RFC826 "Packet reception" (merge case). Rename 'm0' to 'hold' to make the code more understandable as well as diffable to earlier versions more easily. Handle the link-layer entry 'la' lock comepletely in the block where needed and release it as early as possible, rather than holding it longer, down to the end of the function. Found by: pointyhat, ns1 Bug hunting session with: erwin, simon, rwatson Tested by: simon on cluster machines Reviewed by: ratson, kmacy, julian MFC after: 3 days
Revision 1.137.2.17: download - view: text, markup, annotated - select for diffs
Tue Aug 25 21:51:47 2009 UTC (2 years, 5 months ago) by bz
Branches: RELENG_6
Diff to: previous 1.137.2.16: preferred, colored; branchpoint 1.137: preferred, colored; next MAIN 1.138: preferred, colored
Changes since revision 1.137.2.16: +4 -4 lines
SVN rev 196557 on 2009-08-25 21:51:47Z by bz MFC r185713 (from csjp): in_rtalloc1(9) returns a locked route, so make sure that we use RTFREE_LOCKED() here. This macro makes sure the reference count on the route is being managed properly. MFC r187946: Like with r185713 make sure to not leak a lock as rtalloc1(9) returns a locked route. Thus we have to use RTFREE_LOCKED(9) to get it either rtfree(9)d or the reference count decremented and unlocked depending on the reference count. [Note: the original commit message was bogus here]. RELENG_6 had a few more places that either had changed or were already fixed in HEAD/7 at the time above revisions were done so just fixed them along with the MFCs.
Revision 1.208.2.1: download - view: text, markup, annotated - select for diffs
Mon Aug 3 08:13:06 2009 UTC (2 years, 6 months ago) by kensmith
Branches: RELENG_8
Diff to: previous 1.208: preferred, colored
Changes since revision 1.208: +0 -0 lines
SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith Copy head to stable/8 as part of 8.0 Release cycle. Approved by: re (Implicit)
Revision 1.208: download - view: text, markup, annotated - select for diffs
Sat Aug 1 19:26:27 2009 UTC (2 years, 6 months ago) by rwatson
Branches: MAIN
CVS tags: RELENG_8_BP
Branch point for: RELENG_8
Diff to: previous 1.207: preferred, colored
Changes since revision 1.207: +1 -1 lines
SVN rev 196019 on 2009-08-01 19:26:27Z by rwatson Merge the remainder of kern_vimage.c and vimage.h into vnet.c and vnet.h, we now use jails (rather than vimages) as the abstraction for virtualization management, and what remained was specific to virtual network stacks. Minor cleanups are done in the process, and comments updated to reflect these changes. Reviewed by: bz Approved by: re (vimage blanket)
Revision 1.207: download - view: text, markup, annotated - select for diffs
Mon Jul 27 17:08:06 2009 UTC (2 years, 6 months ago) by qingli
Branches: MAIN
Diff to: previous 1.206: preferred, colored
Changes since revision 1.206: +3 -3 lines
SVN rev 195914 on 2009-07-27 17:08:06Z by qingli
This patch does the following:
- Allow loopback route to be installed for address assigned to
interface of IFF_POINTOPOINT type.
- Install loopback route for an IPv4 interface addreess when the
"useloopback" sysctl variable is enabled. Similarly, install
loopback route for an IPv6 interface address when the sysctl variable
"nd6_useloopback" is enabled. Deleting loopback routes for interface
addresses is unconditional in case these sysctl variables were
disabled after an interface address has been assigned.
Reviewed by: bz
Approved by: re
Revision 1.206: download - view: text, markup, annotated - select for diffs
Thu Jul 16 21:13:04 2009 UTC (2 years, 6 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.205: preferred, colored
Changes since revision 1.205: +4 -4 lines
SVN rev 195727 on 2009-07-16 21:13:04Z by rwatson Remove unused VNET_SET() and related macros; only VNET_GET() is ever actually used. Rename VNET_GET() to VNET() to shorten variable references. Discussed with: bz, julian Reviewed by: bz Approved by: re (kensmith, kib)
Revision 1.205: download - view: text, markup, annotated - select for diffs
Tue Jul 14 22:48:30 2009 UTC (2 years, 6 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.204: preferred, colored
Changes since revision 1.204: +21 -47 lines
SVN rev 195699 on 2009-07-14 22:48:30Z by rwatson Build on Jeff Roberson's linker-set based dynamic per-CPU allocator (DPCPU), as suggested by Peter Wemm, and implement a new per-virtual network stack memory allocator. Modify vnet to use the allocator instead of monolithic global container structures (vinet, ...). This change solves many binary compatibility problems associated with VIMAGE, and restores ELF symbols for virtualized global variables. Each virtualized global variable exists as a "reference copy", and also once per virtual network stack. Virtualized global variables are tagged at compile-time, placing the in a special linker set, which is loaded into a contiguous region of kernel memory. Virtualized global variables in the base kernel are linked as normal, but those in modules are copied and relocated to a reserved portion of the kernel's vnet region with the help of a the kernel linker. Virtualized global variables exist in per-vnet memory set up when the network stack instance is created, and are initialized statically from the reference copy. Run-time access occurs via an accessor macro, which converts from the current vnet and requested symbol to a per-vnet address. When "options VIMAGE" is not compiled into the kernel, normal global ELF symbols will be used instead and indirection is avoided. This change restores static initialization for network stack global variables, restores support for non-global symbols and types, eliminates the need for many subsystem constructors, eliminates large per-subsystem structures that caused many binary compatibility issues both for monitoring applications (netstat) and kernel modules, removes the per-function INIT_VNET_*() macros throughout the stack, eliminates the need for vnet_symmap ksym(2) munging, and eliminates duplicate definitions of virtualized globals under VIMAGE_GLOBALS. Bump __FreeBSD_version and update UPDATING. Portions submitted by: bz Reviewed by: bz, zec Discussed with: gnn, jamie, jeff, jhb, julian, sam Suggested by: peter Approved by: re (kensmith)
Revision 1.204: download - view: text, markup, annotated - select for diffs
Thu Jun 25 11:52:33 2009 UTC (2 years, 7 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.203: preferred, colored
Changes since revision 1.203: +11 -1 lines
SVN rev 194951 on 2009-06-25 11:52:33Z by rwatson Add a new global rwlock, in_ifaddr_lock, which will synchronize use of the in_ifaddrhead and INADDR_HASH address lists. Previously, these lists were used unsynchronized as they were effectively never changed in steady state, but we've seen increasing reports of writer-writer races on very busy VPN servers as core count has gone up (and similar configurations where address lists change frequently and concurrently). For the time being, use rwlocks rather than rmlocks in order to take advantage of their better lock debugging support. As a result, we don't enable ip_input()'s read-locking of INADDR_HASH until an rmlock conversion is complete and a performance analysis has been done. This means that one class of reader-writer races still exists. MFC after: 6 weeks Reviewed by: bz
Revision 1.203: download - view: text, markup, annotated - select for diffs
Wed Jun 24 14:49:26 2009 UTC (2 years, 7 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.202: preferred, colored
Changes since revision 1.202: +1 -0 lines
SVN rev 194837 on 2009-06-24 14:49:26Z by rwatson Add missing unlock of if_addr_mtx when an unmatched ARP packet is received. Reported by: lstewart MFC after: 6 weeks
Revision 1.202: download - view: text, markup, annotated - select for diffs
Wed Jun 24 10:33:35 2009 UTC (2 years, 7 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.201: preferred, colored
Changes since revision 1.201: +14 -2 lines
SVN rev 194820 on 2009-06-24 10:33:35Z by rwatson In ARP input, more consistently acquire and release ifaddr references. MFC after: 6 weeks
Revision 1.201: download - view: text, markup, annotated - select for diffs
Tue Jun 23 17:03:45 2009 UTC (2 years, 7 months ago) by bz
Branches: MAIN
Diff to: previous 1.200: preferred, colored
Changes since revision 1.200: +1 -2 lines
SVN rev 194739 on 2009-06-23 17:03:45Z by bz After cleaning up rt_tables from vnet.h and cleaning up opt_route.h a lot of files no longer need route.h either. Garbage collect them. While here remove now unneeded vnet.h #includes as well.
Revision 1.200: download - view: text, markup, annotated - select for diffs
Mon Jun 8 19:57:35 2009 UTC (2 years, 8 months ago) by bz
Branches: MAIN
Diff to: previous 1.199: preferred, colored
Changes since revision 1.199: +0 -1 lines
SVN rev 193744 on 2009-06-08 19:57:35Z by bz After r193232 rt_tables in vnet.h are no longer indirectly dependent on the ROUTETABLES kernel option thus there is no need to include opt_route.h anymore in all consumers of vnet.h and no longer depend on it for module builds. Remove the hidden include in flowtable.h as well and leave the two explicit #includes in ip_input.c and ip_output.c.
Revision 1.199: download - view: text, markup, annotated - select for diffs
Fri Jun 5 14:55:22 2009 UTC (2 years, 8 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.198: preferred, colored
Changes since revision 1.198: +0 -1 lines
SVN rev 193511 on 2009-06-05 14:55:22Z by rwatson Move "options MAC" from opt_mac.h to opt_global.h, as it's now in GENERIC and used in a large number of files, but also because an increasing number of incorrect uses of MAC calls were sneaking in due to copy-and-paste of MAC-aware code without the associated opt_mac.h include. Discussed with: pjd
Revision 1.198: download - view: text, markup, annotated - select for diffs
Mon Jun 1 10:41:38 2009 UTC (2 years, 8 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.197: preferred, colored
Changes since revision 1.197: +8 -5 lines
SVN rev 193219 on 2009-06-01 10:41:38Z by rwatson
Reimplement the netisr framework in order to support parallel netisr
threads:
- Support up to one netisr thread per CPU, each processings its own
workstream, or set of per-protocol queues. Threads may be bound
to specific CPUs, or allowed to migrate, based on a global policy.
In the future it would be desirable to support topology-centric
policies, such as "one netisr per package".
- Allow each protocol to advertise an ordering policy, which can
currently be one of:
NETISR_POLICY_SOURCE: packets must maintain ordering with respect to
an implicit or explicit source (such as an interface or socket).
NETISR_POLICY_FLOW: make use of mbuf flow identifiers to place work,
as well as allowing protocols to provide a flow generation function
for mbufs without flow identifers (m2flow). Falls back on
NETISR_POLICY_SOURCE if now flow ID is available.
NETISR_POLICY_CPU: allow protocols to inspect and assign a CPU for
each packet handled by netisr (m2cpuid).
- Provide utility functions for querying the number of workstreams
being used, as well as a mapping function from workstream to CPU ID,
which protocols may use in work placement decisions.
- Add explicit interfaces to get and set per-protocol queue limits, and
get and clear drop counters, which query data or apply changes across
all workstreams.
- Add a more extensible netisr registration interface, in which
protocols declare 'struct netisr_handler' structures for each
registered NETISR_ type. These include name, handler function,
optional mbuf to flow ID function, optional mbuf to CPU ID function,
queue limit, and ordering policy. Padding is present to allow these
to be expanded in the future. If no queue limit is declared, then
a default is used.
- Queue limits are now per-workstream, and raised from the previous
IFQ_MAXLEN default of 50 to 256.
- All protocols are updated to use the new registration interface, and
with the exception of netnatm, default queue limits. Most protocols
register as NETISR_POLICY_SOURCE, except IPv4 and IPv6, which use
NETISR_POLICY_FLOW, and will therefore take advantage of driver-
generated flow IDs if present.
- Formalize a non-packet based interface between interface polling and
the netisr, rather than having polling pretend to be two protocols.
Provide two explicit hooks in the netisr worker for start and end
events for runs: netisr_poll() and netisr_pollmore(), as well as a
function, netisr_sched_poll(), to allow the polling code to schedule
netisr execution. DEVICE_POLLING still embeds single-netisr
assumptions in its implementation, so for now if it is compiled into
the kernel, a single and un-bound netisr thread is enforced
regardless of tunable configuration.
In the default configuration, the new netisr implementation maintains
the same basic assumptions as the previous implementation: a single,
un-bound worker thread processes all deferred work, and direct dispatch
is enabled by default wherever possible.
Performance measurement shows a marginal performance improvement over
the old implementation due to the use of batched dequeue.
An rmlock is used to synchronize use and registration/unregistration
using the framework; currently, synchronized use is disabled
(replicating current netisr policy) due to a measurable 3%-6% hit in
ping-pong micro-benchmarking. It will be enabled once further rmlock
optimization has taken place. However, in practice, netisrs are
rarely registered or unregistered at runtime.
A new man page for netisr will follow, but since one doesn't currently
exist, it hasn't been updated.
This change is not appropriate for MFC, although the polling shutdown
handler should be merged to 7-STABLE.
Bump __FreeBSD_version.
Reviewed by: bz
Revision 1.197: download - view: text, markup, annotated - select for diffs
Tue May 5 10:56:12 2009 UTC (2 years, 9 months ago) by zec
Branches: MAIN
Diff to: previous 1.196: preferred, colored
Changes since revision 1.196: +2 -0 lines
SVN rev 191816 on 2009-05-05 10:56:12Z by zec Change the curvnet variable from a global const struct vnet *, previously always pointing to the default vnet context, to a dynamically changing thread-local one. The currvnet context should be set on entry to networking code via CURVNET_SET() macros, and reverted to previous state via CURVNET_RESTORE(). Recursions on curvnet are permitted, though strongly discuouraged. This change should have no functional impact on nooptions VIMAGE kernel builds, where CURVNET_* macros expand to whitespace. The curthread->td_vnet (aka curvnet) variable's purpose is to be an indicator of the vnet context in which the current network-related operation takes place, in case we cannot deduce the current vnet context from any other source, such as by looking at mbuf's m->m_pkthdr.rcvif->if_vnet, sockets's so->so_vnet etc. Moreover, so far curvnet has turned out to be an invaluable consistency checking aid: it helps to catch cases when sockets, ifnets or any other vnet-aware structures may have leaked from one vnet to another. The exact placement of the CURVNET_SET() / CURVNET_RESTORE() macros was a result of an empirical iterative process, whith an aim to reduce recursions on CURVNET_SET() to a minimum, while still reducing the scope of CURVNET_SET() to networking only operations - the alternative would be calling CURVNET_SET() on each system call entry. In general, curvnet has to be set in three typicall cases: when processing socket-related requests from userspace or from within the kernel; when processing inbound traffic flowing from device drivers to upper layers of the networking stack, and when executing timer-driven networking functions. This change also introduces a DDB subcommand to show the list of all vnet instances. Approved by: julian (mentor)
Revision 1.196: download - view: text, markup, annotated - select for diffs
Thu Apr 16 20:30:28 2009 UTC (2 years, 9 months ago) by kmacy
Branches: MAIN
Diff to: previous 1.195: preferred, colored
Changes since revision 1.195: +2 -2 lines
SVN rev 191148 on 2009-04-16 20:30:28Z by kmacy Change if_output to take a struct route as its fourth argument in order to allow passing a cached struct llentry * down to L2 Reviewed by: rwatson
Revision 1.195: download - view: text, markup, annotated - select for diffs
Wed Apr 15 20:49:59 2009 UTC (2 years, 9 months ago) by kmacy
Branches: MAIN
Diff to: previous 1.194: preferred, colored
Changes since revision 1.194: +0 -2 lines
SVN rev 191120 on 2009-04-15 20:49:59Z by kmacy make LLTABLE visible to netinet
Revision 1.162.2.7.2.1: download - view: text, markup, annotated - select for diffs
Wed Apr 15 03:14:26 2009 UTC (2 years, 9 months ago) by kensmith
Branches: RELENG_7_2
CVS tags: RELENG_7_2_0_RELEASE
Diff to: previous 1.162.2.7: preferred, colored; next MAIN 1.162.2.8: preferred, colored
Changes since revision 1.162.2.7: +0 -0 lines
SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE. Approved by: re (implicit)
Revision 1.194: download - view: text, markup, annotated - select for diffs
Sat Apr 11 05:58:58 2009 UTC (2 years, 10 months ago) by zec
Branches: MAIN
Diff to: previous 1.193: preferred, colored
Changes since revision 1.193: +13 -0 lines
SVN rev 190909 on 2009-04-11 05:58:58Z by zec Introduce vnet module registration / initialization framework with dependency tracking and ordering enforcement. With this change, per-vnet initialization functions introduced with r190787 are no longer directly called from traditional initialization functions (which cc in most cases inlined to pre-r190787 code), but are instead registered via the vnet framework first, and are invoked only after all prerequisite modules have been initialized. In the long run, this framework should allow us to both initialize and dismantle multiple vnet instances in a correct order. The problem this change aims to solve is how to replay the initialization sequence of various network stack components, which have been traditionally triggered via different mechanisms (SYSINIT, protosw). Note that this initialization sequence was and still can be subtly different depending on whether certain pieces of code have been statically compiled into the kernel, loaded as modules by boot loader, or kldloaded at run time. The approach is simple - we record the initialization sequence established by the traditional mechanisms whenever vnet_mod_register() is called for a particular vnet module. The vnet_mod_register_multi() variant allows a single initializer function to be registered multiple times but with different arguments - currently this is only used in kern/uipc_domain.c by net_add_domain() with different struct domain * as arguments, which allows for protosw-registered initialization routines to be invoked in a correct order by the new vnet initialization framework. For the purpose of identifying vnet modules, each vnet module has to have a unique ID, which is statically assigned in sys/vimage.h. Dynamic assignment of vnet module IDs is not supported yet. A vnet module may specify a single prerequisite module at registration time by filling in the vmi_dependson field of its vnet_modinfo struct with the ID of the module it depends on. Unless specified otherwise, all vnet modules depend on VNET_MOD_NET (container for ifnet list head, rt_tables etc.), which thus has to and will always be initialized first. The framework will panic if it detects any unresolved dependencies before completing system initialization. Detection of unresolved dependencies for vnet modules registered after boot (kldloaded modules) is not provided. Note that the fact that each module can specify only a single prerequisite may become problematic in the long run. In particular, INET6 depends on INET being already instantiated, due to TCP / UDP structures residing in INET container. IPSEC also depends on INET, which will in turn additionally complicate making INET6-only kernel configs a reality. The entire registration framework can be compiled out by turning on the VIMAGE_GLOBALS kernel config option. Reviewed by: bz Approved by: julian (mentor)
Revision 1.193: download - view: text, markup, annotated - select for diffs
Mon Apr 6 22:29:41 2009 UTC (2 years, 10 months ago) by zec
Branches: MAIN
Diff to: previous 1.192: preferred, colored
Changes since revision 1.192: +12 -2 lines
SVN rev 190787 on 2009-04-06 22:29:41Z by zec
First pass at separating per-vnet initializer functions
from existing functions for initializing global state.
At this stage, the new per-vnet initializer functions are
directly called from the existing global initialization code,
which should in most cases result in compiler inlining those
new functions, hence yielding a near-zero functional change.
Modify the existing initializer functions which are invoked via
protosw, like ip_init() et. al., to allow them to be invoked
multiple times, i.e. per each vnet. Global state, if any,
is initialized only if such functions are called within the
context of vnet0, which will be determined via the
IS_DEFAULT_VNET(curvnet) check (currently always true).
While here, V_irtualize a few remaining global UMA zones
used by net/netinet/netipsec networking code. While it is
not yet clear to me or anybody else whether this is the right
thing to do, at this stage this makes the code more readable,
and makes it easier to track uncollected UMA-zone-backed
objects on vnet removal. In the long run, it's quite possible
that some form of shared use of UMA zone pools among multiple
vnets should be considered.
Bump __FreeBSD_version due to changes in layout of structs
vnet_ipfw, vnet_inet and vnet_net.
Approved by: julian (mentor)
Revision 1.192: download - view: text, markup, annotated - select for diffs
Mon Mar 9 17:53:05 2009 UTC (2 years, 11 months ago) by bms
Branches: MAIN
Diff to: previous 1.191: preferred, colored
Changes since revision 1.191: +2 -1 lines
SVN rev 189592 on 2009-03-09 17:53:05Z by bms Merge IGMPv3 and Source-Specific Multicast (SSM) to the FreeBSD IPv4 stack. Diffs are minimized against p4. PCS has been used for some protocol verification, more widespread testing of recorded sources in Group-and-Source queries is needed. sizeof(struct igmpstat) has changed. __FreeBSD_version is bumped to 800070.
Revision 1.191: download - view: text, markup, annotated - select for diffs
Fri Feb 27 14:12:05 2009 UTC (2 years, 11 months ago) by bz
Branches: MAIN
Diff to: previous 1.190: preferred, colored
Changes since revision 1.190: +1 -0 lines
SVN rev 189106 on 2009-02-27 14:12:05Z by bz For all files including net/vnet.h directly include opt_route.h and net/route.h. Remove the hidden include of opt_route.h and net/route.h from net/vnet.h. We need to make sure that both opt_route.h and net/route.h are included before net/vnet.h because of the way MRT figures out the number of FIBs from the kernel option. If we do not, we end up with the default number of 1 when including net/vnet.h and array sizes are wrong. This does not change the list of files which depend on opt_route.h but we can identify them now more easily.
Revision 1.190: download - view: text, markup, annotated - select for diffs
Wed Dec 24 05:31:26 2008 UTC (3 years, 1 month ago) by kmacy
Branches: MAIN
Diff to: previous 1.189: preferred, colored
Changes since revision 1.189: +6 -6 lines
SVN rev 186474 on 2008-12-24 05:31:26Z by kmacy Fix missed unlock and reference drop of lle Found by: pho
Revision 1.189: download - view: text, markup, annotated - select for diffs
Tue Dec 23 03:33:32 2008 UTC (3 years, 1 month ago) by qingli
Branches: MAIN
Diff to: previous 1.188: preferred, colored
Changes since revision 1.188: +16 -15 lines
SVN rev 186411 on 2008-12-23 03:33:32Z by qingli Don't create a bogus ARP entry for 0.0.0.0.
Revision 1.162.2.6.2.2: download - view: text, markup, annotated - select for diffs
Sat Dec 20 19:45:22 2008 UTC (3 years, 1 month ago) by csjp
Branches: RELENG_7_1
CVS tags: RELENG_7_1_0_RELEASE
Diff to: previous 1.162.2.6.2.1: preferred, colored; branchpoint 1.162.2.6: preferred, colored; next MAIN 1.162.2.7: preferred, colored
Changes since revision 1.162.2.6.2.1: +4 -4 lines
SVN rev 186364 on 2008-12-20 19:45:22Z by csjp MFC revision 185713 from head. Make sure we are maintaining the reference count on the route eliminating another: rtfree: 0xc841ee88 has 1 refs Reviewed by: bz Approved by: re@ (gnn)
Revision 1.162.2.7: download - view: text, markup, annotated - select for diffs
Sat Dec 20 19:39:09 2008 UTC (3 years, 1 month ago) by csjp
Branches: RELENG_7
CVS tags: RELENG_7_4_BP, RELENG_7_3_BP, RELENG_7_2_BP
Branch point for: RELENG_7_4, RELENG_7_3, RELENG_7_2
Diff to: previous 1.162.2.6: preferred, colored; branchpoint 1.162: preferred, colored
Changes since revision 1.162.2.6: +4 -4 lines
SVN rev 186363 on 2008-12-20 19:39:09Z by csjp MFC revision 185713 from head. Make sure we are maintaining the reference count on the route eliminating another: rtfree: 0xc841ee88 has 1 refs Reviewed by: bz Approved by: re@ (gnn)
Revision 1.188: download - view: text, markup, annotated - select for diffs
Fri Dec 19 11:07:34 2008 UTC (3 years, 1 month ago) by qingli
Branches: MAIN
Diff to: previous 1.187: preferred, colored
Changes since revision 1.187: +52 -57 lines
SVN rev 186317 on 2008-12-19 11:07:34Z by qingli The proxy-arp code was broken and responds to ARP requests for addresses that are not proxied locally.
Revision 1.187: download - view: text, markup, annotated - select for diffs
Wed Dec 17 00:14:28 2008 UTC (3 years, 1 month ago) by kmacy
Branches: MAIN
Diff to: previous 1.186: preferred, colored
Changes since revision 1.186: +10 -9 lines
SVN rev 186200 on 2008-12-17 00:14:28Z by kmacy default to doing lla_lookup with shared afdata lock and returning a shared lock on the lle - thus restoring parallel performance to pre-arpv2 level
Revision 1.186: download - view: text, markup, annotated - select for diffs
Tue Dec 16 02:48:12 2008 UTC (3 years, 1 month ago) by kmacy
Branches: MAIN
Diff to: previous 1.185: preferred, colored
Changes since revision 1.185: +2 -1 lines
SVN rev 186161 on 2008-12-16 02:48:12Z by kmacy don't unlock lle if it is NULL
Revision 1.185: download - view: text, markup, annotated - select for diffs
Mon Dec 15 06:10:57 2008 UTC (3 years, 1 month ago) by qingli
Branches: MAIN
Diff to: previous 1.184: preferred, colored
Changes since revision 1.184: +231 -517 lines
SVN rev 186119 on 2008-12-15 06:10:57Z by qingli
This main goals of this project are:
1. separating L2 tables (ARP, NDP) from the L3 routing tables
2. removing as much locking dependencies among these layers as
possible to allow for some parallelism in the search operations
3. simplify the logic in the routing code,
The most notable end result is the obsolescent of the route
cloning (RTF_CLONING) concept, which translated into code reduction
in both IPv4 ARP and IPv6 NDP related modules, and size reduction in
struct rtentry{}. The change in design obsoletes the semantics of
RTF_CLONING, RTF_WASCLONE and RTF_LLINFO routing flags. The userland
applications such as "arp" and "ndp" have been modified to reflect
those changes. The output from "netstat -r" shows only the routing
entries.
Quite a few developers have contributed to this project in the
past: Glebius Smirnoff, Luigi Rizzo, Alessandro Cerri, and
Andre Oppermann. And most recently:
- Kip Macy revised the locking code completely, thus completing
the last piece of the puzzle, Kip has also been conducting
active functional testing
- Sam Leffler has helped me improving/refactoring the code, and
provided valuable reviews
- Julian Elischer setup the perforce tree for me and has helped
me maintaining that branch before the svn conversion
Revision 1.184: download - view: text, markup, annotated - select for diffs
Sat Dec 6 19:09:38 2008 UTC (3 years, 2 months ago) by csjp
Branches: MAIN
Diff to: previous 1.183: preferred, colored
Changes since revision 1.183: +4 -4 lines
SVN rev 185713 on 2008-12-06 19:09:38Z by csjp in_rtalloc1(9) returns a locked route, so make sure that we use RTFREE_LOCKED() here. This macro makes sure the reference count on the route is being managed properly. This elimates another case which results in the following message being printed to the console: rtfree: 0xc841ee88 has 1 refs Reviewed by: bz MFC after: 2 weeks
Revision 1.183: download - view: text, markup, annotated - select for diffs
Tue Dec 2 21:37:28 2008 UTC (3 years, 2 months ago) by bz
Branches: MAIN
Diff to: previous 1.182: preferred, colored
Changes since revision 1.182: +2 -0 lines
SVN rev 185571 on 2008-12-02 21:37:28Z by bz Rather than using hidden includes (with cicular dependencies), directly include only the header files needed. This reduces the unneeded spamming of various headers into lots of files. For now, this leaves us with very few modules including vnet.h and thus needing to depend on opt_route.h. Reviewed by: brooks, gnn, des, zec, imp Sponsored by: The FreeBSD Foundation
Revision 1.182: download - view: text, markup, annotated - select for diffs
Wed Nov 26 22:32:07 2008 UTC (3 years, 2 months ago) by zec
Branches: MAIN
Diff to: previous 1.181: preferred, colored
Changes since revision 1.181: +2 -2 lines
SVN rev 185348 on 2008-11-26 22:32:07Z by zec Merge more of currently non-functional (i.e. resolving to whitespace) macros from p4/vimage branch. Do a better job at enclosing all instantiations of globals scheduled for virtualization in #ifdef VIMAGE_GLOBALS blocks. De-virtualize and mark as const saorder_state_alive and saorder_state_any arrays from ipsec code, given that they are never updated at runtime, so virtualizing them would be pointless. Reviewed by: bz, julian Approved by: julian (mentor) Obtained from: //depot/projects/vimage-commit2/... X-MFC after: never Sponsored by: NLnet Foundation, The FreeBSD Foundation
Revision 1.162.2.6.2.1: download - view: text, markup, annotated - select for diffs
Tue Nov 25 02:59:29 2008 UTC (3 years, 2 months ago) by kensmith
Branches: RELENG_7_1
Diff to: previous 1.162.2.6: preferred, colored
Changes since revision 1.162.2.6: +0 -0 lines
SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith Create releng/7.1 in preparation for moving into RC phase of 7.1 release cycle. Approved by: re (implicit)
Revision 1.181: download - view: text, markup, annotated - select for diffs
Wed Nov 19 09:39:34 2008 UTC (3 years, 2 months ago) by zec
Branches: MAIN
Diff to: previous 1.180: preferred, colored
Changes since revision 1.180: +12 -5 lines
SVN rev 185088 on 2008-11-19 09:39:34Z by zec Change the initialization methodology for global variables scheduled for virtualization. Instead of initializing the affected global variables at instatiation, assign initial values to them in initializer functions. As a rule, initialization at instatiation for such variables should never be introduced again from now on. Furthermore, enclose all instantiations of such global variables in #ifdef VIMAGE_GLOBALS blocks. Essentialy, this change should have zero functional impact. In the next phase of merging network stack virtualization infrastructure from p4/vimage branch, the new initialization methology will allow us to switch between using global variables and their counterparts residing in virtualization containers with minimum code churn, and in the long run allow us to intialize multiple instances of such container structures. Discussed at: devsummit Strassburg Reviewed by: bz, julian Approved by: julian (mentor) Obtained from: //depot/projects/vimage-commit2/... X-MFC after: never Sponsored by: NLnet Foundation, The FreeBSD Foundation
Revision 1.162.2.6: download - view: text, markup, annotated - select for diffs
Fri Nov 7 11:42:02 2008 UTC (3 years, 3 months ago) by bz
Branches: RELENG_7
CVS tags: RELENG_7_1_BP
Branch point for: RELENG_7_1
Diff to: previous 1.162.2.5: preferred, colored; branchpoint 1.162: preferred, colored
Changes since revision 1.162.2.5: +1 -0 lines
SVN rev 184747 on 2008-11-07 11:42:02Z by bz
MFC: r183014
(which was missed with r184739: r183013,r183017,r183032,r183034)
Original commit message from HEAD:
Julian: "oops commit the version that compiles"
Unbreak RELENG_7 including the missing sys/proc.h header file.
Approved by: re (kib)
Revision 1.162.2.5: download - view: text, markup, annotated - select for diffs
Thu Nov 6 22:11:57 2008 UTC (3 years, 3 months ago) by julian
Branches: RELENG_7
Diff to: previous 1.162.2.4: preferred, colored; branchpoint 1.162: preferred, colored
Changes since revision 1.162.2.4: +16 -7 lines
SVN rev 184739 on 2008-11-06 22:11:57Z by julian MFC a rewrite of rt_check(). also revert the addition of rt_check_fib() which we discovered is not needed. fixes some hangs people have seen Approved by: re (ken)
Revision 1.180: download - view: text, markup, annotated - select for diffs
Thu Oct 16 12:31:03 2008 UTC (3 years, 3 months ago) by zec
Branches: MAIN
Diff to: previous 1.179: preferred, colored
Changes since revision 1.179: +0 -2 lines
SVN rev 183954 on 2008-10-16 12:31:03Z by zec Remove a useless global static variable. Approved by: bz (ad-hoc mentor)
Revision 1.179: download - view: text, markup, annotated - select for diffs
Thu Oct 2 15:37:58 2008 UTC (3 years, 4 months ago) by zec
Branches: MAIN
Diff to: previous 1.178: preferred, colored
Changes since revision 1.178: +14 -7 lines
SVN rev 183550 on 2008-10-02 15:37:58Z by zec Step 1.5 of importing the network stack virtualization infrastructure from the vimage project, as per plan established at devsummit 08/08: http://wiki.freebsd.org/Image/Notes200808DevSummit Introduce INIT_VNET_*() initializer macros, VNET_FOREACH() iterator macros, and CURVNET_SET() context setting macros, all currently resolving to NOPs. Prepare for virtualization of selected SYSCTL objects by introducing a family of SYSCTL_V_*() macros, currently resolving to their global counterparts, i.e. SYSCTL_V_INT() == SYSCTL_INT(). Move selected #defines from sys/sys/vimage.h to newly introduced header files specific to virtualized subsystems (sys/net/vnet.h, sys/netinet/vinet.h etc.). All the changes are verified to have zero functional impact at this point in time by doing MD5 comparision between pre- and post-change object files(*). (*) netipsec/keysock.c did not validate depending on compile time options. Implemented by: julian, bz, brooks, zec Reviewed by: julian, bz, brooks, kris, rwatson, ... Approved by: julian (mentor) Obtained from: //depot/projects/vimage-commit2/... X-MFC after: never Sponsored by: NLnet Foundation, The FreeBSD Foundation
Revision 1.137.2.16.2.1: download - view: text, markup, annotated - select for diffs
Thu Oct 2 02:57:24 2008 UTC (3 years, 4 months ago) by kensmith
Branches: RELENG_6_4
CVS tags: RELENG_6_4_0_RELEASE
Diff to: previous 1.137.2.16: preferred, colored; next MAIN 1.137.2.17: preferred, colored
Changes since revision 1.137.2.16: +0 -0 lines
SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith Create releng/6.4 from stable/6 in preparation for 6.4-RC1. Approved by: re (implicit)
Revision 1.178: download - view: text, markup, annotated - select for diffs
Sun Sep 14 08:24:45 2008 UTC (3 years, 4 months ago) by julian
Branches: MAIN
Diff to: previous 1.177: preferred, colored
Changes since revision 1.177: +1 -0 lines
SVN rev 183014 on 2008-09-14 08:24:45Z by julian oops commit the version that compiles
Revision 1.177: download - view: text, markup, annotated - select for diffs
Sun Sep 14 08:19:48 2008 UTC (3 years, 4 months ago) by julian
Branches: MAIN
Diff to: previous 1.176: preferred, colored
Changes since revision 1.176: +15 -6 lines
SVN rev 183013 on 2008-09-14 08:19:48Z by julian Revert a part of the MRT commit that proved un-needed. rt_check() in its original form proved to be sufficient and rt_check_fib() can go away (as can its evil twin in_rt_check()). I believe this does NOT address the crashes people have been seeing in rt_check. MFC after: 1 week
Revision 1.176: download - view: text, markup, annotated - select for diffs
Fri Sep 5 01:36:30 2008 UTC (3 years, 5 months ago) by keramida
Branches: MAIN
Diff to: previous 1.175: preferred, colored
Changes since revision 1.175: +3 -3 lines
SVN rev 182775 on 2008-09-05 01:36:30Z by keramida Slightly reword comment and remove typos.
Revision 1.137.2.16: download - view: text, markup, annotated - select for diffs
Mon Sep 1 02:19:40 2008 UTC (3 years, 5 months ago) by thompsa
Branches: RELENG_6
CVS tags: RELENG_6_4_BP
Branch point for: RELENG_6_4
Diff to: previous 1.137.2.15: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.15: +24 -1 lines
SVN rev 182586 on 2008-09-01 02:19:40Z by thompsa MFC r181824 Fix ARP in bridging scenarios where the bridge shares its MAC address with one of its members.
Revision 1.162.2.4: download - view: text, markup, annotated - select for diffs
Mon Sep 1 02:17:31 2008 UTC (3 years, 5 months ago) by thompsa
Branches: RELENG_7
Diff to: previous 1.162.2.3: preferred, colored; branchpoint 1.162: preferred, colored
Changes since revision 1.162.2.3: +24 -1 lines
SVN rev 182585 on 2008-09-01 02:17:31Z by thompsa MFC r181824 Fix ARP in bridging scenarios where the bridge shares its MAC address with one of its members.
Revision 1.175: download - view: text, markup, annotated - select for diffs
Sun Aug 31 18:54:35 2008 UTC (3 years, 5 months ago) by julian
Branches: MAIN
Diff to: previous 1.174: preferred, colored
Changes since revision 1.174: +1 -1 lines
SVN rev 182563 on 2008-08-31 18:54:35Z by julian fix tiny nti in comment
Revision 1.162.2.3: download - view: text, markup, annotated - select for diffs
Tue Aug 19 01:25:08 2008 UTC (3 years, 5 months ago) by kmacy
Branches: RELENG_7
Diff to: previous 1.162.2.2: preferred, colored; branchpoint 1.162: preferred, colored
Changes since revision 1.162.2.2: +4 -4 lines
SVN rev 181860 on 2008-08-19 01:25:08Z by kmacy Avoid possible namespace collision between function scope sin and locally sub-expression scoped sin by moving sin declaration to point of use.
Revision 1.174: download - view: text, markup, annotated - select for diffs
Mon Aug 18 09:06:11 2008 UTC (3 years, 5 months ago) by philip
Branches: MAIN
Diff to: previous 1.173: preferred, colored
Changes since revision 1.173: +24 -1 lines
SVN rev 181824 on 2008-08-18 09:06:11Z by philip Fix ARP in bridging scenarios where the bridge shares its MAC address with one of its members (see my r180140). Pointy hat to: philip Submitted by: Eygene Ryabinkin <rea-fbsd@codelabs.ru> MFC after: 3 days
Revision 1.173: download - view: text, markup, annotated - select for diffs
Sun Aug 17 23:27:27 2008 UTC (3 years, 5 months ago) by bz
Branches: MAIN
Diff to: previous 1.172: preferred, colored
Changes since revision 1.172: +11 -10 lines
SVN rev 181803 on 2008-08-17 23:27:27Z by bz Commit step 1 of the vimage project, (network stack) virtualization work done by Marko Zec (zec@). This is the first in a series of commits over the course of the next few weeks. Mark all uses of global variables to be virtualized with a V_ prefix. Use macros to map them back to their global names for now, so this is a NOP change only. We hope to have caught at least 85-90% of what is needed so we do not invalidate a lot of outstanding patches again. Obtained from: //depot/projects/vimage-commit2/... Reviewed by: brooks, des, ed, mav, julian, jamie, kris, rwatson, zec, ... (various people I forgot, different versions) md5 (with a bit of help) Sponsored by: NLnet Foundation, The FreeBSD Foundation X-MFC after: never V_Commit_Message_Reviewed_By: more people than the patch
Revision 1.162.2.2: download - view: text, markup, annotated - select for diffs
Thu Jul 31 22:42:27 2008 UTC (3 years, 6 months ago) by kmacy
Branches: RELENG_7
Diff to: previous 1.162.2.1: preferred, colored; branchpoint 1.162: preferred, colored
Changes since revision 1.162.2.1: +17 -14 lines
SVN rev 181075 on 2008-07-31 22:42:27Z by kmacy MFC ARP update hooks and change to arpresolve to do arp resolution without a pending mbuf to transmit
Revision 1.162.2.1: download - view: text, markup, annotated - select for diffs
Thu Jul 24 01:13:22 2008 UTC (3 years, 6 months ago) by julian
Branches: RELENG_7
Diff to: previous 1.162: preferred, colored
Changes since revision 1.162: +185 -116 lines
SVN rev 180774 on 2008-07-24 01:13:22Z by julian MFC an ABI compatible implementation of Multiple routing tables. See the commit message for http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/net/route.c version 1.129 (svn change # 178888) for more info. Obtained from: Ironport (Cisco Systems)
Revision 1.172: download - view: text, markup, annotated - select for diffs
Fri Jul 4 00:21:38 2008 UTC (3 years, 7 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.171: preferred, colored
Changes since revision 1.171: +1 -1 lines
SVN rev 180239 on 2008-07-04 00:21:38Z by rwatson Remove NETISR_MPSAFE, which allows specific netisr handlers to be directly dispatched without Giant, and add NETISR_FORCEQUEUE, which allows specific netisr handlers to always be dispatched via a queue (deferred). Mark the usb and if_ppp netisr handlers as NETISR_FORCEQUEUE, and explicitly acquire Giant in those handlers. Previously, any netisr handler not marked NETISR_MPSAFE would necessarily run deferred and with Giant acquired. This change removes Giant scaffolding from the netisr infrastructure, but NETISR_FORCEQUEUE allows non-MPSAFE handlers to continue to force deferred dispatch so as to avoid lock order reversals between their acqusition of Giant and any calling context. It is likely we will be able to remove NETISR_FORCEQUEUE once IFF_NEEDSGIANT is removed, as non-MPSAFE usb and if_ppp drivers will no longer be supported. Reviewed by: bz MFC after: 1 month X-MFC note: We can't remove NETISR_MPSAFE from stable/7 for KPI reasons, but the rest can go back.
Revision 1.171: download - view: text, markup, annotated - select for diffs
Fri May 9 23:02:57 2008 UTC (3 years, 9 months ago) by julian
Branches: MAIN
Diff to: previous 1.170: preferred, colored
Changes since revision 1.170: +180 -117 lines
Add code to allow the system to handle multiple routing tables.
This particular implementation is designed to be fully backwards compatible
and to be MFC-able to 7.x (and 6.x)
Currently the only protocol that can make use of the multiple tables is IPv4
Similar functionality exists in OpenBSD and Linux.
From my notes:
-----
One thing where FreeBSD has been falling behind, and which by chance I
have some time to work on is "policy based routing", which allows
different
packet streams to be routed by more than just the destination address.
Constraints:
------------
I want to make some form of this available in the 6.x tree
(and by extension 7.x) , but FreeBSD in general needs it so I might as
well do it in -current and back port the portions I need.
One of the ways that this can be done is to have the ability to
instantiate multiple kernel routing tables (which I will now
refer to as "Forwarding Information Bases" or "FIBs" for political
correctness reasons). Which FIB a particular packet uses to make
the next hop decision can be decided by a number of mechanisms.
The policies these mechanisms implement are the "Policies" referred
to in "Policy based routing".
One of the constraints I have if I try to back port this work to
6.x is that it must be implemented as a EXTENSION to the existing
ABIs in 6.x so that third party applications do not need to be
recompiled in timespan of the branch.
This first version will not have some of the bells and whistles that
will come with later versions. It will, for example, be limited to 16
tables in the first commit.
Implementation method, Compatible version. (part 1)
-------------------------------
For this reason I have implemented a "sufficient subset" of a
multiple routing table solution in Perforce, and back-ported it
to 6.x. (also in Perforce though not always caught up with what I
have done in -current/P4). The subset allows a number of FIBs
to be defined at compile time (8 is sufficient for my purposes in 6.x)
and implements the changes needed to allow IPV4 to use them. I have not
done the changes for ipv6 simply because I do not need it, and I do not
have enough knowledge of ipv6 (e.g. neighbor discovery) needed to do it.
Other protocol families are left untouched and should there be
users with proprietary protocol families, they should continue to work
and be oblivious to the existence of the extra FIBs.
To understand how this is done, one must know that the current FIB
code starts everything off with a single dimensional array of
pointers to FIB head structures (One per protocol family), each of
which in turn points to the trie of routes available to that family.
The basic change in the ABI compatible version of the change is to
extent that array to be a 2 dimensional array, so that
instead of protocol family X looking at rt_tables[X] for the
table it needs, it looks at rt_tables[Y][X] when for all
protocol families except ipv4 Y is always 0.
Code that is unaware of the change always just sees the first row
of the table, which of course looks just like the one dimensional
array that existed before.
The entry points rtrequest(), rtalloc(), rtalloc1(), rtalloc_ign()
are all maintained, but refer only to the first row of the array,
so that existing callers in proprietary protocols can continue to
do the "right thing".
Some new entry points are added, for the exclusive use of ipv4 code
called in_rtrequest(), in_rtalloc(), in_rtalloc1() and in_rtalloc_ign(),
which have an extra argument which refers the code to the correct row.
In addition, there are some new entry points (currently called
rtalloc_fib() and friends) that check the Address family being
looked up and call either rtalloc() (and friends) if the protocol
is not IPv4 forcing the action to row 0 or to the appropriate row
if it IS IPv4 (and that info is available). These are for calling
from code that is not specific to any particular protocol. The way
these are implemented would change in the non ABI preserving code
to be added later.
One feature of the first version of the code is that for ipv4,
the interface routes show up automatically on all the FIBs, so
that no matter what FIB you select you always have the basic
direct attached hosts available to you. (rtinit() does this
automatically).
You CAN delete an interface route from one FIB should you want
to but by default it's there. ARP information is also available
in each FIB. It's assumed that the same machine would have the
same MAC address, regardless of which FIB you are using to get
to it.
This brings us as to how the correct FIB is selected for an outgoing
IPV4 packet.
Firstly, all packets have a FIB associated with them. if nothing
has been done to change it, it will be FIB 0. The FIB is changed
in the following ways.
Packets fall into one of a number of classes.
1/ locally generated packets, coming from a socket/PCB.
Such packets select a FIB from a number associated with the
socket/PCB. This in turn is inherited from the process,
but can be changed by a socket option. The process in turn
inherits it on fork. I have written a utility call setfib
that acts a bit like nice..
setfib -3 ping target.example.com # will use fib 3 for ping.
It is an obvious extension to make it a property of a jail
but I have not done so. It can be achieved by combining the setfib and
jail commands.
2/ packets received on an interface for forwarding.
By default these packets would use table 0,
(or possibly a number settable in a sysctl(not yet)).
but prior to routing the firewall can inspect them (see below).
(possibly in the future you may be able to associate a FIB
with packets received on an interface.. An ifconfig arg, but not yet.)
3/ packets inspected by a packet classifier, which can arbitrarily
associate a fib with it on a packet by packet basis.
A fib assigned to a packet by a packet classifier
(such as ipfw) would over-ride a fib associated by
a more default source. (such as cases 1 or 2).
4/ a tcp listen socket associated with a fib will generate
accept sockets that are associated with that same fib.
5/ Packets generated in response to some other packet (e.g. reset
or icmp packets). These should use the FIB associated with the
packet being reponded to.
6/ Packets generated during encapsulation.
gif, tun and other tunnel interfaces will encapsulate using the FIB
that was in effect withthe proces that set up the tunnel.
thus setfib 1 ifconfig gif0 [tunnel instructions]
will set the fib for the tunnel to use to be fib 1.
Routing messages would be associated with their
process, and thus select one FIB or another.
messages from the kernel would be associated with the fib they
refer to and would only be received by a routing socket associated
with that fib. (not yet implemented)
In addition Netstat has been edited to be able to cope with the
fact that the array is now 2 dimensional. (It looks in system
memory using libkvm (!)). Old versions of netstat see only the first FIB.
In addition two sysctls are added to give:
a) the number of FIBs compiled in (active)
b) the default FIB of the calling process.
Early testing experience:
-------------------------
Basically our (IronPort's) appliance does this functionality already
using ipfw fwd but that method has some drawbacks.
For example,
It can't fully simulate a routing table because it can't influence the
socket's choice of local address when a connect() is done.
Testing during the generating of these changes has been
remarkably smooth so far. Multiple tables have co-existed
with no notable side effects, and packets have been routes
accordingly.
ipfw has grown 2 new keywords:
setfib N ip from anay to any
count ip from any to any fib N
In pf there seems to be a requirement to be able to give symbolic names to the
fibs but I do not have that capacity. I am not sure if it is required.
SCTP has interestingly enough built in support for this, called VRFs
in Cisco parlance. it will be interesting to see how that handles it
when it suddenly actually does something.
Where to next:
--------------------
After committing the ABI compatible version and MFCing it, I'd
like to proceed in a forward direction in -current. this will
result in some roto-tilling in the routing code.
Firstly: the current code's idea of having a separate tree per
protocol family, all of the same format, and pointed to by the
1 dimensional array is a bit silly. Especially when one considers that
there is code that makes assumptions about every protocol having the
same internal structures there. Some protocols don't WANT that
sort of structure. (for example the whole idea of a netmask is foreign
to appletalk). This needs to be made opaque to the external code.
My suggested first change is to add routing method pointers to the
'domain' structure, along with information pointing the data.
instead of having an array of pointers to uniform structures,
there would be an array pointing to the 'domain' structures
for each protocol address domain (protocol family),
and the methods this reached would be called. The methods would have
an argument that gives FIB number, but the protocol would be free
to ignore it.
When the ABI can be changed it raises the possibilty of the
addition of a fib entry into the "struct route". Currently,
the structure contains the sockaddr of the desination, and the resulting
fib entry. To make this work fully, one could add a fib number
so that given an address and a fib, one can find the third element, the
fib entry.
Interaction with the ARP layer/ LL layer would need to be
revisited as well. Qing Li has been working on this already.
This work was sponsored by Ironport Systems/Cisco
Reviewed by: several including rwatson, bz and mlair (parts each)
Obtained from: Ironport systems/Cisco
Revision 1.170: download - view: text, markup, annotated - select for diffs
Mon Dec 31 23:48:06 2007 UTC (4 years, 1 month ago) by julian
Branches: MAIN
Diff to: previous 1.169: preferred, colored
Changes since revision 1.169: +19 -120 lines
Don't duplicate the whole of arpresolve to arpresolve 2 for the sake of two compares against 0. The negative effect of cache flushing is probably more than the gain by not doing the two compares (the value is almost certainly in register or at worst, cache). Note that the uses of m_freem() are in error cases and m_freem() handles NULL anyhow. So fast-path really isn't changed much at all.
Revision 1.169: download - view: text, markup, annotated - select for diffs
Mon Dec 17 07:40:34 2007 UTC (4 years, 1 month ago) by kmacy
Branches: MAIN
Diff to: previous 1.168: preferred, colored
Changes since revision 1.168: +121 -16 lines
widen the routing event interface (arp update, redirect, and eventually pmtu change) into separate functions revert previous commit's changes to arpresolve and add a new interface arpresolve2 which does arp resolution without an mbuf
Revision 1.168: download - view: text, markup, annotated - select for diffs
Mon Dec 17 04:19:25 2007 UTC (4 years, 1 month ago) by kmacy
Branches: MAIN
Diff to: previous 1.167: preferred, colored
Changes since revision 1.167: +15 -11 lines
Don't panic in arpresolve if we're given a null mbuf. We could insist that the caller just pass in an initialized mbuf even if didn't have any data - but that seems rather contrived.
Revision 1.167: download - view: text, markup, annotated - select for diffs
Sun Dec 16 06:42:33 2007 UTC (4 years, 1 month ago) by kmacy
Branches: MAIN
Diff to: previous 1.166: preferred, colored
Changes since revision 1.166: +4 -4 lines
Move arp update upcall to always be called for ARP replies - previous invocation would not always get called at the appropriate times
Revision 1.166: download - view: text, markup, annotated - select for diffs
Wed Dec 12 20:53:24 2007 UTC (4 years, 2 months ago) by kmacy
Branches: MAIN
Diff to: previous 1.165: preferred, colored
Changes since revision 1.165: +8 -1 lines
add interface for allowing consumers to register for ARP updates, redirects, and path MTU changes Reviewed by: silby
Revision 1.165: download - view: text, markup, annotated - select for diffs
Tue Dec 4 13:01:12 2007 UTC (4 years, 2 months ago) by yar
Branches: MAIN
Diff to: previous 1.164: preferred, colored
Changes since revision 1.164: +2 -2 lines
For the sake of convenience, print the name of the network interface IPv4 address duplication was detected on. Idea by: marck
Revision 1.164: download - view: text, markup, annotated - select for diffs
Sun Oct 28 15:55:21 2007 UTC (4 years, 3 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.163: preferred, colored
Changes since revision 1.163: +1 -1 lines
Move towards more explicit support for various network protocol stacks in the TrustedBSD MAC Framework: - Add mac_atalk.c and add explicit entry point mac_netatalk_aarp_send() for AARP packet labeling, rather than using a generic link layer entry point. - Add mac_inet6.c and add explicit entry point mac_netinet6_nd6_send() for ND6 packet labeling, rather than using a generic link layer entry point. - Add expliict entry point mac_netinet_arp_send() for ARP packet labeling, and mac_netinet_igmp_send() for IGMP packet labeling, rather than using a generic link layer entry point. - Remove previous genering link layer entry point, mac_mbuf_create_linklayer() as it is no longer used. - Add implementations of new entry points to various policies, largely by replicating the existing link layer entry point for them; remove old link layer entry point implementation. - Make MAC_IFNET_LOCK(), MAC_IFNET_UNLOCK(), and mac_ifnet_mtx global to the MAC Framework rather than static to mac_net.c as it is now needed outside of mac_net.c. Obtained from: TrustedBSD Project
Revision 1.163: download - view: text, markup, annotated - select for diffs
Fri Oct 26 13:18:37 2007 UTC (4 years, 3 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.162: preferred, colored
Changes since revision 1.162: +1 -1 lines
Rename 'mac_mbuf_create_from_firewall' to 'mac_netinet_firewall_send' as we move towards netinet as a pseudo-object for the MAC Framework. Rename 'mac_create_mbuf_linklayer' to 'mac_mbuf_create_linklayer' to reflect general object-first ordering preference. Sponsored by: SPARTA (original patches against Mac OS X) Obtained from: TrustedBSD Project, Apple Computer
Revision 1.162: download - view: text, markup, annotated - select for diffs
Sun Oct 7 20:44:22 2007 UTC (4 years, 4 months ago) by silby
Branches: MAIN
CVS tags: RELENG_7_BP, RELENG_7_0_BP, RELENG_7_0_0_RELEASE, RELENG_7_0
Branch point for: RELENG_7
Diff to: previous 1.161: preferred, colored
Changes since revision 1.161: +3 -1 lines
Add FBSDID to all files in netinet so that people can more easily include file version information in bug reports. Approved by: re (kensmith)
Revision 1.161: download - view: text, markup, annotated - select for diffs
Thu May 10 15:58:46 2007 UTC (4 years, 9 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.160: preferred, colored
Changes since revision 1.160: +8 -21 lines
Move universally to ANSI C function declarations, with relatively consistent style(9)-ish layout.
Revision 1.160: download - view: text, markup, annotated - select for diffs
Thu Mar 22 10:37:53 2007 UTC (4 years, 10 months ago) by glebius
Branches: MAIN
Diff to: previous 1.159: preferred, colored
Changes since revision 1.159: +23 -50 lines
Remove global list of all llinfo_arp entries and use a callout per instance expiry of the ARP entries. Since we no longer abuse the IPv4 radix head lock, we can now enter arp_rtrequest() with a lock held on an arbitrary rt_entry. Reviewed by: bms
Revision 1.137.2.15: download - view: text, markup, annotated - select for diffs
Tue Mar 13 21:59:20 2007 UTC (4 years, 11 months ago) by bms
Branches: RELENG_6
CVS tags: RELENG_6_3_BP, RELENG_6_3_0_RELEASE, RELENG_6_3
Diff to: previous 1.137.2.14: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.14: +13 -1 lines
MFC rev 1.159: Comply with RFC 3927, by forcing ARP replies which contain a source address within the link-local IPv4 prefix 169.254.0.0/16, to be broadcast at link layer. Reviewed by: fenner
Revision 1.137.2.14: download - view: text, markup, annotated - select for diffs
Tue Feb 13 15:38:17 2007 UTC (4 years, 11 months ago) by maxim
Branches: RELENG_6
Diff to: previous 1.137.2.13: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.13: +2 -1 lines
MFC rev. 1.158: increment requests counter right before send out an ARP query actually. Otherwise the code could lead to the spurious EHOSTDOWN errors.
Revision 1.159: download - view: text, markup, annotated - select for diffs
Fri Feb 2 20:31:44 2007 UTC (5 years ago) by bms
Branches: MAIN
Diff to: previous 1.158: preferred, colored
Changes since revision 1.158: +13 -1 lines
Comply with RFC 3927, by forcing ARP replies which contain a source address within the link-local IPv4 prefix 169.254.0.0/16, to be broadcast at link layer. Reviewed by: fenner MFC after: 2 weeks
Revision 1.158: download - view: text, markup, annotated - select for diffs
Sun Jan 14 18:44:17 2007 UTC (5 years ago) by maxim
Branches: MAIN
Diff to: previous 1.157: preferred, colored
Changes since revision 1.157: +2 -1 lines
o Increment requests counter right before send out an ARP query actually. Otherwise the code could lead to the spurious EHOSTDOWN errors. PR: kern/107807 Submitted by: Dmitrij Tejblum MFC after: 1 month
Revision 1.157: download - view: text, markup, annotated - select for diffs
Sun Oct 22 11:52:16 2006 UTC (5 years, 3 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.156: preferred, colored
Changes since revision 1.156: +2 -1 lines
Complete break-out of sys/sys/mac.h into sys/security/mac/mac_framework.h begun with a repo-copy of mac.h to mac_framework.h. sys/mac.h now contains the userspace and user<->kernel API and definitions, with all in-kernel interfaces moved to mac_framework.h, which is now included across most of the kernel instead. This change is the first step in a larger cleanup and sweep of MAC Framework interfaces in the kernel, and will not be MFC'd. Obtained from: TrustedBSD Project Sponsored by: SPARTA
Revision 1.156: download - view: text, markup, annotated - select for diffs
Wed Oct 4 11:08:14 2006 UTC (5 years, 4 months ago) by glebius
Branches: MAIN
Diff to: previous 1.155: preferred, colored
Changes since revision 1.155: +3 -2 lines
Save space on stack moving token ring stuff to its own hack block.
Revision 1.155: download - view: text, markup, annotated - select for diffs
Wed Oct 4 10:59:21 2006 UTC (5 years, 4 months ago) by glebius
Branches: MAIN
Diff to: previous 1.154: preferred, colored
Changes since revision 1.154: +2 -2 lines
Style rev. 1.152.
Revision 1.154: download - view: text, markup, annotated - select for diffs
Sat Sep 23 19:24:10 2006 UTC (5 years, 4 months ago) by jmg
Branches: MAIN
Diff to: previous 1.153: preferred, colored
Changes since revision 1.153: +3 -1 lines
now that we don't automagicly increase the MTU of host routes, when we copy the loopback interface, copy it's mtu also.. This means that we again have large mtu support for local ip addresses...
Revision 1.137.2.13: download - view: text, markup, annotated - select for diffs
Mon Jul 10 01:03:23 2006 UTC (5 years, 7 months ago) by thompsa
Branches: RELENG_6
CVS tags: RELENG_6_2_BP, RELENG_6_2_0_RELEASE, RELENG_6_2
Diff to: previous 1.137.2.12: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.12: +6 -3 lines
MFC r1.152 Enable proxy ARP answers on any of the bridged interfaces if proxy record belongs to another interface within the bridge group.
Revision 1.153: download - view: text, markup, annotated - select for diffs
Thu Jun 29 19:22:04 2006 UTC (5 years, 7 months ago) by yar
Branches: MAIN
Diff to: previous 1.152: preferred, colored
Changes since revision 1.152: +1 -1 lines
There is a consensus that ifaddr.ifa_addr should never be NULL, except in places dealing with ifaddr creation or destruction; and in such special places incomplete ifaddrs should never be linked to system-wide data structures. Therefore we can eliminate all the superfluous checks for "ifa->ifa_addr != NULL" and get ready to the system crashing honestly instead of masking possible bugs. Suggested by: glebius, jhb, ru
Revision 1.152: download - view: text, markup, annotated - select for diffs
Fri Jun 9 00:33:30 2006 UTC (5 years, 8 months ago) by thompsa
Branches: MAIN
Diff to: previous 1.151: preferred, colored
Changes since revision 1.151: +6 -3 lines
Enable proxy ARP answers on any of the bridged interfaces if proxy record belongs to another interface within the bridge group. PR: kern/94408 Submitted by: Eygene A. Ryabinkin MFC after: 1 month
Revision 1.137.2.12: download - view: text, markup, annotated - select for diffs
Wed Mar 22 07:48:31 2006 UTC (5 years, 10 months ago) by glebius
Branches: RELENG_6
CVS tags: RELENG_6_1_BP, RELENG_6_1_0_RELEASE, RELENG_6_1
Diff to: previous 1.137.2.11: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.11: +7 -7 lines
Partial backout. Do not use time_uptime instead of time_second, since this change wasn't merged to other files. Pointy hat to: glebius Approved by: re (hrs)
Revision 1.128.2.12: download - view: text, markup, annotated - select for diffs
Sat Mar 11 19:33:17 2006 UTC (5 years, 11 months ago) by thompsa
Branches: RELENG_5
CVS tags: RELENG_5_5_BP, RELENG_5_5_0_RELEASE, RELENG_5_5
Diff to: previous 1.128.2.11: preferred, colored; branchpoint 1.128: preferred, colored; next MAIN 1.129: preferred, colored
Changes since revision 1.128.2.11: +2 -2 lines
MFC r1.151 Further refine the bridge hack in the arp code. Only do the special arp handling for interfaces which are actually in the bridge group, ignore all others. Approved by: re (hrs)
Revision 1.137.2.11: download - view: text, markup, annotated - select for diffs
Sat Mar 11 19:32:44 2006 UTC (5 years, 11 months ago) by thompsa
Branches: RELENG_6
Diff to: previous 1.137.2.10: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.10: +2 -2 lines
MFC r1.151 Further refine the bridge hack in the arp code. Only do the special arp handling for interfaces which are actually in the bridge group, ignore all others. Approved by: re (hrs)
Revision 1.151: download - view: text, markup, annotated - select for diffs
Tue Mar 7 21:40:44 2006 UTC (5 years, 11 months ago) by thompsa
Branches: MAIN
Diff to: previous 1.150: preferred, colored
Changes since revision 1.150: +2 -2 lines
Further refine the bridge hack in the arp code. Only do the special arp handling for interfaces which are actually in the bridge group, ignore all others. MFC after: 3 days
Revision 1.128.2.11: download - view: text, markup, annotated - select for diffs
Fri Feb 3 12:55:16 2006 UTC (6 years ago) by thompsa
Branches: RELENG_5
Diff to: previous 1.128.2.10: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.2.10: +4 -2 lines
MFC r1.150, do not send two ARP replies if the bridge has an address. Approved by: re (scottl)
Revision 1.137.2.10: download - view: text, markup, annotated - select for diffs
Fri Feb 3 08:07:42 2006 UTC (6 years ago) by thompsa
Branches: RELENG_6
Diff to: previous 1.137.2.9: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.9: +4 -2 lines
MFC r1.150, do not send two ARP replies if the bridge has an address. Approved by: re (scottl)
Revision 1.150: download - view: text, markup, annotated - select for diffs
Tue Jan 31 21:29:41 2006 UTC (6 years ago) by thompsa
Branches: MAIN
Diff to: previous 1.149: preferred, colored
Changes since revision 1.149: +4 -2 lines
Now that the bridge also processes Ethernet frames as itself, two arp replies will be sent if there is an address on the bridge. Exclude the bridge from the special arp handling. This has been tested with all combinations of addresses on the bridge and members. Pointed out by: Michal Mertl
Revision 1.128.2.10: download - view: text, markup, annotated - select for diffs
Sun Jan 29 23:22:42 2006 UTC (6 years ago) by thompsa
Branches: RELENG_5
Diff to: previous 1.128.2.9: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.2.9: +1 -1 lines
InstaMFC: Back out of r1.148, it causes two arp replies to be sent with different mac addresses.
Revision 1.137.2.9: download - view: text, markup, annotated - select for diffs
Sun Jan 29 23:22:05 2006 UTC (6 years ago) by thompsa
Branches: RELENG_6
Diff to: previous 1.137.2.8: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.8: +1 -1 lines
InstaMFC: Back out of r1.148, it causes two arp replies to be sent with different mac addresses.
Revision 1.149: download - view: text, markup, annotated - select for diffs
Sun Jan 29 23:21:01 2006 UTC (6 years ago) by thompsa
Branches: MAIN
Diff to: previous 1.148: preferred, colored
Changes since revision 1.148: +1 -1 lines
Back out of r1.148, it causes two arp replies to be sent with different mac addresses. One for the bridged interface with the IP address assigned but then another with the mac for the bridge itself.
Revision 1.128.2.9: download - view: text, markup, annotated - select for diffs
Thu Jan 19 01:07:10 2006 UTC (6 years ago) by thompsa
Branches: RELENG_5
Diff to: previous 1.128.2.8: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.2.8: +1 -1 lines
MFC r1.148: Include the bridge interface itself in the special arp handling.
Revision 1.137.2.8: download - view: text, markup, annotated - select for diffs
Thu Jan 19 00:38:00 2006 UTC (6 years ago) by thompsa
Branches: RELENG_6
Diff to: previous 1.137.2.7: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.7: +1 -1 lines
MFC r1.148: Include the bridge interface itself in the special arp handling.
Revision 1.148: download - view: text, markup, annotated - select for diffs
Thu Jan 12 21:05:30 2006 UTC (6 years ago) by thompsa
Branches: MAIN
Diff to: previous 1.147: preferred, colored
Changes since revision 1.147: +1 -1 lines
Include the bridge interface itself in the special arp handling. PR: 90973 MFC after: 1 week
Revision 1.137.2.7: download - view: text, markup, annotated - select for diffs
Wed Dec 28 13:33:40 2005 UTC (6 years, 1 month ago) by glebius
Branches: RELENG_6
Diff to: previous 1.137.2.6: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.6: +11 -6 lines
MFC: Add a knob to suppress logging of attempts to modify permanent ARP entries. Submitted by: Andrew Alcheyev <buddy telenet.ru>
Revision 1.147: download - view: text, markup, annotated - select for diffs
Sun Dec 18 19:11:56 2005 UTC (6 years, 1 month ago) by glebius
Branches: MAIN
Diff to: previous 1.146: preferred, colored
Changes since revision 1.146: +11 -6 lines
Add a knob to suppress logging of attempts to modify permanent ARP entries. Submitted by: Andrew Alcheyev <buddy telenet.ru>
Revision 1.146: download - view: text, markup, annotated - select for diffs
Fri Dec 16 15:01:44 2005 UTC (6 years, 1 month ago) by emaste
Branches: MAIN
Diff to: previous 1.145: preferred, colored
Changes since revision 1.145: +5 -5 lines
Add descriptions for sysctl -d. Approved by: glebius Silence from: rwatson (mentor)
Revision 1.137.2.6: download - view: text, markup, annotated - select for diffs
Sat Nov 26 10:51:23 2005 UTC (6 years, 2 months ago) by glebius
Branches: RELENG_6
Diff to: previous 1.137.2.5: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.5: +4 -4 lines
Previous commit merged 1.145 and _a part of_ 1.142, and this part broke ARP in RELENG_6. At this time merge 1.142 entirely. Pointy hat to: glebius
Revision 1.137.2.5: download - view: text, markup, annotated - select for diffs
Fri Nov 25 14:38:19 2005 UTC (6 years, 2 months ago) by glebius
Branches: RELENG_6
Diff to: previous 1.137.2.4: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.4: +28 -31 lines
MFC 1.145:
Rework ARP retransmission algorythm so that ARP requests are
retransmitted without suppression, while there is demand for
such ARP entry. As before, retransmission is rate limited to
one packet per second. Details:
- Remove net.link.ether.inet.host_down_time
- Do not set/clear RTF_REJECT flag on route, to
avoid rt_check() returning error. We will generate error
ourselves.
- Return EWOULDBLOCK on first arp_maxtries failed
requests , and return EHOSTDOWN/EHOSTUNREACH
on further requests.
- Retransmit ARP request always, independently from return
code. Ratelimit to 1 pps.
MFC 1.142:
Use monotonic 'time_uptime' instead of 'time_second' as timebase
for rt->rt_rmx.rmx_expire.
Revision 1.145: download - view: text, markup, annotated - select for diffs
Tue Nov 8 12:05:57 2005 UTC (6 years, 3 months ago) by glebius
Branches: MAIN
Diff to: previous 1.144: preferred, colored
Changes since revision 1.144: +27 -30 lines
Rework ARP retransmission algorythm so that ARP requests are
retransmitted without suppression, while there is demand for
such ARP entry. As before, retransmission is rate limited to
one packet per second. Details:
- Remove net.link.ether.inet.host_down_time
- Do not set/clear RTF_REJECT flag on route, to
avoid rt_check() returning error. We will generate error
ourselves.
- Return EWOULDBLOCK on first arp_maxtries failed
requests , and return EHOSTDOWN/EHOSTUNREACH
on further requests.
- Retransmit ARP request always, independently from return
code. Ratelimit to 1 pps.
Revision 1.128.2.8: download - view: text, markup, annotated - select for diffs
Thu Nov 3 12:02:10 2005 UTC (6 years, 3 months ago) by glebius
Branches: RELENG_5
Diff to: previous 1.128.2.7: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.2.7: +209 -165 lines
Several fixes to ARP and route locking, that were done during 6.0 release
cycle, and are also applicable to RELENG_5:
o Make rt_check() return a locked rtentry.
o Make rt_check() function more strict:
- rt0 passed to rt_check() must not be NULL, assert this.
- rt returned by rt_check() must be valid locked rtentry,
if no error occured.
o Modify callers, so that they never pass NULL rt0
to rt_check().
o Modify callers, so that they unlock rtentry.
o Fix races in ARP code. See if_ether.c 1.139 for more information.
o Fix LORs in ARP code. See if_ether.c 1.141 for more information.
o Lock rtentry before dropping radix lock.
o Send published ARP replies only on correct interface. [1]
o Drop rtentry lock before calling rt_getifa(). [2]
o Fixes to rt_setgate():
- To avoid recursive rtentry locking.
- Do not change routes in case of failure.
- Return EADDRINUSE instead of bogus EDQUOT [3]
Revisions merged:
net/if_atmsubr.c - 1.39, 1.41
net/if_fwsubr.c - 1.13, 1.15
net/if_iso88025subr.c - 1.69, 1.71
net/route.c - 1.110, 1.111, 1.113
net/rtsock.c - 1.110, 1.111, 1.126, 1.130
netinet6/nd6.c - 1.51-1.53
netinet/if_ether.c - 1.139, 1.140, 1.141
PR: kern/75634 [1]
PR: kern/69356 [2]
PR: kern/64090 [3]
Revision 1.137.2.4: download - view: text, markup, annotated - select for diffs
Fri Oct 7 01:51:29 2005 UTC (6 years, 4 months ago) by thompsa
Branches: RELENG_6
CVS tags: RELENG_6_0_BP, RELENG_6_0_0_RELEASE, RELENG_6_0
Diff to: previous 1.137.2.3: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.3: +1 -1 lines
MFC r1.144
When bridging is enabled and an ARP request is recieved on a member interface,
the arp code will search all local interfaces for a match. This triggers a
kernel log if the bridge has been assigned an address.
arp: ac:de:48:18:83:3d is using my IP address 192.168.0.142!
bridge0: flags=8041<UP,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.142 netmask 0xffffff00
ether ac:de:48:18:83:3d
Silence this warning for 6.0 to stop unnecessary bug reports, the code will need
to be reworked.
Approved by: re (scottl)
Revision 1.144: download - view: text, markup, annotated - select for diffs
Tue Oct 4 19:50:02 2005 UTC (6 years, 4 months ago) by thompsa
Branches: MAIN
Diff to: previous 1.143: preferred, colored
Changes since revision 1.143: +1 -1 lines
When bridging is enabled and an ARP request is recieved on a member interface,
the arp code will search all local interfaces for a match. This triggers a
kernel log if the bridge has been assigned an address.
arp: ac:de:48:18:83:3d is using my IP address 192.168.0.142!
bridge0: flags=8041<UP,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.142 netmask 0xffffff00
ether ac:de:48:18:83:3d
Silence this warning for 6.0 to stop unnecessary bug reports, the code will need
to be reworked.
Approved by: mlaier (mentor)
MFC after: 3 days
Revision 1.128.2.7: download - view: text, markup, annotated - select for diffs
Mon Oct 3 21:51:32 2005 UTC (6 years, 4 months ago) by thompsa
Branches: RELENG_5
Diff to: previous 1.128.2.6: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.2.6: +8 -4 lines
MFC if_bridge support code Add network hooks and support code for if_bridge, including ipv6 and dummynet support. Use the if_spare1 pointer from struct ifnet to keep ABI. Approved by: mlaier (mentor)
Revision 1.143: download - view: text, markup, annotated - select for diffs
Tue Sep 27 18:10:42 2005 UTC (6 years, 4 months ago) by mlaier
Branches: MAIN
Diff to: previous 1.142: preferred, colored
Changes since revision 1.142: +1 -3 lines
Remove bridge(4) from the tree. if_bridge(4) is a full functional replacement and has additional features which make it superior. Discussed on: -arch Reviewed by: thompsa X-MFC-after: never (RELENG_6 as transition period)
Revision 1.142: download - view: text, markup, annotated - select for diffs
Mon Sep 19 22:54:55 2005 UTC (6 years, 4 months ago) by andre
Branches: MAIN
Diff to: previous 1.141: preferred, colored
Changes since revision 1.141: +7 -7 lines
Use monotonic 'time_uptime' instead of 'time_second' as timebase for rt->rt_rmx.rmx_expire.
Revision 1.137.2.3: download - view: text, markup, annotated - select for diffs
Tue Sep 13 14:37:58 2005 UTC (6 years, 4 months ago) by glebius
Branches: RELENG_6
Diff to: previous 1.137.2.2: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.2: +17 -9 lines
MFC 1.141:
- Do not hold route entry lock, when calling arprequest(). One such
call was introduced by me in 1.139, the other one was present before.
- Do all manipulations with rtentry and la before dropping the lock.
- Copy interface address from route into local variable before dropping
the lock. Supply this copy as argument to arprequest().
(LOR Ids in original commit message.)
Approved by: re (scottl)
Revision 1.141: download - view: text, markup, annotated - select for diffs
Fri Sep 9 10:06:27 2005 UTC (6 years, 5 months ago) by glebius
Branches: MAIN
Diff to: previous 1.140: preferred, colored
Changes since revision 1.140: +17 -9 lines
- Do not hold route entry lock, when calling arprequest(). One such call was introduced by me in 1.139, the other one was present before. - Do all manipulations with rtentry and la before dropping the lock. - Copy interface address from route into local variable before dropping the lock. Supply this copy as argument to arprequest() LORs fixed: http://sources.zabbadoz.net/freebsd/lor/003.html http://sources.zabbadoz.net/freebsd/lor/037.html http://sources.zabbadoz.net/freebsd/lor/061.html http://sources.zabbadoz.net/freebsd/lor/062.html http://sources.zabbadoz.net/freebsd/lor/064.html http://sources.zabbadoz.net/freebsd/lor/068.html http://sources.zabbadoz.net/freebsd/lor/071.html http://sources.zabbadoz.net/freebsd/lor/074.html http://sources.zabbadoz.net/freebsd/lor/077.html http://sources.zabbadoz.net/freebsd/lor/093.html http://sources.zabbadoz.net/freebsd/lor/135.html http://sources.zabbadoz.net/freebsd/lor/140.html http://sources.zabbadoz.net/freebsd/lor/142.html http://sources.zabbadoz.net/freebsd/lor/145.html http://sources.zabbadoz.net/freebsd/lor/152.html http://sources.zabbadoz.net/freebsd/lor/158.html
Revision 1.137.2.2: download - view: text, markup, annotated - select for diffs
Mon Aug 29 09:06:30 2005 UTC (6 years, 5 months ago) by glebius
Branches: RELENG_6
Diff to: previous 1.137.2.1: preferred, colored; branchpoint 1.137: preferred, colored
Changes since revision 1.137.2.1: +9 -0 lines
MFC 1.140: When we have a published ARP entry for some IP address, do reply on ARP requests only on the network where this IP address belong, to. Before this change we did replied on all interfaces. This could lead to an IP address conflict with host we are doing ARP proxy for. PR: kern/75634 Reviewed by: andre Approved by: re (scottl)
Revision 1.140: download - view: text, markup, annotated - select for diffs
Thu Aug 25 13:25:57 2005 UTC (6 years, 5 months ago) by glebius
Branches: MAIN
Diff to: previous 1.139: preferred, colored
Changes since revision 1.139: +9 -0 lines
When we have a published ARP entry for some IP address, do reply on ARP requests only on the network where this IP address belong, to. Before this change we did replied on all interfaces. This could lead to an IP address conflict with host we are doing ARP proxy for. PR: kern/75634 Reviewed by: andre
Revision 1.137.2.1: download - view: text, markup, annotated - select for diffs
Thu Aug 18 10:14:22 2005 UTC (6 years, 5 months ago) by glebius
Branches: RELENG_6
Diff to: previous 1.137: preferred, colored
Changes since revision 1.137: +183 -156 lines
MFC 1.139, that closes several races in ARP code. See original commit log for more information. Approved by: re (kensmith)
Revision 1.139: download - view: text, markup, annotated - select for diffs
Thu Aug 11 08:25:48 2005 UTC (6 years, 6 months ago) by glebius
Branches: MAIN
Diff to: previous 1.138: preferred, colored
Changes since revision 1.138: +183 -157 lines
o Fix a race between three threads: output path,
incoming ARP packet and route request adding/removing
ARP entries. The root of the problem is that
struct llinfo_arp was accessed without any locks.
To close race we will use locking provided by
rtentry, that references this llinfo_arp:
- Make arplookup() return a locked rtentry.
- In arpresolve() hold the lock provided by
rt_check()/arplookup() until the end of function,
covering all accesses to the rtentry itself and
llinfo_arp it refers to.
- In in_arpinput() do not drop lock provided by
arplookup() during first part of the function.
- Simplify logic in the first part of in_arpinput(),
removing one level of indentation.
- In the second part of in_arpinput() hold rtentry
lock while copying address.
o Fix a condition when route entry is destroyed, while
another thread is contested on its lock:
- When storing a pointer to rtentry in llinfo_arp list,
always add a reference to this rtentry, to prevent
rtentry being destroyed via RTM_DELETE request.
- Remove this reference when removing entry from
llinfo_arp list.
o Further cleanup of arptimer():
- Inline arptfree() into arptimer().
- Use official queue(3) way to pass LIST.
- Hold rtentry lock while reading its structure.
- Do not check that sdl_family is AF_LINK, but
assert this.
Reviewed by: sam
Stress test: http://www.holm.cc/stress/log/cons141.html
Stress test: http://people.freebsd.org/~pho/stress/log/cons144.html
Revision 1.138: download - view: text, markup, annotated - select for diffs
Tue Aug 9 08:39:56 2005 UTC (6 years, 6 months ago) by glebius
Branches: MAIN
Diff to: previous 1.137: preferred, colored
Changes since revision 1.137: +1 -0 lines
In preparation for fixing races in ARP (and probably in other L2/L3 mappings) make rt_check() return a locked rtentry.
Revision 1.137: download - view: text, markup, annotated - select for diffs
Sun Jun 5 03:13:12 2005 UTC (6 years, 8 months ago) by thompsa
Branches: MAIN
CVS tags: RELENG_6_BP
Branch point for: RELENG_6
Diff to: previous 1.136: preferred, colored
Changes since revision 1.136: +8 -4 lines
Add hooks into the networking layer to support if_bridge. This changes struct ifnet so a buildworld is necessary. Approved by: mlaier (mentor) Obtained from: NetBSD
Revision 1.128.2.6: download - view: text, markup, annotated - select for diffs
Mon Mar 21 16:05:35 2005 UTC (6 years, 10 months ago) by glebius
Branches: RELENG_5
CVS tags: RELENG_5_4_BP, RELENG_5_4_0_RELEASE, RELENG_5_4
Diff to: previous 1.128.2.5: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.2.5: +46 -5 lines
MFC Common Address Redundancy Protocol implementation. Approved by: re
Revision 1.136: download - view: text, markup, annotated - select for diffs
Sun Mar 13 11:23:22 2005 UTC (6 years, 11 months ago) by glebius
Branches: MAIN
Diff to: previous 1.135: preferred, colored
Changes since revision 1.135: +7 -2 lines
Embrace with #ifdef DEV_CARP carp-related code.
Revision 1.135: download - view: text, markup, annotated - select for diffs
Wed Mar 9 10:00:01 2005 UTC (6 years, 11 months ago) by glebius
Branches: MAIN
Diff to: previous 1.134: preferred, colored
Changes since revision 1.134: +14 -7 lines
Make ARP do not complain about wrong interface if correct interface is a carp one and address matched it. Reviewed by: brooks
Revision 1.134: download - view: text, markup, annotated - select for diffs
Tue Feb 22 13:04:03 2005 UTC (6 years, 11 months ago) by glebius
Branches: MAIN
Diff to: previous 1.133: preferred, colored
Changes since revision 1.133: +34 -5 lines
Add CARP (Common Address Redundancy Protocol), which allows multiple hosts to share an IP address, providing high availability and load balancing. Original work on CARP done by Michael Shalayeff, with many additions by Marco Pfatschbacher and Ryan McBride. FreeBSD port done solely by Max Laier. Patch by: mlaier Obtained from: OpenBSD (mickey, mcbride)
Revision 1.128.2.5: download - view: text, markup, annotated - select for diffs
Mon Jan 31 23:26:35 2005 UTC (7 years ago) by imp
Branches: RELENG_5
Diff to: previous 1.128.2.4: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.2.4: +1 -1 lines
MFC: /*- and related license changes
Revision 1.133: download - view: text, markup, annotated - select for diffs
Fri Jan 7 01:45:44 2005 UTC (7 years, 1 month ago) by imp
Branches: MAIN
Diff to: previous 1.132: preferred, colored
Changes since revision 1.132: +1 -1 lines
/* -> /*- for license, minor formatting changes
Revision 1.128.2.4: download - view: text, markup, annotated - select for diffs
Sat Dec 25 22:55:35 2004 UTC (7 years, 1 month ago) by rwatson
Branches: RELENG_5
Diff to: previous 1.128.2.3: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.2.3: +7 -1 lines
Merge if_ether.c:1.130 from HEAD to RELENG_5: date: 2004/10/12 17:10:40; author: rwatson; state: Exp; lines: +7 -1 Modify the thrilling "%D is using my IP address %s!" message so that it isn't printed if the IP address in question is '0.0.0.0', which is used by nodes performing DHCP lookup, and so constitute a false positive as a report of misconfiguration.
Revision 1.128.2.3: download - view: text, markup, annotated - select for diffs
Sun Dec 12 19:12:35 2004 UTC (7 years, 2 months ago) by mlaier
Branches: RELENG_5
Diff to: previous 1.128.2.2: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.2.2: +20 -2 lines
MFC: in.c, rev. 1.78-1.80 and if_ether.c, rev. 1.132 Change the way we automatically add prefix routes when adding a new address. This makes it possible to have more than one address with the same prefix. The first address added is used for the route. On deletion of an address with IFA_ROUTE set, we try to find a "fallback" address and hand over the route if possible. Obtained from: Open/NetBSD Discussed on: -net, -arch A lot of help: ru
Revision 1.132: download - view: text, markup, annotated - select for diffs
Thu Dec 9 00:12:41 2004 UTC (7 years, 2 months ago) by mlaier
Branches: MAIN
Diff to: previous 1.131: preferred, colored
Changes since revision 1.131: +20 -2 lines
More fixing of multiple addresses in the same prefix. This time do not try to arp resolve "secondary" local addresses. Found and submitted by: ru With additions from: OpenBSD (rev. 1.47) Reviewed by: ru
Revision 1.64.2.28: download - view: text, markup, annotated - select for diffs
Tue Oct 26 17:36:16 2004 UTC (7 years, 3 months ago) by bms
Branches: RELENG_4
CVS tags: RELENG_4_11_BP, RELENG_4_11_0_RELEASE, RELENG_4_11
Diff to: previous 1.64.2.27: preferred, colored; branchpoint 1.64: preferred, colored; next MAIN 1.65: preferred, colored
Changes since revision 1.64.2.27: +1 -0 lines
MFC r1.131: Check that rt_mask(rt) is non-NULL before dereferencing it, in the RTM_ADD case, thus avoiding a panic. PR: kern/42030 Submitted by: Iasen Kostov
Revision 1.128.2.1.2.1: download - view: text, markup, annotated - select for diffs
Tue Oct 26 17:28:36 2004 UTC (7 years, 3 months ago) by bms
Branches: RELENG_5_3
CVS tags: RELENG_5_3_0_RELEASE
Diff to: previous 1.128.2.1: preferred, colored; next MAIN 1.128.2.2: preferred, colored
Changes since revision 1.128.2.1: +1 -0 lines
MFC r1.131: Check that rt_mask(rt) is non-NULL before dereferencing it, in the RTM_ADD case, thus avoiding a panic. PR: kern/42030 Submitted by: Iasen Kostov Approved by: re@
Revision 1.128.2.2: download - view: text, markup, annotated - select for diffs
Tue Oct 26 17:27:45 2004 UTC (7 years, 3 months ago) by bms
Branches: RELENG_5
Diff to: previous 1.128.2.1: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.2.1: +1 -0 lines
MFC rev 1.131: Check that rt_mask(rt) is non-NULL before dereferencing it, in the RTM_ADD case, thus avoiding a panic. PR: kern/42030 Submitted by: Iasen Kostov Approved by: re@
Revision 1.131: download - view: text, markup, annotated - select for diffs
Tue Oct 26 03:31:58 2004 UTC (7 years, 3 months ago) by bms
Branches: MAIN
Diff to: previous 1.130: preferred, colored
Changes since revision 1.130: +1 -0 lines
Check that rt_mask(rt) is non-NULL before dereferencing it, in the RTM_ADD case, thus avoiding a panic. Submitted by: Iasen Kostov
Revision 1.130: download - view: text, markup, annotated - select for diffs
Tue Oct 12 17:10:40 2004 UTC (7 years, 4 months ago) by rwatson
Branches: MAIN
Diff to: previous 1.129: preferred, colored
Changes since revision 1.129: +7 -1 lines
Modify the thrilling "%D is using my IP address %s!" message so that it isn't printed if the IP address in question is '0.0.0.0', which is used by nodes performing DHCP lookup, and so constitute a false positive as a report of misconfiguration.
Revision 1.128.2.1: download - view: text, markup, annotated - select for diffs
Fri Sep 17 19:50:27 2004 UTC (7 years, 4 months ago) by glebius
Branches: RELENG_5
CVS tags: RELENG_5_3_BP
Branch point for: RELENG_5_3
Diff to: previous 1.128: preferred, colored
Changes since revision 1.128: +5 -11 lines
MFC 1.129: Check flag do_bridge always, even if kernel was compiled without BRIDGE support. This makes dynamic bridge.ko working. Approved by: re (scottl)
Revision 1.129: download - view: text, markup, annotated - select for diffs
Thu Sep 9 12:34:07 2004 UTC (7 years, 5 months ago) by glebius
Branches: MAIN
Diff to: previous 1.128: preferred, colored
Changes since revision 1.128: +5 -11 lines
Check flag do_bridge always, even if kernel was compiled without BRIDGE support. This makes dynamic bridge.ko working. Reviewed by: sam Approved by: julian (mentor) MFC after: 1 week
Revision 1.128: download - view: text, markup, annotated - select for diffs
Sun Jun 13 10:54:36 2004 UTC (7 years, 8 months ago) by dfr
Branches: MAIN
CVS tags: RELENG_5_BP
Branch point for: RELENG_5
Diff to: previous 1.127: preferred, colored
Changes since revision 1.127: +2 -1 lines
Add a new driver to support IP over firewire. This driver is intended to conform to the rfc2734 and rfc3146 standard for IP over firewire and should eventually supercede the fwe driver. Right now the broadcast channel number is hardwired and we don't support MCAP for multicast channel allocation - more infrastructure is required in the firewire code itself to fix these problems.
Revision 1.127: download - view: text, markup, annotated - select for diffs
Sun Apr 25 15:00:17 2004 UTC (7 years, 9 months ago) by luigi
Branches: MAIN
Diff to: previous 1.126: preferred, colored
Changes since revision 1.126: +18 -31 lines
Another small set of changes to reduce diffs with the new arp code.
Revision 1.126: download - view: text, markup, annotated - select for diffs
Sun Apr 25 14:06:23 2004 UTC (7 years, 9 months ago) by luigi
Branches: MAIN
Diff to: previous 1.125: preferred, colored
Changes since revision 1.125: +0 -10 lines
remove a stale comment on the behaviour of arpresolve
Revision 1.125: download - view: text, markup, annotated - select for diffs
Sun Apr 25 12:50:14 2004 UTC (7 years, 9 months ago) by luigi
Branches: MAIN
Diff to: previous 1.124: preferred, colored
Changes since revision 1.124: +1 -10 lines
Start the arp timer at init time. It runs so rarely that it makes no sense to wait until the first request.
Revision 1.124: download - view: text, markup, annotated - select for diffs
Sun Apr 25 09:24:52 2004 UTC (7 years, 9 months ago) by luigi
Branches: MAIN
Diff to: previous 1.123: preferred, colored
Changes since revision 1.123: +28 -7 lines
This commit does two things:
1. rt_check() cleanup:
rt_check() is only necessary for some address families to gain access
to the corresponding arp entry, so call it only in/near the *resolve()
routines where it is actually used -- at the moment this is
arpresolve(), nd6_storelladdr() (the call is embedded here),
and atmresolve() (the call is just before atmresolve to reduce
the number of changes).
This change will make it a lot easier to decouple the arp table
from the routing table.
There is an extra call to rt_check() in if_iso88025subr.c to
determine the routing info length. I have left it alone for
the time being.
The interface of arpresolve() and nd6_storelladdr() now changes slightly:
+ the 'rtentry' parameter (really a hint from the upper level layer)
is now passed unchanged from *_output(), so it becomes the route
to the final destination and not to the gateway.
+ the routines will return 0 if resolution is possible, non-zero
otherwise.
+ arpresolve() returns EWOULDBLOCK in case the mbuf is being held
waiting for an arp reply -- in this case the error code is masked
in the caller so the upper layer protocol will not see a failure.
2. arpcom untangling
Where possible, use 'struct ifnet' instead of 'struct arpcom' variables,
and use the IFP2AC macro to access arpcom fields.
This mostly affects the netatalk code.
=== Detailed changes: ===
net/if_arcsubr.c
rt_check() cleanup, remove a useless variable
net/if_atmsubr.c
rt_check() cleanup
net/if_ethersubr.c
rt_check() cleanup, arpcom untangling
net/if_fddisubr.c
rt_check() cleanup, arpcom untangling
net/if_iso88025subr.c
rt_check() cleanup
netatalk/aarp.c
arpcom untangling, remove a block of duplicated code
netatalk/at_extern.h
arpcom untangling
netinet/if_ether.c
rt_check() cleanup (change arpresolve)
netinet6/nd6.c
rt_check() cleanup (change nd6_storelladdr)
Revision 1.123: download - view: text, markup, annotated - select for diffs
Sun Apr 18 11:45:49 2004 UTC (7 years, 9 months ago) by luigi
Branches: MAIN
Diff to: previous 1.122: preferred, colored
Changes since revision 1.122: +1 -1 lines
Replace Bcopy with 'the real thing' as in the rest of the file.
Revision 1.122: download - view: text, markup, annotated - select for diffs
Wed Apr 7 20:46:13 2004 UTC (7 years, 10 months ago) by imp
Branches: MAIN
Diff to: previous 1.121: preferred, colored
Changes since revision 1.121: +0 -4 lines
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999 and email from Peter Wemm, Alan Cox and Robert Watson. Approved by: core, peter, alc, rwatson
Revision 1.121: download - view: text, markup, annotated - select for diffs
Sun Apr 4 06:14:55 2004 UTC (7 years, 10 months ago) by luigi
Branches: MAIN
Diff to: previous 1.120: preferred, colored
Changes since revision 1.120: +2 -7 lines
+ arpresolve(): remove an unused argument + struct ifnet: remove unused fields, move ipv6-related field close to each other, add a pointer to l3<->l2 translation tables (arp,nd6, etc.) for future use. + struct route: remove an unused field, move close to each other some fields that might likely go away in the future
Revision 1.120: download - view: text, markup, annotated - select for diffs
Sun Mar 21 18:51:26 2004 UTC (7 years, 10 months ago) by mdodd
Branches: MAIN
Diff to: previous 1.119: preferred, colored
Changes since revision 1.119: +4 -5 lines
- Fix indentation lost by 'diff -b'. - Un-wrap short line.
Revision 1.119: download - view: text, markup, annotated - select for diffs
Sun Mar 21 06:36:05 2004 UTC (7 years, 10 months ago) by mdodd
Branches: MAIN
Diff to: previous 1.118: preferred, colored
Changes since revision 1.118: +19 -111 lines
Remove interface type specific code from arprequest(), and in_arpinput(). The AF_ARP case in the (*if_output)() routine will handle the interface type specific bits. Obtained from: NetBSD
Revision 1.118: download - view: text, markup, annotated - select for diffs
Sun Mar 14 00:44:11 2004 UTC (7 years, 11 months ago) by mdodd
Branches: MAIN
Diff to: previous 1.117: preferred, colored
Changes since revision 1.117: +22 -22 lines
De-register.
Revision 1.117: download - view: text, markup, annotated - select for diffs
Tue Dec 23 14:08:50 2003 UTC (8 years, 1 month ago) by ru
Branches: MAIN
Diff to: previous 1.116: preferred, colored
Changes since revision 1.116: +1 -1 lines
I didn't notice it right away, but check the right length too.
Revision 1.116: download - view: text, markup, annotated - select for diffs
Tue Dec 23 13:33:23 2003 UTC (8 years, 1 month ago) by ru
Branches: MAIN
Diff to: previous 1.115: preferred, colored
Changes since revision 1.115: +7 -5 lines
Fix a problem introduced in revision 1.84: m_pullup() does not necessarily return the same mbuf chain so we need to recompute mtod() consumers after pulling up.
Revision 1.64.2.27: download - view: text, markup, annotated - select for diffs
Mon Dec 8 16:55:21 2003 UTC (8 years, 2 months ago) by bms
Branches: RELENG_4
CVS tags: RELENG_4_10_BP, RELENG_4_10_0_RELEASE, RELENG_4_10
Diff to: previous 1.64.2.26: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.26: +3 -1 lines
MFC: Introduce the STATICARP flag to -STABLE. Submitted by: ru (rtsock.c) Sponsored by: Weyland-Yutani Corporation
Revision 1.115: download - view: text, markup, annotated - select for diffs
Sat Nov 8 23:36:31 2003 UTC (8 years, 3 months ago) by sam
Branches: MAIN
CVS tags: RELENG_5_2_BP, RELENG_5_2_1_RELEASE, RELENG_5_2_0_RELEASE, RELENG_5_2
Diff to: previous 1.114: preferred, colored
Changes since revision 1.114: +1 -1 lines
replace explicit changes to rt_refcnt by RT_ADDREF and RT_REMREF macros that expand to include assertions when the system is built with INVARIANTS Supported by: FreeBSD Foundation
Revision 1.114: download - view: text, markup, annotated - select for diffs
Sat Nov 8 22:28:39 2003 UTC (8 years, 3 months ago) by sam
Branches: MAIN
Diff to: previous 1.113: preferred, colored
Changes since revision 1.113: +1 -1 lines
o add a flags parameter to netisr_register that is used to specify whether or not the isr needs to hold Giant when running; Giant-less operation is also controlled by the setting of debug_mpsafenet o mark all netisr's except NETISR_IP as needing Giant o add a GIANT_REQUIRED assertion to the top of netisr's that need Giant o pickup Giant (when debug_mpsafenet is 1) inside ip_input before calling up with a packet o change netisr handling so swi_net runs w/o Giant; instead we grab Giant before invoking handlers based on whether the handler needs Giant o change netisr handling so that netisr's that are marked MPSAFE may have multiple instances active at a time o add netisr statistics for packets dropped because the isr is inactive Supported by: FreeBSD Foundation
Revision 1.113: download - view: text, markup, annotated - select for diffs
Fri Oct 31 18:32:11 2003 UTC (8 years, 3 months ago) by brooks
Branches: MAIN
Diff to: previous 1.112: preferred, colored
Changes since revision 1.112: +10 -11 lines
Replace the if_name and if_unit members of struct ifnet with new members if_xname, if_dname, and if_dunit. if_xname is the name of the interface and if_dname/unit are the driver name and instance. This change paves the way for interface renaming and enhanced pseudo device creation and configuration symantics. Approved By: re (in principle) Reviewed By: njl, imp Tested On: i386, amd64, sparc64 Obtained From: NetBSD (if_xname)
Revision 1.112: download - view: text, markup, annotated - select for diffs
Thu Oct 30 23:02:51 2003 UTC (8 years, 3 months ago) by sam
Branches: MAIN
Diff to: previous 1.111: preferred, colored
Changes since revision 1.111: +3 -8 lines
Overhaul routing table entry cleanup by introducing a new rtexpunge routine that takes a locked routing table reference and removes all references to the entry in the various data structures. This eliminates instances of recursive locking and also closes races where the lock on the entry had to be dropped prior to calling rtrequest(RTM_DELETE). This also cleans up confusion where the caller held a reference to an entry that might have been reclaimed (and in some cases used that reference). Supported by: FreeBSD Foundation
Revision 1.111: download - view: text, markup, annotated - select for diffs
Sat Oct 4 03:44:49 2003 UTC (8 years, 4 months ago) by sam
Branches: MAIN
Diff to: previous 1.110: preferred, colored
Changes since revision 1.110: +53 -32 lines
Locking for updates to routing table entries. Each rtentry gets a mutex that covers updates to the contents. Note this is separate from holding a reference and/or locking the routing table itself. Other/related changes: o rtredirect loses the final parameter by which an rtentry reference may be returned; this was never used and added unwarranted complexity for locking. o minor style cleanups to routing code (e.g. ansi-fy function decls) o remove the logic to bump the refcnt on the parent of cloned routes, we assume the parent will remain as long as the clone; doing this avoids a circularity in locking during delete o convert some timeouts to MPSAFE callouts Notes: 1. rt_mtx in struct rtentry is guarded by #ifdef _KERNEL as user-level applications cannot/do-no know about mutex's. Doing this requires that the mutex be the last element in the structure. A better solution is to introduce an externalized version of struct rtentry but this is a major task because of the intertwining of rtentry and other data structures that are visible to user applications. 2. There are known LOR's that are expected to go away with forthcoming work to eliminate many held references. If not these will be resolved prior to release. 3. ATM changes are untested. Sponsored by: FreeBSD Foundation Obtained from: BSD/OS (partly)
Revision 1.110: download - view: text, markup, annotated - select for diffs
Fri Oct 3 17:22:14 2003 UTC (8 years, 4 months ago) by bms
Branches: MAIN
Diff to: previous 1.109: preferred, colored
Changes since revision 1.109: +1 -1 lines
Shorten 'bad gateway' AF_LINK message. Submitted by: green
Revision 1.109: download - view: text, markup, annotated - select for diffs
Fri Oct 3 17:21:17 2003 UTC (8 years, 4 months ago) by bms
Branches: MAIN
Diff to: previous 1.108: preferred, colored
Changes since revision 1.108: +4 -1 lines
Make arp_rtrequest()'s 'bad gateway' messages slightly more informative, to aid me in tracking down LLINFO inconsistencies in the routing table. Discussed with: fenner
Revision 1.108: download - view: text, markup, annotated - select for diffs
Fri Oct 3 09:19:23 2003 UTC (8 years, 4 months ago) by bms
Branches: MAIN
Diff to: previous 1.107: preferred, colored
Changes since revision 1.107: +13 -8 lines
Only delete the route if arplookup() tried to create it. Do not delete RTF_STATIC routes. Do not check for RTF_HOST so as to avoid being DoSed when an RTF_GENMASK route exists in the table. Add a more verbose comment about exactly what this code does. Submitted by: ru
Revision 1.107: download - view: text, markup, annotated - select for diffs
Wed Oct 1 08:32:37 2003 UTC (8 years, 4 months ago) by ru
Branches: MAIN
Diff to: previous 1.106: preferred, colored
Changes since revision 1.106: +4 -2 lines
By popular demand, added the "static ARP" per-interface option.
Revision 1.64.2.10.2.2: download - view: text, markup, annotated - select for diffs
Wed Sep 24 21:51:13 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_3
Diff to: previous 1.64.2.10.2.1: preferred, colored; branchpoint 1.64.2.10: preferred, colored; next MAIN 1.64.2.11: preferred, colored
Changes since revision 1.64.2.10.2.1: +1 -1 lines
Fix a logic error in the check to see if arplookup() should free the route. Noticed by: Mike Hogsett Reviewed by: ru
Revision 1.64.2.11.2.2: download - view: text, markup, annotated - select for diffs
Wed Sep 24 21:50:42 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_4
Diff to: previous 1.64.2.11.2.1: preferred, colored; branchpoint 1.64.2.11: preferred, colored; next MAIN 1.64.2.12: preferred, colored
Changes since revision 1.64.2.11.2.1: +1 -1 lines
Fix a logic error in the check to see if arplookup() should free the route. Noticed by: Mike Hogsett Reviewed by: ru
Revision 1.64.2.15.2.2: download - view: text, markup, annotated - select for diffs
Wed Sep 24 21:50:00 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_5
Diff to: previous 1.64.2.15.2.1: preferred, colored; branchpoint 1.64.2.15: preferred, colored; next MAIN 1.64.2.16: preferred, colored
Changes since revision 1.64.2.15.2.1: +1 -1 lines
Fix a logic error in the check to see if arplookup() should free the route. Noticed by: Mike Hogsett Reviewed by: ru
Revision 1.64.2.18.2.2: download - view: text, markup, annotated - select for diffs
Wed Sep 24 21:49:32 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_6
Diff to: previous 1.64.2.18.2.1: preferred, colored; branchpoint 1.64.2.18: preferred, colored; next MAIN 1.64.2.19: preferred, colored
Changes since revision 1.64.2.18.2.1: +1 -1 lines
Fix a logic error in the check to see if arplookup() should free the route. Noticed by: Mike Hogsett Reviewed by: ru
Revision 1.64.2.19.2.2: download - view: text, markup, annotated - select for diffs
Wed Sep 24 21:48:56 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_7
Diff to: previous 1.64.2.19.2.1: preferred, colored; branchpoint 1.64.2.19: preferred, colored; next MAIN 1.64.2.20: preferred, colored
Changes since revision 1.64.2.19.2.1: +1 -1 lines
Fix a logic error in the check to see if arplookup() should free the route. Noticed by: Mike Hogsett Reviewed by: ru
Revision 1.64.2.22.2.2: download - view: text, markup, annotated - select for diffs
Wed Sep 24 21:48:28 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_8
Diff to: previous 1.64.2.22.2.1: preferred, colored; branchpoint 1.64.2.22: preferred, colored; next MAIN 1.64.2.23: preferred, colored
Changes since revision 1.64.2.22.2.1: +1 -1 lines
Fix a logic error in the check to see if arplookup() should free the route. Noticed by: Mike Hogsett Reviewed by: ru
Revision 1.64.2.26: download - view: text, markup, annotated - select for diffs
Wed Sep 24 21:48:00 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4
CVS tags: RELENG_4_9_BP, RELENG_4_9_0_RELEASE, RELENG_4_9
Diff to: previous 1.64.2.25: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.25: +1 -1 lines
Fix a logic error in the check to see if arplookup() should free the route. Noticed by: Mike Hogsett Reviewed by: ru
Revision 1.96.2.2: download - view: text, markup, annotated - select for diffs
Wed Sep 24 21:47:32 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_5_0
Diff to: previous 1.96.2.1: preferred, colored; branchpoint 1.96: preferred, colored; next MAIN 1.97: preferred, colored
Changes since revision 1.96.2.1: +1 -1 lines
Fix a logic error in the check to see if arplookup() should free the route. Noticed by: Mike Hogsett Reviewed by: ru
Revision 1.104.2.2: download - view: text, markup, annotated - select for diffs
Wed Sep 24 21:46:56 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_5_1
Diff to: previous 1.104.2.1: preferred, colored; branchpoint 1.104: preferred, colored; next MAIN 1.105: preferred, colored
Changes since revision 1.104.2.1: +1 -1 lines
Fix a logic error in the check to see if arplookup() should free the route. Noticed by: Mike Hogsett Reviewed by: ru
Revision 1.106: download - view: text, markup, annotated - select for diffs
Wed Sep 24 20:52:25 2003 UTC (8 years, 4 months ago) by bms
Branches: MAIN
Diff to: previous 1.105: preferred, colored
Changes since revision 1.105: +1 -2 lines
Fix a logic error in the check to see if arplookup() should free the route. Noticed by: Mike Hogsett Reviewed by: ru
Revision 1.104.2.1: download - view: text, markup, annotated - select for diffs
Tue Sep 23 20:08:42 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_5_1
Diff to: previous 1.104: preferred, colored
Changes since revision 1.104: +14 -6 lines
Fix a bug in arplookup(), whereby a hostile party on a locally attached network could exhaust kernel memory, and cause a system panic, by sending a flood of spoofed ARP requests. Approved by: security-officer, jake (mentor) Reported by: Apple Product Security <product-security@apple.com>
Revision 1.96.2.1: download - view: text, markup, annotated - select for diffs
Tue Sep 23 20:07:06 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_5_0
Diff to: previous 1.96: preferred, colored
Changes since revision 1.96: +14 -6 lines
Fix a bug in arplookup(), whereby a hostile party on a locally attached network could exhaust kernel memory, and cause a system panic, by sending a flood of spoofed ARP requests. Approved by: security-officer, jake (mentor) Reported by: Apple Product Security <product-security@apple.com>
Revision 1.64.2.10.2.1: download - view: text, markup, annotated - select for diffs
Tue Sep 23 16:54:39 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_3
Diff to: previous 1.64.2.10: preferred, colored
Changes since revision 1.64.2.10: +15 -7 lines
Fix a bug in arplookup(), whereby a hostile party on a locally attached network could exhaust kernel memory, and cause a system panic, by sending a flood of spoofed ARP requests. Approved by: security-officer, jake (mentor) Reported by: Apple Product Security <product-security@apple.com>
Revision 1.64.2.11.2.1: download - view: text, markup, annotated - select for diffs
Tue Sep 23 16:52:45 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_4
Diff to: previous 1.64.2.11: preferred, colored
Changes since revision 1.64.2.11: +15 -7 lines
Fix a bug in arplookup(), whereby a hostile party on a locally attached network could exhaust kernel memory, and cause a system panic, by sending a flood of spoofed ARP requests. Approved by: security-officer, jake (mentor) Reported by: Apple Product Security <product-security@apple.com>
Revision 1.64.2.15.2.1: download - view: text, markup, annotated - select for diffs
Tue Sep 23 16:51:24 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_5
Diff to: previous 1.64.2.15: preferred, colored
Changes since revision 1.64.2.15: +14 -6 lines
Fix a bug in arplookup(), whereby a hostile party on a locally attached network could exhaust kernel memory, and cause a system panic, by sending a flood of spoofed ARP requests. Approved by: security-officer, jake (mentor) Reported by: Apple Product Security <product-security@apple.com>
Revision 1.64.2.18.2.1: download - view: text, markup, annotated - select for diffs
Tue Sep 23 16:49:46 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_6
Diff to: previous 1.64.2.18: preferred, colored
Changes since revision 1.64.2.18: +14 -6 lines
Fix a bug in arplookup(), whereby a hostile party on a locally attached network could exhaust kernel memory, and cause a system panic, by sending a flood of spoofed ARP requests. Approved by: security-officer, jake (mentor) Reported by: Apple Product Security <product-security@apple.com>
Revision 1.64.2.19.2.1: download - view: text, markup, annotated - select for diffs
Tue Sep 23 16:47:34 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_7
Diff to: previous 1.64.2.19: preferred, colored
Changes since revision 1.64.2.19: +14 -6 lines
Fix a bug in arplookup(), whereby a hostile party on a locally attached network could exhaust kernel memory, and cause a system panic, by sending a flood of spoofed ARP requests. Approved by: security-officer, jake (mentor) Reported by: Apple Product Security <product-security@apple.com>
Revision 1.64.2.22.2.1: download - view: text, markup, annotated - select for diffs
Tue Sep 23 16:44:58 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4_8
Diff to: previous 1.64.2.22: preferred, colored
Changes since revision 1.64.2.22: +14 -6 lines
Fix a bug in arplookup(), whereby a hostile party on a locally attached network could exhaust kernel memory, and cause a system panic, by sending a flood of spoofed ARP requests. Approved by: security-officer, jake (mentor) Reported by: Apple Product Security <product-security@apple.com>
Revision 1.64.2.25: download - view: text, markup, annotated - select for diffs
Tue Sep 23 16:42:59 2003 UTC (8 years, 4 months ago) by bms
Branches: RELENG_4
Diff to: previous 1.64.2.24: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.24: +14 -6 lines
Fix a bug in arplookup(), whereby a hostile party on a locally attached network could exhaust kernel memory, and cause a system panic, by sending a flood of spoofed ARP requests. Approved by: security-officer, jake (mentor) Reported by: Apple Product Security <product-security@apple.com>
Revision 1.105: download - view: text, markup, annotated - select for diffs
Tue Sep 23 16:39:31 2003 UTC (8 years, 4 months ago) by bms
Branches: MAIN
Diff to: previous 1.104: preferred, colored
Changes since revision 1.104: +14 -6 lines
Fix a bug in arplookup(), whereby a hostile party on a locally attached network could exhaust kernel memory, and cause a system panic, by sending a flood of spoofed ARP requests. Approved by: jake (mentor) Reported by: Apple Product Security <product-security@apple.com>
Revision 1.64.2.24: download - view: text, markup, annotated - select for diffs
Wed Jun 25 16:56:05 2003 UTC (8 years, 7 months ago) by rwatson
Branches: RELENG_4
Diff to: previous 1.64.2.23: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.23: +13 -7 lines
MFC net.link.ether.inet.log_arp_movements sysctl to disable gratuitous log entries when a non-permanent ethernet address of a host changes. Requested by: Georgi Hristov <hristov@iocc.com>
Revision 1.64.2.23: download - view: text, markup, annotated - select for diffs
Fri Apr 11 07:23:15 2003 UTC (8 years, 10 months ago) by fjoe
Branches: RELENG_4
Diff to: previous 1.64.2.22: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.22: +1 -0 lines
MFC: rev. 1.97 Clear the target hardware address field when generating an ARP request.
Revision 1.104: download - view: text, markup, annotated - select for diffs
Tue Mar 4 23:19:52 2003 UTC (8 years, 11 months ago) by jlemon
Branches: MAIN
CVS tags: RELENG_5_1_BP, RELENG_5_1_0_RELEASE
Branch point for: RELENG_5_1
Diff to: previous 1.103: preferred, colored
Changes since revision 1.103: +32 -43 lines
Update netisr handling; Each SWI now registers its queue, and all queue drain routines are done by swi_net, which allows for better queue control at some future point. Packets may also be directly dispatched to a netisr instead of queued, this may be of interest at some installations, but currently defaults to off. Reviewed by: hsu, silby, jayanth, sam Sponsored by: DARPA, NAI Labs
Revision 1.103: download - view: text, markup, annotated - select for diffs
Wed Feb 19 05:47:33 2003 UTC (8 years, 11 months ago) by imp
Branches: MAIN
Diff to: previous 1.102: preferred, colored
Changes since revision 1.102: +1 -1 lines
Back out M_* changes, per decision of the TRB. Approved by: trb
Revision 1.102: download - view: text, markup, annotated - select for diffs
Sat Feb 8 15:05:15 2003 UTC (9 years ago) by orion
Branches: MAIN
Diff to: previous 1.101: preferred, colored
Changes since revision 1.101: +7 -6 lines
Avoid multiply for preemptive arp calculation since it hits every ethernet packet sent. Prompted by: Jeffrey Hsu <hsu@FreeBSD.org>
Revision 1.101: download - view: text, markup, annotated - select for diffs
Tue Feb 4 05:28:08 2003 UTC (9 years ago) by orion
Branches: MAIN
Diff to: previous 1.100: preferred, colored
Changes since revision 1.100: +15 -14 lines
MFS 1.64.2.22: Re-enable non pre-emptive ARP requests. Submitted by: "Diomidis Spinellis" <dds@aueb.gr> PR: kern/46116
Revision 1.100: download - view: text, markup, annotated - select for diffs
Tue Jan 28 20:22:19 2003 UTC (9 years ago) by hsu
Branches: MAIN
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +5 -15 lines
Avoid lock order reversal by expanding the scope of the AF_INET radix tree lock to cover the ARP data structures.
Revision 1.99: download - view: text, markup, annotated - select for diffs
Tue Jan 21 08:56:03 2003 UTC (9 years ago) by alfred
Branches: MAIN
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +1 -1 lines
Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
Revision 1.98: download - view: text, markup, annotated - select for diffs
Fri Jan 17 07:59:35 2003 UTC (9 years ago) by hsu
Branches: MAIN
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +21 -6 lines
SMP locking for ARP.
Revision 1.97: download - view: text, markup, annotated - select for diffs
Fri Jan 10 00:04:53 2003 UTC (9 years, 1 month ago) by tmm
Branches: MAIN
Diff to: previous 1.96: preferred, colored
Changes since revision 1.96: +1 -0 lines
Clear the target hardware address field when generating an ARP request. Reviewed by: nectar MFC after: 1 week
Revision 1.64.2.22: download - view: text, markup, annotated - select for diffs
Thu Dec 12 23:19:02 2002 UTC (9 years, 2 months ago) by orion
Branches: RELENG_4
CVS tags: RELENG_4_8_BP, RELENG_4_8_0_RELEASE
Branch point for: RELENG_4_8
Diff to: previous 1.64.2.21: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.21: +15 -14 lines
Re-enable non pre-emptive ARP requests. Submitted by: "Diomidis Spinellis" <dds@aueb.gr> PR: kern/46116
Revision 1.64.2.21: download - view: text, markup, annotated - select for diffs
Mon Oct 21 20:48:54 2002 UTC (9 years, 3 months ago) by gallatin
Branches: RELENG_4
Diff to: previous 1.64.2.20: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.20: +10 -4 lines
MFC 1.95: Register the arpintr netisr early. This fixes panics (mainly seen on alphas) which happen when dhclient is run and the machine crashes because the arpintr netisr has not yet been installed. PR: 41642 Tested by: pirzyk, others on freebsd-alpha
Revision 1.64.2.20: download - view: text, markup, annotated - select for diffs
Sun Oct 13 07:11:46 2002 UTC (9 years, 4 months ago) by kbyanc
Branches: RELENG_4
Diff to: previous 1.64.2.19: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.19: +2 -2 lines
MFC 1.76: Use <sys/queue> macros rather than fondling implementation details.
Revision 1.96: download - view: text, markup, annotated - select for diffs
Wed Jul 31 16:45:16 2002 UTC (9 years, 6 months ago) by rwatson
Branches: MAIN
CVS tags: RELENG_5_0_BP, RELENG_5_0_0_RELEASE
Branch point for: RELENG_5_0
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +5 -0 lines
Introduce support for Mandatory Access Control and extensible kernel access control. When generating an ARP query, invoke a MAC entry point to permit the MAC framework to label its mbuf appropriately for the interface. Obtained from: TrustedBSD Project Sponsored by: DARPA, NAI Labs
Revision 1.95: download - view: text, markup, annotated - select for diffs
Thu Jun 20 01:27:40 2002 UTC (9 years, 7 months ago) by peter
Branches: MAIN
Diff to: previous 1.94: preferred, colored
Changes since revision 1.94: +7 -4 lines
Solve the 'unregistered netisr 18' information notice with a sledgehammer. Register the ISR early, but do not actually kick off the timer until we see some activity. This still saves us from running the arp timers on a system with no network cards.
Revision 1.64.2.19: download - view: text, markup, annotated - select for diffs
Tue Jun 18 00:15:31 2002 UTC (9 years, 7 months ago) by kbyanc
Branches: RELENG_4
CVS tags: RELENG_4_7_BP, RELENG_4_7_0_RELEASE
Branch point for: RELENG_4_7
Diff to: previous 1.64.2.18: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.18: +8 -8 lines
MFC netinet/if_ether.c:1.93-1.94,
net/if_iso88025subr.c:1.21,
net/iso88025.h:1.6-1.8:
Move ISO88025 source routing information into sockaddr_dl's
sdl_data field. This returns the sdl_data field to a
variable-length field. More importantly, this prevents a
easily-reproduceable data-corruption bug when the interface name
plus the hardware address exceed the sdl_data field's original 12
byte limit. However, token-ring interfaces may still overflow the
new sdl_data field's 46 byte limit if the interface name exceeds 6
characters (since 6 characters for interface name plus 6 for hardware
address plus 34 for source routing = the size of sdl_data).
Sponsored by: NTT Multimedia Communications Labs
Revision 1.94: download - view: text, markup, annotated - select for diffs
Wed May 15 01:03:32 2002 UTC (9 years, 9 months ago) by kbyanc
Branches: MAIN
Diff to: previous 1.93: preferred, colored
Changes since revision 1.93: +1 -0 lines
Reset token-ring source routing control field on receipt of ethernet frame without source routing information. This restores the behaviour in this scenario to that of prior to my last commit.
Revision 1.93: download - view: text, markup, annotated - select for diffs
Tue May 7 22:14:05 2002 UTC (9 years, 9 months ago) by kbyanc
Branches: MAIN
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +7 -8 lines
Move ISO88025 source routing information into sockaddr_dl's sdl_data field. This returns the sdl_data field to a variable-length field. More importantly, this prevents a easily-reproduceable data-corruption bug when the interface name plus the hardware address exceed the sdl_data field's original 12 byte limit. However, token-ring interfaces may still overflow the new sdl_data field's 46 byte limit if the interface name exceeds 6 characters (since 6 characters for interface name plus 6 for hardware address plus 34 for source routing = the size of sdl_data). Further refinements could overcome this limitation but would break binary compatibility; this commit only addresses fixing the bug for commonly-occuring cases without breaking binary compatibility with the intention that the functionality can be MFC'ed to -stable. See message ID's (both send to -arch): 20020421013332.F87395-100000@gateway.posi.net 20020430181359.G11009-300000@gateway.posi.net for a more thorough description of the bug addressed and how to reproduce it. Approved by: silence on -arch and -net Sponsored by: NTT Multimedia Communications Labs MFC after: 1 week
Revision 1.92: download - view: text, markup, annotated - select for diffs
Thu Apr 4 21:03:29 2002 UTC (9 years, 10 months ago) by jhb
Branches: MAIN
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +1 -1 lines
Change callers of mtx_init() to pass in an appropriate lock type name. In most cases NULL is passed, but in some cases such as network driver locks (which use the MTX_NETWORK_LOCK macro) and UMA zone locks, a name is used. Tested on: i386, alpha, sparc64
Revision 1.64.2.18: download - view: text, markup, annotated - select for diffs
Wed Mar 27 16:40:59 2002 UTC (9 years, 10 months ago) by orion
Branches: RELENG_4
CVS tags: RELENG_4_6_BP, RELENG_4_6_2_RELEASE, RELENG_4_6_1_RELEASE, RELENG_4_6_0_RELEASE
Branch point for: RELENG_4_6
Diff to: previous 1.64.2.17: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.17: +15 -0 lines
MFC (rev 1.91): support for pre-expiry arp requests for hosts we are sending data to. PR: kern/25517 Reviewed by: luigi
Revision 1.91: download - view: text, markup, annotated - select for diffs
Wed Mar 20 15:56:36 2002 UTC (9 years, 10 months ago) by orion
Branches: MAIN
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +15 -0 lines
Send periodic ARP requests when ARP entries for hosts we are sending to are about to expire. This prevents high packet rate flows from experiencing packet drops at the sender following ARP cache entry timeout. PR: kern/25517 Reviewed by: luigi MFC after: 7 days
Revision 1.90: download - view: text, markup, annotated - select for diffs
Tue Mar 19 21:25:46 2002 UTC (9 years, 10 months ago) by alfred
Branches: MAIN
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +9 -9 lines
Remove __P.
Revision 1.64.2.17: download - view: text, markup, annotated - select for diffs
Wed Feb 20 23:34:09 2002 UTC (9 years, 11 months ago) by fjoe
Branches: RELENG_4
Diff to: previous 1.64.2.16: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.16: +12 -6 lines
unbreak binary compatibility for network drivers
Revision 1.64.2.16: download - view: text, markup, annotated - select for diffs
Wed Feb 13 21:38:56 2002 UTC (9 years, 11 months ago) by fjoe
Branches: RELENG_4
Diff to: previous 1.64.2.15: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.15: +152 -96 lines
MFC: ARP support for variable length link level addresses
Revision 1.64.2.15: download - view: text, markup, annotated - select for diffs
Wed Dec 26 17:36:36 2001 UTC (10 years, 1 month ago) by luigi
Branches: RELENG_4
CVS tags: RELENG_4_5_BP, RELENG_4_5_0_RELEASE
Branch point for: RELENG_4_5
Diff to: previous 1.64.2.14: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.14: +4 -2 lines
MFC: prevent a panic when using bridging and one of the interface does not have an address. Also add a comment to point out what the correct solution should be, but this is enough of a fix for the time being. Hopefully we will have time to come up with a proper one for 4.5 (subject to re approval). Approved by: re
Revision 1.64.2.14: download - view: text, markup, annotated - select for diffs
Thu Dec 20 10:30:18 2001 UTC (10 years, 1 month ago) by ru
Branches: RELENG_4
Diff to: previous 1.64.2.13: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.13: +3 -3 lines
MFC: net/ if.c,v 1.124, if_disc.c,v 1.29, if_faith.c,v 1.8, if_loop.c,v 1.65, if_stf.c,v 1.14, if_var.h,v 1.40, route.c,v 1.67, route.h,v 1.41, rtsock.c,v 1.61 netinet/ if_atm.c,v 1.9, if_atm.h,v 1.4, if_ether.c,v 1.85, in_pcb.c,v 1.91 netinet6/ in6_pcb.c,v 1.21, nd6.c,v 1.14, nd6.h,v 1.9 Pull post-4.4BSD change to sys/net/route.c from BSD/OS 4.2, also found in CSRG archive. Have sys/net/route.c:rtrequest1(), which takes ``rt_addrinfo *'' as the argument. Pass rt_addrinfo all the way down to rtrequest1 and ifa->ifa_rtrequest. 3rd argument of ifa->ifa_rtrequest is now ``rt_addrinfo *'' instead of ``sockaddr *'' (almost no one is using it anyways). Benefit: the following command now works. Previously we needed two route(8) invocations, "add" then "change". # route add -inet6 default ::1 -ifp gif0 Remove unsafe typecast in rtrequest(), from ``rtentry *'' to ``sockaddr *''. It was introduced by 4.3BSD-Reno and never corrected. Also, bring in the following fixes from -CURRENT that prevented this code from being MFC'ed earlier: net/ rtsock.c,v 1.62 In RTM_CHANGE, only call rt_getifa() (to set the new ifp/ifa) if we've either been passed a gateway (and the route is marked as RTF_GATEWAY) or if we've been given an RTA_IFP or changed RTA_IFA sockaddr. net/ rtsock.c,v 1.63 Back out revision 1.7 -- it's no longer necessary to ensure that ``gate'' is set when RTF_GATEWAY is passed, as subsequent code does that check now anyway.
Revision 1.64.2.13: download - view: text, markup, annotated - select for diffs
Fri Dec 14 20:07:10 2001 UTC (10 years, 1 month ago) by jlemon
Branches: RELENG_4
Diff to: previous 1.64.2.12: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.12: +31 -16 lines
MFC: r1.83,r1.86,r1.87,r1.89; inet address hash list.
Revision 1.89: download - view: text, markup, annotated - select for diffs
Thu Dec 13 04:01:01 2001 UTC (10 years, 2 months ago) by jlemon
Branches: MAIN
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +2 -2 lines
Minor style fix.
Revision 1.64.2.12: download - view: text, markup, annotated - select for diffs
Wed Dec 5 18:17:54 2001 UTC (10 years, 2 months ago) by ru
Branches: RELENG_4
Diff to: previous 1.64.2.11: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.11: +4 -2 lines
MFC: 1.88: fixed exploitable mbuf leak in arpresolve().
Revision 1.88: download - view: text, markup, annotated - select for diffs
Wed Dec 5 18:13:34 2001 UTC (10 years, 2 months ago) by ru
Branches: MAIN
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +3 -1 lines
Fixed remotely exploitable DoS in arpresolve(). Easily exploitable by flood pinging the target host over an interface with the IFF_NOARP flag set (all you need to know is the target host's MAC address). MFC after: 0 days
Revision 1.87: download - view: text, markup, annotated - select for diffs
Thu Oct 25 06:14:21 2001 UTC (10 years, 3 months ago) by jlemon
Branches: MAIN
Diff to: previous 1.86: preferred, colored
Changes since revision 1.86: +9 -4 lines
If we are bridging, fall back to using any inet address in the system, irrespective of receive interface, as a last resort. Submitted by: ru
Revision 1.86: download - view: text, markup, annotated - select for diffs
Sat Oct 20 05:14:06 2001 UTC (10 years, 3 months ago) by jlemon
Branches: MAIN
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +4 -2 lines
Only examine inet addresses of the interface. This was broken in r1.83, with the result that the system would reply to an ARP request of 0.0.0.0
Revision 1.85: download - view: text, markup, annotated - select for diffs
Wed Oct 17 18:07:05 2001 UTC (10 years, 3 months ago) by ru
Branches: MAIN
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +3 -3 lines
Pull post-4.4BSD change to sys/net/route.c from BSD/OS 4.2. Have sys/net/route.c:rtrequest1(), which takes ``rt_addrinfo *'' as the argument. Pass rt_addrinfo all the way down to rtrequest1 and ifa->ifa_rtrequest. 3rd argument of ifa->ifa_rtrequest is now ``rt_addrinfo *'' instead of ``sockaddr *'' (almost noone is using it anyways). Benefit: the following command now works. Previously we needed two route(8) invocations, "add" then "change". # route add -inet6 default ::1 -ifp gif0 Remove unsafe typecast in rtrequest(), from ``rtentry *'' to ``sockaddr *''. It was introduced by 4.3BSD-Reno and never corrected. Obtained from: BSD/OS, NetBSD MFC after: 1 month PR: kern/28360
Revision 1.84: download - view: text, markup, annotated - select for diffs
Sun Oct 14 20:17:53 2001 UTC (10 years, 3 months ago) by fjoe
Branches: MAIN
Diff to: previous 1.83: preferred, colored
Changes since revision 1.83: +156 -100 lines
bring in ARP support for variable length link level addresses Reviewed by: jdp Approved by: jdp Obtained from: NetBSD MFC after: 6 weeks
Revision 1.83: download - view: text, markup, annotated - select for diffs
Sat Sep 29 04:34:11 2001 UTC (10 years, 4 months ago) by jlemon
Branches: MAIN
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +25 -18 lines
Add a hash table that contains the list of internet addresses, and use this in place of the in_ifaddr list when appropriate. This improves performance on hosts which have a large number of IP aliases.
Revision 1.82: download - view: text, markup, annotated - select for diffs
Tue Sep 4 15:25:23 2001 UTC (10 years, 5 months ago) by alfred
Branches: MAIN
CVS tags: KSE_PRE_MILESTONE_2, KSE_MILESTONE_2
Diff to: previous 1.81: preferred, colored
Changes since revision 1.81: +2 -2 lines
Fix sysctl comment field, s/the the/then the Pointed out by: ru
Revision 1.81: download - view: text, markup, annotated - select for diffs
Mon Sep 3 21:53:15 2001 UTC (10 years, 5 months ago) by alfred
Branches: MAIN
Diff to: previous 1.80: preferred, colored
Changes since revision 1.80: +13 -7 lines
Allow disabling of "arp moved" messages. Submitted by: Stephen Hurd <deuce@lordlegacy.org>
Revision 1.64.2.11: download - view: text, markup, annotated - select for diffs
Wed Jul 25 17:27:56 2001 UTC (10 years, 6 months ago) by jlemon
Branches: RELENG_4
CVS tags: RELENG_4_4_BP, RELENG_4_4_0_RELEASE
Branch point for: RELENG_4_4
Diff to: previous 1.64.2.10: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.10: +10 -2 lines
MFC: do not do arp send/resolve on interface marked NOARP.
Revision 1.80: download - view: text, markup, annotated - select for diffs
Fri Jun 15 21:00:32 2001 UTC (10 years, 7 months ago) by jlemon
Branches: MAIN
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +10 -2 lines
Do not perform arp send/resolve on an interface marked NOARP. PR: 25006 MFC after: 2 weeks
Revision 1.64.2.10: download - view: text, markup, annotated - select for diffs
Thu Mar 29 09:51:16 2001 UTC (10 years, 10 months ago) by yar
Branches: RELENG_4
CVS tags: RELENG_4_3_BP, RELENG_4_3_0_RELEASE
Branch point for: RELENG_4_3
Diff to: previous 1.64.2.9: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.9: +7 -1 lines
MFC: (1.79) Add a missing m_pullup() before an mtod() in in_arpinput(). Approved by: jkh
Revision 1.79: download - view: text, markup, annotated - select for diffs
Tue Mar 27 12:34:58 2001 UTC (10 years, 10 months ago) by yar
Branches: MAIN
Diff to: previous 1.78: preferred, colored
Changes since revision 1.78: +7 -1 lines
Add a missing m_pullup() before a mtod() in in_arpinput(). PR: kern/22177 Reviewed by: wollman
Revision 1.64.2.9: download - view: text, markup, annotated - select for diffs
Wed Feb 21 15:15:44 2001 UTC (10 years, 11 months ago) by luigi
Branches: RELENG_4
Diff to: previous 1.64.2.8: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.8: +3 -2 lines
Reintroduce the check for log_arp_wrong_iface, deleted by mistake in a previous commit. Reported-by: Peter Brezny
Revision 1.78: download - view: text, markup, annotated - select for diffs
Sat Feb 10 00:10:18 2001 UTC (11 years ago) by luigi
Branches: MAIN
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +5 -10 lines
Sync with the bridge/dummynet/ipfw code already tested in stable. In ip_fw.[ch] change a couple of variable and field names to avoid having types, variables and fields with the same name.
Revision 1.64.2.8: download - view: text, markup, annotated - select for diffs
Wed Feb 7 01:03:13 2001 UTC (11 years ago) by luigi
Branches: RELENG_4
Diff to: previous 1.64.2.7: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.7: +9 -15 lines
Another sweep at the bridge/ipfw/dummynet code, thanks to the bug reports received over the last days. Among other things, this commit should avoid some of the problems with ARP replies being copied to the wrong interface. In detail (and modulo errors) bridge.c: + comment out some verbose debugging messages; + improve handling of configurations with multiple interface clusters. Do not permit leaks of packets from one cluster to another. + simplify the structure of bdg_forward() net/if_ethersubr.c: + minor simplifications related to the change of interface in bdg_forward(); netinet/if_ether.c + minor simplifications in the arp error handling code. netinet/ip_fw.c netinet/ip_fw.h + #define and use a symbolic constant for the return value from ip_fw_chk netinet/ip_input.c netinet/ip_output.c + same as above, plus improve error handling in case the firewall decides to change the mbuf pointer.
Revision 1.64.2.7: download - view: text, markup, annotated - select for diffs
Mon Feb 5 21:30:20 2001 UTC (11 years ago) by julian
Branches: RELENG_4
Diff to: previous 1.64.2.6: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.6: +11 -10 lines
MFC: 1.76->1.77 fix bad patch
Revision 1.77: download - view: text, markup, annotated - select for diffs
Mon Feb 5 21:25:27 2001 UTC (11 years ago) by julian
Branches: MAIN
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +11 -10 lines
Fix bad patch from a few days ago. It broke some bridging.
Revision 1.76: download - view: text, markup, annotated - select for diffs
Sun Feb 4 13:13:05 2001 UTC (11 years ago) by phk
Branches: MAIN
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +4 -4 lines
Mechanical change to use <sys/queue.h> macro API instead of fondling implementation details. Created with: sed(1) Reviewed by: md5(1)
Revision 1.64.2.6: download - view: text, markup, annotated - select for diffs
Sun Feb 4 09:25:14 2001 UTC (11 years ago) by julian
Branches: RELENG_4
Diff to: previous 1.64.2.5: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.5: +27 -17 lines
MFC: 1.74->1.75 Make the code act the same in the case of BRIDGE being defined, but not turned on, and the case of it not being defined at all. i.e. Disabling bridging re-enables some of the checks it disables. Submitted by: "Rogier R. Mulhuijzen" <drwilco@drwilco.net>
Revision 1.75: download - view: text, markup, annotated - select for diffs
Sat Feb 3 17:25:21 2001 UTC (11 years ago) by julian
Branches: MAIN
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +27 -17 lines
Make the code act the same in the case of BRIDGE being defined, but not turned on, and the case of it not being defined at all. i.e. Disabling bridging re-enables some of the checks it disables. Submitted by: "Rogier R. Mulhuijzen" <drwilco@drwilco.net>
Revision 1.64.2.5: download - view: text, markup, annotated - select for diffs
Sat Jan 6 05:50:06 2001 UTC (11 years, 1 month ago) by alfred
Branches: RELENG_4
Diff to: previous 1.64.2.4: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.4: +8 -1 lines
MFC: sysctl to quiet arp messages
Revision 1.74: download - view: text, markup, annotated - select for diffs
Sat Jan 6 00:45:08 2001 UTC (11 years, 1 month ago) by alfred
Branches: MAIN
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +8 -1 lines
provide a sysctl 'net.link.ether.inet.log_arp_wrong_iface' to allow one to supress logging when ARP replies arrive on the wrong interface: "/kernel: arp: 1.2.3.4 is on dc0 but got reply from 00:00:c5:79:d0:0c on dc1" the default is to log just to give notice about possibly incorrectly configured networks.
Revision 1.73: download - view: text, markup, annotated - select for diffs
Sat Nov 25 07:35:33 2000 UTC (11 years, 2 months ago) by jlemon
Branches: MAIN
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +13 -2 lines
Lock down the network interface queues. The queue mutex must be obtained before adding/removing packets from the queue. Also, the if_obytes and if_omcasts fields should only be manipulated under protection of the mutex. IF_ENQUEUE, IF_PREPEND, and IF_DEQUEUE perform all necessary locking on the queue. An IF_LOCK macro is provided, as well as the old (mutex-less) versions of the macros in the form _IF_ENQUEUE, _IF_QFULL, for code which needs them, but their use is discouraged. Two new macros are introduced: IF_DRAIN() to drain a queue, and IF_HANDOFF, which takes care of locking/enqueue, and also statistics updating/start if necessary.
Revision 1.64.2.4: download - view: text, markup, annotated - select for diffs
Sat Oct 14 20:01:16 2000 UTC (11 years, 3 months ago) by lile
Branches: RELENG_4
CVS tags: RELENG_4_2_0_RELEASE
Diff to: previous 1.64.2.3: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.3: +32 -31 lines
o MFC: Replace most magic numbers related to token ring with #defines from iso88025.h. o MFC: Add minimal llc support to iso88025_input. o MFC: Clean up most of the source routing code. * Submitted by: Nikolai Saoukh <nms@otdel-1.org>
Revision 1.72: download - view: text, markup, annotated - select for diffs
Thu Jul 13 19:31:01 2000 UTC (11 years, 7 months ago) by dwmalone
Branches: MAIN
CVS tags: PRE_SMPNG
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +27 -1 lines
Extra sanity check when arp proxyall is enabled. Don't send an arp reply if the requesting machine isn't on the interface we believe it should be. Prevents arp wars when you plug cables in the wrong way around. PR: 9848 Submitted by: Ian Dowse <iedowse@maths.tcd.ie> Not objected to by: wollman
Revision 1.71: download - view: text, markup, annotated - select for diffs
Fri May 26 02:05:45 2000 UTC (11 years, 8 months ago) by jake
Branches: MAIN
Diff to: previous 1.70: preferred, colored
Changes since revision 1.70: +3 -3 lines
Back out the previous change to the queue(3) interface. It was not discussed and should probably not happen. Requested by: msmith and others
Revision 1.70: download - view: text, markup, annotated - select for diffs
Tue May 23 20:38:15 2000 UTC (11 years, 8 months ago) by jake
Branches: MAIN
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +3 -3 lines
Change the way that the queue(3) structures are declared; don't assume that the type argument to *_HEAD and *_ENTRY is a struct. Suggested by: phk Reviewed by: phk Approved by: mdodd
Revision 1.64.2.3: download - view: text, markup, annotated - select for diffs
Tue Apr 11 07:08:35 2000 UTC (11 years, 10 months ago) by wes
Branches: RELENG_4
CVS tags: RELENG_4_1_1_RELEASE, RELENG_4_1_0_RELEASE
Diff to: previous 1.64.2.2: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.2: +4 -11 lines
De-pessimize checking of runt packets. Patch was created vs. 4.0-STABLE. PR: 17872 Submitted by: csg@waterspout.com (C. Stephen Gunn)
Revision 1.69: download - view: text, markup, annotated - select for diffs
Tue Apr 11 06:55:09 2000 UTC (11 years, 10 months ago) by wes
Branches: MAIN
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +4 -11 lines
PR: kern/17872 Submitted by: csg@waterspout.com (C. Stephen Gunn)
Revision 1.64.2.2: download - view: text, markup, annotated - select for diffs
Wed Mar 29 07:52:50 2000 UTC (11 years, 10 months ago) by joerg
Branches: RELENG_4
Diff to: previous 1.64.2.1: preferred, colored; branchpoint 1.64: preferred, colored
Changes since revision 1.64.2.1: +4 -4 lines
MFC: add trailing newlines to the log() calls introduced in rev 1.64.
Revision 1.68: download - view: text, markup, annotated - select for diffs
Wed Mar 29 07:50:39 2000 UTC (11 years, 10 months ago) by joerg
Branches: MAIN
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +2 -2 lines
Peter Johnson found another log() call without a trailing newline. All three of them have been introduced in rev 1.64, so i guess i've got all of them now. :) Submitted by: Peter Johnson <locke@mcs.net>
Revision 1.67: download - view: text, markup, annotated - select for diffs
Tue Mar 28 21:14:35 2000 UTC (11 years, 10 months ago) by joerg
Branches: MAIN
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +3 -3 lines
Added two missing newlines in calls to log(9). Reported in Usenet by: locke@mcs.net (Peter Johnson) While i was at it, prepended a 0x to the %D output, to make it clear that the printed value is in hex (i assume %D has been chosen over %#x to obey network byte order).
Revision 1.64.2.1: download - view: text, markup, annotated - select for diffs
Thu Mar 23 19:00:58 2000 UTC (11 years, 10 months ago) by dillon
Branches: RELENG_4
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +2 -2 lines
MFC 1.66, fix NULL pointer dereference panic when dealing with ARP
packets (probably runts) which straddle an mbuf.
Revision 1.66: download - view: text, markup, annotated - select for diffs
Thu Mar 23 18:58:59 2000 UTC (11 years, 10 months ago) by dillon
Branches: MAIN
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +2 -2 lines
Fix parens in m_pullup() line in arp handling code. The code was
improperly doing the equivalent of (m = (function() == NULL)) instead
of ((m = function()) == NULL).
This fixes a NULL pointer dereference panic with runt arp packets.
Revision 1.65: download - view: text, markup, annotated - select for diffs
Sun Mar 19 21:34:39 2000 UTC (11 years, 10 months ago) by lile
Branches: MAIN
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +32 -31 lines
o Replace most magic numbers related to token ring with #defines from iso88025.h. o Add minimal llc support to iso88025_input. o Clean up most of the source routing code. * Submitted by: Nikolai Saoukh <nms@otdel-1.org>
Revision 1.64: download - view: text, markup, annotated - select for diffs
Sat Mar 11 00:24:29 2000 UTC (11 years, 11 months ago) by rwatson
Branches: MAIN
CVS tags: RELENG_4_BP, RELENG_4_0_0_RELEASE
Branch point for: RELENG_4
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +37 -14 lines
The function arpintr() incorrectly checks m->m_len to detect incomplete ARP packets. This can incorrectly reject complete frames since the frame could be stored in more than one mbuf. The following patches fix the length comparisson, and add several diagnostic log messages to the interrupt handler for out-of-the-norm ARP packets. This should make ARP problems easier to detect, diagnose and fix. Submitted by: C. Stephen Gunn <csg@waterspout.com> Approved by: jkh Reviewed by: rwatson
Revision 1.63: download - view: text, markup, annotated - select for diffs
Sun Feb 13 03:32:00 2000 UTC (12 years ago) by peter
Branches: MAIN
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +2 -4 lines
Clean up some loose ends in the network code, including the X.25 and ISO #ifdefs. Clean out unused netisr's and leftover netisr linker set gunk. Tested on x86 and alpha, including world. Approved by: jkh
Revision 1.52.2.6: download - view: text, markup, annotated - select for diffs
Mon Oct 18 11:59:31 1999 UTC (12 years, 3 months ago) by sheldonh
Branches: RELENG_3
CVS tags: RELENG_3_5_0_RELEASE, RELENG_3_4_0_RELEASE
Diff to: previous 1.52.2.5: preferred, colored; branchpoint 1.52: preferred, colored; next MAIN 1.53: preferred, colored
Changes since revision 1.52.2.5: +2 -2 lines
MFC (rev 1.62): Add missing newline to log() message.
Revision 1.62: download - view: text, markup, annotated - select for diffs
Mon Oct 18 11:56:50 1999 UTC (12 years, 3 months ago) by sheldonh
Branches: MAIN
Diff to: previous 1.61: preferred, colored
Changes since revision 1.61: +2 -2 lines
Append missing newline to log() message for permanent ARP modification attempt warning, which was added in rev 1.48 . PR: 14371 Submitted by: sec@pi.musin.de (Stefan `Sec` Zehl)
Revision 1.52.2.5: download - view: text, markup, annotated - select for diffs
Thu Sep 16 00:50:37 1999 UTC (12 years, 4 months ago) by lile
Branches: RELENG_3
CVS tags: RELENG_3_3_0_RELEASE
Diff to: previous 1.52.2.4: preferred, colored; branchpoint 1.52: preferred, colored
Changes since revision 1.52.2.4: +23 -21 lines
MFC the fix for truncated arp packets, and this time do it correctly. Also fix a little white space breakage. [This affects token-ring only]
Revision 1.61: download - view: text, markup, annotated - select for diffs
Thu Sep 16 00:35:39 1999 UTC (12 years, 4 months ago) by lile
Branches: MAIN
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +47 -30 lines
Re-arrange the arp code so that fddi arps work properly.
Revision 1.52.2.4: download - view: text, markup, annotated - select for diffs
Wed Sep 15 23:09:08 1999 UTC (12 years, 4 months ago) by lile
Branches: RELENG_3
Diff to: previous 1.52.2.3: preferred, colored; branchpoint 1.52: preferred, colored
Changes since revision 1.52.2.3: +57 -37 lines
MFC fix for truncated token-ring arp replies. Reorder arp code to make ethernet arp's the default and allow fddi to arp correctly. Reported by: Russell Neeper <r-neeper@tamu.edu> Reviewed by: Eivind Eklund <eivind@freebsd.org> Approved by: Jordan K. Hubbard <jkh@freebsd.org>
Revision 1.17.4.4: download - view: text, markup, annotated - select for diffs
Sun Sep 5 08:34:38 1999 UTC (12 years, 5 months ago) by peter
Branches: RELENG_2_1_0
Diff to: previous 1.17.4.3: preferred, colored; branchpoint 1.17: preferred, colored; next MAIN 1.18: preferred, colored
Changes since revision 1.17.4.3: +1 -1 lines
$Id$ -> $FreeBSD$
Revision 1.34.2.4: download - view: text, markup, annotated - select for diffs
Sun Sep 5 08:18:12 1999 UTC (12 years, 5 months ago) by peter
Branches: RELENG_2_2
Diff to: previous 1.34.2.3: preferred, colored; branchpoint 1.34: preferred, colored; next MAIN 1.35: preferred, colored
Changes since revision 1.34.2.3: +1 -1 lines
$Id$ -> $FreeBSD$
Revision 1.52.2.3: download - view: text, markup, annotated - select for diffs
Sun Aug 29 16:29:31 1999 UTC (12 years, 5 months ago) by peter
Branches: RELENG_3
Diff to: previous 1.52.2.2: preferred, colored; branchpoint 1.52: preferred, colored
Changes since revision 1.52.2.2: +1 -1 lines
$Id$ -> $FreeBSD$
Revision 1.60: download - view: text, markup, annotated - select for diffs
Sat Aug 28 14:57:12 1999 UTC (12 years, 5 months ago) by lile
Branches: MAIN
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +13 -12 lines
It is much easier to arp if you don't truncate your arp-reply's. [affects token-ring only]
Revision 1.59: download - view: text, markup, annotated - select for diffs
Sat Aug 28 00:49:14 1999 UTC (12 years, 5 months ago) by peter
Branches: MAIN
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +1 -1 lines
$Id$ -> $FreeBSD$
Revision 1.52.2.2: download - view: text, markup, annotated - select for diffs
Thu May 27 03:06:47 1999 UTC (12 years, 8 months ago) by julian
Branches: RELENG_3
Diff to: previous 1.52.2.1: preferred, colored; branchpoint 1.52: preferred, colored
Changes since revision 1.52.2.1: +76 -4 lines
MFC: Olicom token ring support and token ring framework. Submitted by: Larry Lile <lile@stdio.com> Also Tagged into RELENG_3: sys/contrib/dev/oltr/COPYRIGHT sys/contrib/dev/oltr/i386-elf.trlld.o.uu sys/contrib/dev/oltr/if_oltr.c sys/contrib/dev/oltr/trlld.h sys/contrib/dev/oltr/trlldbm.c sys/contrib/dev/oltr/trlldhm.c sys/contrib/dev/oltr/trlldmac.c
Revision 1.58: download - view: text, markup, annotated - select for diffs
Thu May 6 18:12:59 1999 UTC (12 years, 9 months ago) by peter
Branches: MAIN
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +3 -2 lines
Add sufficient braces to keep egcs happy about potentially ambiguous if/else nesting.
Revision 1.57: download - view: text, markup, annotated - select for diffs
Thu Apr 15 17:58:24 1999 UTC (12 years, 9 months ago) by eivind
Branches: MAIN
CVS tags: PRE_VFS_BIO_NFS_PATCH, PRE_SMP_VMSHARE, PRE_NEWBUS, POST_VFS_BIO_NFS_PATCH, POST_SMP_VMSHARE, POST_NEWBUS
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +16 -8 lines
Better handling for ARP/source routing on Token Ring Submitted by: Larry Lile <lile@stdio.com>
Revision 1.56: download - view: text, markup, annotated - select for diffs
Wed Mar 10 10:11:43 1999 UTC (12 years, 11 months ago) by julian
Branches: MAIN
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +79 -16 lines
Submitted by: Larry Lile Move the Olicom token ring driver to the officially sanctionned location of /sys/contrib. Also fix some brokenness in the generic token ring support. Be warned that if_dl.h has been changed and SOME programs might like recompilation.
Revision 1.52.2.1: download - view: text, markup, annotated - select for diffs
Thu Mar 4 04:04:48 1999 UTC (12 years, 11 months ago) by wpaul
Branches: RELENG_3
CVS tags: RELENG_3_2_PAO_BP, RELENG_3_2_PAO, RELENG_3_2_0_RELEASE
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +2 -1 lines
MFC: initialize rcvif in mbuf packet header to NULL in arprequest().
Revision 1.55: download - view: text, markup, annotated - select for diffs
Thu Mar 4 04:03:57 1999 UTC (12 years, 11 months ago) by wpaul
Branches: MAIN
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +2 -1 lines
arprequest() allocates an mbuf with m_gethdr() but does not initialize m->m_pkthdr.rcvif to NULL. Bad arprequest(). No biscuit.
Revision 1.54: download - view: text, markup, annotated - select for diffs
Sat Feb 20 11:18:00 1999 UTC (12 years, 11 months ago) by julian
Branches: MAIN
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +8 -3 lines
World, I'd like you to meet the first FreeBSD token Ring driver. This is for various Olicom cards. An IBM driver is following. This patch also adds support to tcpdump to decode packets on tokenring. Congratulations to the proud father.. (below) Submitted by: Larry Lile <lile@stdio.com>
Revision 1.53: download - view: text, markup, annotated - select for diffs
Tue Feb 16 10:49:51 1999 UTC (12 years, 11 months ago) by dfr
Branches: MAIN
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +3 -1 lines
* Change sysctl from using linker_set to construct its tree using SLISTs. This makes it possible to change the sysctl tree at runtime. * Change KLD to find and register any sysctl nodes contained in the loaded file and to unregister them when the file is unloaded. Reviewed by: Archie Cobbs <archie@whistle.com>, Peter Wemm <peter@netplex.com.au> (well they looked at it anyway)
Revision 1.52: download - view: text, markup, annotated - select for diffs
Tue Jan 19 23:17:03 1999 UTC (13 years ago) by fenner
Branches: MAIN
CVS tags: RELENG_3_BP, RELENG_3_1_0_RELEASE
Branch point for: RELENG_3
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +2 -2 lines
Fix bug in last commit (la was used uninitialized if no route was passed in).
Revision 1.51: download - view: text, markup, annotated - select for diffs
Mon Jan 18 01:54:36 1999 UTC (13 years ago) by fenner
Branches: MAIN
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +2 -2 lines
If arpresolve() gets passed a route with a null llinfo, call arplookup() to try again. This gets rid of at least one user's "arpresolve: can't allocate llinfo" errors, and arplookup() gives better error messages to help track down the problem if there really is a problem with the routing table.
Revision 1.50: download - view: text, markup, annotated - select for diffs
Sun Jan 10 17:40:10 1999 UTC (13 years, 1 month ago) by luigi
Branches: MAIN
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +3 -1 lines
Remove check from where arp replies are coming from -- when doing bridging, interfaces are used in clusters so the check does not apply.
Revision 1.49: download - view: text, markup, annotated - select for diffs
Mon Dec 14 18:09:13 1998 UTC (13 years, 2 months ago) by luigi
Branches: MAIN
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +11 -1 lines
Last bits (i think) of dummynet for -current.
Revision 1.34.2.3: download - view: text, markup, annotated - select for diffs
Thu Sep 17 18:02:25 1998 UTC (13 years, 4 months ago) by luigi
Branches: RELENG_2_2
CVS tags: RELENG_2_2_8_RELEASE
Diff to: previous 1.34.2.2: preferred, colored; branchpoint 1.34: preferred, colored
Changes since revision 1.34.2.2: +10 -1 lines
bring DUMMYNET and BRIDGE support into -stable decouple BPF and PROMISC handling on some if drivers make ipstat available through sysctl (already in -current) NOTE: you have to recompile ipfw!
Revision 1.48: download - view: text, markup, annotated - select for diffs
Thu Sep 17 00:04:21 1998 UTC (13 years, 4 months ago) by fenner
Branches: MAIN
CVS tags: RELENG_3_0_0_RELEASE
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +21 -4 lines
Prevent modification of permanent ARP entries (PR kern/7649) Ignore ARP replies from the wrong interface (discussion on mailing list) Add interface name to a couple of error messages
Revision 1.47: download - view: text, markup, annotated - select for diffs
Fri Jun 12 03:48:14 1998 UTC (13 years, 8 months ago) by julian
Branches: MAIN
CVS tags: PRE_NOBDEV
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +10 -10 lines
Go through the loopback code with a broom.. Remove lots'o'hacks. looutput is now static. Other callers who want to use loopback to allow shortcutting should call the special entrypoint for this, if_simloop(), which is specifically designed for this purpose. Using looutput for this purpose was problematic, particularly with bpf and trying to keep track of whether one should be using the charateristics of the loopback interface or the interface (e.g. if_ethersubr.c) that was requesting the loopback. There was a whole class of errors due to this mis-use each of which had hacks to cover them up. Consists largly of hack removal :-)
Revision 1.46: download - view: text, markup, annotated - select for diffs
Sun Jun 7 17:12:12 1998 UTC (13 years, 8 months ago) by dfr
Branches: MAIN
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +3 -3 lines
This commit fixes various 64bit portability problems required for FreeBSD/alpha. The most significant item is to change the command argument to ioctl functions from int to u_long. This change brings us inline with various other BSD versions. Driver writers may like to use (__FreeBSD_version == 300003) to detect this change. The prototype FreeBSD/alpha machdep will follow in a couple of days time.
Revision 1.45: download - view: text, markup, annotated - select for diffs
Sat May 23 08:03:40 1998 UTC (13 years, 8 months ago) by phk
Branches: MAIN
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +4 -3 lines
Get more details on the "arpresolve: can't allocate llinfo" bogon. PR: 2570 Reviewed by: phk Submitted by: fenner
Revision 1.44: download - view: text, markup, annotated - select for diffs
Mon Mar 30 09:52:40 1998 UTC (13 years, 10 months ago) by phk
Branches: MAIN
CVS tags: PRE_DEVFS_SLICE, POST_DEVFS_SLICE
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +7 -7 lines
Eradicate the variable "time" from the kernel, using various measures. "time" wasn't a atomic variable, so splfoo() protection were needed around any access to it, unless you just wanted the seconds part. Most uses of time.tv_sec now uses the new variable time_second instead. gettime() changed to getmicrotime(0. Remove a couple of unneeded splfoo() protections, the new getmicrotime() is atomic, (until Bruce sets a breakpoint in it). A couple of places needed random data, so use read_random() instead of mucking about with time which isn't random. Add a new nfs_curusec() function. Mark a couple of bogosities involving the now disappeard time variable. Update ffs_update() to avoid the weird "== &time" checks, by fixing the one remaining call that passwd &time as args. Change profiling in ncr.c to use ticks instead of time. Resolution is the same. Add new function "tvtohz()" to avoid the bogus "splfoo(), add time, call hzto() which subtracts time" sequences. Reviewed by: bde
Revision 1.43: download - view: text, markup, annotated - select for diffs
Thu Jan 8 23:41:43 1998 UTC (14 years, 1 month ago) by eivind
Branches: MAIN
CVS tags: PRE_SOFTUPDATE, POST_SOFTUPDATE
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +12 -1 lines
Make INET a proper option. This will not make any of object files that LINT create change; there might be differences with INET disabled, but hardly anything compiled before without INET anyway. Now the 'obvious' things will give a proper error if compiled without inet - ipx_ip, ipfw, tcp_debug. The only thing that _should_ work (but can't be made to compile reasonably easily) is sppp :-( This commit move struct arpcom from <netinet/if_ether.h> to <net/if_arp.h>.
Revision 1.42: download - view: text, markup, annotated - select for diffs
Sat Dec 20 00:07:11 1997 UTC (14 years, 1 month ago) by bde
Branches: MAIN
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +2 -2 lines
Fixed gratuitous ANSIisms.
Revision 1.41: download - view: text, markup, annotated - select for diffs
Tue Oct 28 15:58:40 1997 UTC (14 years, 3 months ago) by bde
Branches: MAIN
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +1 -2 lines
Removed unused #includes.
Revision 1.17.4.3: download - view: text, markup, annotated - select for diffs
Wed May 14 16:45:42 1997 UTC (14 years, 9 months ago) by tegge
Branches: RELENG_2_1_0
Diff to: previous 1.17.4.2: preferred, colored; branchpoint 1.17: preferred, colored
Changes since revision 1.17.4.2: +3 -2 lines
Merge from current: Don't send arp request for the ip address 0.0.0.0.
Revision 1.34.2.2: download - view: text, markup, annotated - select for diffs
Wed May 14 16:43:56 1997 UTC (14 years, 9 months ago) by tegge
Branches: RELENG_2_2
CVS tags: RELENG_2_2_7_RELEASE, RELENG_2_2_6_RELEASE, RELENG_2_2_5_RELEASE, RELENG_2_2_2_RELEASE
Diff to: previous 1.34.2.1: preferred, colored; branchpoint 1.34: preferred, colored
Changes since revision 1.34.2.1: +4 -3 lines
Merge from current: Don't send arp request for the ip address 0.0.0.0.
Revision 1.40: download - view: text, markup, annotated - select for diffs
Wed May 14 16:39:52 1997 UTC (14 years, 9 months ago) by tegge
Branches: MAIN
CVS tags: WOLLMAN_MBUF, BP_WOLLMAN_MBUF
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +4 -3 lines
Don't send arp request for the ip address 0.0.0.0.
Revision 1.34.2.1.2.2: download - view: text, markup, annotated - select for diffs
Thu Mar 6 10:16:42 1997 UTC (14 years, 11 months ago) by julian
Branches: WHISTLE_NET_BRANCH_1
Diff to: previous 1.34.2.1.2.1: preferred, colored; branchpoint 1.34.2.1: preferred, colored; next MAIN 1.34.2.2: preferred, colored
Changes since revision 1.34.2.1.2.1: +10 -3 lines
Fix reference counting to at least the stage that it doesn't have memory leaks still got to figure out the in_rmx stuff but my brain is fading. Ther are a couple of terrible hacks in there which I will clean out later. Also add yet more comments and fix a few now that I found out more than I knew when I wrote them.
Revision 1.34.2.1.2.1: download - view: text, markup, annotated - select for diffs
Wed Mar 5 22:47:54 1997 UTC (14 years, 11 months ago) by julian
Branches: WHISTLE_NET_BRANCH_1
Diff to: previous 1.34.2.1: preferred, colored
Changes since revision 1.34.2.1: +3 -1 lines
more reference count tightennings. If the link-level (arp) structs hold a reference to the rtentry, then that should be reflected in the rt_refcnt field.
Revision 1.39: download - view: text, markup, annotated - select for diffs
Sat Feb 22 09:41:24 1997 UTC (14 years, 11 months ago) by peter
Branches: MAIN
CVS tags: pre_smp_merge, post_smp_merge
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +1 -1 lines
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
Revision 1.38: download - view: text, markup, annotated - select for diffs
Tue Jan 14 06:48:34 1997 UTC (15 years, 1 month ago) by jkh
Branches: MAIN
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +1 -1 lines
Make the long-awaited change from $Id$ to $FreeBSD$ This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
Revision 1.37: download - view: text, markup, annotated - select for diffs
Sun Dec 15 20:38:30 1996 UTC (15 years, 1 month ago) by bde
Branches: MAIN
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +2 -2 lines
Attempt to complete the fix in the previous revision. This version fixes the problem reported by max.
Revision 1.36: download - view: text, markup, annotated - select for diffs
Sat Dec 14 17:49:58 1996 UTC (15 years, 2 months ago) by dyson
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +2 -2 lines
Missing TAILQ mod.
Revision 1.34.2.1: download - view: text, markup, annotated - select for diffs
Sat Nov 16 21:17:49 1996 UTC (15 years, 2 months ago) by phk
Branches: RELENG_2_2
CVS tags: WHISTLE_SET_1, WHISTLE_BP1, RELENG_2_2_1_RELEASE, RELENG_2_2_0_RELEASE
Branch point for: WHISTLE_NET_BRANCH_1
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +6 -5 lines
YAMFC
Revision 1.35: download - view: text, markup, annotated - select for diffs
Fri Nov 15 18:50:31 1996 UTC (15 years, 2 months ago) by fenner
Branches: MAIN
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +6 -5 lines
Reword two messages: duplicate ip address 204.162.228.7! sent from ethernet address: 08:00:20:09:7b:1d changed to arp: 08:00:20:09:7b:1d is using my IP address 204.162.228.7! and arp info overwritten for 204.162.228.2 by 08:00:20:09:7b:1d changed to arp: 204.162.228.2 moved from 08:00:20:07:b6:a0 to 08:00:20:09:7b:1d I think the new wordings are more clear and could save some support questions.
Revision 1.34: download - view: text, markup, annotated - select for diffs
Sat Oct 12 19:49:32 1996 UTC (15 years, 4 months ago) by bde
Branches: MAIN
CVS tags: RELENG_2_2_BP
Branch point for: RELENG_2_2
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +2 -1 lines
Removed nested include if <sys/socket.h> from <net/if.h> and <net/if_arp.h> and fixed the things that depended on it. The nested include just allowed unportable programs to compile and made my simple #include checking program report that networking code doesn't need to include <sys/socket.h>.
Revision 1.33: download - view: text, markup, annotated - select for diffs
Fri Jun 21 21:45:58 1996 UTC (15 years, 7 months ago) by peter
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +3 -1 lines
Set the rmx.rmx_expire to 0 when creating fake ethernet addresses for the broadcast and multicast routes, otherwise they will be expired by arptimeout after a few minutes, reverting to " (incomplete)". This makes the work done by rev 1.27 stay around until the route itself is deleted. This is mainly cosmetic for 'arp' and 'netstat -r'.
Revision 1.32: download - view: text, markup, annotated - select for diffs
Thu Jun 20 22:53:08 1996 UTC (15 years, 7 months ago) by fenner
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +2 -2 lines
Use the route that's guaranteed to exist when picking a source address for ARP requests. The NetBSD version of this patch (see NetBSD PR kern/2381) has this change already. This should close our PR kern/1140 . Although it's not quite what he submitted, I got the idea from him so Submitted by: Jin Guojun <jin@george.lbl.gov>
Revision 1.31: download - view: text, markup, annotated - select for diffs
Thu Jun 13 02:54:19 1996 UTC (15 years, 8 months ago) by davidg
Branches: MAIN
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +3 -3 lines
Keep ether_type in network order for BPF to be consistent with other systems. Submitted by: Ted Lemon, Matt Thomas, and others. Retrofitted for -current by me.
Revision 1.30: download - view: text, markup, annotated - select for diffs
Sat Jun 8 08:18:56 1996 UTC (15 years, 8 months ago) by bde
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +2 -2 lines
Changed some memcpy()'s back to bcopy()'s. gcc only inlines memcpy()'s whose count is constant and didn't inline these. I want memcpy() in the kernel go away so that it's obvious that it doesn't need to be optimized. Now it is only used for one struct copy in si.c.
Revision 1.29.2.1: download - view: text, markup, annotated - select for diffs
Mon Apr 1 19:00:08 1996 UTC (15 years, 10 months ago) by wollman
Branches: wollman_polling
Diff to: previous 1.29: preferred, colored; next MAIN 1.30: preferred, colored
Changes since revision 1.29: +18 -26 lines
These are (mostly) my changes for polling of network interrupts, on a private branch. Some of these changes are generally applicable, but most of this is to show other people what I'm up to (and what they need to be prepared for).
Revision 1.29: download - view: text, markup, annotated - select for diffs
Sat Mar 23 01:32:29 1996 UTC (15 years, 10 months ago) by fenner
Branches: MAIN
Branch point for: wollman_polling
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +7 -15 lines
Send ARP's for aliased subnets with the proper source address. Get rid of ac->ac_ipaddr and arpwhohas() since they assume that an interface has only one address. Obtained from: BSD/OS 2.1, via Rich Stevens <rstevens@noao.edu>
Revision 1.17.4.2: download - view: text, markup, annotated - select for diffs
Tue Feb 20 17:55:04 1996 UTC (15 years, 11 months ago) by fenner
Branches: RELENG_2_1_0
CVS tags: RELENG_2_1_7_RELEASE, RELENG_2_1_6_RELEASE, RELENG_2_1_6_1_RELEASE, RELENG_2_1_5_RELEASE
Diff to: previous 1.17.4.1: preferred, colored; branchpoint 1.17: preferred, colored
Changes since revision 1.17.4.1: +3 -2 lines
Make "can't allocate llinfo" error more useful.
Revision 1.28: download - view: text, markup, annotated - select for diffs
Tue Feb 20 17:54:17 1996 UTC (15 years, 11 months ago) by fenner
Branches: MAIN
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +3 -2 lines
Make the "arpresolve: can't allocate llinfo" error message more useful by printing out the IP address it was trying to resolve, since we're seeing so many complaints about this error.
Revision 1.27: download - view: text, markup, annotated - select for diffs
Mon Feb 5 18:04:30 1996 UTC (16 years ago) by wollman
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +17 -1 lines
Fill in the corresponding ether address of multicast and broadcast pseudo-``ARP entries'' so arp(8) doesn't show them as `unresolved'.
Revision 1.26: download - view: text, markup, annotated - select for diffs
Wed Jan 24 21:09:58 1996 UTC (16 years ago) by phk
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +5 -5 lines
Use new printf features rather than local kludges.
Revision 1.25: download - view: text, markup, annotated - select for diffs
Wed Dec 20 21:53:51 1995 UTC (16 years, 1 month ago) by wollman
Branches: MAIN
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +20 -20 lines
in_proto.c: spell ``Internet'' right and put whitespace after commas. others: start to populate the link-layer branch of the net mib, by moving ARP to its proper place. (ARP is not a protocol family, it's an interface layer between a medium-access layer and a protocol family.) sysctl(8) needs to be taught about the structure of this branch, unless Poul-Henning implements dynamic MIB exploration soon.
Revision 1.24: download - view: text, markup, annotated - select for diffs
Sat Dec 16 00:05:40 1995 UTC (16 years, 1 month ago) by bde
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +2 -1 lines
Added a prototype.
Revision 1.23: download - view: text, markup, annotated - select for diffs
Thu Dec 14 09:53:37 1995 UTC (16 years, 2 months ago) by phk
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +2 -2 lines
Another mega commit to staticize things.
Revision 1.22: download - view: text, markup, annotated - select for diffs
Sat Dec 9 16:06:52 1995 UTC (16 years, 2 months ago) by phk
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +68 -69 lines
Remove old ballast, clean up a little bit, staticize. Add five sysctl variables that you should probably never tweak. net.arp.t_prune: 300 net.arp.t_keep: 1200 net.arp.t_down: 20 net.arp.maxtries: 5 net.arp.useloopback: 1 net.arp.proxyall: 0 (It's net.arp because arp isn't limited to inet, though our present implementation surely is).
Revision 1.21: download - view: text, markup, annotated - select for diffs
Sat Dec 2 19:37:48 1995 UTC (16 years, 2 months ago) by bde
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +4 -1 lines
Completed function declarations and/or added prototypes.
Revision 1.20: download - view: text, markup, annotated - select for diffs
Sun Oct 22 19:07:58 1995 UTC (16 years, 3 months ago) by phk
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +1 -2 lines
Remove the last trace of arptnew()
Revision 1.19: download - view: text, markup, annotated - select for diffs
Thu Oct 5 20:08:39 1995 UTC (16 years, 4 months ago) by wollman
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +20 -8 lines
Convert ARP to use queue.h macros rather than insque/remque. While we're at it, eliminate obsolete exposure of `struct llinfo_arp' to the world. (This dates back to when ARP entries were not stored in the routing table, and there was no other way for the `arp' program to read the whole table than to grovel around in /dev/kmem.)
Revision 1.1.1.2 (vendor branch): download - view: text, markup, annotated - select for diffs
Thu Sep 21 17:19:28 1995 UTC (16 years, 4 months ago) by wollman
Branches: CSRG
CVS tags: bsd_44_lite_2
Diff to: previous 1.1.1.1: preferred, colored
Changes since revision 1.1.1.1: +4 -3 lines
Second try: get 4.4-Lite-2 into the source tree. The conflicts don't matter because none of our working source files are on the CSRG branch any more. Obtained from: 4.4BSD-Lite-2
Revision 1.17.4.1: download - view: text, markup, annotated - select for diffs
Sun Jul 23 05:26:13 1995 UTC (16 years, 6 months ago) by davidg
Branches: RELENG_2_1_0
CVS tags: RELENG_2_1_0_RELEASE
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +1 -11 lines
Brought in changes from rev 1.18: delete obsolete #if 0 block.
Revision 1.18: download - view: text, markup, annotated - select for diffs
Tue Jun 27 20:36:34 1995 UTC (16 years, 7 months ago) by wollman
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +1 -11 lines
Delete obsolete #if 0 block.
Revision 1.17: download - view: text, markup, annotated - select for diffs
Tue May 30 08:09:18 1995 UTC (16 years, 8 months ago) by rgrimes
Branches: MAIN
CVS tags: RELENG_2_1_0_BP, RELENG_2_0_5_RELEASE, RELENG_2_0_5_BP, RELENG_2_0_5
Branch point for: RELENG_2_1_0
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +2 -2 lines
Remove trailing whitespace.
Revision 1.16: download - view: text, markup, annotated - select for diffs
Thu May 11 00:13:16 1995 UTC (16 years, 9 months ago) by wollman
Branches: MAIN
CVS tags: RELENG_2_0_5_ALPHA
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +5 -2 lines
Make networking domains drop-ins, through the magic of GNU ld. (Some day, there may even be LKMs.) Also, change the internal name of `unixdomain' to `localdomain' since AF_LOCAL is now the preferred name of this family. Declare netisr correctly and in the right place.
Revision 1.15: download - view: text, markup, annotated - select for diffs
Tue May 9 13:35:44 1995 UTC (16 years, 9 months ago) by davidg
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +20 -29 lines
Replaced some bcopy()'s with memcpy()'s so that gcc while inline/optimize.
Revision 1.14: download - view: text, markup, annotated - select for diffs
Wed Apr 26 18:10:52 1995 UTC (16 years, 9 months ago) by pst
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +2 -2 lines
Cleanup loopback interface support. Reviewed by: wollman
Revision 1.13: download - view: text, markup, annotated - select for diffs
Thu Mar 16 18:14:49 1995 UTC (16 years, 11 months ago) by bde
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +1 -2 lines
Add and move declarations to fix all of the warnings from `gcc -Wimplicit' (except in netccitt, netiso and netns) and most of the warnings from `gcc -Wnested-externs'. Fix all the bugs found. There were no serious ones.
Revision 1.12: download - view: text, markup, annotated - select for diffs
Thu Mar 16 17:32:26 1995 UTC (16 years, 11 months ago) by wollman
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +6 -24 lines
Add inet_ntoa() and replace ARP's private routine with same.
Revision 1.11: download - view: text, markup, annotated - select for diffs
Mon Feb 20 15:48:40 1995 UTC (16 years, 11 months ago) by davidg
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +3 -3 lines
Added missing newlines to calls to log().
Revision 1.10: download - view: text, markup, annotated - select for diffs
Thu Dec 22 22:00:29 1994 UTC (17 years, 1 month ago) by wollman
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +2 -2 lines
Make arp_rtrequest() static since nobody needs to referene it any more.
Revision 1.9: download - view: text, markup, annotated - select for diffs
Thu Dec 22 21:56:21 1994 UTC (17 years, 1 month ago) by wollman
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +12 -1 lines
Move ARP interface initialization into if_ether.c:arp_ifinit().
Revision 1.8: download - view: text, markup, annotated - select for diffs
Tue Dec 13 22:32:44 1994 UTC (17 years, 2 months ago) by wollman
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +3 -3 lines
Update calls to rtalloc1(). Also merge rt_prflags with rt_flags.
Revision 1.7: download - view: text, markup, annotated - select for diffs
Wed Nov 2 00:58:29 1994 UTC (17 years, 3 months ago) by wollman
Branches: MAIN
CVS tags: RELEASE_2_0, OLAH_TTCP, BETA_2_0, ALPHA_2_0
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +44 -13 lines
Clean up ARP error messages: format IP addresses, explain arplookup() failures in English.
Revision 1.6: download - view: text, markup, annotated - select for diffs
Tue Oct 11 23:16:37 1994 UTC (17 years, 4 months ago) by wollman
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +13 -2 lines
Fix a bug which caused panics when attempting to change just the flags of a route. (This still doesn't work, but it doesn't panic now.) It looks like there may be a number of incipient bugs in this code. Also, get ready for the time when all IP gateway routes are cloning, which is necessary to keep proper TCP statistics.
Revision 1.5: download - view: text, markup, annotated - select for diffs
Sun Oct 2 17:48:36 1994 UTC (17 years, 4 months ago) by phk
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +3 -2 lines
GCC cleanup. Reviewed by: Submitted by: Obtained from:
Revision 1.4: download - view: text, markup, annotated - select for diffs
Sat Oct 1 21:50:33 1994 UTC (17 years, 4 months ago) by wollman
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +44 -7 lines
Implement full proxy ARP, gated on option ARP_PROXYALL. This allows a FreeBSD box to do proxy ARP as easily as most commercial routers do, without messing around with (potentially variable) Ethernet addresses. This code is really quite simple; I'm not at all sure why it wasn't implemented in 4.4. It might be worth stealing an interface flag (maybe IFF_LINK1) to use for finer-grained control over which interfaces get proxy treatment. For the moment, it's all or nothing.
Revision 1.3: download - view: text, markup, annotated - select for diffs
Thu Aug 18 22:35:26 1994 UTC (17 years, 5 months ago) by wollman
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +1 -2 lines
Fix up some sloppy coding practices: - Delete redundant declarations. - Add -Wredundant-declarations to Makefile.i386 so they don't come back. - Delete sloppy COMMON-style declarations of uninitialized data in header files. - Add a few prototypes. - Clean up warnings resulting from the above. NB: ioconf.c will still generate a redundant-declaration warning, which is unavoidable unless somebody volunteers to make `config' smarter.
Revision 1.2: download - view: text, markup, annotated - select for diffs
Tue Aug 2 07:47:59 1994 UTC (17 years, 6 months ago) by davidg
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +1 -0 lines
Added $Id$
Revision 1.1.1.1 (vendor branch): download - view: text, markup, annotated - select for diffs
Tue May 24 10:06:35 1994 UTC (17 years, 8 months ago) by rgrimes
Branches: CSRG
CVS tags: bsd_44_lite, REL_before_johndavid_2_0_0
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +0 -0 lines
BSD 4.4 Lite Kernel Sources
Revision 1.1: download - view: text, markup, annotated - select for diffs
Tue May 24 10:06:34 1994 UTC (17 years, 8 months ago) by rgrimes
Branches: MAIN
Initial revision
