Prusa MINI Firmware overview
Collaboration diagram for IPv4:

Modules

 ARP
 
 ICMP
 
 DHCP
 
 AUTOIP
 
 IGMP
 

Macros

#define LWIP_IPV4   1
 
#define IP_FORWARD   0
 
#define IP_REASSEMBLY   1
 
#define IP_FRAG   1
 
#define IP_OPTIONS_ALLOWED   1
 
#define IP_REASS_MAXAGE   3
 
#define IP_REASS_MAX_PBUFS   10
 
#define IP_DEFAULT_TTL   255
 
#define IP_SOF_BROADCAST   0
 
#define IP_SOF_BROADCAST_RECV   0
 
#define IP_FORWARD_ALLOW_TX_ON_RX_NETIF   0
 
#define LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS   0
 

Detailed Description

Macro Definition Documentation

◆ LWIP_IPV4

#define LWIP_IPV4   1

LWIP_IPV4==1: Enable IPv4

◆ IP_FORWARD

#define IP_FORWARD   0

IP_FORWARD==1: Enables the ability to forward IP packets across network interfaces. If you are going to run lwIP on a device with only one network interface, define this to 0.

◆ IP_REASSEMBLY

#define IP_REASSEMBLY   1

IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that this option does not affect outgoing packet sizes, which can be controlled via IP_FRAG.

◆ IP_FRAG

#define IP_FRAG   1

IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note that this option does not affect incoming packet sizes, which can be controlled via IP_REASSEMBLY.

◆ IP_OPTIONS_ALLOWED

#define IP_OPTIONS_ALLOWED   1

IP_OPTIONS_ALLOWED: Defines the behavior for IP options. IP_OPTIONS_ALLOWED==0: All packets with IP options are dropped. IP_OPTIONS_ALLOWED==1: IP options are allowed (but not parsed).

◆ IP_REASS_MAXAGE

#define IP_REASS_MAXAGE   3

IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally) a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived in this time, the whole packet is discarded.

◆ IP_REASS_MAX_PBUFS

#define IP_REASS_MAX_PBUFS   10

IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled. Since the received pbufs are enqueued, be sure to configure PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive packets even if the maximum amount of fragments is enqueued for reassembly!

◆ IP_DEFAULT_TTL

#define IP_DEFAULT_TTL   255

IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers.

◆ IP_SOF_BROADCAST

#define IP_SOF_BROADCAST   0

IP_SOF_BROADCAST=1: Use the SOF_BROADCAST field to enable broadcast filter per pcb on udp and raw send operations. To enable broadcast filter on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1.

◆ IP_SOF_BROADCAST_RECV

#define IP_SOF_BROADCAST_RECV   0

IP_SOF_BROADCAST_RECV (requires IP_SOF_BROADCAST=1) enable the broadcast filter on recv operations.

◆ IP_FORWARD_ALLOW_TX_ON_RX_NETIF

#define IP_FORWARD_ALLOW_TX_ON_RX_NETIF   0

IP_FORWARD_ALLOW_TX_ON_RX_NETIF==1: allow ip_forward() to send packets back out on the netif where it was received. This should only be used for wireless networks. ATTENTION: When this is 1, make sure your netif driver correctly marks incoming link-layer-broadcast/multicast packets as such using the corresponding pbuf flags!

◆ LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS

#define LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS   0

LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS==1: randomize the local port for the first local TCP/UDP pcb (default==0). This can prevent creating predictable port numbers after booting a device.