Commit Graph

160553 Commits

Author SHA1 Message Date
luigi
0ef00561d5 Add some experimental code to log traffic with tcpdump,
similar to pflog(4).
To use the feature, just put the 'log' options on rules
you are interested in, e.g.

	ipfw add 5000 count log ....

and run
	tcpdump -ni ipfw0 ...

net.inet.ip.fw.verbose=0 enables logging to ipfw0,
net.inet.ip.fw.verbose=1 sends logging to syslog as before.

More features can be added, similar to pflog(), to store in
the MAC header metadata such as rule numbers and actions.
Manpage to come once features are settled.
2009-12-17 23:11:16 +00:00
thompsa
6710b5f115 Use the EVENTHANDLER system to hook into the usb device configuration and
perform a function such as ejecting a 3G autoinstaller disk. The eventhandler
system properly tracks threads and is safe to unload, remove the
setting/clearing of a function pointer in the kernel by u3g(4) which included a
tsleep for safety.
2009-12-17 21:42:10 +00:00
thompsa
86f640f7c3 If the runcount is non-zero in eventhandler_deregister() then one or more
threads are executing the eventhandler, sleep in this case to make it safe for
module unload. If the runcount was up then an entry would have been marked
EHE_DEAD_PRIORITY so use this as a trigger to do the wakeup in
eventhandler_prune_list().

Reviewed by:	jhb
2009-12-17 21:17:13 +00:00
edwin
1c45e9d066 Nationalise Easter -> Pasen
MFC after:	1 week
2009-12-17 20:41:59 +00:00
yongari
17682087e2 Remove unused member variable of softc. 2009-12-17 19:48:54 +00:00
yongari
35860d3255 Document newly added loader tunable and sysctl variables.
o hw.vge.msi_disable
 o dev.vge.%d.int_holdoff
 o dev.vge.%d.rx_coal_pkt
 o dev.vge.%d.tx_coal_pkt
2009-12-17 18:37:11 +00:00
yongari
bd0be472d9 Actually clear interrupts. Writing 0 has no effect. 2009-12-17 18:03:05 +00:00
yongari
3672ee2e9a Implement interrupt moderation scheme supported by VT61xx
controllers. TX/RX interrupt mitigation is controlled by
VGE_TXSUPPTHR and VGE_RXSUPPTHR register. These registers suppress
generation of interrupts until the programmed frames counter equals
to the registers. VT61xx also supports interrupt hold off timer
register. If this interrupt hold off timer is active all interrupts
would be disabled until the timer reaches to 0. The timer value is
reloaded whenever VGE_ISR register written. The timer resolution is
about 20us.

Previously vge(4) used single shot timer to reduce Tx completion
interrupts. This required VGE_CRS1 register access in Tx
start/completion handler to rearm new timeout value and it did not
show satisfactory result(more than 50k interrupts under load). Rx
interrupts was not moderated at all such that vge(4) used to
generate too many interrupts which in turn made polling(4) better
approach under high network load.

This change activates all interrupt moderation mechanism and
initial values were tuned to generate interrupt less than 8k per
second. That number of interrupts wouldn't add additional packet
latencies compared to polling(4). These interrupt parameters could
be changed with sysctl.
dev.vge.%d.int_holdoff
dev.vge.%d.rx_coal_pkt
dev.vge.%d.tx_coal_pkt
Interface has be brought down and up again before change take
effect.

With interrupt moderation there is no more need to loop in
interrupt handler. This loop always added one more register access.
While I'm here remove dead code which tried to implement subset of
interrupt moderation.
2009-12-17 18:00:25 +00:00
gavin
0768a69095 Don't panic due to unlocking an unowned mutex if we fail during attach.
PR:		kern/139053
Reviewed by:	scottl
Approved by:	ed (mentor)
MFC after:	2 weeks
2009-12-17 17:46:08 +00:00
luigi
a34926abd3 Now that ipfw is split into multiple files, we need
to list them all in the Makefile for the module,
otherwise it won't load due to missing symbols.

The problem only affected head with ipfw built as a module.

Reported by David Horn
2009-12-17 17:44:34 +00:00
yongari
1961bff3a9 Remove unused VGE_ETHER_ALIGN definition. 2009-12-17 17:38:06 +00:00
luigi
308d52e697 simplify and document lookup_next_rule() 2009-12-17 17:27:12 +00:00
jh
060a87e0f5 Sync getline() with comm(1):
- Prevent overflowing of the buffer length variable in getline() by
   limiting its maximum value.
 - Exit if reallocf(3) fails in getline(). Failure was silently
   considered as end-of-file.

Reviewed by:	ghelmer
Approved by:	trasz (mentor)
2009-12-17 17:03:47 +00:00
jh
4491896aee The input line length limit mentioned on the manual page was removed by
r176119.

Approved by:	trasz (mentor)
2009-12-17 16:59:19 +00:00
nyan
f48dc0501b Fix debug messages of bd_io().
MFC after:	1 week
2009-12-17 13:14:11 +00:00
stas
9b4a1c7a67 - Partially revert r200417. config.h brings several definitions,
that appears to be actually used.  Without config.h included
  cross-build of world failed (at least for ARM).
2009-12-17 12:42:45 +00:00
luigi
268b58e51f simplify the code that finds the next rule after reinjections
MFC after:	1 week
2009-12-17 12:27:54 +00:00
rse
22655be88e rewind(3) is already declared to return 'void', so no need for an explicit cast 2009-12-17 08:42:44 +00:00
rse
803dcdc836 DEBUG is either defined or not defined for the 'calender' sources, so use #ifdef and not just #if -- both to be semantically correct and also to be aligned with the rest of the 'calendar' sources 2009-12-17 08:41:06 +00:00
rse
7687c41059 remove external reference to not (or at least no longer) existing variable 'myname' 2009-12-17 08:37:02 +00:00
edwin
a02a0979b1 Add Australian, New Zealand and Ukraian calendars to the "all" target".
MFC after:	1 week
2009-12-17 07:18:06 +00:00
jamie
cf8736c474 Add a null pointer check so "name" can be used as a key parameter in
jailparam_get.

PR:		bin/141692
Submitted by:	delphij
MFC after:	3 days
2009-12-17 05:06:56 +00:00
mjacob
c0a38f802d Fix argument order in a call to mtx_init.
MFC after:	1 week
2009-12-17 00:22:56 +00:00
mjacob
a2f49b89b7 Fix argument order in a call to mtx_init.
MFC after:	1 week
2009-12-17 00:21:12 +00:00
imp
747567aeb7 Revert 200606. 2009-12-16 21:53:56 +00:00
yongari
760ca3284b Add "Velocity" to probe message which will make it clearer which
ethernet controller was recognized. VIA consistently calls
"Velocity" family for gigabit ethernet controllers. For fast
ethernet controllers they uses "Rhine" family(vr(4) controllers))
and vr(4) already shows "Rhine" in probe message.
2009-12-16 20:03:43 +00:00
yongari
e75eb0a487 Add new flag VGE_FLAG_SUSPENDED to mark suspended state and
remove suspended member in softc.
2009-12-16 19:49:23 +00:00
yongari
c57b5821c5 Add hardware MAC statistics support. This statistics could be
extracted from dev.vge.%d.stats sysctl node.
2009-12-16 19:41:40 +00:00
julian
e4c705b6d5 Make man page reflect the output columns
MFC after:	1 week
2009-12-16 19:37:38 +00:00
yongari
5eb45f07cb Rewrite RX filter setup and simplify code.
Now promiscuous mode and multicast handling is performed in single
function, vge_rxfilter().
2009-12-16 19:32:44 +00:00
luigi
2544f1c542 remove a duplicate sysctl entry 2009-12-16 18:03:35 +00:00
yongari
2df754472e All vge(4) controllers support RX/TX checksum offloading for VLAN
tagged frames so add checksum offloading capabilities. Also add
missing VLAN hardware tagging control in ioctl handler and let
upper stack know current VLAN capabilities.
2009-12-16 18:03:25 +00:00
mav
bed52cb4e1 Large I/Os on Promise controllers reported to cause UDMA ICRC errors and
subsequent timeouts. Restore previous limit for now, at least until
I will have hardware to experiment.

PR:             kern/141438
2009-12-16 17:42:02 +00:00
imp
09c3f98bcc Fix compiling FREEBSD_COMPAT[4,5,6] without FREEBSD_COMPAT7.
Note: Not sure this is the right way to do compat, but it makes the
headers consistent with the implementations.
2009-12-16 17:17:40 +00:00
jhb
dceff09ff6 Add entries to NOTES for the modular phy support so that these options are
documented.

PR:		docs/141358
Submitted by:	Bruce Cran
2009-12-16 16:24:32 +00:00
jh
34aba95524 - Prevent overflowing of the buffer length variable in getline() by
limiting its maximum value.
- Exit if reallocf(3) fails in getline(). Failure was silently
  considered as end-of-file.

Reviewed by:	ghelmer
Approved by:	trasz (mentor)
2009-12-16 14:34:48 +00:00
luigi
0b8651c0f6 bring back a couple of #include that are supplied by nesting,
and explain why they are used.
2009-12-16 13:00:37 +00:00
avg
5b20abbd21 ichsmb: add another pci id
This is SMBus controller found in Intel Platform Controller Hub (PCH),
which is a general name that refers to Intel 5 Series chipsets and
3400 Series chipsets.

Submitted by:	Dmitry S. Luhtionov <mitya@cabletv.dp.ua>
MFC after:	3 days
2009-12-16 12:25:27 +00:00
luigi
3805c8f0d8 Various cosmetic cleanup of the files:
- move global variables around to reduce the scope and make them
  static if possible;
- add an ipfw_ prefix to all public functions to prevent conflicts
  (the same should be done for variables);
- try to pack variable declaration in an uniform way across files;
- clarify some comments;
- remove some misspelling of names (#define V_foo VNET(bar)) that
  slipped in due to cut&paste
- remove duplicate static variables in different files;

MFC after:	1 month
2009-12-16 10:48:40 +00:00
matteo
fbf6bc755d 2009-12-16 04:19:23 +00:00
imp
0efea5999c Forgot to bump .Dd, so do it with this commit. Chose local time over
UTC time for the date...
2009-12-16 03:29:00 +00:00
imp
56caa05e14 Quick fix to make this compile:
Remove redundant extern declearations.
If the maintainer has a better fix, then feel free to back this out.
2009-12-16 03:26:37 +00:00
imp
b1259c29a3 Docmuent NO_KERNEL{CLEAN,CONFIG,DEPEND,OBJ} as necessary. Update
documentation on KERNFAST meaning.
2009-12-16 03:25:43 +00:00
imp
905ddc6232 Add NO_KERNELOBJ flag, similar to NO_KERNEL{CONFIG,DEPEND,CLEAN},
which disables doing a make obj.  Use it when you know it will work
only.  KERNFAST now implies NO_KERNELOBJ, since you don't need to keep
doing obj when doing incremental kernel builds.
2009-12-16 02:54:34 +00:00
dougb
38047fc578 Add INCLUDE_CONFIG_FILE, and a note in comments about how to also
include the comments with CONFIGARGS
2009-12-16 02:17:43 +00:00
jkim
ddc390f24b Add two new debugging tunables for x86bios instead of abusing bootverbose,
i.e., debug.x86bios.call and debug.x86bios.int.
2009-12-15 22:44:28 +00:00
luigi
0b02c03e54 more splitting of ip_fw2.c, now extract the 'table' routines
and the sockopt routines (the upper half of the kernel).

Whoever is the author of the 'table' code (Ruslan/glebius/oleg ?)
please change the attribution in ip_fw_table.c. I have copied
the copyright line from ip_fw2.c but it carries my name and I have
neither written nor designed the feature so I don't deserve
the credit.

MFC after:	1 month
2009-12-15 21:24:12 +00:00
jilles
2a4bb5bd52 cpuset(2): fix a typo and a markup error in the man page
MFC after:	1 week
2009-12-15 21:02:29 +00:00
gavin
9e26e7888c ifconfig(8) is documented to take a ISO 3166-1 country code to set the
regulatory domain with the "country" parameter, but will also take a full
country name.  The man page warns that only the ISO code is unambiguous.
In reality, however, the first match on either would be accepted, leading
to "DE" being interpreted as the "DEBUG" country rather than Germany, and
"MO" selecting Morocco rather than the correct country, Macau.

Fix this by always checking for an ISO CC match first, and only search on
the full country name if that fails.

PR:		bin/140571
Tested by:	Dirk Meyer dirk.meyer dinoex.sub.org
Reviewed by:	sam
Approved by:	ed (mentor)
MFC after:	1 month
2009-12-15 20:44:12 +00:00
jkim
59d89f70e9 Attach dpms(4) to vgapm and make sure to restore DPMS state after
VGA is resumed properly.

Reviewed by:	jhb
2009-12-15 19:58:23 +00:00