Lines Matching refs:p
83 /** Allocate a pbuf and create a tcphdr at p->payload, used for output
91 * @return pbuf with p->payload being the tcp_hdr
98 struct pbuf *p = pbuf_alloc(PBUF_IP, TCP_HLEN + optlen + datalen, PBUF_RAM);
99 if (p != NULL) {
101 (p->len >= TCP_HLEN + optlen));
102 tcphdr = (struct tcp_hdr *)p->payload;
115 return p;
150 * @param p pbuf that is used to hold the TCP header.
154 * @return a new tcp_seg pointing to p, or NULL.
156 * p is freed on failure.
159 tcp_create_segment(struct tcp_pcb *pcb, struct pbuf *p, u8_t flags, u32_t seqno, u8_t optflags)
166 pbuf_free(p);
171 seg->p = p;
172 seg->len = p->tot_len - optlen;
185 if (pbuf_header(p, TCP_HLEN)) {
191 seg->tcphdr = (struct tcp_hdr *)seg->p->payload;
223 struct pbuf *p;
255 p = pbuf_alloc(layer, alloc, PBUF_RAM);
256 if (p == NULL) {
259 LWIP_ASSERT("need unchained pbuf", p->next == NULL);
260 *oversize = p->len - length;
261 /* trim p->len to the currently used size */
262 p->len = p->tot_len = length;
263 return p;
380 LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_write(pcb=%p, data=%p, len=%"U16_F", apiflags=%"U16_F")\n",
523 struct pbuf *p;
535 if ((p = tcp_pbuf_prealloc(PBUF_TRANSPORT, seglen + optlen, mss_local, &oversize, pcb, apiflags, queue == NULL)) == NULL) {
540 (p->len >= seglen));
541 TCP_DATA_COPY2((char *)p->payload + optlen, (u8_t*)arg + pos, seglen, &chksum, &chksum_swapped);
564 if ((p = pbuf_alloc(PBUF_TRANSPORT, optlen, PBUF_RAM)) == NULL) {
572 pbuf_cat(p/*header*/, p2/*data*/);
575 queuelen += pbuf_clen(p);
582 pbuf_free(p);
586 if ((seg = tcp_create_segment(pcb, p, 0, pcb->snd_lbb + pos, optflags)) == NULL) {
627 struct pbuf *p;
629 for (p = last_unsent->p; p; p = p->next) {
630 p->tot_len += oversize_used;
631 if (p->next == NULL) {
632 TCP_DATA_COPY((char *)p->payload + p->len, arg, oversize_used, last_unsent);
633 p->len += oversize_used;
647 * Phase 2: concat_p can be concatenated onto last_unsent->p
652 pbuf_cat(last_unsent->p, concat_p);
724 struct pbuf *p;
764 if ((p = pbuf_alloc(PBUF_TRANSPORT, optlen, PBUF_RAM)) == NULL) {
770 (p->len >= optlen));
773 if ((seg = tcp_create_segment(pcb, p, flags, pcb->snd_lbb, optflags)) == NULL) {
811 pcb->snd_queuelen += pbuf_clen(seg->p);
844 struct pbuf *p;
854 p = tcp_output_alloc_header(pcb, optlen, 0, htonl(pcb->snd_nxt));
855 if (p == NULL) {
859 tcphdr = (struct tcp_hdr *)p->payload;
875 tcphdr->chksum = inet_chksum_pseudo(p, &(pcb->local_ip), &(pcb->remote_ip),
876 IP_PROTO_TCP, p->tot_len);
879 ip_output_hinted(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
882 ip_output(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
885 pbuf_free(p);
942 LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output: nothing to send (%p)\n",
1115 len = (u16_t)((u8_t *)seg->tcphdr - (u8_t *)seg->p->payload);
1117 seg->p->len -= len;
1118 seg->p->tot_len -= len;
1120 seg->p->payload = seg->tcphdr;
1128 u16_t chksum_slow = inet_chksum_pseudo(seg->p, &(pcb->local_ip),
1130 IP_PROTO_TCP, seg->p->tot_len);
1134 seg->p->tot_len == (TCPH_HDRLEN(seg->tcphdr) * 4));
1138 acc = inet_chksum_pseudo_partial(seg->p, &(pcb->local_ip),
1140 IP_PROTO_TCP, seg->p->tot_len, TCPH_HDRLEN(seg->tcphdr) * 4);
1158 seg->tcphdr->chksum = inet_chksum_pseudo(seg->p, &(pcb->local_ip),
1160 IP_PROTO_TCP, seg->p->tot_len);
1166 ip_output_hinted(seg->p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
1169 ip_output(seg->p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
1199 struct pbuf *p;
1201 p = pbuf_alloc(PBUF_IP, TCP_HLEN, PBUF_RAM);
1202 if (p == NULL) {
1207 (p->len >= sizeof(struct tcp_hdr)));
1209 tcphdr = (struct tcp_hdr *)p->payload;
1220 tcphdr->chksum = inet_chksum_pseudo(p, local_ip, remote_ip,
1221 IP_PROTO_TCP, p->tot_len);
1226 ip_output(p, local_ip, remote_ip, TCP_TTL, 0, IP_PROTO_TCP);
1227 pbuf_free(p);
1366 struct pbuf *p;
1376 p = tcp_output_alloc_header(pcb, 0, 0, htonl(pcb->snd_nxt - 1));
1377 if(p == NULL) {
1382 tcphdr = (struct tcp_hdr *)p->payload;
1385 tcphdr->chksum = inet_chksum_pseudo(p, &pcb->local_ip, &pcb->remote_ip,
1386 IP_PROTO_TCP, p->tot_len);
1392 ip_output_hinted(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP,
1395 ip_output(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP);
1398 pbuf_free(p);
1416 struct pbuf *p;
1446 p = tcp_output_alloc_header(pcb, 0, len, seg->tcphdr->seqno);
1447 if(p == NULL) {
1451 tcphdr = (struct tcp_hdr *)p->payload;
1458 char *d = ((char *)p->payload + TCP_HLEN);
1460 (unsent), seg->p->payload points to the IP header or TCP header.
1462 pbuf_copy_partial(seg->p, d, 1, seg->p->tot_len - seg->len);
1466 tcphdr->chksum = inet_chksum_pseudo(p, &pcb->local_ip, &pcb->remote_ip,
1467 IP_PROTO_TCP, p->tot_len);
1473 ip_output_hinted(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP,
1476 ip_output(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP);
1479 pbuf_free(p);