Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Sep 2001 09:16:21 -0700
From:      Maksim Yevmenkin <myevmenk@digisle.net>
To:        hackers@freebsd.org
Subject:   Netgraph feature request/suggestion
Message-ID:  <3BB1FF55.1460E1E4@digisle.net>

next in thread | raw e-mail | index | archive | help
Hackers,

i'm in the middle of the project that uses Netgraph. 
everything is going pretty good, but there is one small 
issue. in five words it is "message and data delivery 
scheduling". here is an example:

Node A --> Node B --> Node C

Node "A" forwards data/messages to Node "B" and Node "B" 
in its turn forwards data/messages to Node "C". the issue
is that Node "C" can handle only some small amount of 
data/messages at a time. Node "B" is aware of Node "C"'s
limitation and must perform "leaking bucket" type of 
scheduling. i.e. Node "B" must queue data inside itself
and then schedule later delivery to Node "C".

but that is not all. sometimes it is required to send
chunk of data (several messages) from Node "A" to Node "C".
(via Node "B") and until this chunk of data is processed by 
Node "C", Node "B" is not allowed to send/accept any more
data.

i know about kernel threads and task queue, but i would really
like to stay within Netgraph infrastructure and do not perform
any extra synchronization.

here is the proposal. every hook has two extra methods
"hk_RcvDataShed" and "hk_RcvmMgSched" that performs scheduling.
Node can turn on delivery scheduling on one of its hook by 
setting these methods. before actual data/message delivery 
Netgraph will call these methods and ask destination node "is 
that a good time to deliver this data/message". if it is then
delivery is performed. otherwise depending on "HK_QUEUE" bit
data/message gets queued or dropped. or perhaps turning on 
delivery scheduling must turn on "HK_QUEUE" bit automatically.

thanks,
max

p.s. i think it should be easy to implement, if people are
     interested. i can prepare the patches.

p.p.s. if anyone knows nice solution to this problem please
       let me know.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3BB1FF55.1460E1E4>