Add link MTU size to network device structure.
This commit is contained in:
parent
d6680d8524
commit
ca7486d7f3
@ -93,6 +93,26 @@
|
||||
*/
|
||||
|
||||
# define NET_LL_HDRLEN(d) ((d)->d_llhdrlen)
|
||||
# define NET_LL_MTU(d) ((d)->d_llmtu)
|
||||
|
||||
# ifdef CONFIG_NET_ETHERNET
|
||||
# define _MIN_ETH_MTU CONFIG_NET_ETH_MTU
|
||||
# define _MAX_ETH_MTU CONFIG_NET_ETH_MTU
|
||||
# else
|
||||
# define _MIN_ETH_MTU UINT16_MAX
|
||||
# define _MAX_ETH_MTU 0
|
||||
# endif
|
||||
|
||||
# ifdef CONFIG_NET_SLIP
|
||||
# define _MIN_SLIP_MTU MIN(_MIN_ETH_MTU,CONFIG_NET_SLIP_MTU)
|
||||
# define _MAX_SLIP_MTU MAX(_MAX_ETH_MTU,CONFIG_NET_SLIP_MTU)
|
||||
# else
|
||||
# define _MIN_SLIP_MTU _MIN_ETH_MTU
|
||||
# define _MAX_SLIP_MTU _MAX_ETH_MTU
|
||||
# endif
|
||||
|
||||
# define MIN_NET_LL_MTU _MIN_SLIP_MTU
|
||||
# define MAX_NET_LL_MTU _MAX_SLIP_MTU
|
||||
|
||||
#elif defined(CONFIG_NET_SLIP)
|
||||
/* There is no link layer header with SLIP */
|
||||
@ -101,11 +121,17 @@
|
||||
# error SLIP is not available for IPv6
|
||||
# endif
|
||||
# define NET_LL_HDRLEN(d) 0
|
||||
# define NET_LL_MTU(d) CONFIG_NET_SLIP_MTU
|
||||
# define MIN_NET_LL_MTU CONFIG_NET_SLIP_MTU
|
||||
# define MAX_NET_LL_MTU CONFIG_NET_SLIP_MTU
|
||||
|
||||
#else /* if defined(CONFIG_NET_ETHERNET) */
|
||||
/* Assume standard Ethernet link layer header */
|
||||
|
||||
# define NET_LL_HDRLEN(d) 14
|
||||
# define NET_LL_MTU(d) CONFIG_NET_ETH_MTU
|
||||
# define MIN_NET_LL_MTU CONFIG_NET_ETH_MTU
|
||||
# define MAX_NET_LL_MTU CONFIG_NET_ETH_MTU
|
||||
|
||||
#endif /* MULTILINK or SLIP or ETHERNET */
|
||||
|
||||
@ -165,18 +191,18 @@
|
||||
* than CONFIG_NET_BUFSIZE - NET_LL_HDRLEN(dev) - IPUDP_HDRLEN.
|
||||
*/
|
||||
|
||||
#define UDP_MSS(d) (CONFIG_NET_BUFSIZE - NET_LL_HDRLEN(d) - IPUDP_HDRLEN)
|
||||
#define UDP_MSS(d) (CONFIG_NET_ETH_MTU - NET_LL_HDRLEN(d) - IPUDP_HDRLEN)
|
||||
|
||||
#ifdef CONFIG_NET_ETHERNET
|
||||
# define MIN_UDP_MSS (CONFIG_NET_BUFSIZE - ETH_HDRLEN - IPUDP_HDRLEN)
|
||||
# define MIN_UDP_MSS (CONFIG_NET_ETH_MTU - ETH_HDRLEN - IPUDP_HDRLEN)
|
||||
#else /* if defined(CONFIG_NET_SLIP) */
|
||||
# define MIN_UDP_MSS (CONFIG_NET_BUFSIZE - IPUDP_HDRLEN)
|
||||
# define MIN_UDP_MSS (CONFIG_NET_ETH_MTU - IPUDP_HDRLEN)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_NET_SLIP
|
||||
# define MAX_UDP_MSS (CONFIG_NET_BUFSIZE - IPUDP_HDRLEN)
|
||||
# define MAX_UDP_MSS (CONFIG_NET_ETH_MTU - IPUDP_HDRLEN)
|
||||
#else /* if defined(CONFIG_NET_ETHERNET) */
|
||||
# define MAX_UDP_MSS (CONFIG_NET_BUFSIZE - ETH_HDRLEN - IPUDP_HDRLEN)
|
||||
# define MAX_UDP_MSS (CONFIG_NET_ETH_MTU - ETH_HDRLEN - IPUDP_HDRLEN)
|
||||
#endif
|
||||
|
||||
/* TCP configuration options */
|
||||
@ -239,7 +265,7 @@
|
||||
#define TCP_MAXSYNRTX 5
|
||||
|
||||
/* The TCP maximum segment size. This is should not be set to more
|
||||
* than CONFIG_NET_BUFSIZE - NET_LL_HDRLEN(dev) - IPTCP_HDRLEN.
|
||||
* than CONFIG_NET_ETH_MTU - NET_LL_HDRLEN(dev) - IPTCP_HDRLEN.
|
||||
*
|
||||
* In the case where there are multiple network devices with different
|
||||
* link layer protocols (CONFIG_NET_MULTILINK), each network device
|
||||
@ -247,18 +273,18 @@
|
||||
* the minimum MSS for that case.
|
||||
*/
|
||||
|
||||
#define TCP_MSS(d) (CONFIG_NET_BUFSIZE - NET_LL_HDRLEN(d) - IPTCP_HDRLEN)
|
||||
#define TCP_MSS(d) (CONFIG_NET_ETH_MTU - NET_LL_HDRLEN(d) - IPTCP_HDRLEN)
|
||||
|
||||
#ifdef CONFIG_NET_ETHERNET
|
||||
# define MIN_TCP_MSS (CONFIG_NET_BUFSIZE - ETH_HDRLEN - IPTCP_HDRLEN)
|
||||
# define MIN_TCP_MSS (CONFIG_NET_ETH_MTU - ETH_HDRLEN - IPTCP_HDRLEN)
|
||||
#else /* if defined(CONFIG_NET_SLIP) */
|
||||
# define MIN_TCP_MSS (CONFIG_NET_BUFSIZE - IPTCP_HDRLEN)
|
||||
# define MIN_TCP_MSS (CONFIG_NET_ETH_MTU - IPTCP_HDRLEN)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_NET_SLIP
|
||||
# define MAX_TCP_MSS (CONFIG_NET_BUFSIZE - IPTCP_HDRLEN)
|
||||
# define MAX_TCP_MSS (CONFIG_NET_ETH_MTU - IPTCP_HDRLEN)
|
||||
#else /* if defined(CONFIG_NET_ETHERNET) */
|
||||
# define MAX_TCP_MSS (CONFIG_NET_BUFSIZE - ETH_HDRLEN - IPTCP_HDRLEN)
|
||||
# define MAX_TCP_MSS (CONFIG_NET_ETH_MTU - ETH_HDRLEN - IPTCP_HDRLEN)
|
||||
#endif
|
||||
|
||||
/* The size of the advertised receiver's window.
|
||||
|
@ -101,6 +101,7 @@ struct net_driver_s
|
||||
|
||||
uint8_t d_lltype; /* See enum net_datalink_e */
|
||||
uint8_t d_llhdrlen; /* Link layer header size */
|
||||
uint16_t d_llmtu; /* Maximum packet size */
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_NET_ETHERNET
|
||||
|
@ -83,7 +83,7 @@ static int g_next_devnum = 0;
|
||||
* Public Data
|
||||
****************************************************************************/
|
||||
|
||||
/* List of registered ethernet device drivers */
|
||||
/* List of registered Ethernet device drivers */
|
||||
|
||||
struct net_driver_s *g_netdevices = NULL;
|
||||
|
||||
@ -134,6 +134,7 @@ int netdev_register(FAR struct net_driver_s *dev, enum net_lltype_e lltype)
|
||||
#ifdef CONFIG_NET_ETHERNET
|
||||
case NET_LL_ETHERNET: /* Ethernet */
|
||||
dev->d_llhdrlen = ETH_HDRLEN;
|
||||
dev->d_llmtu = CONFIG_NET_ETH_MTU;
|
||||
devfmt = NETDEV_ETH_FORMAT;
|
||||
break;
|
||||
#endif
|
||||
@ -141,6 +142,7 @@ int netdev_register(FAR struct net_driver_s *dev, enum net_lltype_e lltype)
|
||||
#ifdef CONFIG_NET_SLIP
|
||||
case NET_LL_SLIP: /* Serial Line Internet Protocol (SLIP) */
|
||||
dev->d_llhdrlen = 0;
|
||||
dev->d_llmtu = CONFIG_NET_SLIP_MTU;
|
||||
devfmt = NETDEV_SLIP_FORMAT;
|
||||
break;
|
||||
#endif
|
||||
@ -148,6 +150,7 @@ int netdev_register(FAR struct net_driver_s *dev, enum net_lltype_e lltype)
|
||||
#if 0 /* REVISIT: Not yet supported */
|
||||
case NET_LL_PPP: /* Point-to-Point Protocol (PPP) */
|
||||
dev->d_llhdrlen = 0;
|
||||
dev->d_llmtu = CONFIG_NET_PPP_MTU;
|
||||
devfmt = NETDEV_PPP_FORMAT;
|
||||
break;
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user