Lines Matching refs:pppos
73 static void pppos_input_free_current_packet(pppos_pcb *pppos);
74 static void pppos_input_drop(pppos_pcb *pppos);
75 static err_t pppos_output_append(pppos_pcb *pppos, err_t err, struct pbuf *nb, u8_t c, u8_t accm, u…
76 static err_t pppos_output_last(pppos_pcb *pppos, err_t err, struct pbuf *nb, u16_t *fcs);
177 pppos_pcb *pppos; in pppos_create() local
181 pppos = (pppos_pcb *)LWIP_MEMPOOL_ALLOC(PPPOS_PCB); in pppos_create()
182 if (pppos == NULL) { in pppos_create()
186 ppp = ppp_new(pppif, &pppos_callbacks, pppos, link_status_cb, ctx_cb); in pppos_create()
188 LWIP_MEMPOOL_FREE(PPPOS_PCB, pppos); in pppos_create()
192 memset(pppos, 0, sizeof(pppos_pcb)); in pppos_create()
193 pppos->ppp = ppp; in pppos_create()
194 pppos->output_cb = output_cb; in pppos_create()
202 pppos_pcb *pppos = (pppos_pcb *)ctx; in pppos_write() local
229 if ((sys_now() - pppos->last_xmit) >= PPP_MAXIDLEFLAG) { in pppos_write()
230 err = pppos_output_append(pppos, err, nb, PPP_FLAG, 0, NULL); in pppos_write()
238 err = pppos_output_append(pppos, err, nb, *s++, 1, &fcs_out); in pppos_write()
241 err = pppos_output_last(pppos, err, nb, &fcs_out); in pppos_write()
255 pppos_pcb *pppos = (pppos_pcb *)ctx; in pppos_netif_output() local
279 if ((sys_now() - pppos->last_xmit) >= PPP_MAXIDLEFLAG) { in pppos_netif_output()
280 err = pppos_output_append(pppos, err, nb, PPP_FLAG, 0, NULL); in pppos_netif_output()
284 if (!pppos->accomp) { in pppos_netif_output()
285 err = pppos_output_append(pppos, err, nb, PPP_ALLSTATIONS, 1, &fcs_out); in pppos_netif_output()
286 err = pppos_output_append(pppos, err, nb, PPP_UI, 1, &fcs_out); in pppos_netif_output()
288 if (!pppos->pcomp || protocol > 0xFF) { in pppos_netif_output()
289 err = pppos_output_append(pppos, err, nb, (protocol >> 8) & 0xFF, 1, &fcs_out); in pppos_netif_output()
291 err = pppos_output_append(pppos, err, nb, protocol & 0xFF, 1, &fcs_out); in pppos_netif_output()
299 err = pppos_output_append(pppos, err, nb, *s++, 1, &fcs_out); in pppos_netif_output()
303 err = pppos_output_last(pppos, err, nb, &fcs_out); in pppos_netif_output()
315 pppos_pcb *pppos = (pppos_pcb *)ctx; in pppos_connect() local
320 pppos_input_free_current_packet(pppos); in pppos_connect()
324 memset(&pppos->last_xmit, 0, sizeof(pppos_pcb) - offsetof(pppos_pcb, last_xmit)); in pppos_connect()
330 pppos->in_accm[15] = 0x60; /* no need to protect since RX is not running */ in pppos_connect()
331 pppos->out_accm[15] = 0x60; in pppos_connect()
333 pppos->open = 1; in pppos_connect()
347 pppos_pcb *pppos = (pppos_pcb *)ctx; in pppos_listen() local
352 pppos_input_free_current_packet(pppos); in pppos_listen()
356 memset(&pppos->last_xmit, 0, sizeof(pppos_pcb) - offsetof(pppos_pcb, last_xmit)); in pppos_listen()
362 pppos->in_accm[15] = 0x60; /* no need to protect since RX is not running */ in pppos_listen()
363 pppos->out_accm[15] = 0x60; in pppos_listen()
365 pppos->open = 1; in pppos_listen()
379 pppos_pcb *pppos = (pppos_pcb *)ctx; in pppos_disconnect() local
383 pppos->open = 0; in pppos_disconnect()
392 pppos_input_free_current_packet(pppos); in pppos_disconnect()
401 pppos_pcb *pppos = (pppos_pcb *)ctx; in pppos_destroy() local
406 pppos_input_free_current_packet(pppos); in pppos_destroy()
409 LWIP_MEMPOOL_FREE(PPPOS_PCB, pppos); in pppos_destroy()
480 pppos_pcb *pppos = (pppos_pcb *)ppp->link_ctx_cb; in pppos_input() local
499 if (!pppos->open) { in pppos_input()
503 escaped = ESCAPE_P(pppos->in_accm, cur_char); in pppos_input()
513 pppos->in_escaped = 1; in pppos_input()
517 if (pppos->in_state <= PDADDRESS) { in pppos_input()
520 } else if (pppos->in_state < PDDATA) { in pppos_input()
523 ppp->netif->num, pppos->in_state)); in pppos_input()
525 pppos_input_drop(pppos); in pppos_input()
527 } else if (pppos->in_fcs != PPP_GOODFCS) { in pppos_input()
530 ppp->netif->num, pppos->in_fcs, pppos->in_protocol)); in pppos_input()
533 pppos_input_drop(pppos); in pppos_input()
538 if(pppos->in_tail->len > 2) { in pppos_input()
539 pppos->in_tail->len -= 2; in pppos_input()
541 pppos->in_tail->tot_len = pppos->in_tail->len; in pppos_input()
542 if (pppos->in_tail != pppos->in_head) { in pppos_input()
543 pbuf_cat(pppos->in_head, pppos->in_tail); in pppos_input()
546 pppos->in_tail->tot_len = pppos->in_tail->len; in pppos_input()
547 if (pppos->in_tail != pppos->in_head) { in pppos_input()
548 pbuf_cat(pppos->in_head, pppos->in_tail); in pppos_input()
551 pbuf_realloc(pppos->in_head, pppos->in_head->tot_len - 2); in pppos_input()
555 inp = pppos->in_head; in pppos_input()
557 pppos->in_head = NULL; in pppos_input()
558 pppos->in_tail = NULL; in pppos_input()
576 pppos->in_fcs = PPP_INITFCS; in pppos_input()
577 pppos->in_state = PDADDRESS; in pppos_input()
578 pppos->in_escaped = 0; in pppos_input()
588 if (pppos->in_escaped) { in pppos_input()
589 pppos->in_escaped = 0; in pppos_input()
594 switch(pppos->in_state) { in pppos_input()
606 pppos->in_fcs = PPP_INITFCS; in pppos_input()
612 pppos->in_state = PDCONTROL; in pppos_input()
623 pppos->in_state = PDPROTOCOL1; in pppos_input()
632 pppos->in_state = PDSTART; in pppos_input()
641 pppos->in_protocol = cur_char; in pppos_input()
642 pppos->in_state = PDDATA; in pppos_input()
644 pppos->in_protocol = (u16_t)cur_char << 8; in pppos_input()
645 pppos->in_state = PDPROTOCOL2; in pppos_input()
649 pppos->in_protocol |= cur_char; in pppos_input()
650 pppos->in_state = PDDATA; in pppos_input()
654 if (pppos->in_tail == NULL || pppos->in_tail->len == PBUF_POOL_BUFSIZE) { in pppos_input()
656 if (pppos->in_tail != NULL) { in pppos_input()
657 pppos->in_tail->tot_len = pppos->in_tail->len; in pppos_input()
658 if (pppos->in_tail != pppos->in_head) { in pppos_input()
659 pbuf_cat(pppos->in_head, pppos->in_tail); in pppos_input()
661 pppos->in_tail = NULL; in pppos_input()
671 if (pppos->in_head == NULL) { in pppos_input()
682 pppos_input_drop(pppos); in pppos_input()
683 pppos->in_state = PDSTART; /* Wait for flag sequence. */ in pppos_input()
686 if (pppos->in_head == NULL) { in pppos_input()
693 next_pbuf->len += sizeof(pppos->in_protocol); in pppos_input()
694 *(payload++) = pppos->in_protocol >> 8; in pppos_input()
695 *(payload) = pppos->in_protocol & 0xFF; in pppos_input()
696 pppos->in_head = next_pbuf; in pppos_input()
698 pppos->in_tail = next_pbuf; in pppos_input()
701 ((u8_t*)pppos->in_tail->payload)[pppos->in_tail->len++] = cur_char; in pppos_input()
708 pppos->in_fcs = PPP_FCS(pppos->in_fcs, cur_char); in pppos_input()
741 pppos_pcb *pppos = (pppos_pcb *)ctx; in pppos_send_config() local
744 pppos->pcomp = pcomp; in pppos_send_config()
745 pppos->accomp = accomp; in pppos_send_config()
749 pppos->out_accm[i] = (u8_t)((accm >> (8 * i)) & 0xFF); in pppos_send_config()
753 pppos->ppp->netif->num, in pppos_send_config()
754 pppos->out_accm[0], pppos->out_accm[1], pppos->out_accm[2], pppos->out_accm[3])); in pppos_send_config()
761 pppos_pcb *pppos = (pppos_pcb *)ctx; in pppos_recv_config() local
770 pppos->in_accm[i] = (u8_t)(accm >> (i * 8)); in pppos_recv_config()
775 pppos->ppp->netif->num, in pppos_recv_config()
776 pppos->in_accm[0], pppos->in_accm[1], pppos->in_accm[2], pppos->in_accm[3])); in pppos_recv_config()
783 pppos_input_free_current_packet(pppos_pcb *pppos) in pppos_input_free_current_packet() argument
785 if (pppos->in_head != NULL) { in pppos_input_free_current_packet()
786 if (pppos->in_tail && (pppos->in_tail != pppos->in_head)) { in pppos_input_free_current_packet()
787 pbuf_free(pppos->in_tail); in pppos_input_free_current_packet()
789 pbuf_free(pppos->in_head); in pppos_input_free_current_packet()
790 pppos->in_head = NULL; in pppos_input_free_current_packet()
792 pppos->in_tail = NULL; in pppos_input_free_current_packet()
799 pppos_input_drop(pppos_pcb *pppos) in pppos_input_drop() argument
801 if (pppos->in_head != NULL) { in pppos_input_drop()
803 …BUG(LOG_INFO, ("pppos_input_drop: %d:%.*H\n", pppos->in_head->len, min(60, pppos->in_head->len * 2… in pppos_input_drop()
805 …EBUG(LOG_INFO, ("pppos_input_drop: pbuf len=%d, addr %p\n", pppos->in_head->len, (void*)pppos->in_… in pppos_input_drop()
807 pppos_input_free_current_packet(pppos); in pppos_input_drop()
809 vj_uncompress_err(&pppos->ppp->vj_comp); in pppos_input_drop()
813 MIB2_STATS_NETIF_INC(pppos->ppp->netif, ifindiscards); in pppos_input_drop()
823 pppos_output_append(pppos_pcb *pppos, err_t err, struct pbuf *nb, u8_t c, u8_t accm, u16_t *fcs) in pppos_output_append() argument
833 u32_t l = pppos->output_cb(pppos->ppp, (u8_t*)nb->payload, nb->len, pppos->ppp->ctx_cb); in pppos_output_append()
846 if (accm && ESCAPE_P(pppos->out_accm, c)) { in pppos_output_append()
857 pppos_output_last(pppos_pcb *pppos, err_t err, struct pbuf *nb, u16_t *fcs) in pppos_output_last() argument
859 ppp_pcb *ppp = pppos->ppp; in pppos_output_last()
862 err = pppos_output_append(pppos, err, nb, ~(*fcs) & 0xFF, 1, NULL); in pppos_output_last()
863 err = pppos_output_append(pppos, err, nb, (~(*fcs) >> 8) & 0xFF, 1, NULL); in pppos_output_last()
864 err = pppos_output_append(pppos, err, nb, PPP_FLAG, 0, NULL); in pppos_output_last()
872 u32_t l = pppos->output_cb(ppp, (u8_t*)nb->payload, nb->len, ppp->ctx_cb); in pppos_output_last()
879 pppos->last_xmit = sys_now(); in pppos_output_last()
887 pppos->last_xmit = 0; /* prepend PPP_FLAG to next packet */ in pppos_output_last()