summaryrefslogtreecommitdiff
path: root/net/icmp.c
blob: 038e32a95dad092689ec085c7922add363c3defb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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;
}