| 125 | #define senderr(e) do { error = (e); goto bad;} while (0) |
| 126 | |
| 127 | static void |
| 128 | update_mbuf_csumflags(struct mbuf *src, struct mbuf *dst) |
| 129 | { |
| 130 | int csum_flags = 0; |
| 131 | |
| 132 | if (src->m_pkthdr.csum_flags & CSUM_IP) |
| 133 | csum_flags |= (CSUM_IP_CHECKED|CSUM_IP_VALID); |
| 134 | if (src->m_pkthdr.csum_flags & CSUM_DELAY_DATA) |
| 135 | csum_flags |= (CSUM_DATA_VALID|CSUM_PSEUDO_HDR); |
| 136 | if (src->m_pkthdr.csum_flags & CSUM_SCTP) |
| 137 | csum_flags |= CSUM_SCTP_VALID; |
| 138 | dst->m_pkthdr.csum_flags |= csum_flags; |
| 139 | if (csum_flags & CSUM_DATA_VALID) |
| 140 | dst->m_pkthdr.csum_data = 0xffff; |
| 141 | } |
| 142 | |
| 143 | /* |
| 144 | * Handle link-layer encapsulation requests. |