[vde_switch] created vde_switch subdir and moved vde_switch inside it
[vde.git] / vde-2 / vde_l3 / vde_l3.h
blob2cfe5bb16cb1e5f3c92bc247e6970564bbb7c3c5
1 #ifndef _VDE_L3_H_
2 #define _VDE_L3_H__
3 /* pfifo.c */
4 int pfifo_enqueue(struct vde_buff *vdb, struct vde_iface *vif);
5 int pfifo_dequeue(struct vde_iface *vif);
6 int pfifo_init(struct vde_iface *vif, char *args);
7 char *pfifo_tc_stats(struct vde_iface *vif);
8 /* bfifo.c */
9 int bfifo_enqueue(struct vde_buff *vdb, struct vde_iface *vif);
10 int bfifo_dequeue(struct vde_iface *vif);
11 int bfifo_init(struct vde_iface *vif, char *args);
12 char *bfifo_tc_stats(struct vde_iface *vif);
13 /* tbf.c */
14 struct timeval add_t(struct timeval x, struct timeval y);
15 int tbf_enqueue(struct vde_buff *vdb, struct vde_iface *vif);
16 int tbf_dequeue(struct vde_iface *vif);
17 int tbf_init(struct vde_iface *vif, char *args);
18 char *tbf_tc_stats(struct vde_iface *vif);
19 /* vde_l3.c */
20 int ufifo_enqueue(struct vde_buff *vdb, struct vde_iface *vif);
21 int ufifo_dequeue(struct vde_iface *vif);
22 int ufifo_init(struct vde_iface *vif, char *args);
23 char *nostats(struct vde_iface *vif);
24 void *tcpriv(struct vde_iface *vi);
25 struct routing_policy *getpolicy(char *name);
26 void set_interface_policy(struct vde_iface *vif, struct routing_policy *rp);
27 uint8_t *ip2mac(uint32_t ip);
28 void usage(char *p);
29 struct vde_buff *buff_clone(struct vde_buff *orig);
30 int ip_output_ready(struct vde_buff *vdb);
31 int neightbor_send(struct vde_iface *to, struct vde_buff *vdb);
32 int gateway_send(struct vde_buff *vdb, uint32_t gw);
33 size_t vde_router_receive(struct vde_iface i);
34 int is_arp_pending(struct vde_iface *of, uint8_t *mac);
35 size_t arp_query(struct vde_iface *oif, uint32_t tgt);
36 size_t arp_reply(struct vde_iface *oif, struct vde_buff *vdb);
37 struct vde_iface *get_iface_by_ipaddr(uint32_t addr);
38 struct vde_iface *is_neightbor(uint32_t addr);
39 uint32_t get_gateway(uint32_t addr);
40 int parse_arp(struct vde_buff *vdb);
41 int ip_send(struct vde_buff *vdb);
42 int ip_forward(struct vde_buff *vdb);
43 int parse_ip(struct vde_buff *vdb);
44 uint16_t checksum(uint8_t *buf, int len);
45 uint16_t ip_checksum(struct iphdr *iph);
46 int ip_output(struct vde_buff *vdb, uint32_t dst, uint8_t protocol);
47 int parse_icmp(struct vde_buff *vdb);
48 uint32_t ascii2ip(char *c);
49 uint32_t valid_nm(uint32_t nm);
50 uint32_t ascii2nm(char *c);
51 int ip_input(struct vde_buff *vdb);
52 #endif /* _VDE_L3_H__ */