Lines Matching +full:short +full:- +full:ping
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
4 * Copyright (c) 2009-2011 Spectra Logic Corporation
53 buflen -= MIN(buflen, new_chars); \
228 buflen -= new_chars; in xnb_unit_test_runner()
237 n_passes = ntests - n_failures; in xnb_unit_test_runner()
414 req->flags = 0; in xnb_ring2pkt_1req()
415 req->size = 69; /* arbitrary number for test */ in xnb_ring2pkt_1req()
445 req->flags = NETTXF_more_data; in xnb_ring2pkt_2req()
446 req->size = 100; in xnb_ring2pkt_2req()
451 req->flags = 0; in xnb_ring2pkt_2req()
452 req->size = 40; in xnb_ring2pkt_2req()
482 req->flags = NETTXF_more_data; in xnb_ring2pkt_3req()
483 req->size = 200; in xnb_ring2pkt_3req()
488 req->flags = NETTXF_more_data; in xnb_ring2pkt_3req()
489 req->size = 40; in xnb_ring2pkt_3req()
494 req->flags = 0; in xnb_ring2pkt_3req()
495 req->size = 50; in xnb_ring2pkt_3req()
527 req->flags = NETTXF_extra_info | NETTXF_more_data; in xnb_ring2pkt_extra()
528 req->size = 150; in xnb_ring2pkt_extra()
533 ext->flags = 0; in xnb_ring2pkt_extra()
534 ext->type = XEN_NETIF_EXTRA_TYPE_GSO; in xnb_ring2pkt_extra()
535 ext->u.gso.size = 250; in xnb_ring2pkt_extra()
536 ext->u.gso.type = XEN_NETIF_GSO_TYPE_TCPV4; in xnb_ring2pkt_extra()
537 ext->u.gso.features = 0; in xnb_ring2pkt_extra()
542 req->flags = 0; in xnb_ring2pkt_extra()
543 req->size = 50; in xnb_ring2pkt_extra()
578 req->flags = NETTXF_more_data; in xnb_ring2pkt_partial()
579 req->size = 150; in xnb_ring2pkt_partial()
607 xnb_unit_pvt.txf.req_prod_pvt = rsize - 2; in xnb_ring2pkt_wraps()
608 xnb_unit_pvt.txf.rsp_cons = rsize - 2; in xnb_ring2pkt_wraps()
609 xnb_unit_pvt.txs->req_prod = rsize - 2; in xnb_ring2pkt_wraps()
610 xnb_unit_pvt.txs->req_event = rsize - 1; in xnb_ring2pkt_wraps()
611 xnb_unit_pvt.txs->rsp_prod = rsize - 2; in xnb_ring2pkt_wraps()
612 xnb_unit_pvt.txs->rsp_event = rsize - 1; in xnb_ring2pkt_wraps()
613 xnb_unit_pvt.txb.rsp_prod_pvt = rsize - 2; in xnb_ring2pkt_wraps()
614 xnb_unit_pvt.txb.req_cons = rsize - 2; in xnb_ring2pkt_wraps()
618 req->flags = NETTXF_more_data; in xnb_ring2pkt_wraps()
619 req->size = 550; in xnb_ring2pkt_wraps()
624 req->flags = NETTXF_more_data; in xnb_ring2pkt_wraps()
625 req->size = 100; in xnb_ring2pkt_wraps()
630 req->flags = 0; in xnb_ring2pkt_wraps()
631 req->size = 50; in xnb_ring2pkt_wraps()
677 req->size = 1000; in xnb_txpkt2rsp_1req()
678 req->flags = 0; in xnb_txpkt2rsp_1req()
691 xnb_unit_pvt.txb.rsp_prod_pvt == xnb_unit_pvt.txs->req_prod); in xnb_txpkt2rsp_1req()
692 XNB_ASSERT(rsp->id == req->id); in xnb_txpkt2rsp_1req()
693 XNB_ASSERT(rsp->status == NETIF_RSP_OKAY); in xnb_txpkt2rsp_1req()
710 req->size = 1000; in xnb_txpkt2rsp_extra()
711 req->flags = NETTXF_extra_info; in xnb_txpkt2rsp_extra()
712 req->id = 69; in xnb_txpkt2rsp_extra()
717 ext->type = XEN_NETIF_EXTRA_TYPE_GSO; in xnb_txpkt2rsp_extra()
718 ext->flags = 0; in xnb_txpkt2rsp_extra()
730 xnb_unit_pvt.txb.rsp_prod_pvt == xnb_unit_pvt.txs->req_prod); in xnb_txpkt2rsp_extra()
733 XNB_ASSERT(rsp->id == req->id); in xnb_txpkt2rsp_extra()
734 XNB_ASSERT(rsp->status == NETIF_RSP_OKAY); in xnb_txpkt2rsp_extra()
738 XNB_ASSERT(rsp->status == NETIF_RSP_NULL); in xnb_txpkt2rsp_extra()
755 req->size = 1000; in xnb_txpkt2rsp_long()
756 req->flags = NETTXF_extra_info | NETTXF_more_data; in xnb_txpkt2rsp_long()
757 req->id = 254; in xnb_txpkt2rsp_long()
762 ext->type = XEN_NETIF_EXTRA_TYPE_GSO; in xnb_txpkt2rsp_long()
763 ext->flags = 0; in xnb_txpkt2rsp_long()
768 req->size = 300; in xnb_txpkt2rsp_long()
769 req->flags = NETTXF_more_data; in xnb_txpkt2rsp_long()
770 req->id = 1034; in xnb_txpkt2rsp_long()
775 req->size = 400; in xnb_txpkt2rsp_long()
776 req->flags = 0; in xnb_txpkt2rsp_long()
777 req->id = 34; in xnb_txpkt2rsp_long()
789 xnb_unit_pvt.txb.rsp_prod_pvt == xnb_unit_pvt.txs->req_prod); in xnb_txpkt2rsp_long()
792 XNB_ASSERT(rsp->id == in xnb_txpkt2rsp_long()
793 RING_GET_REQUEST(&xnb_unit_pvt.txf, 0)->id); in xnb_txpkt2rsp_long()
794 XNB_ASSERT(rsp->status == NETIF_RSP_OKAY); in xnb_txpkt2rsp_long()
798 XNB_ASSERT(rsp->status == NETIF_RSP_NULL); in xnb_txpkt2rsp_long()
802 XNB_ASSERT(rsp->id == in xnb_txpkt2rsp_long()
803 RING_GET_REQUEST(&xnb_unit_pvt.txf, 2)->id); in xnb_txpkt2rsp_long()
804 XNB_ASSERT(rsp->status == NETIF_RSP_OKAY); in xnb_txpkt2rsp_long()
808 XNB_ASSERT(rsp->id == in xnb_txpkt2rsp_long()
809 RING_GET_REQUEST(&xnb_unit_pvt.txf, 3)->id); in xnb_txpkt2rsp_long()
810 XNB_ASSERT(rsp->status == NETIF_RSP_OKAY); in xnb_txpkt2rsp_long()
830 req->size = 1000; in xnb_txpkt2rsp_invalid()
831 req->flags = NETTXF_extra_info; in xnb_txpkt2rsp_invalid()
832 req->id = 69; in xnb_txpkt2rsp_invalid()
837 ext->type = 0xFF; /* Invalid extra type */ in xnb_txpkt2rsp_invalid()
838 ext->flags = 0; in xnb_txpkt2rsp_invalid()
851 xnb_unit_pvt.txb.rsp_prod_pvt == xnb_unit_pvt.txs->req_prod); in xnb_txpkt2rsp_invalid()
854 XNB_ASSERT(rsp->id == req->id); in xnb_txpkt2rsp_invalid()
855 XNB_ASSERT(rsp->status == NETIF_RSP_ERROR); in xnb_txpkt2rsp_invalid()
859 XNB_ASSERT(rsp->status == NETIF_RSP_NULL); in xnb_txpkt2rsp_invalid()
875 req->size = 1000; in xnb_txpkt2rsp_error()
876 req->flags = 0; in xnb_txpkt2rsp_error()
889 xnb_unit_pvt.txb.rsp_prod_pvt == xnb_unit_pvt.txs->req_prod); in xnb_txpkt2rsp_error()
890 XNB_ASSERT(rsp->id == req->id); in xnb_txpkt2rsp_error()
891 XNB_ASSERT(rsp->status == NETIF_RSP_ERROR); in xnb_txpkt2rsp_error()
910 xnb_unit_pvt.txf.req_prod_pvt = rsize - 2; in xnb_txpkt2rsp_wraps()
911 xnb_unit_pvt.txf.rsp_cons = rsize - 2; in xnb_txpkt2rsp_wraps()
912 xnb_unit_pvt.txs->req_prod = rsize - 2; in xnb_txpkt2rsp_wraps()
913 xnb_unit_pvt.txs->req_event = rsize - 1; in xnb_txpkt2rsp_wraps()
914 xnb_unit_pvt.txs->rsp_prod = rsize - 2; in xnb_txpkt2rsp_wraps()
915 xnb_unit_pvt.txs->rsp_event = rsize - 1; in xnb_txpkt2rsp_wraps()
916 xnb_unit_pvt.txb.rsp_prod_pvt = rsize - 2; in xnb_txpkt2rsp_wraps()
917 xnb_unit_pvt.txb.req_cons = rsize - 2; in xnb_txpkt2rsp_wraps()
921 req->flags = NETTXF_more_data; in xnb_txpkt2rsp_wraps()
922 req->size = 550; in xnb_txpkt2rsp_wraps()
923 req->id = 1; in xnb_txpkt2rsp_wraps()
928 req->flags = NETTXF_more_data; in xnb_txpkt2rsp_wraps()
929 req->size = 100; in xnb_txpkt2rsp_wraps()
930 req->id = 2; in xnb_txpkt2rsp_wraps()
935 req->flags = 0; in xnb_txpkt2rsp_wraps()
936 req->size = 50; in xnb_txpkt2rsp_wraps()
937 req->id = 3; in xnb_txpkt2rsp_wraps()
947 xnb_unit_pvt.txb.rsp_prod_pvt == xnb_unit_pvt.txs->req_prod); in xnb_txpkt2rsp_wraps()
950 XNB_ASSERT(rsp->id == req->id); in xnb_txpkt2rsp_wraps()
951 XNB_ASSERT(rsp->status == NETIF_RSP_OKAY); in xnb_txpkt2rsp_wraps()
968 req->flags = flags; in xnb_get1pkt()
969 req->size = size; in xnb_get1pkt()
996 * xnb_pkt2mbufc on short packet that can fit in an mbuf internal buffer
1001 const size_t size = MINCLSIZE - 1; in xnb_pkt2mbufc_short()
1013 * xnb_pkt2mbufc on short packet whose checksum was validated by the netfron
1018 const size_t size = MINCLSIZE - 1; in xnb_pkt2mbufc_csum()
1026 XNB_ASSERT(pMbuf->m_pkthdr.csum_flags & CSUM_IP_CHECKED); in xnb_pkt2mbufc_csum()
1027 XNB_ASSERT(pMbuf->m_pkthdr.csum_flags & CSUM_IP_VALID); in xnb_pkt2mbufc_csum()
1028 XNB_ASSERT(pMbuf->m_pkthdr.csum_flags & CSUM_DATA_VALID); in xnb_pkt2mbufc_csum()
1029 XNB_ASSERT(pMbuf->m_pkthdr.csum_flags & CSUM_PSEUDO_HDR); in xnb_pkt2mbufc_csum()
1083 for (m = pMbuf; m != NULL; m = m->m_next) { in xnb_pkt2mbufc_2cluster()
1112 * xnb_txpkt2gnttab on a short packet, that can fit in one mbuf internal buffer
1118 const size_t size = MINCLSIZE - 1; in xnb_txpkt2gnttab_short()
1125 req->flags = 0; in xnb_txpkt2gnttab_short()
1126 req->size = size; in xnb_txpkt2gnttab_short()
1127 req->gref = 7; in xnb_txpkt2gnttab_short()
1128 req->offset = 17; in xnb_txpkt2gnttab_short()
1142 XNB_ASSERT(xnb_unit_pvt.gnttab[0].source.offset == req->offset); in xnb_txpkt2gnttab_short()
1165 req->flags = NETTXF_more_data; in xnb_txpkt2gnttab_2req()
1166 req->size = 1900; in xnb_txpkt2gnttab_2req()
1167 req->gref = 7; in xnb_txpkt2gnttab_2req()
1168 req->offset = 0; in xnb_txpkt2gnttab_2req()
1173 req->flags = 0; in xnb_txpkt2gnttab_2req()
1174 req->size = 500; in xnb_txpkt2gnttab_2req()
1175 req->gref = 8; in xnb_txpkt2gnttab_2req()
1176 req->offset = 0; in xnb_txpkt2gnttab_2req()
1211 req->flags = 0; in xnb_txpkt2gnttab_2cluster()
1212 req->size = data_this_transaction; in xnb_txpkt2gnttab_2cluster()
1213 req->gref = 8; in xnb_txpkt2gnttab_2cluster()
1214 req->offset = 0; in xnb_txpkt2gnttab_2cluster()
1240 mtod(pMbuf->m_next, vm_offset_t))); in xnb_txpkt2gnttab_2cluster()
1246 mtod(pMbuf->m_next, vm_offset_t))); in xnb_txpkt2gnttab_2cluster()
1261 mtod(pMbuf->m_next, vm_offset_t))); in xnb_txpkt2gnttab_2cluster()
1273 * xnb_update_mbufc on a short packet that only has one gnttab entry
1278 const size_t size = MINCLSIZE - 1; in xnb_update_mbufc_short()
1285 req->flags = 0; in xnb_update_mbufc_short()
1286 req->size = size; in xnb_update_mbufc_short()
1287 req->gref = 7; in xnb_update_mbufc_short()
1288 req->offset = 17; in xnb_update_mbufc_short()
1303 XNB_ASSERT(pMbuf->m_len == size); in xnb_update_mbufc_short()
1304 XNB_ASSERT(pMbuf->m_pkthdr.len == size); in xnb_update_mbufc_short()
1321 req->flags = NETTXF_more_data; in xnb_update_mbufc_2req()
1322 req->size = 1900; in xnb_update_mbufc_2req()
1323 req->gref = 7; in xnb_update_mbufc_2req()
1324 req->offset = 0; in xnb_update_mbufc_2req()
1329 req->flags = 0; in xnb_update_mbufc_2req()
1330 req->size = 500; in xnb_update_mbufc_2req()
1331 req->gref = 8; in xnb_update_mbufc_2req()
1332 req->offset = 0; in xnb_update_mbufc_2req()
1349 XNB_ASSERT(pMbuf->m_pkthdr.len == 1900); in xnb_update_mbufc_2req()
1350 XNB_ASSERT(pMbuf->m_len == 1900); in xnb_update_mbufc_2req()
1369 req->flags = 0; in xnb_update_mbufc_2cluster()
1370 req->size = data_this_transaction; in xnb_update_mbufc_2cluster()
1371 req->gref = 8; in xnb_update_mbufc_2cluster()
1372 req->offset = 0; in xnb_update_mbufc_2cluster()
1390 XNB_ASSERT(pMbuf->m_pkthdr.len == data_this_transaction); in xnb_update_mbufc_2cluster()
1391 XNB_ASSERT(pMbuf->m_len == MCLBYTES); in xnb_update_mbufc_2cluster()
1392 XNB_ASSERT(pMbuf->m_next->m_len == MCLBYTES); in xnb_update_mbufc_2cluster()
1393 XNB_ASSERT(pMbuf->m_next->m_next->m_len == 1); in xnb_update_mbufc_2cluster()
1397 XNB_ASSERT(pMbuf->m_pkthdr.len == data_this_transaction); in xnb_update_mbufc_2cluster()
1398 XNB_ASSERT(pMbuf->m_len == 2 * MCLBYTES); in xnb_update_mbufc_2cluster()
1399 XNB_ASSERT(pMbuf->m_next->m_len == 1); in xnb_update_mbufc_2cluster()
1419 XNB_ASSERT(mbuf->m_len == 0); in xnb_mbufc2pkt_empty()
1427 /** xnb_mbufc2pkt on a short mbufc */
1437 mbuf->m_flags |= M_PKTHDR; in xnb_mbufc2pkt_short()
1438 mbuf->m_pkthdr.len = size; in xnb_mbufc2pkt_short()
1439 mbuf->m_len = size; in xnb_mbufc2pkt_short()
1463 mbuf->m_flags |= M_PKTHDR; in xnb_mbufc2pkt_1cluster()
1464 mbuf->m_pkthdr.len = size; in xnb_mbufc2pkt_1cluster()
1465 mbuf->m_len = size; in xnb_mbufc2pkt_1cluster()
1479 /** xnb_mbufc2pkt on a two-mbuf chain with short data regions */
1483 size_t size1 = MHLEN - 5; in xnb_mbufc2pkt_2short()
1484 size_t size2 = MHLEN - 15; in xnb_mbufc2pkt_2short()
1493 mbufc->m_flags |= M_PKTHDR; in xnb_mbufc2pkt_2short()
1501 mbufc2->m_pkthdr.len = size1 + size2; in xnb_mbufc2pkt_2short()
1502 mbufc2->m_len = size1; in xnb_mbufc2pkt_2short()
1512 if (mbufc2->m_next != NULL) { in xnb_mbufc2pkt_2short()
1535 mbufc->m_flags |= M_PKTHDR; in xnb_mbufc2pkt_long()
1537 mbufc->m_pkthdr.len = size; in xnb_mbufc2pkt_long()
1539 for (m = mbufc; m != NULL; m = m->m_next) { in xnb_mbufc2pkt_long()
1540 m->m_len = MAX(M_TRAILINGSPACE(m), size_remaining); in xnb_mbufc2pkt_long()
1541 size_remaining -= m->m_len; in xnb_mbufc2pkt_long()
1548 XNB_ASSERT(pkt.car_size = mbufc->m_len); in xnb_mbufc2pkt_long()
1574 mbufc->m_flags |= M_PKTHDR; in xnb_mbufc2pkt_extra()
1575 mbufc->m_pkthdr.len = size; in xnb_mbufc2pkt_extra()
1576 mbufc->m_pkthdr.csum_flags |= CSUM_TSO; in xnb_mbufc2pkt_extra()
1577 mbufc->m_pkthdr.tso_segsz = TCP_MSS - 40; in xnb_mbufc2pkt_extra()
1579 for (m = mbufc; m != NULL; m = m->m_next) { in xnb_mbufc2pkt_extra()
1580 m->m_len = MAX(M_TRAILINGSPACE(m), size_remaining); in xnb_mbufc2pkt_extra()
1581 size_remaining -= m->m_len; in xnb_mbufc2pkt_extra()
1588 XNB_ASSERT(pkt.car_size = mbufc->m_len); in xnb_mbufc2pkt_extra()
1593 XNB_ASSERT(pkt.extra.u.gso.size = mbufc->m_pkthdr.tso_segsz); in xnb_mbufc2pkt_extra()
1615 mbufc->m_flags |= M_PKTHDR; in xnb_mbufc2pkt_nospace()
1617 mbufc->m_pkthdr.len = size; in xnb_mbufc2pkt_nospace()
1619 for (m = mbufc; m != NULL; m = m->m_next) { in xnb_mbufc2pkt_nospace()
1620 m->m_len = MAX(M_TRAILINGSPACE(m), size_remaining); in xnb_mbufc2pkt_nospace()
1621 size_remaining -= m->m_len; in xnb_mbufc2pkt_nospace()
1653 /** xnb_rxpkt2gnttab on a short packet without extra data */
1665 mbuf->m_flags |= M_PKTHDR; in xnb_rxpkt2gnttab_short()
1666 mbuf->m_pkthdr.len = size; in xnb_rxpkt2gnttab_short()
1667 mbuf->m_len = size; in xnb_rxpkt2gnttab_short()
1672 req->gref = 7; in xnb_rxpkt2gnttab_short()
1709 mbuf->m_flags |= M_PKTHDR; in xnb_rxpkt2gnttab_2req()
1710 mbuf->m_pkthdr.len = size; in xnb_rxpkt2gnttab_2req()
1711 mbuf->m_len = size; in xnb_rxpkt2gnttab_2req()
1715 for (i = 0, m=mbuf; m != NULL; i++, m = m->m_next) { in xnb_rxpkt2gnttab_2req()
1718 req->gref = i; in xnb_rxpkt2gnttab_2req()
1719 req->id = 5; in xnb_rxpkt2gnttab_2req()
1768 * xnb_rxpkt2rsp on a short packet with no extras
1783 mbuf->m_flags |= M_PKTHDR; in xnb_rxpkt2rsp_short()
1784 mbuf->m_pkthdr.len = size; in xnb_rxpkt2rsp_short()
1785 mbuf->m_len = size; in xnb_rxpkt2rsp_short()
1789 req->gref = 7; in xnb_rxpkt2rsp_short()
1792 xnb_unit_pvt.rxs->req_prod = start + 1; in xnb_rxpkt2rsp_short()
1793 xnb_unit_pvt.rxs->rsp_prod = start; in xnb_rxpkt2rsp_short()
1804 XNB_ASSERT(rsp->id == req->id); in xnb_rxpkt2rsp_short()
1805 XNB_ASSERT(rsp->offset == 0); in xnb_rxpkt2rsp_short()
1806 XNB_ASSERT((rsp->flags & (NETRXF_more_data | NETRXF_extra_info)) == 0); in xnb_rxpkt2rsp_short()
1807 XNB_ASSERT(rsp->status == size); in xnb_rxpkt2rsp_short()
1825 uint16_t mss = TCP_MSS - 40; in xnb_rxpkt2rsp_extra()
1836 mbufc->m_flags |= M_PKTHDR; in xnb_rxpkt2rsp_extra()
1837 mbufc->m_pkthdr.len = size; in xnb_rxpkt2rsp_extra()
1838 mbufc->m_pkthdr.csum_flags |= CSUM_TSO; in xnb_rxpkt2rsp_extra()
1839 mbufc->m_pkthdr.tso_segsz = mss; in xnb_rxpkt2rsp_extra()
1840 mbufc->m_len = size; in xnb_rxpkt2rsp_extra()
1844 req->id = id; in xnb_rxpkt2rsp_extra()
1845 req->gref = gref; in xnb_rxpkt2rsp_extra()
1847 req->id = id + 1; in xnb_rxpkt2rsp_extra()
1848 req->gref = gref + 1; in xnb_rxpkt2rsp_extra()
1851 xnb_unit_pvt.rxs->req_prod = start + 2; in xnb_rxpkt2rsp_extra()
1852 xnb_unit_pvt.rxs->rsp_prod = start; in xnb_rxpkt2rsp_extra()
1863 XNB_ASSERT(rsp->id == id); in xnb_rxpkt2rsp_extra()
1864 XNB_ASSERT((rsp->flags & NETRXF_more_data) == 0); in xnb_rxpkt2rsp_extra()
1865 XNB_ASSERT((rsp->flags & NETRXF_extra_info)); in xnb_rxpkt2rsp_extra()
1866 XNB_ASSERT((rsp->flags & NETRXF_data_validated)); in xnb_rxpkt2rsp_extra()
1867 XNB_ASSERT((rsp->flags & NETRXF_csum_blank)); in xnb_rxpkt2rsp_extra()
1868 XNB_ASSERT(rsp->status == size); in xnb_rxpkt2rsp_extra()
1872 XNB_ASSERT(ext->type == XEN_NETIF_EXTRA_TYPE_GSO); in xnb_rxpkt2rsp_extra()
1873 XNB_ASSERT(! (ext->flags & XEN_NETIF_EXTRA_FLAG_MORE)); in xnb_rxpkt2rsp_extra()
1874 XNB_ASSERT(ext->u.gso.size == mss); in xnb_rxpkt2rsp_extra()
1875 XNB_ASSERT(ext->u.gso.type == XEN_NETIF_EXTRA_TYPE_GSO); in xnb_rxpkt2rsp_extra()
1901 mbuf->m_flags |= M_PKTHDR; in xnb_rxpkt2rsp_2slots()
1902 mbuf->m_pkthdr.len = size; in xnb_rxpkt2rsp_2slots()
1903 if (mbuf->m_next != NULL) { in xnb_rxpkt2rsp_2slots()
1905 mbuf->m_len = first_len; in xnb_rxpkt2rsp_2slots()
1906 mbuf->m_next->m_len = size - first_len; in xnb_rxpkt2rsp_2slots()
1909 mbuf->m_len = size; in xnb_rxpkt2rsp_2slots()
1914 req->gref = gref1; in xnb_rxpkt2rsp_2slots()
1915 req->id = id1; in xnb_rxpkt2rsp_2slots()
1917 req->gref = gref2; in xnb_rxpkt2rsp_2slots()
1918 req->id = id2; in xnb_rxpkt2rsp_2slots()
1921 xnb_unit_pvt.rxs->req_prod = start + 2; in xnb_rxpkt2rsp_2slots()
1922 xnb_unit_pvt.rxs->rsp_prod = start; in xnb_rxpkt2rsp_2slots()
1933 XNB_ASSERT(rsp->id == id1); in xnb_rxpkt2rsp_2slots()
1934 XNB_ASSERT(rsp->offset == 0); in xnb_rxpkt2rsp_2slots()
1935 XNB_ASSERT((rsp->flags & NETRXF_extra_info) == 0); in xnb_rxpkt2rsp_2slots()
1936 XNB_ASSERT(rsp->flags & NETRXF_more_data); in xnb_rxpkt2rsp_2slots()
1937 XNB_ASSERT(rsp->status == PAGE_SIZE); in xnb_rxpkt2rsp_2slots()
1940 XNB_ASSERT(rsp->id == id2); in xnb_rxpkt2rsp_2slots()
1941 XNB_ASSERT(rsp->offset == 0); in xnb_rxpkt2rsp_2slots()
1942 XNB_ASSERT((rsp->flags & NETRXF_extra_info) == 0); in xnb_rxpkt2rsp_2slots()
1943 XNB_ASSERT(! (rsp->flags & NETRXF_more_data)); in xnb_rxpkt2rsp_2slots()
1944 XNB_ASSERT(rsp->status == size - PAGE_SIZE); in xnb_rxpkt2rsp_2slots()
1949 /** xnb_rxpkt2rsp on a grant table with two sub-page entries */
1954 size_t size1 = MHLEN - 5; in xnb_rxpkt2rsp_2short()
1955 size_t size2 = MHLEN - 15; in xnb_rxpkt2rsp_2short()
1968 mbufc->m_flags |= M_PKTHDR; in xnb_rxpkt2rsp_2short()
1971 XNB_ASSERT(mbufc->m_next != NULL); in xnb_rxpkt2rsp_2short()
1972 mbufc->m_pkthdr.len = size1 + size2; in xnb_rxpkt2rsp_2short()
1973 mbufc->m_len = size1; in xnb_rxpkt2rsp_2short()
1974 mbufc->m_next->m_len = size2; in xnb_rxpkt2rsp_2short()
1979 req->gref = gref; in xnb_rxpkt2rsp_2short()
1980 req->id = id; in xnb_rxpkt2rsp_2short()
1983 xnb_unit_pvt.rxs->req_prod = start + 1; in xnb_rxpkt2rsp_2short()
1984 xnb_unit_pvt.rxs->rsp_prod = start; in xnb_rxpkt2rsp_2short()
1995 XNB_ASSERT(rsp->id == id); in xnb_rxpkt2rsp_2short()
1996 XNB_ASSERT(rsp->status == size1 + size2); in xnb_rxpkt2rsp_2short()
1997 XNB_ASSERT(rsp->offset == 0); in xnb_rxpkt2rsp_2short()
1998 XNB_ASSERT(! (rsp->flags & (NETRXF_more_data | NETRXF_extra_info))); in xnb_rxpkt2rsp_2short()
2007 * xnb(xnb_rxpkt2rsp:1720): Got error -1 for hypervisor gnttab_copy status
2025 mbuf->m_flags |= M_PKTHDR; in xnb_rxpkt2rsp_copyerror()
2026 mbuf->m_pkthdr.len = size; in xnb_rxpkt2rsp_copyerror()
2027 mbuf->m_len = size; in xnb_rxpkt2rsp_copyerror()
2031 req->gref = gref; in xnb_rxpkt2rsp_copyerror()
2032 req->id = id; in xnb_rxpkt2rsp_copyerror()
2035 xnb_unit_pvt.rxs->req_prod = start + 1; in xnb_rxpkt2rsp_copyerror()
2036 xnb_unit_pvt.rxs->rsp_prod = start; in xnb_rxpkt2rsp_copyerror()
2038 req->gref = canary; in xnb_rxpkt2rsp_copyerror()
2039 req->id = canary; in xnb_rxpkt2rsp_copyerror()
2052 XNB_ASSERT(rsp->id == id); in xnb_rxpkt2rsp_copyerror()
2053 XNB_ASSERT(rsp->status == NETIF_RSP_ERROR); in xnb_rxpkt2rsp_copyerror()
2055 XNB_ASSERT(req->gref == canary); in xnb_rxpkt2rsp_copyerror()
2056 XNB_ASSERT(req->id == canary); in xnb_rxpkt2rsp_copyerror()
2078 eh->ether_dhost[0] = 0xff; in xnb_add_mbuf_cksum_arp()
2079 eh->ether_dhost[1] = 0xff; in xnb_add_mbuf_cksum_arp()
2080 eh->ether_dhost[2] = 0xff; in xnb_add_mbuf_cksum_arp()
2081 eh->ether_dhost[3] = 0xff; in xnb_add_mbuf_cksum_arp()
2082 eh->ether_dhost[4] = 0xff; in xnb_add_mbuf_cksum_arp()
2083 eh->ether_dhost[5] = 0xff; in xnb_add_mbuf_cksum_arp()
2084 eh->ether_shost[0] = 0x00; in xnb_add_mbuf_cksum_arp()
2085 eh->ether_shost[1] = 0x15; in xnb_add_mbuf_cksum_arp()
2086 eh->ether_shost[2] = 0x17; in xnb_add_mbuf_cksum_arp()
2087 eh->ether_shost[3] = 0xe9; in xnb_add_mbuf_cksum_arp()
2088 eh->ether_shost[4] = 0x30; in xnb_add_mbuf_cksum_arp()
2089 eh->ether_shost[5] = 0x68; in xnb_add_mbuf_cksum_arp()
2090 eh->ether_type = htons(ETHERTYPE_ARP); in xnb_add_mbuf_cksum_arp()
2092 ep->ea_hdr.ar_hrd = htons(ARPHRD_ETHER); in xnb_add_mbuf_cksum_arp()
2093 ep->ea_hdr.ar_pro = htons(ETHERTYPE_IP); in xnb_add_mbuf_cksum_arp()
2094 ep->ea_hdr.ar_hln = 6; in xnb_add_mbuf_cksum_arp()
2095 ep->ea_hdr.ar_pln = 4; in xnb_add_mbuf_cksum_arp()
2096 ep->ea_hdr.ar_op = htons(ARPOP_REQUEST); in xnb_add_mbuf_cksum_arp()
2097 ep->arp_sha[0] = 0x00; in xnb_add_mbuf_cksum_arp()
2098 ep->arp_sha[1] = 0x15; in xnb_add_mbuf_cksum_arp()
2099 ep->arp_sha[2] = 0x17; in xnb_add_mbuf_cksum_arp()
2100 ep->arp_sha[3] = 0xe9; in xnb_add_mbuf_cksum_arp()
2101 ep->arp_sha[4] = 0x30; in xnb_add_mbuf_cksum_arp()
2102 ep->arp_sha[5] = 0x68; in xnb_add_mbuf_cksum_arp()
2103 ep->arp_spa[0] = 0xc0; in xnb_add_mbuf_cksum_arp()
2104 ep->arp_spa[1] = 0xa8; in xnb_add_mbuf_cksum_arp()
2105 ep->arp_spa[2] = 0x0a; in xnb_add_mbuf_cksum_arp()
2106 ep->arp_spa[3] = 0x04; in xnb_add_mbuf_cksum_arp()
2107 bzero(&(ep->arp_tha), ETHER_ADDR_LEN); in xnb_add_mbuf_cksum_arp()
2108 ep->arp_tpa[0] = 0xc0; in xnb_add_mbuf_cksum_arp()
2109 ep->arp_tpa[1] = 0xa8; in xnb_add_mbuf_cksum_arp()
2110 ep->arp_tpa[2] = 0x0a; in xnb_add_mbuf_cksum_arp()
2111 ep->arp_tpa[3] = 0x06; in xnb_add_mbuf_cksum_arp()
2114 mbufc->m_len = pkt_len; in xnb_add_mbuf_cksum_arp()
2115 mbufc->m_pkthdr.len = pkt_len; in xnb_add_mbuf_cksum_arp()
2116 /* indicate that the netfront uses hw-assisted checksums */ in xnb_add_mbuf_cksum_arp()
2117 mbufc->m_pkthdr.csum_flags = CSUM_IP_CHECKED | CSUM_IP_VALID | in xnb_add_mbuf_cksum_arp()
2144 eh->ether_dhost[0] = 0x00; in xnb_fill_eh_and_ip()
2145 eh->ether_dhost[1] = 0x16; in xnb_fill_eh_and_ip()
2146 eh->ether_dhost[2] = 0x3e; in xnb_fill_eh_and_ip()
2147 eh->ether_dhost[3] = 0x23; in xnb_fill_eh_and_ip()
2148 eh->ether_dhost[4] = 0x50; in xnb_fill_eh_and_ip()
2149 eh->ether_dhost[5] = 0x0b; in xnb_fill_eh_and_ip()
2150 eh->ether_shost[0] = 0x00; in xnb_fill_eh_and_ip()
2151 eh->ether_shost[1] = 0x16; in xnb_fill_eh_and_ip()
2152 eh->ether_shost[2] = 0x30; in xnb_fill_eh_and_ip()
2153 eh->ether_shost[3] = 0x00; in xnb_fill_eh_and_ip()
2154 eh->ether_shost[4] = 0x00; in xnb_fill_eh_and_ip()
2155 eh->ether_shost[5] = 0x00; in xnb_fill_eh_and_ip()
2156 eh->ether_type = htons(ETHERTYPE_IP); in xnb_fill_eh_and_ip()
2158 iph->ip_hl = 0x5; /* 5 dwords == 20 bytes */ in xnb_fill_eh_and_ip()
2159 iph->ip_v = 4; /* IP v4 */ in xnb_fill_eh_and_ip()
2160 iph->ip_tos = 0; in xnb_fill_eh_and_ip()
2161 iph->ip_len = htons(ip_len); in xnb_fill_eh_and_ip()
2162 iph->ip_id = htons(ip_id); in xnb_fill_eh_and_ip()
2163 iph->ip_off = htons(ip_off); in xnb_fill_eh_and_ip()
2164 iph->ip_ttl = 64; in xnb_fill_eh_and_ip()
2165 iph->ip_p = ip_p; in xnb_fill_eh_and_ip()
2166 iph->ip_sum = htons(ip_sum); in xnb_fill_eh_and_ip()
2167 iph->ip_src.s_addr = htonl(0xc0a80a04); in xnb_fill_eh_and_ip()
2168 iph->ip_dst.s_addr = htonl(0xc0a80a05); in xnb_fill_eh_and_ip()
2178 const size_t icmp_len = 64; /* set by ping(1) */ in xnb_add_mbuf_cksum_icmp()
2193 /* Fill in an example ICMP ping request */ in xnb_add_mbuf_cksum_icmp()
2198 icmph->icmp_type = ICMP_ECHO; in xnb_add_mbuf_cksum_icmp()
2199 icmph->icmp_code = 0; in xnb_add_mbuf_cksum_icmp()
2200 icmph->icmp_cksum = htons(ICMP_CSUM); in xnb_add_mbuf_cksum_icmp()
2201 icmph->icmp_id = htons(31492); in xnb_add_mbuf_cksum_icmp()
2202 icmph->icmp_seq = htons(0); in xnb_add_mbuf_cksum_icmp()
2204 * ping(1) uses bcopy to insert a native-endian timeval after icmp_seq. in xnb_add_mbuf_cksum_icmp()
2207 tv_field = (uint32_t*)(&(icmph->icmp_hun)); in xnb_add_mbuf_cksum_icmp()
2219 mbufc->m_len = pkt_len; in xnb_add_mbuf_cksum_icmp()
2220 mbufc->m_pkthdr.len = pkt_len; in xnb_add_mbuf_cksum_icmp()
2221 /* indicate that the netfront uses hw-assisted checksums */ in xnb_add_mbuf_cksum_icmp()
2222 mbufc->m_pkthdr.csum_flags = CSUM_IP_CHECKED | CSUM_IP_VALID | in xnb_add_mbuf_cksum_icmp()
2230 XNB_ASSERT(iph->ip_sum == htons(IP_CSUM)); in xnb_add_mbuf_cksum_icmp()
2256 /* Fill in an example UDP packet made by 'uname | nc -u <host> 2222 */ in xnb_add_mbuf_cksum_udp()
2261 udp->uh_sport = htons(0x51ae); in xnb_add_mbuf_cksum_udp()
2262 udp->uh_dport = htons(0x08ae); in xnb_add_mbuf_cksum_udp()
2263 udp->uh_ulen = htons(udp_len); in xnb_add_mbuf_cksum_udp()
2264 udp->uh_sum = htons(0xbaad); /* xnb_add_mbuf_cksum will fill this in */ in xnb_add_mbuf_cksum_udp()
2276 mbufc->m_len = pkt_len; in xnb_add_mbuf_cksum_udp()
2277 mbufc->m_pkthdr.len = pkt_len; in xnb_add_mbuf_cksum_udp()
2278 /* indicate that the netfront uses hw-assisted checksums */ in xnb_add_mbuf_cksum_udp()
2279 mbufc->m_pkthdr.csum_flags = CSUM_IP_CHECKED | CSUM_IP_VALID | in xnb_add_mbuf_cksum_udp()
2286 XNB_ASSERT(iph->ip_sum == htons(IP_CSUM)); in xnb_add_mbuf_cksum_udp()
2287 XNB_ASSERT(udp->uh_sum == htons(UDP_CSUM)); in xnb_add_mbuf_cksum_udp()
2311 tcp->th_sport = htons(0x9cd9); in xnb_fill_tcp()
2312 tcp->th_dport = htons(2222); in xnb_fill_tcp()
2313 tcp->th_seq = htonl(0x00f72b10); in xnb_fill_tcp()
2314 tcp->th_ack = htonl(0x7f37ba6c); in xnb_fill_tcp()
2316 tcp->th_off = 8; in xnb_fill_tcp()
2317 tcp->th_win = htons(0x410); in xnb_fill_tcp()
2319 tcp->th_sum = htons(0xbaad); in xnb_fill_tcp()
2320 tcp->th_urp = htons(0); in xnb_fill_tcp()
2366 mbufc->m_len = pkt_len; in xnb_add_mbuf_cksum_tcp()
2367 mbufc->m_pkthdr.len = pkt_len; in xnb_add_mbuf_cksum_tcp()
2368 /* indicate that the netfront uses hw-assisted checksums */ in xnb_add_mbuf_cksum_tcp()
2369 mbufc->m_pkthdr.csum_flags = CSUM_IP_CHECKED | CSUM_IP_VALID | in xnb_add_mbuf_cksum_tcp()
2376 XNB_ASSERT(iph->ip_sum == htons(IP_CSUM)); in xnb_add_mbuf_cksum_tcp()
2377 XNB_ASSERT(tcp->th_sum == htons(TCP_CSUM)); in xnb_add_mbuf_cksum_tcp()
2406 iph->ip_sum = htons(IP_CSUM); in xnb_add_mbuf_cksum_tcp_swcksum()
2408 tcp->th_sum = htons(TCP_CSUM); in xnb_add_mbuf_cksum_tcp_swcksum()
2411 mbufc->m_len = pkt_len; in xnb_add_mbuf_cksum_tcp_swcksum()
2412 mbufc->m_pkthdr.len = pkt_len; in xnb_add_mbuf_cksum_tcp_swcksum()
2413 /* indicate that the netfront does not use hw-assisted checksums */ in xnb_add_mbuf_cksum_tcp_swcksum()
2414 mbufc->m_pkthdr.csum_flags = 0; in xnb_add_mbuf_cksum_tcp_swcksum()
2420 XNB_ASSERT(iph->ip_sum == htons(IP_CSUM)); in xnb_add_mbuf_cksum_tcp_swcksum()
2421 XNB_ASSERT(tcp->th_sum == htons(TCP_CSUM)); in xnb_add_mbuf_cksum_tcp_swcksum()
2451 const char mystr[] = "-27"; in xnb_sscanf_hhd()
2460 XNB_ASSERT(dest[i] == (i == 4 ? -27 : 'X')); in xnb_sscanf_hhd()
2469 const char mystr[] = "-123456789012345"; /* about -2**47 */ in xnb_sscanf_lld()
2479 -123456789012345)); in xnb_sscanf_lld()
2502 * sscanf on unsigned short short n's