Peter Teoh wrote:
> Can someone help me understand this?
> 
> a.   what is the difference between squeue and netstack?

A netstack instance is allocated for the global zone (and all shared
stack zones), plus one for each exclusive IP stack instance zone.

When IP stack instances were added, the formerly static storage duration
variables related to networking were moved into the netstack structure.
 (A few were left as system-wide globals, but most moved.)

That's what allows an exclusive IP stack instance zone to have its own
set of IP interfaces.

The squeue is a synchronization object used by FireEngine.  There's
roughly an squeue per CPU and interface on the system.

An squeue belongs to exactly one netstack.  A netstack may have one or
many squeues.

>   generally,
> what is the implication if it is disassociated - can we still pump
> information through the connection?  (sorry for talking rubbish.....i
> am really newbie...)

No more data is possible.  The user is long gone.  We're in clean-up
mode -- the connection will eventually be freed up.

Disassociating from the netstack means that we no longer need to refer
to the zone that created the connection.

> b.   squeue is per-cpu right?   so different cpu will have difference
> squeue?

Yes.

>   so i supposed there must be a handler function for the
> squeue processing?
> what is the name, and they are different for reading/writing right?

You'll need to read through the ip_squeue source code, and any
FireEngine documents you can google.  It's non-trivial.

> if they are per-cpu, is there load balancing to rebalance the queue
> when it become imbalanced due to different speed of processing?

No.

-- 
James Carlson         42.703N 71.076W         <carls...@workingcode.com>
_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org

Reply via email to