Building a network switch

Discussion in 'Computing and Networks' started by dor, Jul 18, 2009.

  1. dor

    Thread Starter Active Member

    Feb 20, 2009
    62
    0
    What are the requirements for building a network switch?

    Concerning the following subjects:


    • OS (operating system):
      • Is it the Electronics engineer's job or Computers engineer to build also the OS of the switch?
      • I suppose that an operating system for a switch may not include multitasking, memory handling etc. Am I right?
        A switch OS should transfer data as fast as it can, therefor the ordinary OS would impact the performance of the device, downgrading it's potential speed.
    • What is the processing unit of a switch?
      Is it FPGA/CPLD, some CPU, or NPU ( http://en.wikipedia.org/wiki/Network_Processing_Unit )?
      Which processing units are commonly used?
      What Cisco use?

    Thanks in advance.

    Regards,
    Dor.
     
  2. beenthere

    Retired Moderator

    Apr 20, 2004
    15,815
    282
    There are further links in this link - http://en.wikipedia.org/wiki/Network_switch

    Are you really certain that it takes an operating system to run a switch? They do not seem to need resources to do
    There are several levels of definition included in the term "network switch".

    I suspect that you would have more luck inquiring of Cisco than us about
     
    Last edited: Jul 18, 2009
  3. AlexR

    Well-Known Member

    Jan 16, 2008
    735
    54
    A network switch would be designed by a multi-disciplinary team of people rather than one person. Electronic engineers would design the circuit, software engineers and programmers would do the software, mechanical engineers would design the enclosure and even process engineers would be involved in setting up the production line. The whole lot would be pulled together and oversighted by a team leader who could come from any one of engineering or software disciplines but would have a passing knowledge of all disciplines.

    The switching functions of a switch are carried out in hardware using something like a FPGA/CPLD but managed switches such as the Catalyst series also have a cpu that runs Cisco's multi-tasking operating system for management, configuration and statistic gathering functions. You would have to ask Cisco what brand of CPU they use, I seem to recollect that the the make and type is not marked on the chip.
     
  4. dor

    Thread Starter Active Member

    Feb 20, 2009
    62
    0
    About the software development:

    Ain't the Electronics engineers prepare an API for the software engineers to build the software?
    I assume that the software engineers don't need to know the processor functionality and registers, it's not their part of the job.

    For example, the Electronics engineers build a software API for the Ethernet network communication.
    The software engineers only need to run a function that fetch the data when a communication start:

    Code ( (Unknown Language)):
    1. HANDLER void ethernet_int(void)
    2. {
    3.      ... fetch_data(); ...
    4. }
    About the OS:

    beenthere said:

    and AlexR said:

    So multitasking is not essential for the switching job, but for the additional job(s) of statistics gathering etc.

    In addition, please refer to this: http://en.wikipedia.org/wiki/Computer_engineering
     
    Last edited: Jul 19, 2009
  5. AlexR

    Well-Known Member

    Jan 16, 2008
    735
    54
    So what exactly is your point?

    You seen to be harbouring some sort of an "us against them" attitude between software and hardware people. That's not how the real world works.

    I don't have direct experience of how Cisco do things but generally the Electronics engineers are responsible for stringing chips together (the hardware nut and bolts) and the software people do all the programming. In the best design teams there usually isn't a strong demarcation between hardware and software people and often you will have engineers who are competent programmers and programmers who are comfortable with the hardware side of the project.

    As for the OS, In a switch the OS plays a minor role as the switching function is performed in silicon and the OS only performs a supervisory role. In routers of course the OS does all the work.
     
  6. beenthere

    Retired Moderator

    Apr 20, 2004
    15,815
    282
    Your code fragment is in a high level language like C. At that level, the part that needs to be aware of the
    is the compiler, which is produced by a subset of software engineers, or coders, who are aware of such things. The compiler outputs machine level code to produce the desired result.

    Are you certain that the code that the router runs is compiled out of C? I might suggest that execution speed is important, so assembler would be more likely.

    The code functions are very circumscribed, so the thought of a full-blown OS, requiring an API does not seem too likely. Why should some application have to make a far call into the kernel in order to route a packet to or from a network computer? There are no system functions like keyboard inputs and video outputs to support.

    I think the additional functions you mention, like gathering stats, is a higher level function, such as at the gateway level.
     
    Last edited: Jul 19, 2009
  7. DC_Kid

    Distinguished Member

    Feb 25, 2008
    638
    9
    a OS ???? how about ASICs.
     
  8. AlexR

    Well-Known Member

    Jan 16, 2008
    735
    54
Loading...