recvpair
recvpair("", -EINVAL, 1, MSG_OOB);
recvpair("x", 1, 1, 0);
recvpair("x", 1, 1, MSG_OOB);
recvpair("", -EAGAIN, 1, 0); /* Drop OOB. */
recvpair("", -EINVAL, 1, MSG_OOB);
recvpair("o", 1, 1, MSG_OOB);
recvpair("hell", 4, 4, 0);
recvpair("hell", 4, 5, 0); /* Break at OOB even with enough buffer. */
recvpair("o", 1, 1, MSG_OOB);
recvpair("", -EAGAIN, 1, 0);
recvpair("o", 1, 1, MSG_OOB);
recvpair("hell", 4, 9, 0); /* Break at OOB even after it's recv()ed. */
recvpair("world", 5, 5, 0);
recvpair("hell", 4, 10, 0); /* Break at OOB even with enough buffer. */
recvpair("world", 5, 10, 0); /* Drop OOB and recv() the next skb. */
recvpair("", -EINVAL, 1, MSG_OOB);
recvpair("hellowo", 7, 10, 0); /* Break at OOB but not at ex-OOB. */
recvpair("r", 1, 1, MSG_OOB);
recvpair("ld", 2, 2, 0);
recvpair("x", 1, 1, 0); /* TCP drops "y" by passing through it. */
recvpair("y", 1, 1, MSG_OOB); /* TCP returns -EINVAL. */
recvpair("y", 1, 1, MSG_OOB);
recvpair("x", 1, 1, 0); /* TCP returns -EAGAIN. */
recvpair("x", 1, 1, MSG_OOB);
recvpair("", -EAGAIN, 1, 0);
recvpair("", -EINVAL, 1, MSG_OOB);
recvpair("x", 1, 1, MSG_OOB);
recvpair("y", 1, 1, MSG_OOB);
recvpair("x", 1, 1, MSG_OOB);
recvpair("y", 1, 1, MSG_OOB);
recvpair("r", 1, 1, MSG_OOB);
recvpair("hellowol", 8, 10, 0); /* TCP recv()s "helloworl", why "r" ?? */
recvpair("d", 1, 1, MSG_OOB);
recvpair("o", 1, 1, MSG_OOB);
recvpair("hell", 4, 4, 0); /* Intentionally stop at ex-OOB. */
recvpair("", -EINVAL, 1, MSG_OOB);
recvpair("x", 1, 1, 0);
recvpair("", -EINVAL, 1, MSG_OOB);
recvpair("hell", 4, 5, 0); /* Break at OOB but not at ex-OOB. */
recvpair("o", 1, 1, 0);
recvpair("o", 1, 1, MSG_OOB);
recvpair("hell", 4, 9, 0); /* Break at OOB even with enough buffer. */
recvpair("world", 5, 6, 0); /* TCP recv()s "oworld", ... "o" ??? */
recvpair("hellowo", 7, 10, 0); /* Break at OOB but not at ex-OOB. */
recvpair("rld", 3, 3, 0);
recvpair("x", 1, 1, 0);
recvpair("y", 1, 1, 0);
recvpair("x", 1, 1, 0); /* TCP recv()s "y". */
recvpair("y", 1, 1, 0); /* TCP returns -EAGAIN. */
recvpair("o", 1, 1, MSG_OOB);
recvpair("hell", 4, 4, 0); /* Intentionally stop at ex-OOB. */