embox
1/**
2* @file
3* @brief
4*
5* @date 25.10.2011
6* @author Anton Kozlov
7*/
8#include <stdio.h>
9#include <pnet/core/core.h>
10#include <pnet/core/node.h>
11#include <pnet/core/repo.h>
12#include <pnet/pack/pnet_pack.h>
13#include <net/skbuff.h>
14
15static int stamp = 1;
16static void print_pack(struct pnet_pack *pack) {
17struct sk_buff *skb;
18
19printf("%d: ", stamp++);
20switch(pack->dir) {
21case PNET_PACK_DIRECTION_RX:
22printf("RX");
23break;
24case PNET_PACK_DIRECTION_TX:
25printf("TX");
26break;
27};
28skb = (struct sk_buff *) pack->data;
29printf(": %d bytes\n", skb->len);
30}
31
32static int net_info_tx_hnd(struct pnet_pack *pack) {
33print_pack(pack);
34return NET_HND_FORWARD_DEFAULT;
35}
36
37static int net_info_rx_hnd(struct pnet_pack *pack) {
38print_pack(pack);
39return NET_HND_FORWARD_DEFAULT;
40}
41
42PNET_NODE_DEF("info printer", {
43.rx_hnd = net_info_rx_hnd,
44.tx_hnd = net_info_tx_hnd
45});
46