One embodiment of the invention includes a method of managing network
communications in a network device. The network device includes software
components and modules. Some of the components control the interaction
between modules, while other components perform specific functions for
associated modules. A module manager component controls the creation and
destruction of modules as well as their interactions. A communications
manager component manages network communications in the network device.
The network communications is supported by creating a number of modules
that are associated with components that implement different parts of a
network protocol. As a result of the use of the modules, a component need
not know which other component(s) it depends upon, nor need it know which
other component(s) depend upon it. This allows components to be used
together very easily in many different configurations. The modules also
allow the same component to be used by multiple modules.