PDU(Invoke, "...",
	UINT(con, "Continue flag (CON)", 1)
	TYPE(4, 1)
	UINT(gtr, "Group trailer (GTR)", 1)
	UINT(ttr, "Transmission trailer (TTR)", 1)
	UINT(rid, "Re-transmission indicator (RID)", 1)
	UINT(tid, "Transaction ID (TID)", 16)
	UINT(version, "WTP protocol version", 2)
	UINT(tidnew, "TIDnew flag", 1)
	UINT(uack, "User ack flag", 1)
	RESERVED(2)
	UINT(class, "Transaction class (TCL)", 2)
	TPI(con)
	REST(user_data, "Payload")
	, p->class <= 2)

PDU(Result, "...",
	UINT(con, "Continue flag (CON)", 1)
	TYPE(4, 2)
	UINT(gtr, "Group trailer (GTR)", 1)
	UINT(ttr, "Transmission trailer (TTR)", 1)
	UINT(rid, "Re-transmission indicator (RID)", 1)
	UINT(tid, "Transaction ID (TID)", 16)
	TPI(con)
	REST(user_data, "Payload")
	, 1)

PDU(Ack, "...",
	UINT(con, "Continue flag (CON)", 1)
	TYPE(4, 3)
	UINT(tidverify, "TID verify / TID OK flag", 1)
	RESERVED(1)
	UINT(rid, "Re-transmission indicator (RID)", 1)
	UINT(tid, "Transaction ID (TID)", 16)
	TPI(con)
	, 1)

PDU(Abort, "...",
	UINT(con, "Continue flag (CON)", 1)
	TYPE(4, 4)
	UINT(abort_type, "Abort type", 3)
	UINT(tid, "Transaction ID (TID)", 16)
	UINT(abort_reason, "Abort reason", 8)
	TPI(con)
	, p->abort_type <= 1)

PDU(Segmented_Invoke, "...",
	UINT(con, "Continue flag (CON)", 1)
	TYPE(4, 5)
	UINT(gtr, "Group trailer (GTR)", 1)
	UINT(ttr, "Transmission trailer (TTR)", 1)
	UINT(rid, "Re-transmission indicator (RID)", 1)
	UINT(tid, "Transaction ID (TID)", 16)
	UINT(psn, "Packet sequence number", 8)
	TPI(con)
	REST(user_data, "Payload")
	, 1)

PDU(Segmented_result, "...",
	UINT(con, "Continue flag (CON)", 1)
	TYPE(4, 6)
	UINT(gtr, "Group trailer (GTR)", 1)
	UINT(ttr, "Transmission trailer (TTR)", 1)
	UINT(rid, "Re-transmission indicator (RID)", 1)
	UINT(tid, "Transaction ID (TID)", 16)
	UINT(psn, "Packet sequence number", 8)
	TPI(con)
	REST(user_data, "Payload")
	, 1)

PDU(Negative_ack, "...",
	UINT(con, "Continue flag (CON)", 1)
	TYPE(4, 7)
	RESERVED(2)
	UINT(rid, "Re-transmission indicator (RID)", 1)
	UINT(tid, "Transaction ID (TID)", 16)
	UINT(nmissing, "Number of missing packets", 8)
	OCTSTR(missing, "Missing packet PSNs", nmissing)
	TPI(con)
	, 1)
