/*
    Copyright 2000 (c) by Boris Lutz,
    Swiss Federal Institute of Technology,
    Computer Engineering and Networks Laboratory.
 
    TOPSY -- A Teachable Operating System.
             Implementation of a tiny and simple
             micro kernel for teaching purposes.
 
    For further information, please visit http://www.tik.ee.ethz.ch/~topsy
 
    This software is provided under the terms of the GNU General Public 
    Licence. A full copy of the GNU GPL is provided in the file COPYING 
    found in the development root of Topsy.
*/
/*
	
    File:                  $Source: /home/ruf/cvs_Topsy/cvs/Topsy/Net/NetModuleRegistry.c,v $
    Affiliation:           ETH Zuerich, TIK
    Version:               $Revision: 2922 $
    Last Date of Change:   $Date: 2007-03-19 17:48:52 +0100 (Mon, 19 Mär 2007) $  by: $Author: baderma $
 
*/


#include "NetModulesDef.h"
#include "NetModulesNew.h"
#include "NullModule.h"
#include "NetEthernetModule.h"
#include "NetIPModule.h"
#include "NetIP6Module.h"
#include "NetUDPModule.h"
#include "NetICMPModule.h"
#include "NetICMP6Module.h"
#include "NetARPModules.h"

// this registry contains all standard module (e.g. IP, UDP, ...) but no
// distributors or loader and other internal modules
NetModuleRegDesc netModuleRegistryTable[] = {
      {	/* this is a dummy entry, will newer be used */
        NULL, NULL,
        NULL_MODULE_TYPE,
        0,
        netNullModuleMain,
        netNullModuleConfig,
        netNullModuleInit,
        "Null Module"
      },
      {
        NULL, NULL,
        ETHERNET_MODULE_DOWN_TYPE,
        0,
        netEthernetModuleDownMain,
        netEthernetModuleDownConfig,
        netEthernetModuleDownInit,
        "Ethernet Down"
      },
      {
        NULL, NULL,
        ETHERNET_MODULE_UP_TYPE,
        0,
        netEthernetModuleUpMain,
        netEthernetModuleUpConfig,
        netEthernetModuleUpInit,
        "Ethernet Up"
      },
      {
        NULL, NULL,
        IPv4_MODULE_DOWN_TYPE,
        0,
        netIPModuleDownMain,
        netIPModuleDownConfig,
        netIPModuleDownInit,
        "IP Down"
      },
      {
        NULL, NULL,
        IPv4_MODULE_UP_TYPE,
        0,
        netIPModuleUpMain,
        netIPModuleUpConfig,
        netIPModuleUpInit,
        "IP Up"
      },
#if 0
      {
        NULL, NULL,
        IPv6_MODULE_DOWN_TYPE,
        0,
        netIP6ModuleDownMain,
        netIP6ModuleDownConfig,
        netIP6ModuleDownInit,
        "IPv6 Down"
      },
      {
        NULL, NULL,
        IPv6_MODULE_UP_TYPE,
        0,
        netIP6ModuleUpMain,
        netIP6ModuleUpConfig,
        netIP6ModuleUpInit,
        "IPv6 Up"
      },
      {
        NULL, NULL,
        IP_FORWARD_MODULE_TYPE,
        0,
        netIPForwardMain,
        netIPForwardConfig,
        netIPForwardInit,
        "IP Forward"
      },
#endif
      {
        NULL, NULL,
        IP_FORWARD_PROTO_TYPE,
        0,
        netIPDummyRouteMain,
        netIPDummyRouteConfig,
        netIPDummyRouteInit,
        "Forward NULL"
      },
      {
        NULL, NULL,
        UDPPCB_MODULE_DOWN_TYPE,
        0,
        netUDPPCBDownMain,
        netUDPPCBDownConfig,
        netUDPPCBDownInit,
        "UDP PCB Down"
      },
      {
        NULL, NULL,
        UDP_MODULE_DOWN_TYPE,
        0,
        netUDPModuleDownMain,
        netUDPModuleDownConfig,
        netUDPModuleDownInit,
        "UDP Down"
      },
      {
        NULL, NULL,
        UDP_MODULE_UP_TYPE,
        0,
        netUDPModuleUpMain,
        netUDPModuleUpConfig,
        netUDPModuleUpInit,
        "UDP Up"
      },
      {
        NULL, NULL,
        UDPPCB_MODULE_UP_TYPE,
        0,
        netUDPPCBUpMain,
        netUDPPCBUpConfig,
        netUDPPCBUpInit,
        "UDP PCB Up"
      },
      {
        NULL, NULL,
        ICMP_MODULE_DOWN_TYPE,
        0,
        netICMPModuleDownMain,
        netICMPModuleDownConfig,
        netICMPModuleDownInit,
        "ICMP Down"
      },
      {
        NULL, NULL,
        ICMP_MODULE_UP_TYPE,
        0,
        netICMPModuleUpMain,
        netICMPModuleUpConfig,
        netICMPModuleUpInit,
        "ICMP Up"
      },
#if 0
      {
        NULL, NULL,
        ICMP6_MODULE_DOWN_TYPE,
        0,
        netICMP6ModuleDownMain,
        netICMP6ModuleDownConfig,
        netICMP6ModuleDownInit,
        "ICMP6 Down"
      },
      {
        NULL, NULL,
        ICMP6_MODULE_UP_TYPE,
        0,
        netICMP6ModuleUpMain,
        netICMP6ModuleUpConfig,
        netICMP6ModuleUpInit,
        "ICMP6 Up"
      },
#endif
      {
        NULL, NULL,
        ARP_MODULE_RECV_TYPE,
        0,
        netARPRecvMain,
        netARPRecvConfig,
        netARPRecvInit,
        "ARP Recieve"
      },
      {
        NULL, NULL,
        ARP_MODULE_SEND_TYPE,
        0,
        netARPSendMain,
        netARPSendConfig,
        netARPSendInit,
        "ARP Send"
      },
      {
        NULL, NULL,
        ETH_ARP_MODULE_TYPE,
        0,
        netARPLookupMain,
        netARPLookupConfig,
        netARPLookupInit,
        "ARP Lookup"
      },
      {
        NULL, NULL,
        0,
        0,
        NULL,
        NULL,
        NULL,
        ""
      }
    };
