REM:
1. LWIP 最大网卡限制256修改为U32
This commit is contained in:
huangxin 2022-06-15 16:47:41 +08:00
parent f601fe0ce1
commit 8b71542787
7 changed files with 36 additions and 37 deletions

View File

@ -146,7 +146,7 @@
* MEMP_NUM_SYS_TIMEOUT: the number of simulateously active timeouts. * MEMP_NUM_SYS_TIMEOUT: the number of simulateously active timeouts.
* (requires NO_SYS==0) * (requires NO_SYS==0)
*/ */
#define MEMP_NUM_SYS_TIMEOUT 8 #define MEMP_NUM_SYS_TIMEOUT 320
/** /**
* MEMP_NUM_NETBUF: the number of struct netbufs. * MEMP_NUM_NETBUF: the number of struct netbufs.
@ -177,7 +177,7 @@
/** /**
* PBUF_POOL_SIZE: the number of buffers in the pbuf pool. * PBUF_POOL_SIZE: the number of buffers in the pbuf pool.
*/ */
#define PBUF_POOL_SIZE 8 #define PBUF_POOL_SIZE 320
/* /*
--------------------------------- ---------------------------------

View File

@ -390,14 +390,14 @@ netif_add(struct netif *netif,
struct netif *netif2; struct netif *netif2;
int num_netifs; int num_netifs;
do { do {
if (netif->num == 255) { if (netif->num == USHRT_MAX) {
netif->num = 0; netif->num = 0;
} }
num_netifs = 0; num_netifs = 0;
for (netif2 = netif_list; netif2 != NULL; netif2 = netif2->next) { for (netif2 = netif_list; netif2 != NULL; netif2 = netif2->next) {
LWIP_ASSERT("netif already added", netif2 != netif); LWIP_ASSERT("netif already added", netif2 != netif);
num_netifs++; num_netifs++;
LWIP_ASSERT("too many netifs, max. supported number is 255", num_netifs <= 255); LWIP_ASSERT("too many netifs, max. supported number is 255", num_netifs <= (USHRT_MAX));
if (netif2->num == netif->num) { if (netif2->num == netif->num) {
netif->num++; netif->num++;
break; break;
@ -405,10 +405,10 @@ netif_add(struct netif *netif,
} }
} while (netif2 != NULL); } while (netif2 != NULL);
} }
if (netif->num == 254) { if (netif->num == USHRT_MAX - 1) {
netif_num = 0; netif_num = 0;
} else { } else {
netif_num = (u8_t)(netif->num + 1); netif_num = (u16_t)(netif->num + 1);
} }
/* add this netif to the list */ /* add this netif to the list */
@ -1651,8 +1651,7 @@ netif_null_output_ip4(struct netif *netif, struct pbuf *p, const ip4_addr_t *ipa
* *
* @param name the name of the netif * @param name the name of the netif
*/ */
u8_t u16_t netif_name_to_index(const char *name)
netif_name_to_index(const char *name)
{ {
struct netif *netif = netif_find(name); struct netif *netif = netif_find(name);
if (netif != NULL) { if (netif != NULL) {
@ -1691,7 +1690,7 @@ netif_index_to_name(u8_t idx, char *name)
* @param idx index of netif to find * @param idx index of netif to find
*/ */
struct netif * struct netif *
netif_get_by_index(u8_t idx) netif_get_by_index(u16_t idx)
{ {
struct netif *netif; struct netif *netif;

View File

@ -78,7 +78,7 @@ extern "C" {
ip_addr_t local_ip; \ ip_addr_t local_ip; \
ip_addr_t remote_ip; \ ip_addr_t remote_ip; \
/* Bound netif index */ \ /* Bound netif index */ \
u8_t netif_idx; \ u16_t netif_idx; \
/* Socket options */ \ /* Socket options */ \
u8_t so_options; \ u8_t so_options; \
/* Type Of Service */ \ /* Type Of Service */ \

View File

@ -347,7 +347,7 @@ struct netif {
char name[2]; char name[2];
/** number of this interface. Used for @ref if_api and @ref netifapi_netif, /** number of this interface. Used for @ref if_api and @ref netifapi_netif,
* as well as for IPv6 zones */ * as well as for IPv6 zones */
u8_t num; u16_t num;
#if LWIP_IPV6_AUTOCONFIG #if LWIP_IPV6_AUTOCONFIG
/** is this netif enabled for IPv6 autoconfiguration */ /** is this netif enabled for IPv6 autoconfiguration */
u8_t ip6_autoconfig_enabled; u8_t ip6_autoconfig_enabled;
@ -552,12 +552,12 @@ err_t netif_add_ip6_address(struct netif *netif, const ip6_addr_t *ip6addr, s8_t
#define NETIF_RESET_HINTS(netif) #define NETIF_RESET_HINTS(netif)
#endif /* LWIP_NETIF_USE_HINTS */ #endif /* LWIP_NETIF_USE_HINTS */
u8_t netif_name_to_index(const char *name); u16_t netif_name_to_index(const char *name);
char * netif_index_to_name(u8_t idx, char *name); char * netif_index_to_name(u8_t idx, char *name);
struct netif* netif_get_by_index(u8_t idx); struct netif* netif_get_by_index(u16_t idx);
/* Interface indexes always start at 1 per RFC 3493, section 4, num starts at 0 (internal index is 0..254)*/ /* Interface indexes always start at 1 per RFC 3493, section 4, num starts at 0 (internal index is 0..65535)*/
#define netif_get_index(netif) ((u8_t)((netif)->num + 1)) #define netif_get_index(netif) ((u16_t)((netif)->num + 1))
#define NETIF_NO_INDEX (0) #define NETIF_NO_INDEX (0)
/** /**

View File

@ -218,7 +218,7 @@ struct pbuf {
LWIP_PBUF_REF_T ref; LWIP_PBUF_REF_T ref;
/** For incoming packets, this contains the input netif's index */ /** For incoming packets, this contains the input netif's index */
u8_t if_idx; u16_t if_idx;
/** In case the user needs to store data custom data on a pbuf */ /** In case the user needs to store data custom data on a pbuf */
LWIP_PBUF_CUSTOM_DATA LWIP_PBUF_CUSTOM_DATA

View File

@ -277,7 +277,7 @@ err_t ppp_connect(ppp_pcb *pcb, u16_t holdoff) {
return ERR_ALREADY; return ERR_ALREADY;
} }
PPPDEBUG(LOG_DEBUG, ("ppp_connect[%d]: holdoff=%d\n", pcb->netif->num, holdoff)); PPPDEBUG(LOG_DEBUG, ("ppp_connect[%u]: holdoff=%d\n", pcb->netif->num, holdoff));
magic_randomize(); magic_randomize();
@ -369,7 +369,7 @@ ppp_close(ppp_pcb *pcb, u8_t nocarrier)
* take a little longer time, but is a safer choice from FSM point of view. * take a little longer time, but is a safer choice from FSM point of view.
*/ */
if (nocarrier && pcb->phase == PPP_PHASE_RUNNING) { if (nocarrier && pcb->phase == PPP_PHASE_RUNNING) {
PPPDEBUG(LOG_DEBUG, ("ppp_close[%d]: carrier lost -> lcp_lowerdown\n", pcb->netif->num)); PPPDEBUG(LOG_DEBUG, ("ppp_close[%u]: carrier lost -> lcp_lowerdown\n", pcb->netif->num));
lcp_lowerdown(pcb); lcp_lowerdown(pcb);
/* forced link termination, this will force link protocol to disconnect. */ /* forced link termination, this will force link protocol to disconnect. */
link_terminated(pcb); link_terminated(pcb);
@ -377,7 +377,7 @@ ppp_close(ppp_pcb *pcb, u8_t nocarrier)
} }
/* Disconnect */ /* Disconnect */
PPPDEBUG(LOG_DEBUG, ("ppp_close[%d]: kill_link -> lcp_close\n", pcb->netif->num)); PPPDEBUG(LOG_DEBUG, ("ppp_close[%u]: kill_link -> lcp_close\n", pcb->netif->num));
/* LCP soft close request. */ /* LCP soft close request. */
lcp_close(pcb, "User request"); lcp_close(pcb, "User request");
return ERR_OK; return ERR_OK;
@ -400,7 +400,7 @@ err_t ppp_free(ppp_pcb *pcb) {
return ERR_CONN; return ERR_CONN;
} }
PPPDEBUG(LOG_DEBUG, ("ppp_free[%d]\n", pcb->netif->num)); PPPDEBUG(LOG_DEBUG, ("ppp_free[%u]\n", pcb->netif->num));
netif_remove(pcb->netif); netif_remove(pcb->netif);
@ -518,7 +518,7 @@ static err_t ppp_netif_output(struct netif *netif, struct pbuf *pb, u16_t protoc
|| (protocol == PPP_IPV6 && !pcb->if6_up) || (protocol == PPP_IPV6 && !pcb->if6_up)
#endif /* PPP_IPV6_SUPPORT */ #endif /* PPP_IPV6_SUPPORT */
) { ) {
PPPDEBUG(LOG_ERR, ("ppp_netif_output[%d]: link not up\n", pcb->netif->num)); PPPDEBUG(LOG_ERR, ("ppp_netif_output[%u]: link not up\n", pcb->netif->num));
goto err_rte_drop; goto err_rte_drop;
} }
@ -726,7 +726,7 @@ ppp_pcb *ppp_new(struct netif *pppif, const struct link_callbacks *callbacks, vo
/** Initiate LCP open request */ /** Initiate LCP open request */
void ppp_start(ppp_pcb *pcb) { void ppp_start(ppp_pcb *pcb) {
PPPDEBUG(LOG_DEBUG, ("ppp_start[%d]\n", pcb->netif->num)); PPPDEBUG(LOG_DEBUG, ("ppp_start[%u]\n", pcb->netif->num));
/* Clean data not taken care by anything else, mostly shared data. */ /* Clean data not taken care by anything else, mostly shared data. */
#if PPP_STATS_SUPPORT #if PPP_STATS_SUPPORT
@ -745,12 +745,12 @@ void ppp_start(ppp_pcb *pcb) {
new_phase(pcb, PPP_PHASE_ESTABLISH); new_phase(pcb, PPP_PHASE_ESTABLISH);
lcp_open(pcb); lcp_open(pcb);
lcp_lowerup(pcb); lcp_lowerup(pcb);
PPPDEBUG(LOG_DEBUG, ("ppp_start[%d]: finished\n", pcb->netif->num)); PPPDEBUG(LOG_DEBUG, ("ppp_start[%u]: finished\n", pcb->netif->num));
} }
/** Called when link failed to setup */ /** Called when link failed to setup */
void ppp_link_failed(ppp_pcb *pcb) { void ppp_link_failed(ppp_pcb *pcb) {
PPPDEBUG(LOG_DEBUG, ("ppp_link_failed[%d]\n", pcb->netif->num)); PPPDEBUG(LOG_DEBUG, ("ppp_link_failed[%u]\n", pcb->netif->num));
new_phase(pcb, PPP_PHASE_DEAD); new_phase(pcb, PPP_PHASE_DEAD);
pcb->err_code = PPPERR_OPEN; pcb->err_code = PPPERR_OPEN;
pcb->link_status_cb(pcb, pcb->err_code, pcb->ctx_cb); pcb->link_status_cb(pcb, pcb->err_code, pcb->ctx_cb);
@ -758,7 +758,7 @@ void ppp_link_failed(ppp_pcb *pcb) {
/** Called when link is normally down (i.e. it was asked to end) */ /** Called when link is normally down (i.e. it was asked to end) */
void ppp_link_end(ppp_pcb *pcb) { void ppp_link_end(ppp_pcb *pcb) {
PPPDEBUG(LOG_DEBUG, ("ppp_link_end[%d]\n", pcb->netif->num)); PPPDEBUG(LOG_DEBUG, ("ppp_link_end[%u]\n", pcb->netif->num));
new_phase(pcb, PPP_PHASE_DEAD); new_phase(pcb, PPP_PHASE_DEAD);
if (pcb->err_code == PPPERR_NONE) { if (pcb->err_code == PPPERR_NONE) {
pcb->err_code = PPPERR_CONNECT; pcb->err_code = PPPERR_CONNECT;
@ -779,7 +779,7 @@ void ppp_input(ppp_pcb *pcb, struct pbuf *pb) {
magic_randomize(); magic_randomize();
if (pb->len < 2) { if (pb->len < 2) {
PPPDEBUG(LOG_ERR, ("ppp_input[%d]: packet too short\n", pcb->netif->num)); PPPDEBUG(LOG_ERR, ("ppp_input[%u]: packet too short\n", pcb->netif->num));
goto drop; goto drop;
} }
protocol = (((u8_t *)pb->payload)[0] << 8) | ((u8_t*)pb->payload)[1]; protocol = (((u8_t *)pb->payload)[0] << 8) | ((u8_t*)pb->payload)[1];
@ -876,7 +876,7 @@ void ppp_input(ppp_pcb *pcb, struct pbuf *pb) {
#if PPP_IPV4_SUPPORT #if PPP_IPV4_SUPPORT
case PPP_IP: /* Internet Protocol */ case PPP_IP: /* Internet Protocol */
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: ip in pbuf len=%d\n", pcb->netif->num, pb->tot_len)); PPPDEBUG(LOG_INFO, ("ppp_input[%u]: ip in pbuf len=%d\n", pcb->netif->num, pb->tot_len));
ip4_input(pb, pcb->netif); ip4_input(pb, pcb->netif);
return; return;
#endif /* PPP_IPV4_SUPPORT */ #endif /* PPP_IPV4_SUPPORT */
@ -962,7 +962,7 @@ void ppp_input(ppp_pcb *pcb, struct pbuf *pb) {
ppp_warn("Unsupported protocol 0x%x received", protocol); ppp_warn("Unsupported protocol 0x%x received", protocol);
#endif /* PPP_DEBUG */ #endif /* PPP_DEBUG */
if (pbuf_add_header(pb, sizeof(protocol))) { if (pbuf_add_header(pb, sizeof(protocol))) {
PPPDEBUG(LOG_WARNING, ("ppp_input[%d]: Dropping (pbuf_add_header failed)\n", pcb->netif->num)); PPPDEBUG(LOG_WARNING, ("ppp_input[%u]: Dropping (pbuf_add_header failed)\n", pcb->netif->num));
goto drop; goto drop;
} }
lcp_sprotrej(pcb, (u8_t*)pb->payload, pb->len); lcp_sprotrej(pcb, (u8_t*)pb->payload, pb->len);
@ -994,9 +994,9 @@ err_t ppp_write(ppp_pcb *pcb, struct pbuf *p) {
} }
void ppp_link_terminated(ppp_pcb *pcb) { void ppp_link_terminated(ppp_pcb *pcb) {
PPPDEBUG(LOG_DEBUG, ("ppp_link_terminated[%d]\n", pcb->netif->num)); PPPDEBUG(LOG_DEBUG, ("ppp_link_terminated[%u]\n", pcb->netif->num));
pcb->link_cb->disconnect(pcb, pcb->link_ctx_cb); pcb->link_cb->disconnect(pcb, pcb->link_ctx_cb);
PPPDEBUG(LOG_DEBUG, ("ppp_link_terminated[%d]: finished.\n", pcb->netif->num)); PPPDEBUG(LOG_DEBUG, ("ppp_link_terminated[%u]: finished.\n", pcb->netif->num));
} }
@ -1010,7 +1010,7 @@ void ppp_link_terminated(ppp_pcb *pcb) {
*/ */
void new_phase(ppp_pcb *pcb, int p) { void new_phase(ppp_pcb *pcb, int p) {
pcb->phase = p; pcb->phase = p;
PPPDEBUG(LOG_DEBUG, ("ppp phase changed[%d]: phase=%d\n", pcb->netif->num, pcb->phase)); PPPDEBUG(LOG_DEBUG, ("ppp phase changed[%u]: phase=%d\n", pcb->netif->num, pcb->phase));
#if PPP_NOTIFY_PHASE #if PPP_NOTIFY_PHASE
if (pcb->notify_phase_cb != NULL) { if (pcb->notify_phase_cb != NULL) {
pcb->notify_phase_cb(pcb, p, pcb->ctx_cb); pcb->notify_phase_cb(pcb, p, pcb->ctx_cb);
@ -1030,7 +1030,7 @@ int ppp_send_config(ppp_pcb *pcb, int mtu, u32_t accm, int pcomp, int accomp) {
pcb->link_cb->send_config(pcb, pcb->link_ctx_cb, accm, pcomp, accomp); pcb->link_cb->send_config(pcb, pcb->link_ctx_cb, accm, pcomp, accomp);
} }
PPPDEBUG(LOG_INFO, ("ppp_send_config[%d]\n", pcb->netif->num) ); PPPDEBUG(LOG_INFO, ("ppp_send_config[%u]\n", pcb->netif->num) );
return 0; return 0;
} }
@ -1045,7 +1045,7 @@ int ppp_recv_config(ppp_pcb *pcb, int mru, u32_t accm, int pcomp, int accomp) {
pcb->link_cb->recv_config(pcb, pcb->link_ctx_cb, accm, pcomp, accomp); pcb->link_cb->recv_config(pcb, pcb->link_ctx_cb, accm, pcomp, accomp);
} }
PPPDEBUG(LOG_INFO, ("ppp_recv_config[%d]\n", pcb->netif->num)); PPPDEBUG(LOG_INFO, ("ppp_recv_config[%u]\n", pcb->netif->num));
return 0; return 0;
} }
@ -1161,7 +1161,7 @@ int sifup(ppp_pcb *pcb) {
pcb->err_code = PPPERR_NONE; pcb->err_code = PPPERR_NONE;
netif_set_link_up(pcb->netif); netif_set_link_up(pcb->netif);
PPPDEBUG(LOG_DEBUG, ("sifup[%d]: err_code=%d\n", pcb->netif->num, pcb->err_code)); PPPDEBUG(LOG_DEBUG, ("sifup[%u]: err_code=%d\n", pcb->netif->num, pcb->err_code));
pcb->link_status_cb(pcb, pcb->err_code, pcb->ctx_cb); pcb->link_status_cb(pcb, pcb->err_code, pcb->ctx_cb);
return 1; return 1;
} }
@ -1184,7 +1184,7 @@ int sifdown(ppp_pcb *pcb) {
/* make sure the netif link callback is called */ /* make sure the netif link callback is called */
netif_set_link_down(pcb->netif); netif_set_link_down(pcb->netif);
} }
PPPDEBUG(LOG_DEBUG, ("sifdown[%d]: err_code=%d\n", pcb->netif->num, pcb->err_code)); PPPDEBUG(LOG_DEBUG, ("sifdown[%u]: err_code=%d\n", pcb->netif->num, pcb->err_code));
return 1; return 1;
} }
@ -1315,7 +1315,7 @@ int sifnpmode(ppp_pcb *pcb, int proto, enum NPmode mode) {
void netif_set_mtu(ppp_pcb *pcb, int mtu) { void netif_set_mtu(ppp_pcb *pcb, int mtu) {
pcb->netif->mtu = mtu; pcb->netif->mtu = mtu;
PPPDEBUG(LOG_INFO, ("netif_set_mtu[%d]: mtu=%d\n", pcb->netif->num, mtu)); PPPDEBUG(LOG_INFO, ("netif_set_mtu[%u]: mtu=%d\n", pcb->netif->num, mtu));
} }
/* /*

View File

@ -305,7 +305,7 @@ int pppoe_session_create(PUSER_INFO_CONTEXT pUser) {
ppp_set_auth(ppp, PPPAUTHTYPE_ANY, pUser->user_info.pppoe_user, pUser->user_info.pppoe_passwd); ppp_set_auth(ppp, PPPAUTHTYPE_ANY, pUser->user_info.pppoe_user, pUser->user_info.pppoe_passwd);
dzlog_debug("Create PPPoE netif %p: %u(%c%c:%d, %c%c:%d)\n", dzlog_debug("Create PPPoE netif %p: %u(%c%c:%u, %c%c:%u)\n",
ppp, ppp,
pUser->userid, pUser->userid,
ppp_netif->name[0], ppp_netif->name[0],