CDC/ECM driver for mbed, based on USBDevice by mbed-official. Uses PicoTCP to access Ethernet USB device. License: GPLv2
Fork of USB_Ethernet by
modules/pico_nat.h@2:540f6e142d59, 2013-08-03 (annotated)
- Committer:
- daniele
- Date:
- Sat Aug 03 13:16:14 2013 +0000
- Revision:
- 2:540f6e142d59
Moved to single package
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
daniele | 2:540f6e142d59 | 1 | /********************************************************************* |
daniele | 2:540f6e142d59 | 2 | PicoTCP. Copyright (c) 2012 TASS Belgium NV. Some rights reserved. |
daniele | 2:540f6e142d59 | 3 | See LICENSE and COPYING for usage. |
daniele | 2:540f6e142d59 | 4 | |
daniele | 2:540f6e142d59 | 5 | . |
daniele | 2:540f6e142d59 | 6 | |
daniele | 2:540f6e142d59 | 7 | Authors: Kristof Roelants, Simon Maes, Brecht Van Cauwenberghe |
daniele | 2:540f6e142d59 | 8 | *********************************************************************/ |
daniele | 2:540f6e142d59 | 9 | |
daniele | 2:540f6e142d59 | 10 | #ifndef _INCLUDE_PICO_NAT |
daniele | 2:540f6e142d59 | 11 | #define _INCLUDE_PICO_NAT |
daniele | 2:540f6e142d59 | 12 | #include "pico_frame.h" |
daniele | 2:540f6e142d59 | 13 | |
daniele | 2:540f6e142d59 | 14 | #define PICO_DEL_FLAGS_FIN_FORWARD (0x8000) |
daniele | 2:540f6e142d59 | 15 | #define PICO_DEL_FLAGS_FIN_BACKWARD (0x4000) |
daniele | 2:540f6e142d59 | 16 | #define PICO_DEL_FLAGS_SYN (0x2000) |
daniele | 2:540f6e142d59 | 17 | #define PICO_DEL_FLAGS_RST (0x1000) |
daniele | 2:540f6e142d59 | 18 | |
daniele | 2:540f6e142d59 | 19 | #define PICO_IPV4_FORWARD_DEL 0 |
daniele | 2:540f6e142d59 | 20 | #define PICO_IPV4_FORWARD_ADD 1 |
daniele | 2:540f6e142d59 | 21 | |
daniele | 2:540f6e142d59 | 22 | #ifdef PICO_SUPPORT_NAT |
daniele | 2:540f6e142d59 | 23 | void pico_ipv4_nat_print_table(void); |
daniele | 2:540f6e142d59 | 24 | int pico_ipv4_nat_add(struct pico_ip4 pub_addr, uint16_t pub_port, struct pico_ip4 priv_addr, uint16_t priv_port, uint8_t proto); |
daniele | 2:540f6e142d59 | 25 | int pico_ipv4_nat_del(uint16_t pub_port, uint8_t proto); |
daniele | 2:540f6e142d59 | 26 | int pico_ipv4_nat_find(uint16_t pub_port, struct pico_ip4 *priv_addr, uint16_t priv_port, uint8_t proto); |
daniele | 2:540f6e142d59 | 27 | int pico_ipv4_port_forward(struct pico_ip4 pub_addr, uint16_t pub_port, struct pico_ip4 priv_addr, uint16_t priv_port, uint8_t proto, uint8_t persistant); |
daniele | 2:540f6e142d59 | 28 | |
daniele | 2:540f6e142d59 | 29 | int pico_ipv4_nat(struct pico_frame* f, struct pico_ip4 pub_addr); |
daniele | 2:540f6e142d59 | 30 | int pico_ipv4_nat_enable(struct pico_ipv4_link *link); |
daniele | 2:540f6e142d59 | 31 | int pico_ipv4_nat_isenabled_out(struct pico_ipv4_link *link); |
daniele | 2:540f6e142d59 | 32 | int pico_ipv4_nat_isenabled_in(struct pico_frame *f); |
daniele | 2:540f6e142d59 | 33 | |
daniele | 2:540f6e142d59 | 34 | #else |
daniele | 2:540f6e142d59 | 35 | |
daniele | 2:540f6e142d59 | 36 | static inline int pico_ipv4_nat_isenabled_out(struct pico_ipv4_link *link) |
daniele | 2:540f6e142d59 | 37 | { |
daniele | 2:540f6e142d59 | 38 | pico_err = PICO_ERR_EPROTONOSUPPORT; |
daniele | 2:540f6e142d59 | 39 | return -1; |
daniele | 2:540f6e142d59 | 40 | } |
daniele | 2:540f6e142d59 | 41 | static inline int pico_ipv4_nat_isenabled_in(struct pico_frame *f) |
daniele | 2:540f6e142d59 | 42 | { |
daniele | 2:540f6e142d59 | 43 | pico_err = PICO_ERR_EPROTONOSUPPORT; |
daniele | 2:540f6e142d59 | 44 | return -1; |
daniele | 2:540f6e142d59 | 45 | } |
daniele | 2:540f6e142d59 | 46 | |
daniele | 2:540f6e142d59 | 47 | static inline int pico_ipv4_nat(struct pico_frame* f, struct pico_ip4 pub_addr) |
daniele | 2:540f6e142d59 | 48 | { |
daniele | 2:540f6e142d59 | 49 | pico_err = PICO_ERR_EPROTONOSUPPORT; |
daniele | 2:540f6e142d59 | 50 | return -1; |
daniele | 2:540f6e142d59 | 51 | } |
daniele | 2:540f6e142d59 | 52 | |
daniele | 2:540f6e142d59 | 53 | static inline int pico_ipv4_nat_enable(struct pico_ipv4_link *link) |
daniele | 2:540f6e142d59 | 54 | { |
daniele | 2:540f6e142d59 | 55 | pico_err = PICO_ERR_EPROTONOSUPPORT; |
daniele | 2:540f6e142d59 | 56 | return -1; |
daniele | 2:540f6e142d59 | 57 | } |
daniele | 2:540f6e142d59 | 58 | |
daniele | 2:540f6e142d59 | 59 | #define pico_ipv4_nat_print_table() do{}while(0) |
daniele | 2:540f6e142d59 | 60 | |
daniele | 2:540f6e142d59 | 61 | static inline int pico_ipv4_nat_add(struct pico_ip4 pub_addr, uint16_t pub_port, struct pico_ip4 priv_addr, uint16_t priv_port, uint8_t proto) |
daniele | 2:540f6e142d59 | 62 | { |
daniele | 2:540f6e142d59 | 63 | pico_err = PICO_ERR_EPROTONOSUPPORT; |
daniele | 2:540f6e142d59 | 64 | return -1; |
daniele | 2:540f6e142d59 | 65 | } |
daniele | 2:540f6e142d59 | 66 | |
daniele | 2:540f6e142d59 | 67 | static inline int pico_ipv4_nat_del(uint16_t pub_port, uint8_t proto) |
daniele | 2:540f6e142d59 | 68 | { |
daniele | 2:540f6e142d59 | 69 | pico_err = PICO_ERR_EPROTONOSUPPORT; |
daniele | 2:540f6e142d59 | 70 | return -1; |
daniele | 2:540f6e142d59 | 71 | } |
daniele | 2:540f6e142d59 | 72 | |
daniele | 2:540f6e142d59 | 73 | |
daniele | 2:540f6e142d59 | 74 | static inline int pico_ipv4_nat_find(uint16_t pub_port, struct pico_ip4 priv_addr, uint16_t priv_port, uint8_t proto) |
daniele | 2:540f6e142d59 | 75 | { |
daniele | 2:540f6e142d59 | 76 | pico_err = PICO_ERR_EPROTONOSUPPORT; |
daniele | 2:540f6e142d59 | 77 | return -1; |
daniele | 2:540f6e142d59 | 78 | } |
daniele | 2:540f6e142d59 | 79 | |
daniele | 2:540f6e142d59 | 80 | static inline int pico_ipv4_port_forward(struct pico_ip4 pub_addr, uint16_t pub_port, struct pico_ip4 priv_addr, uint16_t priv_port, uint8_t proto, uint8_t persistant) |
daniele | 2:540f6e142d59 | 81 | { |
daniele | 2:540f6e142d59 | 82 | pico_err = PICO_ERR_EPROTONOSUPPORT; |
daniele | 2:540f6e142d59 | 83 | return -1; |
daniele | 2:540f6e142d59 | 84 | } |
daniele | 2:540f6e142d59 | 85 | #endif |
daniele | 2:540f6e142d59 | 86 | |
daniele | 2:540f6e142d59 | 87 | #endif /* _INCLUDE_PICO_NAT */ |
daniele | 2:540f6e142d59 | 88 |