Table 3: NBD Data Protocol Per Thread, Per Type of Data Request

type caller thread function data on the wire (detail)
        u32 magic
        u32 1
write nbd_request nbd_send_request (<f“Symbol”><\#174> struct u64 unique ID
  (kernel)   nbd_request u32 request offset
        u32 request length
      (<f“Symbol”><\#174>) char[] data
      (<f“Symbol”><\#172>) struct u32magic
  nbd_do_it nbd_read_stat nbd_reply u32 error
  (client)   u64 unique ID
        u32 magic
        u32 0
read nbd_request nbd_send_request (<f“Symbol”><\#174> struct u64 unique ID
  (kernel)   nbd_request u32 request offset
      u32 request length
      (<f“Symbol”><\#172>) struct u32magic
  nbd_do_it nbd_read_stat nbd_reply u32 error
  (client)   u64 unique ID
      (<f“Symbol”><\#174>) char[] data