Friday, November 03, 2006

a day in the life of davidp

OK here we go, this is what I work on while at the office.

Longreach Networks sells a box called the Outback 320
(longreach is having ISP problems today so check back later - please !)

It is the 3rd generation of a product I've worked on for more than 10
years. The list of interfaces and services is long and very technical.

It support lots and lots of protocols and lots and lots of interfaces.

Customers can order modules for the 4 modular ports. It comes with 2 x 100Mb
ethernet ports. Popular modular ports are OC3 (155Mbs fibre), 8xE1
telephony module (one port fans out to 8xE1 ports in another connector box), voice
compression module - and about 15 more types.

What's an E1 ? well it is the 2Mb digital interface that PABX's use to
connect 31 telephone lines to a exchange. Normally a large business might
have several E1s coming into their building to handle as many concurrent
phone calls as they need. You can ask Telstra for X phone lines, and they
provision them in bundles of 31, but can enabled one at at a time. An E1
can run on a copper link that looks exactly like Cat5 ethernet.

What bits do I work on ? I don't do much on the telephone protocols side.
I've worked mostly on the IP side of things - implementing protocols such
as SNMP, TFTP, HTTP, OSPF, RIP, Spanning Tree, VLAN, SNTP etc.

The processor is from a company called Wintegra. They basically put a
PowerPC core in with some communication controllers and some microcode to
enable things like fast routing. For eg. our box can route IP packets at
100Mb, which is quite impressive - something you can't really do in
software on its own, you need some hardware assistance.

The compiler we use is gcc (yes!) built as a cross compiler under windows
to the powerpc target. One geek (since left) in Sydney used his BSD box to
build the gcc binary and his compiles are much faster than ours under xp.
Maybe I might build a linux build server and use samba to edit files. I
use Vim (vi on drugs) all day long and love it. Just call me Mr. shortcut.
Who needs a manby panby mouse to edit files ? To give you an idea of the
size of the source file tree - the tags file is 28,853,215 bytes long. I'd
never find anything without ctags and Vim's ability to jump around, jump

Now the stage is set, what am I working on ? well lots of the big telcos
are now thinking about running IP in their core network. This includes all
of the voice as well as internet. To do this on a large scale you need to
convert the voice protocols to IP, and uncovert them at the other end.

One of the building blocks of this coversion is SCTP - Stream Control
Transmission Protocol - sort of a TCP on drugs. It offers better
reliabiliy, faster recovery, greater parallel throughput over TCP. It is
naturally more complicated than TCP ....

We talk a lot about signalling packets. An E1 has 31 voice circuits in it
and one circuit is reserved to be the signalling circuit. This signalling
circuit tells either end what to do with each voice circuit - i.e. channel
1 is calling you, are you free ? channel 23 just cleared a call, please
free it etc. etc. These signalling packets are buffers of bytes with
reserved values, variable length data - structured packets that need to be
decoded and interpreted.

The task of SCTP is take multiple concurrent streams (up to 60 x E1 so
60x31 streams) from one IP host to another. The voice goes via another
path, using RTP the `real time protocol'. The bits I'm carrying using SCTP
are just the signalling packets.

BTW I didn't actually write the SCTP we are using a LGPL version -
something new for us, we normally write everything to own the IP

Sitting above SCTP is IUA - the ISDN User Adaptation Protocol - see
RFC4233 for the gory details. This bit we did write - it is responsible
for maintaining the link between the 2 ends of the SCTP, keeping the ISDN
(that is what is running over all of the 32 channels) interface happy.

another BTW; each channel is 64000 bps, so 31+1 x 64000 = 2048000 which is
the speed of an E1. In the US they use T1 which is 1.5Mb so they get 23+1
channels in their trunk. So your voice is normally carried over a 64K link
when you make a regular PSTN call.

So there we go, hopefully this was enough and too much info both at the
same time.

(submitted by dp Friday, 3 November 2006 2:34:22 PM)

No comments: