Zbr's days.
December
Sun Mon Tue Wed Thu Fri Sat
         
20
           
2006
Months
Dec

About TODO Blog RSS Old blog Projects Gallery Notes

Wed, 20 Dec 2006

Climbing eveninig.


It was first time for the last three months I climbed on the walls and not traverses or boulderings. I held a girl from DDS (which is closed, so there are enourmous crowds of people in Skala-city), which actually most of the time were in hinged state, so the whole training was not that active.
I completed three old traces and found that although I can do the things, it was not that easy as I expected, but nevertheless it was good training although easy and short (if number of minutes I spent on the walls are calculated).
Next time unknown girl will ask me to insure her, I should ask if she permit me to climb a bit more than 3-4 traces :)

/life :: Link / Comments (0)


Network address translation (NAT) works over netchannels.


One can add/remove source/destination NAT using connector (Documentation/connector/ in your source tree).
NAT over netchannels uses two aditional netchannels per dataflow (input and output from NAT server point of view) and one main (what administrator sets up using source/destination rules) as I described previously.
It uses the same tries as other netchannels (userspace or others), so only one lookup is performed to transfer packet.
Packet processing happens in process context on behalf of special threads, dedicated specially for netchannel processing, when packet enters netchannel stack and netchannel has been selected, it is possible to schedule its processing either to current thread, or to thread on other CPU.
Netchannel searching is lockless (protected by RCU), skb queueing is proceted by spinlock.

So, brief list of netchannel features:

  • multidimensional wildcards support
  • RCU searching
  • single multidimensional trie for different kinds of dataflows
  • dedicated processing threads with possibility to schedule processing on different CPUs for those netchannel types which are not acked with processing context
  • userspace netchannel backend (allows to receive packets to userspace), which can be used for:
    • high-performance sniffers
    • tun/tap device replacement
    • packet socket replacement (note, that netchannels steal packets from main stack)
    • userspace network stack implementation
    • own protocol stack implementaion (from VPN tunnels to TOE)
  • netfilter netchannel backend (only NAT is supported as the most interesting user, NAT caches appropriate route, so essentially routing becomes part of the netchannel trie)

Some testing was done in 'emulator', i.e. pre-netchannel userspace multidimensional trie implementation.
Results are here.

This version (netchannels.18) can be found in archive.
it has been also sent to netdev@ for review and comments.

/devel/networking :: Link / Comments (0)