Free (GPLv2) TCP/IP stack developed by TASS Belgium
Dependents: lpc1768-picotcp-demo ZeroMQ_PicoTCP_Publisher_demo TCPSocket_HelloWorld_PicoTCP Pico_TCP_UDP_Test ... more
pico_nat.h
00001 /********************************************************************* 00002 PicoTCP. Copyright (c) 2012-2015 Altran Intelligent Systems. Some rights reserved. 00003 See LICENSE and COPYING for usage. 00004 00005 . 00006 00007 Authors: Kristof Roelants, Simon Maes, Brecht Van Cauwenberghe 00008 *********************************************************************/ 00009 00010 #ifndef INCLUDE_PICO_NAT 00011 #define INCLUDE_PICO_NAT 00012 #include "pico_frame.h" 00013 00014 #define PICO_NAT_PORT_FORWARD_DEL 0 00015 #define PICO_NAT_PORT_FORWARD_ADD 1 00016 00017 #ifdef PICO_SUPPORT_NAT 00018 void pico_ipv4_nat_print_table(void); 00019 int pico_ipv4_nat_find(uint16_t nat_port, struct pico_ip4 *src_addr, uint16_t src_port, uint8_t proto); 00020 int pico_ipv4_port_forward(struct pico_ip4 nat_addr, uint16_t nat_port, struct pico_ip4 src_addr, uint16_t src_port, uint8_t proto, uint8_t flag); 00021 00022 int pico_ipv4_nat_inbound(struct pico_frame *f, struct pico_ip4 *link_addr); 00023 int pico_ipv4_nat_outbound(struct pico_frame *f, struct pico_ip4 *link_addr); 00024 int pico_ipv4_nat_enable(struct pico_ipv4_link *link); 00025 int pico_ipv4_nat_disable(void); 00026 int pico_ipv4_nat_is_enabled(struct pico_ip4 *link_addr); 00027 #else 00028 00029 #define pico_ipv4_nat_print_table() do {} while(0) 00030 static inline int pico_ipv4_nat_inbound(struct pico_frame *f, struct pico_ip4 *link_addr) 00031 { 00032 (void)f; 00033 (void)link_addr; 00034 pico_err = PICO_ERR_EPROTONOSUPPORT; 00035 return -1; 00036 } 00037 00038 static inline int pico_ipv4_nat_outbound(struct pico_frame *f, struct pico_ip4 *link_addr) 00039 { 00040 (void)f; 00041 (void)link_addr; 00042 pico_err = PICO_ERR_EPROTONOSUPPORT; 00043 return -1; 00044 } 00045 00046 static inline int pico_ipv4_nat_enable(struct pico_ipv4_link *link) 00047 { 00048 (void)link; 00049 pico_err = PICO_ERR_EPROTONOSUPPORT; 00050 return -1; 00051 } 00052 00053 static inline int pico_ipv4_nat_disable(void) 00054 { 00055 pico_err = PICO_ERR_EPROTONOSUPPORT; 00056 return -1; 00057 } 00058 00059 static inline int pico_ipv4_nat_is_enabled(struct pico_ip4 *link_addr) 00060 { 00061 (void)link_addr; 00062 pico_err = PICO_ERR_EPROTONOSUPPORT; 00063 return -1; 00064 } 00065 00066 static inline int pico_ipv4_nat_find(uint16_t nat_port, struct pico_ip4 *src_addr, uint16_t src_port, uint8_t proto) 00067 { 00068 (void)nat_port; 00069 (void)src_addr; 00070 (void)src_port; 00071 (void)proto; 00072 pico_err = PICO_ERR_EPROTONOSUPPORT; 00073 return -1; 00074 } 00075 00076 static inline int pico_ipv4_port_forward(struct pico_ip4 nat_addr, uint16_t nat_port, struct pico_ip4 src_addr, uint16_t src_port, uint8_t proto, uint8_t flag) 00077 { 00078 (void)nat_addr; 00079 (void)nat_port; 00080 (void)src_addr; 00081 (void)src_port; 00082 (void)proto; 00083 (void)flag; 00084 pico_err = PICO_ERR_EPROTONOSUPPORT; 00085 return -1; 00086 } 00087 #endif 00088 00089 #endif /* _INCLUDE_PICO_NAT */ 00090
Generated on Tue Jul 12 2022 15:59:22 by 1.7.2