Commit Graph

533 Commits

Author SHA1 Message Date
glebius
2fa7cf8313 Use log() instead of printf(), to reduce flood on console.
MFC after:	1 week
2005-01-20 13:28:39 +00:00
rik
890aec8eb0 Ups, misprint, change and => add.
Submitted by: ru
2005-01-16 23:30:45 +00:00
rik
d11aba881e Fix comment. Code 0x95 means locking shift to codeset 5 according to
T1.617 AnnexD.
Locking shift procedure is described in ANSI T1.607.

MFC after:	3 days
2005-01-16 19:22:09 +00:00
rik
89dc69d010 Fix variable name in comment num=>alen. (Lost part of commit rev 1.2)
MFC after:	3 days
2005-01-16 19:12:27 +00:00
glebius
7e1fa1922f Raise & drop IFF_RUNNING upon receival of netgraph flow control
messages.
2005-01-14 11:55:07 +00:00
glebius
3a8ccb0718 Consider IFF_UP as "administratively up" flag, and IFF_RUNNING as
"operationally up" flag. Hence this, revert 1.35 to use IFF_RUNNING.
2005-01-14 11:52:45 +00:00
glebius
93aaafbe16 Locking and cleanup of tty netgraph node. Tty stack is Giant-locked,
so we need to acquire Giant in netgraph methods, so that we don't
race with line discipline methods. Remove NET_NEEDS_GIANT.

- Packets coming into node from netgraph are queued in ifqueue
  attached to node private data.
- Mutex in struct ifqueue is used to lock not only the queue, but
  the whole private data, and tp->t_lsc field.
- tp->t_lsc pointer is used to indicate whether line discipline is
  attached to netgraph or not.
- Use FLG_DIE flag to indicate that node may be destroyed.
  (This protection doesn't work, and it didn't before. Must be redesigned.)
- Increment ngt_unit atomically, removing mutex.
- Acquire Giant, when executing ngt_start() from netgraph context.
- Acquire Giant, when {,de}registering line discipline.
- Uncomment forcing queue mode on peers hook, since this is reasonable.
- Force queue mode on our hook, to avoid acquiring Giant when coming from
  network stack. We may already hold some mutexes at this point.

Cleanups:
- Use callout_pending() instead of our own flag.
- Remove spl(9) calls. Now we can use return() instead of ERROUT().

style(9):
- Sort includes.
- Sparse initializer for struct linesw.
- Remove some empty lines, sort declarations.

Reviewed by:	julian, phk
MFC after:	1 month
2005-01-13 07:43:12 +00:00
glebius
ab09c82551 Utilize callout_pending() macro 2005-01-11 12:20:28 +00:00
glebius
205c9af3d3 - Use ng_callout() instead of timeout(9).
- Remove spl(9) calls.

XXX:	not tested
2005-01-11 11:59:59 +00:00
glebius
55acc70931 - Use ng_callout() instead of home-grown implementation.
Submitted by:	emax
2005-01-11 11:55:56 +00:00
glebius
1e5d735a0a - Use ng_callout() instead of callout_reset(9).
- Use callout_pending() instead of our own flags.
- Remove home-grown protection of node, which has a scheduled
  callout().
- Remove spl(9) calls.

Tested by:	bz
2005-01-11 11:51:17 +00:00
emax
580248c6b5 Make default RFCOMM session MTU match default L2CAP MTU.
This is just a workaround for a know problem with Motorola E1000
phone. Something is wrong with the configuration of L2CAP/RFCOMM
channel. Even though we set L2CAP MTU to 132 bytes (default RFCOMM
MTU 127 + 5 bytes RFCOMM frame header) and the phone accepts it,
the phone still sends oversized L2CAP packets. It appears that the
phone wants to use bigger (667 bytes) RFCOMM frames, but it does
not segment them according to the configured L2CAP MTU. The 667
bytes RFCOMM frame size corresponds to the default L2CAP MTU of
672 bytes (667 + 5 bytes RFCOMM frame header).

This problem only appears if connection was initiated from the
phone. I'm not sure who is at fault here, so for now just put
workaround in place. Quick look at the spec did not reveal any
anwser.

Tested by:	Jes < jjess at freebsd dot polarhome dot com >
MFC after:	3 days
2005-01-11 01:39:53 +00:00
glebius
e3f4f22c01 This change adds reliability for Ethernet trunks built with ng_one2many:
- Introduce another ng_ether(4) callback ng_ether_link_state_p, which
  is called from if_link_state_change(), every time link is changed.
- In ng_ether_link_state() send netgraph control message notifying
  of link state change to a node connected to "lower" hook.

Reviewed by:	sam
MFC after:	2 weeks
2005-01-08 12:42:03 +00:00
imp
a50ffc2912 /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
emax
a74e29628a Introduce new startup level SI_SUB_NETGRAPH that is after
SI_SUB_INIT_IF but before SI_SUB_DRIVERS. Make Netgraph(4)
framework initialize at SI_SUB_NETGRAPH level.

This does not address the bigger problem: MODULE_DEPEND
does not seem to work when modules are compiled in the
kernel, but it fixes the problem with Netgraph Bluetooth
device drivers reported by a few folks.

PR:		i386/69876
Reviewed by:	julian, rik, scottl
MFC after:	3 days
2005-01-06 17:45:03 +00:00
rik
475e4489f6 Kill a half dead comment. It's first half was killed in rev 1.12.
MFC after:	3 days
2005-01-04 21:59:09 +00:00
emax
626c8fa3a1 Rename 'class' field to 'uclass' in the ng_hci_inquiry_response structure.
class is a reserved word in C++

Submitted by:	Markus Brueffer < markus AT brueffer DOT de >
MFC after:	3 days
2005-01-04 20:13:48 +00:00
glebius
98b3df98e5 Remove a check that never returns true, because in this case we have panic
before the check.
2004-12-30 12:22:51 +00:00
glebius
dde029219c - Plug a memory leak in ng_netflow_cache_init().
- Initialize error to 0 in ng_netflow_flow_add() (a nop change).
- Update cache statistics holding workqueue mutex.

MFC after:	3 days
2004-12-28 12:11:32 +00:00
rik
9df64a1b0d tsleep => msleep
read sys/kern/kern_synch.c, msleep ():

	KASSERT(timo != 0 || mtx_owned(&Giant) || mtx != NULL,
	    ("sleeping without a mutex"));

MFC after:	3 days
2004-12-26 20:47:41 +00:00
rik
9cd8396061 Fix creation on "dlciX" hook in ng_sample.
Approved by:	julian
MFC after:	3 days
2004-12-23 22:03:32 +00:00
rik
508621c9df Fix counting length of leadin for hook name (sizeof () => strlen ()).
Approved by:    julian
MFC after:      3 days
2004-12-23 18:39:13 +00:00
glebius
0c4ff7ff77 Move systm.h up, since it is required by mbuf.h.
Requested by:	ru
2004-12-23 13:09:37 +00:00
glebius
1df5c03e4b - sort includes
- remove duplicate include sys/sysctl.h
2004-12-23 10:48:10 +00:00
glebius
a7bbad17b9 Assert queue mutex in ng_dequeue() and ng_queue_rw(). 2004-12-19 14:58:13 +00:00
glebius
1aeacc6d75 - Use ng_callout() instead of timeout.
- Schedule next timeout *after* finishing job of the current one.
- Remove spl(9) calls.

Tested by:	ru
Reviewed by:	julian
2004-12-14 08:05:29 +00:00
glebius
ce23ffb82d Use ng_callout() and ng_uncallout() instead of home-grown
implementation.

Tested by:	Savchuk Taras
Reviewed by:	archie
Approved by:	julian (mentor)
2004-12-09 07:49:02 +00:00
glebius
99506151c1 - Use ng_callout() instead of timeout()
- remove spl(9) calls

Tested by:	Ilya Pizik
Approved by:	julian (mentor)
2004-12-08 13:27:54 +00:00
glebius
535ed5b0e2 - Use ng_callout() instead of timeout(9).
- Do not put/remove node references, since this no longer
  needed.
- Remove timerActive flag, use callout flags.
- Schedule next callout after doing current one.

Reviewed by:	archie
Approved by:	julian (mentor)
2004-12-06 19:49:55 +00:00
glebius
66304651ce Use ng_callout() instead of timeout(9).
Approved by:	julian (mentor)
2004-12-05 22:58:13 +00:00
glebius
4f260d49bc - Use uint16_t to pass argument for NGM_NETFLOW_IFINFO, bump cookie.
- Always check that index number passed from userland
  is <= NG_NETFLOW_MAXIFACES. [1]
- Increase NG_NETFLOW_MAXIFACES up to 512. [2]

Noticed by:	Roman Palagin [1]
Requested by:	Yuri Y. Bushmelev [2]
MFC after:	1 week
2004-12-05 14:30:38 +00:00
glebius
0ee3c9a148 Mechanically rename s/ng_timeout/ng_callout/g, s/ng_untimeout/ng_uncallout/g.
This is done to keep both versions in RELENG_5 and support both APIs.

Reviewed by:	scottl
Approved by:	julian (mentor), implicitly
2004-12-01 11:56:32 +00:00
mlaier
ea0fd1c083 Move ng_socket and ng_btsocket initialization to SI_SUB_PROTO_DOMAIN as they
call net_add_domain(). Calling this function too early (or late) breaks
assertations about the global domains list.
Actually it should be forbidden to call net_add_domain() outside of
SI_SUB_PROTO_DOMAIN completely as there are many places where we traverse
the domains list unprotected, but for now we allow late calls (mostly to
support netgraph). In order to really fix this we have to lock the domains
list in all places or find another way to ensure that we can safely walk the
list while another thread might be adding a new domain.

Spotted by:	se
Reviewed by:	julian, glebius
PR:		kern/73321	(partly)
2004-11-30 22:28:50 +00:00
archie
574523a3a9 Disable protocol field compression on the inner PPP frame when also doing
normal PPP compression, as a workaround for certain (arguably) broken
Linux PPP implementations that can't handle this particular case.

MFC after:	1 week
2004-11-27 20:29:00 +00:00
glebius
c4307a79b8 Netgraph flow control: change interface status when node receive
LINK_IS_UP/LINK_IS_DOWN messages.

Approved by:	julian (mentor), implicitly
MFC after:	1 week
2004-11-23 09:48:13 +00:00
glebius
d1939766d1 Introduce new failure detection algorithm, called NG_ONE2MANY_FAIL_NOTIFY.
It means, that node listens to flow control messages from downstreams
and removes link from list of active links whenever a LINK_IS_DOWN message
is received. If LINK_IS_UP message is received, then links is put
back into list of active links.

Approved by:	julian (mentor), implicitly
MFC after:	1 week
2004-11-23 09:45:47 +00:00
glebius
b437de8061 o Use ng_timeout() instead of timeout(9).
o Implement some netgraph flow control:
- Whenever status of HDLC heartbeat from pear is timed out,
  send NGM_LINK_IS_DOWN message.
- If HDLC link changes status from down to up, send
  NGM_LINK_IS_UP message.

Approved by:	julian (mentor), implicitly
MFC after:	1 week
2004-11-23 09:30:27 +00:00
glebius
c52af354ac Remove unused macro.
Approved by:	julian (mentor)
2004-11-19 22:35:53 +00:00
glebius
4eeaf10421 Cancel pending timeout before scheduling a new one. This fixes
item leak, I've introduced with previous change.

Approved by:	julian (mentor)
2004-11-19 20:23:46 +00:00
emax
9f3a10cb66 Correct typo. Return ENXIO instead of EIO. 2004-11-19 18:54:54 +00:00
glebius
b14e3d011c Add myself to copyright.
Approved by:	marks
2004-11-10 11:18:05 +00:00
phk
027fce30f5 Initialize struct pr_userreqs in new/sparse style and fill in common
default elements in net_init_domain().

This makes it possible to grep these structures and see any bogosities.
2004-11-08 14:44:54 +00:00
glebius
72e8effbe5 Partically backout previous commit. Since _callout_stop_safe() clears
out c->c_func, we can't take it after callout_stop(). To take it before
we need to acquire callout_lock, to avoid race. This commit narrows
down area where lock is held, but hack is still present.

This should be redesigned.

Approved by:	julian (mentor)
2004-11-04 21:30:18 +00:00
harti
1b4394c358 Adapt to the new ng_timeout/ng_untimeout arguments. These now use
the callout instead of the timeout interface.

Submitted by:	glebius
2004-11-04 12:33:55 +00:00
emax
002936f9ab Fix kernel build (caused by recent ng_{un}timeout API change)
Submitted by:	glebius
2004-11-03 18:00:49 +00:00
glebius
a033067901 - Make ng_timeout() to use callout() interface instead of timeout().
- Remove callout-hacking from ng_untimeout().

Approved by:	julian (mentor)
MFC after:	1 month
2004-11-02 21:24:30 +00:00
glebius
6e7d37729f Fix a harmless error in order of ng_timeout() arguments.
Approved by:	julian (mentor)
2004-11-02 20:26:41 +00:00
emax
29562d9fdc Fix broken ng_h4(4). Basically, do not abuse t_sc field and use new t_lsc
field created for line disciplne drivers private use. Also add NET_NEEDS_GIANT
warning. For whatever reason ng_tty(4) was fixed but ng_h4(4) was not :(
2004-11-02 20:01:42 +00:00
glebius
57c6de1cee Removed bogus comment. 2004-11-01 20:52:24 +00:00
glebius
b376859d7c o style changes:
- tabs after defines
- tabs instead of many spaces
- sort local variables by size

o remove spl(9) calls

Approved by:	julian (mentor)
2004-11-01 20:12:03 +00:00