lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] UDP broadcast not working - Socket API


From: Daniel Berenguer
Subject: Re: [lwip-users] UDP broadcast not working - Socket API
Date: Fri, 19 Jun 2009 15:50:56 +0200

Thanks Kieran for your reply.

I'm using lwIP 1.3.0 and I successfully built and ran the demo that
came with FreeRTOS, a basic http server. I can now display a simple
web page through lwIP.

this is my complete lwipopts.h code:


//-----------------------------------------------------------------------------------------------------------------------


#ifndef __LWIPOPTS_H__

#define __LWIPOPTS_H__







//*****************************************************************************

//

// ---------- Platform specific locking ----------

//

//*****************************************************************************

#define SYS_LIGHTWEIGHT_PROT            1           // default is 0

#define NO_SYS                          0           // default is 0

//#define MEMCPY(dst,src,len)             memcpy(dst,src,len)

//#define SMEMCPY(dst,src,len)            memcpy(dst,src,len)



//*****************************************************************************

//

// ---------- Memory options ----------

//

//*****************************************************************************

//#define MEM_LIBC_MALLOC                 0

#define MEM_ALIGNMENT                   4           // default is 1

#define MEM_SIZE                        (18 * 1024)  // default is 1600, was 16K

//#define MEMP_OVERFLOW_CHECK             0

#define MEMP_SANITY_CHECK               1

//#define MEM_USE_POOLS                   0

//#define MEMP_USE_CUSTOM_POOLS           0



//*****************************************************************************

//

// ---------- Internal Memory Pool Sizes ----------

//

//*****************************************************************************

#define MEMP_NUM_PBUF                     24    // Default 16, was 16

//#define MEMP_NUM_RAW_PCB                4

//#define MEMP_NUM_UDP_PCB                4

#define MEMP_NUM_TCP_PCB                  16    // Default 5, was 12

//#define MEMP_NUM_TCP_PCB_LISTEN         8

//#define MEMP_NUM_TCP_SEG                16

//#define MEMP_NUM_REASSDATA              5

//#define MEMP_NUM_ARP_QUEUE              30

//#define MEMP_NUM_IGMP_GROUP             8

#define MEMP_NUM_SYS_TIMEOUT              10

//#define MEMP_NUM_NETBUF                 2

//#define MEMP_NUM_NETCONN                4

//#define MEMP_NUM_TCPIP_MSG_API          8

//#define MEMP_NUM_TCPIP_MSG_INPKT        8

#define PBUF_POOL_SIZE                    24    // Default 16, was 36



//*****************************************************************************

//

// ---------- ARP options ----------

//

//*****************************************************************************

#define LWIP_ARP                        1

#define ARP_TABLE_SIZE                  10

#define ARP_QUEUEING                    1

#define ETHARP_TRUST_IP_MAC             1



//*****************************************************************************

//

// ---------- IP options ----------

//

//*****************************************************************************

#define IP_FORWARD                      0

#define IP_OPTIONS_ALLOWED              1

#define IP_REASSEMBLY                   0           // default is 1

#define IP_FRAG                         0           // default is 1

//#define IP_REASS_MAXAGE                 3

//#define IP_REASS_MAX_PBUFS              10

//#define IP_FRAG_USES_STATIC_BUF         1

//#define IP_FRAG_MAX_MTU                 1500

#define IP_DEFAULT_TTL                  255



//*****************************************************************************

//

// ---------- ICMP options ----------

//

//*****************************************************************************

#define LWIP_ICMP                       1

#define ICMP_TTL                       (IP_DEFAULT_TTL)



//*****************************************************************************

//

// ---------- RAW options ----------

//

//*****************************************************************************

//#define LWIP_RAW                        1

//#define RAW_TTL                        (IP_DEFAULT_TTL)



//*****************************************************************************

//

// ---------- DHCP options ----------

//

//*****************************************************************************

#define LWIP_DHCP                       1           // default is 0

//#define DHCP_DOES_ARP_CHECK             ((LWIP_DHCP) && (LWIP_ARP))



//*****************************************************************************

//

// ---------- UPNP options ----------

//

//*****************************************************************************

//#define LWIP_UPNP                       0



//*****************************************************************************

//

// ---------- PTPD options ----------

//

//*****************************************************************************

//#define LWIP_PTPD                       0



//*****************************************************************************

//

// ---------- AUTOIP options ----------

//

//*****************************************************************************

#define LWIP_AUTOIP                     0           // default is 0

#define LWIP_DHCP_AUTOIP_COOP           ((LWIP_DHCP) && (LWIP_AUTOIP))

                                                    // default is 0



//*****************************************************************************

//

// ---------- SNMP options ----------

//

//*****************************************************************************

//#define LWIP_SNMP                       0

//#define SNMP_CONCURRENT_REQUESTS        1

//#define SNMP_TRAP_DESTINATIONS          1

//#define SNMP_PRIVATE_MIB                0

//#define SNMP_SAFE_REQUESTS              1



//*****************************************************************************

//

// ---------- IGMP options ----------

//

//*****************************************************************************

//#define LWIP_IGMP                       0



//*****************************************************************************

//

// ---------- DNS options -----------

//

//*****************************************************************************

//#define LWIP_DNS                        0

//#define DNS_TABLE_SIZE                  4

//#define DNS_MAX_NAME_LENGTH             256

//#define DNS_MAX_SERVERS                 2

//#define DNS_DOES_NAME_CHECK             1

//#define DNS_USES_STATIC_BUF             1

//#define DNS_MSG_SIZE                    512



//*****************************************************************************

//

// ---------- UDP options ----------

//

//*****************************************************************************

#define LWIP_UDP                        1

//#define LWIP_UDPLITE                    0

#define UDP_TTL                         (IP_DEFAULT_TTL)



//*****************************************************************************

//

// ---------- TCP options ----------

//

//*****************************************************************************

//#define LWIP_TCP                        1

#define TCP_TTL                         (IP_DEFAULT_TTL)

#define TCP_WND                         4096   // default is 2048

//#define TCP_MAXRTX                      12

//#define TCP_SYNMAXRTX                   6

//#define TCP_QUEUE_OOSEQ                 1

#define TCP_MSS                        1500        // default is 128

//#define TCP_CALCULATE_EFF_SEND_MSS      1

#define TCP_SND_BUF                     (4 * TCP_MSS)

                                                    // default is 256, was 6 *

//#define TCP_SND_QUEUELEN                (4 * (TCP_SND_BUF/TCP_MSS))

//#define TCP_SNDLOWAT                    (TCP_SND_BUF/2)

//#define TCP_LISTEN_BACKLOG              0

//#define TCP_DEFAULT_LISTEN_BACKLOG      0xff



//*****************************************************************************

//

// ---------- API options ----------

//

//*****************************************************************************

//#define LWIP_EVENT_API                  0

//#define LWIP_CALLBACK_API               1



//*****************************************************************************

//

// ---------- Pbuf options ----------

//

//*****************************************************************************

#define PBUF_LINK_HLEN                  16          // default is 14

#define PBUF_POOL_BUFSIZE               256

                                                    // default is
LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN)

#define ETH_PAD_SIZE                    2           // default is 0



//*****************************************************************************

//

// ---------- Network Interfaces options ----------

//

//*****************************************************************************

//#define LWIP_NETIF_HOSTNAME             0

//#define LWIP_NETIF_API                  0

//#define LWIP_NETIF_STATUS_CALLBACK      0

//#define LWIP_NETIF_LINK_CALLBACK        0

//#define LWIP_NETIF_HWADDRHINT           0



//*****************************************************************************

//

// ---------- LOOPIF options ----------

//

//*****************************************************************************

//#define LWIP_HAVE_LOOPIF                0

//#define LWIP_LOOPIF_MULTITHREADING      1



//*****************************************************************************

//

// ---------- Thread options ----------

//

//*****************************************************************************

#define TCPIP_THREAD_NAME              "tcpip_thread"

#define TCPIP_THREAD_STACKSIZE          300

#define TCPIP_THREAD_PRIO               3

//#define TCPIP_MBOX_SIZE                 0

//#define SLIPIF_THREAD_NAME             "slipif_loop"

//#define SLIPIF_THREAD_STACKSIZE         0

//#define SLIPIF_THREAD_PRIO              1

//#define PPP_THREAD_NAME                "pppMain"

//#define PPP_THREAD_STACKSIZE            0

//#define PPP_THREAD_PRIO                 1

#define DEFAULT_THREAD_NAME            "lwIP"

#define DEFAULT_THREAD_STACKSIZE        128

#define DEFAULT_THREAD_PRIO             3

//#define DEFAULT_RAW_RECVMBOX_SIZE       0

//#define DEFAULT_UDP_RECVMBOX_SIZE       0

//#define DEFAULT_TCP_RECVMBOX_SIZE       0

//#define DEFAULT_ACCEPTMBOX_SIZE         0



//*****************************************************************************

//

// ---------- Sequential layer options ----------

//

//*****************************************************************************

//#define LWIP_TCPIP_CORE_LOCKING         0

#define LWIP_NETCONN                    1           // default is 1



//*****************************************************************************

//

// ---------- Socket Options ----------

//

//*****************************************************************************

#define LWIP_SOCKET                     1           // default is 1

#define LWIP_COMPAT_SOCKETS             1

#define LWIP_POSIX_SOCKETS_IO_NAMES     1

//#define LWIP_TCP_KEEPALIVE              1

//#define LWIP_SO_RCVTIMEO                1

//#define LWIP_SO_RCVBUF                  1

//#define SO_REUSE                        0



//*****************************************************************************

//

// ---------- Statistics options ----------

//

//*****************************************************************************

#define LWIP_STATS                      1

#define LWIP_STATS_DISPLAY              1

#define LINK_STATS                      1

#define ETHARP_STATS                    (LWIP_ARP)

#define IP_STATS                        1

//#define IPFRAG_STATS                    (IP_REASSEMBLY || IP_FRAG)

#define ICMP_STATS                      1

//#define IGMP_STATS                      (LWIP_IGMP)

#define UDP_STATS                       (LWIP_UDP)

#define TCP_STATS                       (LWIP_TCP)

#define MEM_STATS                       1

#define MEMP_STATS                      1

#define SYS_STATS                       1



//*****************************************************************************

//

// ---------- PPP options ----------

//

//*****************************************************************************

#define PPP_SUPPORT                     0

#define PPPOE_SUPPORT                   0

//#define PPPOS_SUPPORT                   PPP_SUPPORT



#if PPP_SUPPORT

//#define NUM_PPP                         1

//#define PAP_SUPPORT                     0

//#define CHAP_SUPPORT                    0

//#define MSCHAP_SUPPORT                  0

//#define CBCP_SUPPORT                    0

//#define CCP_SUPPORT                     0

//#define VJ_SUPPORT                      0

//#define MD5_SUPPORT                     0

//#define FSM_DEFTIMEOUT                  6

//#define FSM_DEFMAXTERMREQS              2

//#define FSM_DEFMAXCONFREQS              10

//#define FSM_DEFMAXNAKLOOPS              5

//#define UPAP_DEFTIMEOUT                 6

//#define UPAP_DEFREQTIME                 30

//#define CHAP_DEFTIMEOUT                 6

//#define CHAP_DEFTRANSMITS               10

//#define LCP_ECHOINTERVAL                0

//#define LCP_MAXECHOFAILS                3

//#define PPP_MAXIDLEFLAG                 100



//#define PPP_MAXMTU                      1500

//#define PPP_DEFMRU                      296

#endif



//*****************************************************************************

//

// ---------- checksum options ----------

//

//*****************************************************************************

//#define CHECKSUM_GEN_IP                 1

//#define CHECKSUM_GEN_UDP                1

//#define CHECKSUM_GEN_TCP                1

//#define CHECKSUM_CHECK_IP               1

//#define CHECKSUM_CHECK_UDP              1

//#define CHECKSUM_CHECK_TCP              1



//*****************************************************************************

//

// ---------- Debugging options ----------

//

//*****************************************************************************

#define U8_F "c"

#define S8_F "c"

#define X8_F "x"

#define U16_F "u"

#define S16_F "d"

#define X16_F "x"

#define U32_F "u"

#define S32_F "d"

#define X32_F "x"

//extern void LWIPDebug(const char *pcString, ...);

//#define LWIP_PLATFORM_DIAG(x) {LWIPDebug x;}





extern void LWIPDebug(const char *pcString, ...);

extern void UART1printf(const char *pcString, ...);

#define LWIP_PLATFORM_DIAG(x) {UART1printf x;}



#define LWIP_DEBUG                                              1





//#define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_OFF

#define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_OFF

//#define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_WARNING

//#define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_SERIOUS

//#define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_SEVERE



#define LWIP_DBG_TYPES_ON               LWIP_DBG_ON

//#define LWIP_DBG_TYPES_ON
(LWIP_DBG_ON|LWIP_DBG_TRACE|LWIP_DBG_STATE|LWIP_DBG_FRESH)



#define ETHARP_DEBUG                    LWIP_DBG_ON     // default is OFF

#define NETIF_DEBUG                     LWIP_DBG_ON     // default is OFF

#define PBUF_DEBUG                     LWIP_DBG_ON

#define API_LIB_DEBUG                  LWIP_DBG_ON

#define API_MSG_DEBUG                  LWIP_DBG_ON

#define SOCKETS_DEBUG                  LWIP_DBG_ON

#define ICMP_DEBUG                     LWIP_DBG_ON

#define IGMP_DEBUG                     LWIP_DBG_ON

#define INET_DEBUG                     LWIP_DBG_ON

#define IP_DEBUG                        LWIP_DBG_ON     // default is OFF

#define IP_REASS_DEBUG                 LWIP_DBG_ON

#define RAW_DEBUG                      LWIP_DBG_ON

#define MEM_DEBUG                      LWIP_DBG_ON

#define MEMP_DEBUG                     LWIP_DBG_ON

#define SYS_DEBUG                      LWIP_DBG_ON

#define TCP_DEBUG                      LWIP_DBG_ON

#define TCP_INPUT_DEBUG                LWIP_DBG_ON

#define TCP_FR_DEBUG                   LWIP_DBG_ON

#define TCP_RTO_DEBUG                  LWIP_DBG_ON

#define TCP_CWND_DEBUG                 LWIP_DBG_ON

#define TCP_WND_DEBUG                  LWIP_DBG_ON

#define TCP_OUTPUT_DEBUG               LWIP_DBG_ON

#define TCP_RST_DEBUG                  LWIP_DBG_ON

#define TCP_QLEN_DEBUG                 LWIP_DBG_ON

#define UDP_DEBUG                       LWIP_DBG_ON     // default is OFF

#define TCPIP_DEBUG                    LWIP_DBG_ON

#define PPP_DEBUG                      LWIP_DBG_ON

#define SLIP_DEBUG                     LWIP_DBG_ON

#define DHCP_DEBUG                      LWIP_DBG_ON     // default is OFF

#define AUTOIP_DEBUG                   LWIP_DBG_ON

#define SNMP_MSG_DEBUG                 LWIP_DBG_ON

#define SNMP_MIB_DEBUG                 LWIP_DBG_ON

#define DNS_DEBUG                      LWIP_DBG_ON



#endif /* __LWIPOPTS_H__ */

//-----------------------------------------------------------------------------------------------------------------------

thanks again for your help,

Daniel.


2009/6/19 Kieran Mansley <address@hidden>:
> On Fri, 2009-06-19 at 13:00 +0200, Daniel Berenguer wrote:
>> In order to compile the above code, I changed lwipopts.h as follows:
>>
>> #define LWIP_SOCKET                                  1
>> #define LWIP_COMPAT_SOCKETS                  1
>> #define LWIP_POSIX_SOCKETS_IO_NAMES     1
>>
>> As result, the program builds correctly, the "udpThread" task is
>> started but no UDP message is sent on port 1234. This makes me think
>> that there are some other options to be enabled elsewhere.
>
> Can you post your entire lwipopts.h?
>
> Any idea which version of lwIP you're using?
>
> Are you able to do other things with your device and successfully send
> packets, or is this the first thing you've tried?
>
> Kieran
>
>
>
> _______________________________________________
> lwip-users mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/lwip-users
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]