All of lore.kernel.org
 help / color / mirror / Atom feed
* How To Temporarily Suspend Network Traffic
@ 2011-02-01 14:28 Volkan YAZICI
  2011-02-01 17:32 ` Rick Jones
  0 siblings, 1 reply; 6+ messages in thread
From: Volkan YAZICI @ 2011-02-01 14:28 UTC (permalink / raw)
  To: netdev

Hi,

I want to temporarily suspend the network traffic on a particular
interface -- if possible, in microsecond granularity. For this purpose,
ifup/ifdown ioctl() calls doesn't work. That is, for wireless
interfaces, connection isn't get recovered; for wired interfaces, it
takes at least 2 seconds to recover. I tried using tc, but it doesn't
accept "rate 0" parameter. Neither "iwconfig wlan0 rate 0" has any
effect. (Moreover, in iwconfig manual it is told that values below 1000
are card specific and are usually an index in the bit-rate list.) Do you
have any suggestions? Can you recommend me to check any code piece in
the kernel or some other tool?


Regards.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How To Temporarily Suspend Network Traffic
  2011-02-01 14:28 How To Temporarily Suspend Network Traffic Volkan YAZICI
@ 2011-02-01 17:32 ` Rick Jones
  2011-02-01 17:49   ` Stephen Hemminger
  2011-02-01 18:12   ` Volkan YAZICI
  0 siblings, 2 replies; 6+ messages in thread
From: Rick Jones @ 2011-02-01 17:32 UTC (permalink / raw)
  To: Volkan YAZICI; +Cc: netdev

Volkan YAZICI wrote:
> Hi,
> 
> I want to temporarily suspend the network traffic on a particular
> interface -- if possible, in microsecond granularity. For this purpose,
> ifup/ifdown ioctl() calls doesn't work. That is, for wireless
> interfaces, connection isn't get recovered; for wired interfaces, it
> takes at least 2 seconds to recover. I tried using tc, but it doesn't
> accept "rate 0" parameter. Neither "iwconfig wlan0 rate 0" has any
> effect. (Moreover, in iwconfig manual it is told that values below 1000
> are card specific and are usually an index in the bit-rate list.) Do you
> have any suggestions? Can you recommend me to check any code piece in
> the kernel or some other tool?

Out of not quite idle curiousity, what are you trying to accomplish?

Instead of using tc to set a zero rate, you could perhaps try using tc to set a 
delay?  If it doesn't offer microseconds of delay, pehaps setting a delay and 
then eliminating it after your own pause will do what you want - depends of 
course on what it is  you really want.  Your saying you wanted microsecond 
granularity suggests you don't want to suspend traffic for very long?

rick jones

> 
> Regards.
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How To Temporarily Suspend Network Traffic
  2011-02-01 17:32 ` Rick Jones
@ 2011-02-01 17:49   ` Stephen Hemminger
  2011-02-01 18:22     ` Volkan YAZICI
  2011-02-01 18:12   ` Volkan YAZICI
  1 sibling, 1 reply; 6+ messages in thread
From: Stephen Hemminger @ 2011-02-01 17:49 UTC (permalink / raw)
  To: Rick Jones; +Cc: Volkan YAZICI, netdev

On Tue, 01 Feb 2011 09:32:32 -0800
Rick Jones <rick.jones2@hp.com> wrote:

> Volkan YAZICI wrote:
> > Hi,
> > 
> > I want to temporarily suspend the network traffic on a particular
> > interface -- if possible, in microsecond granularity. For this purpose,
> > ifup/ifdown ioctl() calls doesn't work. That is, for wireless
> > interfaces, connection isn't get recovered; for wired interfaces, it
> > takes at least 2 seconds to recover. I tried using tc, but it doesn't
> > accept "rate 0" parameter. Neither "iwconfig wlan0 rate 0" has any
> > effect. (Moreover, in iwconfig manual it is told that values below 1000
> > are card specific and are usually an index in the bit-rate list.) Do you
> > have any suggestions? Can you recommend me to check any code piece in
> > the kernel or some other tool?
> 
> Out of not quite idle curiousity, what are you trying to accomplish?
> 
> Instead of using tc to set a zero rate, you could perhaps try using tc to set a 
> delay?  If it doesn't offer microseconds of delay, pehaps setting a delay and 
> then eliminating it after your own pause will do what you want - depends of 
> course on what it is  you really want.  Your saying you wanted microsecond 
> granularity suggests you don't want to suspend traffic for very long?
> 
> rick jones

What about using tc mired to redirect to dummy device? or use netem drop


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How To Temporarily Suspend Network Traffic
  2011-02-01 17:32 ` Rick Jones
  2011-02-01 17:49   ` Stephen Hemminger
@ 2011-02-01 18:12   ` Volkan YAZICI
  2011-02-01 20:03     ` Rick Jones
  1 sibling, 1 reply; 6+ messages in thread
From: Volkan YAZICI @ 2011-02-01 18:12 UTC (permalink / raw)
  To: Rick Jones; +Cc: netdev

On Tue, 01 Feb 2011 09:32:32 -0800, Rick Jones writes:
> Out of not quite idle curiousity, what are you trying to accomplish?

I'm trying to implement a coarse-grained soft-TDMA (Time Division
Multiple Access) among devices in a Wi-Fi network. (Coarse-grained, that
is, compared to a hardware implementation.) Assuming that device clocks
are in sync via NTP, I will figure out the granularity I can achieve
with soft-TDMA.

> Instead of using tc to set a zero rate, you could perhaps try using tc
> to set a delay? If it doesn't offer microseconds of delay, pehaps
> setting a delay and then eliminating it after your own pause will do
> what you want - depends of course on what it is you really want.

Thanks for the advice. I'll check this out and see what I can do.

> Your saying you wanted microsecond granularity suggests you don't want
> to suspend traffic for very long?

I want to figure out the smallest delay that I can achieve in a periodic
manner. (E.g., freeze the traffic for 200us, continue without
interruption for 800us, and freeze the traffic again for another 200us,
etc.) Pay attention that, an undeterministic delay somewhere in between
1000us is not something I prefer, I must be able to determine the point
in time where delay will appear -- ofcourse, with some error margin.


Regards.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How To Temporarily Suspend Network Traffic
  2011-02-01 17:49   ` Stephen Hemminger
@ 2011-02-01 18:22     ` Volkan YAZICI
  0 siblings, 0 replies; 6+ messages in thread
From: Volkan YAZICI @ 2011-02-01 18:22 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Rick Jones, netdev

On Tue, 1 Feb 2011 09:49:23 -0800, Stephen Hemminger writes:
> What about using tc mired to redirect to dummy device? or use netem drop

Ohh! I have just heard about netem. I'll definitely give it a try.
Thanks!


Regards.

P.S. I will ofcourse google and read the documentation that I can find
     about these stuff. OTOH, I'd be really appreciated if you can point
     me some relevant material. Kind of material, that is, which might
     not be able to easily reachable via searching and following links.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How To Temporarily Suspend Network Traffic
  2011-02-01 18:12   ` Volkan YAZICI
@ 2011-02-01 20:03     ` Rick Jones
  0 siblings, 0 replies; 6+ messages in thread
From: Rick Jones @ 2011-02-01 20:03 UTC (permalink / raw)
  To: Volkan YAZICI; +Cc: netdev

Volkan YAZICI wrote:
> On Tue, 01 Feb 2011 09:32:32 -0800, Rick Jones writes:
> 
>>Out of not quite idle curiousity, what are you trying to accomplish?
> 
> I'm trying to implement a coarse-grained soft-TDMA (Time Division
> Multiple Access) among devices in a Wi-Fi network. (Coarse-grained, that
> is, compared to a hardware implementation.) Assuming that device clocks
> are in sync via NTP, I will figure out the granularity I can achieve
> with soft-TDMA.

As in Fred gets to transmit from 0 to N, Ethel gets to transmit from N+1 to 2N 
and so on, based on absolute time?

Getting small number of microsecond synchronization between multiple systems via 
NTP (particularly if they are synchronized via a wireless network) may prove 
challenging.  At least that is my take as a member of the peanut gallery reading 
over the shoulders of the discussions that take place in comp.protocols.time.ntp

>>Instead of using tc to set a zero rate, you could perhaps try using tc
>>to set a delay? If it doesn't offer microseconds of delay, pehaps
>>setting a delay and then eliminating it after your own pause will do
>>what you want - depends of course on what it is you really want.
> 
> Thanks for the advice. I'll check this out and see what I can do.
> 
>>Your saying you wanted microsecond granularity suggests you don't want
>>to suspend traffic for very long?
> 
> I want to figure out the smallest delay that I can achieve in a periodic
> manner. (E.g., freeze the traffic for 200us, continue without
> interruption for 800us, and freeze the traffic again for another 200us,
> etc.) Pay attention that, an undeterministic delay somewhere in between
> 1000us is not something I prefer, I must be able to determine the point
> in time where delay will appear -- ofcourse, with some error margin.

Sounds, well, challenging :)  The determining the point in time part in 
particular.  One thing I've learned is that the cell towers in a cell network 
sync their time directly to GPS with some kit that is non-trivially expensive.

rick jones

> 
> 
> Regards.
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-02-01 20:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-01 14:28 How To Temporarily Suspend Network Traffic Volkan YAZICI
2011-02-01 17:32 ` Rick Jones
2011-02-01 17:49   ` Stephen Hemminger
2011-02-01 18:22     ` Volkan YAZICI
2011-02-01 18:12   ` Volkan YAZICI
2011-02-01 20:03     ` Rick Jones

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.