#include <ONU_Point_to_Point.h>
Protected Member Functions | |
virtual void | initialize () |
virtual void | handleMessage (cMessage *msg) |
Definition at line 21 of file ONU_Point_to_Point.h.
void ONU_Point_to_Point::handleMessage | ( | cMessage * | msg | ) | [protected, virtual] |
Reimplemented from cSimpleModule.
Definition at line 37 of file ONU_Point_to_Point.cc.
00038 { 00039 // VARIABLES 00040 int type = msg->getKind(); // VARIABLE TYPE PARA IDENTIFICAR LOS MENSAJES DE LA RED 00041 00042 // ESTRUCTURA CONDICIONAL SWITCH QUE NOS DIFERENCIA LOS MENSAJES QUE LLEGUEN A ESTE MODULO 00043 switch(type) 00044 { 00045 case 0: 00046 // LLEGA UN PAQUETE GATE CON IDENTIFICADOR = 0 00047 if(msg->getKind()==0) 00048 { 00049 GATEmsg *gatemsg = check_and_cast<GATEmsg *>(msg); // CHEQUEAMOS EL PAQUETE GATE 00050 00051 // VISUALIZAMOS ALGUNOS CAMPOS DEL PAQUETE GATE 00052 //ev<<" Paquete 'Gate' Recibido."<<endl; 00053 //ev<<" Direccion de destino: "<<gatemsg->getDestAddress()<<endl; 00054 //ev<<" Mi ID es: "<<getParentModule()->getIndex()<<endl; 00055 00056 // COMPARAMOS SI EL IDENTIFICADOR DE LA ONU EN LA QUE NOS ENCONTRAMOS ES IGUAL A LA DIRECCION DE DESTINO QUE CONTIENE EL PAQUETE GATE 00057 if(getParentModule()->getIndex()==gatemsg->getDestAddress()) 00058 { 00059 //ev<<" El paquete Gate recibido es para esta ONU, pasa a la capa MAC."<<endl; 00060 send(gatemsg, "onuptpmacOut"); // SI EL PAQUETE ES PARA ESTA ONU, SE ENVIA HACIA LA CAPA MAC DE LA ONU 00061 } 00062 else 00063 { 00064 //ev<<" Este paquete Gate no es para esta ONU, Eliminando."<<endl; 00065 delete gatemsg; // EN ESTE CASO, COMO EL PAQUETE GATE NO ES PARA ESTA ONU, ELIMINAMOS EL PAQUETE GATE 00066 } 00067 } 00068 break; 00069 00070 case 1: 00071 // LLEGA UN PAQUETE ETHERNET CON IDENTIFICADOR = 1 00072 if(msg->getKind()==1) 00073 { 00074 ETHERNETmsg *ethernetmsg=check_and_cast<ETHERNETmsg*>(msg); // CHEQUEAMOS EL PAQUETE ETHERNET 00075 00076 // VISUALIZAMOS ALGUNOS CAMPOS DEL PAQUETE ETHERNET 00077 //ev<<" Paquete Ethernet Recibido."<<endl; 00078 //ev<<" Direccion de destino: "<<ethernetmsg->getDestAddress()<<endl; 00079 //ev<<" Mi ID es: "<<getParentModule()->getIndex()<<endl; 00080 00081 // COMPARAMOS SI EL IDENTIFICADOR DE LA ONU EN LA QUE NOS ENCONTRAMOS ES IGUAL A LA DIRECCION DE DESTINO QUE CONTIENE EL PAQUETE ETHERNET 00082 if(getParentModule()->getIndex()==ethernetmsg->getDestAddress()) 00083 { 00084 //ev<<" El paquete Ethernet recibido es para esta ONU, pasa a la capa MAC."<<endl; 00085 send(ethernetmsg, "onuptpmacOut"); // SI EL PAQUETE ES PARA ESTA ONU, SE ENVIA HACIA LA CAPA MAC DE LA ONU 00086 } 00087 else 00088 { 00089 //ev<<" Este paquete Ethernet no es para esta ONU, Eliminando."<<endl; 00090 delete ethernetmsg; // EN ESTE CASO, COMO EL PAQUETE ETHERNET NO ES PARA ESTA ONU, ELIMINAMOS EL PAQUETE ETHERNET 00091 } 00092 } 00093 break; 00094 00095 default: 00096 delete msg; 00097 break; 00098 } 00099 }
void ONU_Point_to_Point::initialize | ( | ) | [protected, virtual] |