embox

Форк
0
/
linux_layer.c 
36 строк · 679.0 Байт
1
/**
2
 * @file
3
 *
4
 * @brief used with linux network stack, optionally routes packs to pnet
5
 *
6
 * @date 21.10.2011
7
 * @author Anton Kozlov
8
 */
9

10
#include <arpa/inet.h>
11
#include <pnet/core/prior_path.h>
12
#include <kernel/thread.h>
13
#include <net/skbuff.h>
14
#include <net/l0/net_rx.h>
15

16
#include <pnet/core/core.h>
17

18
#include <embox/unit.h>
19
#include <pnet/core/repo.h>
20
#include <pnet/pack/pnet_pack.h>
21

22
static int pnet_linux_rx(struct pnet_pack *pack) {
23
	struct sk_buff *skb;
24

25
	skb = (struct sk_buff *) pack->data;
26
	skb->nh.raw = skb->mac.raw + ETH_HEADER_SIZE;
27

28
	net_rx(skb);
29

30
	return NET_HND_FORWARD_DEFAULT;
31
}
32

33
PNET_NODE_DEF("linux gate", {
34
	.rx_hnd = pnet_linux_rx,
35
	.tx_hnd = NULL
36
});
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.