Go to the documentation of this file.
   65 static struct raw_pcb *raw_pcbs;
 
   68 raw_input_match(
struct raw_pcb *pcb, 
u8_t broadcast)
 
   72 #if LWIP_IPV4 && LWIP_IPV6 
   75 #if IP_SOF_BROADCAST_RECV 
   90 #if IP_SOF_BROADCAST_RECV 
   94         if (ip4_addr_isany(ip_2_ip4(&pcb->local_ip))) {
 
  128 raw_input(
struct pbuf *p, 
struct netif *inp)
 
  130   struct raw_pcb *pcb, *prev;
 
  159   while ((eaten == 0) && (pcb != 
NULL)) {
 
  160     if ((pcb->protocol == proto) && raw_input_match(pcb, broadcast)) {
 
  162       if (pcb->recv != 
NULL) {
 
  163 #ifndef LWIP_NOASSERT 
  164         void* old_payload = p->
payload;
 
  175             prev->next = pcb->next;
 
  176             pcb->next = raw_pcbs;
 
  181           LWIP_ASSERT(
"raw pcb recv callback altered pbuf payload pointer without eating packet",
 
  210 raw_bind(
struct raw_pcb *pcb, 
const ip_addr_t *ipaddr)
 
  212   if ((pcb == 
NULL) || (ipaddr == 
NULL)) {
 
  234 raw_connect(
struct raw_pcb *pcb, 
const ip_addr_t *ipaddr)
 
  236   if ((pcb == 
NULL) || (ipaddr == 
NULL)) {
 
  255 raw_recv(
struct raw_pcb *pcb, raw_recv_fn recv, 
void *recv_arg)
 
  259   pcb->recv_arg = recv_arg;
 
  276 raw_sendto(
struct raw_pcb *pcb, 
struct pbuf *p, 
const ip_addr_t *ipaddr)
 
  291 #if LWIP_IPV4 && LWIP_IPV6 
  313     LWIP_DEBUGF(
RAW_DEBUG, (
"raw_sendto: added header pbuf %p before given pbuf %p\n", (
void *)q, (
void *)p));
 
  318       LWIP_ASSERT(
"Can't restore header we just removed!", 0);
 
  327     netif = ip_route(&pcb->local_ip, ipaddr);
 
  357     src_ip = ip_netif_get_local_ip(
netif, ipaddr);
 
  359     if (src_ip == 
NULL) {
 
  368     src_ip = &pcb->local_ip;
 
  374   if (
IP_IS_V6(ipaddr) && pcb->chksum_reqd) {
 
  376     LWIP_ASSERT(
"Checksum must fit into first pbuf", p->
len >= (pcb->chksum_offset + 2));
 
  382   err = ip_output_if(q, src_ip, ipaddr, pcb->ttl, pcb->tos, pcb->protocol, 
netif);
 
  402 raw_send(
struct raw_pcb *pcb, 
struct pbuf *p)
 
  404   return raw_sendto(pcb, p, &pcb->remote_ip);
 
  417 raw_remove(
struct raw_pcb *pcb)
 
  419   struct raw_pcb *pcb2;
 
  421   if (raw_pcbs == pcb) {
 
  423     raw_pcbs = raw_pcbs->next;
 
  426     for (pcb2 = raw_pcbs; pcb2 != 
NULL; pcb2 = pcb2->next) {
 
  428       if (pcb2->next != 
NULL && pcb2->next == pcb) {
 
  430         pcb2->next = pcb->next;
 
  460     memset(pcb, 0, 
sizeof(
struct raw_pcb));
 
  461     pcb->protocol = proto;
 
  463     pcb->next = raw_pcbs;
 
  485 raw_new_ip_type(
u8_t type, 
u8_t proto)
 
  488   pcb = raw_new(proto);
 
  489 #if LWIP_IPV4 && LWIP_IPV6 
  507   struct raw_pcb* rpcb;
 
  510     for (rpcb = raw_pcbs; rpcb != 
NULL; rpcb = rpcb->next) {
 
  
 
#define ip_addr_set_ipaddr(dest, src)
#define ip_addr_cmp(addr1, addr2)
#define LWIP_ASSERT(message, assertion)
#define ip_current_dest_addr()
#define IP46_ADDR_ANY(type)
#define IP_IS_ANY_TYPE_VAL(ipaddr)
#define ip_addr_isany(ipaddr)
u8_t pbuf_free(struct pbuf *p)
#define ip_addr_isbroadcast(addr, netif)
void * memp_malloc(memp_t type)
#define IP_ADDR_PCB_VERSION_MATCH_EXACT(pcb, ipaddr)
#define NETIF_SET_HWADDRHINT(netif, hint)
void memp_free(memp_t type, void *mem)
#define ip_addr_debug_print(debug, ipaddr)
#define LWIP_DBG_LEVEL_SERIOUS
#define ip_current_netif()
struct pbuf * pbuf_alloc(pbuf_layer l, u16_t length, pbuf_type type)
#define IP_ADDR_PCB_VERSION_MATCH(addr, pcb)
#define ip_current_src_addr()
#define LWIP_UNUSED_ARG(x)
void pbuf_chain(struct pbuf *head, struct pbuf *tail)
#define ip_addr_copy(dest, src)
#define LWIP_DBG_LEVEL_WARNING
#define IP_SET_TYPE_VAL(ipaddr, iptype)
void * memset(void *dst, int c, size_t length)
#define ip_get_option(pcb, opt)
#define SMEMCPY(dst, src, len)
#define LWIP_DEBUGF(debug, message)
#define IP_HDR_GET_VERSION(ptr)
u8_t pbuf_header(struct pbuf *p, s16_t header_size)
#define IP_GET_TYPE(ipaddr)