diff --git a/lib/pnet/packet/in.go b/lib/pnet/packet/in.go
index ae846d0ed0140d6fa8ef7824b694086be0c097d6..5c96fe56786eb21655445150b8052bc8c435fdc3 100644
--- a/lib/pnet/packet/in.go
+++ b/lib/pnet/packet/in.go
@@ -52,7 +52,7 @@ func (T In) done() bool {
 
 func (T In) Type() Type {
 	if T.done() {
-		panic("Read after Send")
+		panic("Read after Done")
 	}
 	return T.buf.typ
 }
@@ -61,7 +61,7 @@ func (T In) Type() Type {
 // NOTE: Full will be invalid after Done is called
 func (T In) Full() []byte {
 	if T.done() {
-		panic("Read after Send")
+		panic("Read after Done")
 	}
 	return T.buf.buf
 }
@@ -75,7 +75,7 @@ func (T In) Remaining() []byte {
 
 func (T In) Reset() {
 	if T.done() {
-		panic("Read after Send")
+		panic("Read after Done")
 	}
 	T.buf.pos = 0
 }
diff --git a/lib/pnet/packet/out.go b/lib/pnet/packet/out.go
index 84b7bda2ec500a11c6582aeb840b45fec70fc421..a030b71f6950c5b22676231f772137cf5107c147 100644
--- a/lib/pnet/packet/out.go
+++ b/lib/pnet/packet/out.go
@@ -14,6 +14,12 @@ type OutBuf struct {
 	rev    int
 }
 
+func MakeOutBuf(buf []byte) OutBuf {
+	return OutBuf{
+		buf: buf,
+	}
+}
+
 func (T *OutBuf) Reset() {
 	T.typ = None
 	T.buf = T.buf[:0]