00001
00002
00003
00004
00005 #ifndef _ETHERCTRL_M_H_
00006 #define _ETHERCTRL_M_H_
00007
00008 #include <omnetpp.h>
00009
00010
00011 #include "Ethernet.h"
00012 #include "MACAddress.h"
00013 #include "cmessage30.h"
00014
00015
00016
00017 enum EtherMessageKind {
00018 JAM_SIGNAL = 2000,
00019 ETH_FRAME = 2001,
00020 ETH_PAUSE = 2002,
00021 ETHCTRL_DATA = 2003,
00022 ETHCTRL_REGISTER_DSAP = 2004,
00023 ETHCTRL_DEREGISTER_DSAP = 2005,
00024 ETHCTRL_SENDPAUSE = 2006,
00025 };
00026
00027 enum EtherType {
00028 ETHERTYPE_IP = 0x0800,
00029 ETHERTYPE_ARP = 0x0806,
00030 ETHERTYPE_RARP = 0x8035,
00031 };
00032
00033 enum SAPCode {
00034 SAP_IBM_SNA = 0x04,
00035 SAP_IP = 0x06,
00036 SAP_3COM = 0x80,
00037 SAP_SNAP = 0xAA,
00038 SAP_BANYAN = 0xBC,
00039 SAP_NOVELL_IPX = 0xE0,
00040 SAP_LAN_MANAGER = 0xF4,
00041 SAP_CLNS = 0xFE,
00042 };
00043
00044 class EtherCtrl : public cPolymorphic
00045 {
00046 protected:
00047 MACAddress src_var;
00048 MACAddress dest_var;
00049 int etherType_var;
00050 int ssap_var;
00051 int dsap_var;
00052 int pauseUnits_var;
00053 public:
00054 EtherCtrl();
00055 EtherCtrl(const EtherCtrl& other);
00056 virtual ~EtherCtrl();
00057 EtherCtrl& operator=(const EtherCtrl& other);
00058
00059
00060 virtual MACAddress& getSrc();
00061 virtual void setSrc(const MACAddress& src_var);
00062 virtual MACAddress& getDest();
00063 virtual void setDest(const MACAddress& dest_var);
00064 virtual int getEtherType() const;
00065 virtual void setEtherType(int etherType_var);
00066 virtual int getSsap() const;
00067 virtual void setSsap(int ssap_var);
00068 virtual int getDsap() const;
00069 virtual void setDsap(int dsap_var);
00070 virtual int getPauseUnits() const;
00071 virtual void setPauseUnits(int pauseUnits_var);
00072 };
00073
00074 #endif // _ETHERCTRL_M_H_