#include "inet.h" #include "icmp.h" #include "log.h" bool icmp_incoming(struct netdev *dev,struct icmp_v4 *data, uint32_t count_bytes) { klog ("icmp type=%d",data->type); klog ("icmp code=%d",data->code); klog ("icmp csum=0x%04x",ntohs(data->csum)); data->csum=0; klog("expected checksum = 0x%04X",checksum(data,count_bytes)); if(data->type==ICMP_ECHO_REQUEST) // echo request { struct icmp_v4_echo *echo=data->data; klog ("received echo request id=%d, seq=%d, data=%d ",ntohs(echo->id),ntohs(echo->seq),echo->data); // icmp_reply(); /// TODO watchout that this is the memory managed by the network card we are dealing with!!. fix this later. } return true; }