summaryrefslogtreecommitdiffstats
path: root/net/net.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2010-12-18 14:37:39 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2010-12-20 09:57:35 +0100
commit32558d1ae5ae15a8e417e9640daf0b7e2e01964f (patch)
treec9cfde824ac862292ff44aaf9fd830d0014c11fe /net/net.c
parent91d781f51df5d4de23d09a6777bfc968a0a7ca68 (diff)
downloadbarebox-32558d1ae5ae15a8e417e9640daf0b7e2e01964f.tar.gz
barebox-32558d1ae5ae15a8e417e9640daf0b7e2e01964f.tar.xz
LED: Add LED trigger support
This patch allows to associate LEDs with certain triggers, such as heartbeat or network activity. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'net/net.c')
-rw-r--r--net/net.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/net/net.c b/net/net.c
index a613d1da74..9b4ab8904c 100644
--- a/net/net.c
+++ b/net/net.c
@@ -628,19 +628,29 @@ int net_receive(unsigned char *pkt, int len)
{
struct ethernet *et = (struct ethernet *)pkt;
int et_protlen = ntohs(et->et_protlen);
+ int ret;
- if (len < ETHER_HDR_SIZE)
- return 0;
+ led_trigger_network(LED_TRIGGER_NET_RX);
+
+ if (len < ETHER_HDR_SIZE) {
+ ret = 0;
+ goto out;
+ }
switch (et_protlen) {
case PROT_ARP:
- return net_handle_arp(pkt, len);
+ ret = net_handle_arp(pkt, len);
+ break;
case PROT_IP:
- return net_handle_ip(pkt, len);
+ ret = net_handle_ip(pkt, len);
+ break;
default:
debug("%s: got unknown protocol type: %d\n", __func__, et_protlen);
- return 1;
+ ret = 1;
+ break;
}
+out:
+ return ret;
}
static int net_init(void)