Contiki 2.5
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
platform
netsim
net
ethernode-uip.c
1
/*
2
* Copyright (c) 2004, Swedish Institute of Computer Science.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 3. Neither the name of the Institute nor the names of its contributors
14
* may be used to endorse or promote products derived from this software
15
* without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
21
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*
29
* This file is part of the Contiki operating system.
30
*
31
* Author: Adam Dunkels <adam@sics.se>
32
*
33
* $Id: ethernode-uip.c,v 1.6 2008/01/04 21:59:13 oliverschmidt Exp $
34
*/
35
36
#include "contiki.h"
37
38
#include "ethernode.h"
39
40
#include "
net/uip-fw.h
"
41
#include "
net/hc.h
"
42
#ifdef __CYGWIN__
43
#include "net/wpcap.h"
44
#else
/* __CYGWIN__ */
45
#include "net/tapdev.h"
46
#endif
/* __CYGWIN__ */
47
48
#include "node-id.h"
49
50
PROCESS
(ethernode_uip_process,
"Ethernode driver"
);
51
52
enum
{ NULLEVENT };
53
/*---------------------------------------------------------------------------*/
54
u8_t
55
ethernode_uip_send(
void
)
56
{
57
/* printf("%d: ethernode_uip_send\n", node_id);*/
58
uip_len
=
hc_compress
(&uip_buf[
UIP_LLH_LEN
],
uip_len
);
59
60
return
ethernode_send
();
61
}
62
/*---------------------------------------------------------------------------*/
63
PROCESS_THREAD
(ethernode_uip_process, ev, data)
64
{
65
PROCESS_BEGIN
();
66
67
while
(1) {
68
process_poll
(ðernode_uip_process);
69
PROCESS_WAIT_EVENT
();
70
71
/* Poll Ethernet device to see if there is a frame avaliable. */
72
uip_len
= ethernode_read(uip_buf,
UIP_BUFSIZE
);
73
74
if
(
uip_len
> 0) {
75
/* printf("%d: new packet len %d\n", node_id, uip_len);*/
76
77
/* if((random_rand() % drop) <= drop / 2) {
78
printf("Bropp\n");
79
} else*/
{
80
81
uip_len
=
hc_inflate
(&uip_buf[
UIP_LLH_LEN
],
uip_len
);
82
83
#ifdef __CYGWIN__
84
wpcap_send();
85
#else
/* __CYGWIN__ */
86
tapdev_send();
87
#endif
/* __CYGWIN__ */
88
/* if(uip_fw_forward() == UIP_FW_LOCAL)*/
{
89
/* A frame was avaliable (and is now read into the uip_buf), so
90
we process it. */
91
tcpip_input
();
92
}
93
}
94
}
95
}
96
PROCESS_END
();
97
98
}
99
/*---------------------------------------------------------------------------*/
Generated on Fri Aug 30 2013 12:34:11 for Contiki 2.5 by
1.8.3.1