raw.c File Reference
`#include "lwip/opt.h"`
`#include "lwip/def.h"`
`#include "lwip/memp.h"`
`#include "lwip/ip_addr.h"`
`#include "lwip/netif.h"`
`#include "lwip/raw.h"`
`#include "lwip/priv/raw_priv.h"`
`#include "lwip/stats.h"`
`#include "lwip/ip6.h"`
`#include "lwip/ip6_addr.h"`
`#include "lwip/inet_chksum.h"`
`#include <string.h>`

## Functions

raw_input_state_t | raw_input (struct pbuf *p, struct netif *inp)
err_t | raw_bind (struct raw_pcb *pcb, const ip_addr_t *ipaddr)
void | raw_bind_netif (struct raw_pcb *pcb, const struct netif *netif)
err_t | raw_connect (struct raw_pcb *pcb, const ip_addr_t *ipaddr)
void | raw_disconnect (struct raw_pcb *pcb)
void | raw_recv (struct raw_pcb *pcb, raw_recv_fn recv, void *recv_arg)
err_t | raw_sendto (struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *ipaddr)
err_t | raw_sendto_if_src (struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *dst_ip, struct netif *netif, const ip_addr_t *src_ip)
err_t | raw_send (struct raw_pcb *pcb, struct pbuf *p)
void | raw_remove (struct raw_pcb *pcb)
struct raw_pcb * | raw_new (u8_t proto)
struct raw_pcb * | raw_new_ip_type (u8_t type, u8_t proto)
void | raw_netif_ip_addr_changed (const ip_addr_t *old_addr, const ip_addr_t *new_addr)

## Detailed Description

Implementation of raw protocol PCBs for low-level handling of different types of protocols besides (or overriding) those already available in lwIP.
See also RAW

## Function Documentation

## raw_input()

raw_input_state_t raw_input | ( | struct pbuf * | p,
|  | struct netif * | inp
| ) |  |

Determine if in incoming IP packet is covered by a RAW PCB and if so, pass it to a user-provided receive callback function.

Given an incoming IP datagram (as a chain of pbufs) this function finds a corresponding RAW PCB and calls the corresponding receive callback function.

Parameters

  p | pbuf to be demultiplexed to a RAW PCB.
  inp | network interface on which the datagram was received.

Returns
  - 1 if the packet has been eaten by a RAW PCB receive callback function. The caller MAY NOT not reference the packet any longer, and MAY NOT call pbuf_free().
  - 0 if packet is not eaten (pbuf is still referenced by the caller).

## raw_netif_ip_addr_changed()

void raw_netif_ip_addr_changed | ( | const ip_addr_t * | old_addr,
|  | const ip_addr_t * | new_addr
| ) |  |

This function is called from netif.c when address is changed

Parameters

  old_addr | IP address of the netif before change
  new_addr | IP address of the netif after change