+ queue_sets = GET_U_1(tptr);
+ tptr+=MPCP_REPORT_QUEUESETS_LEN;
+ ND_PRINT("\n\tTotal Queue-Sets %u", queue_sets);
+
+ for (queue_set = 1; queue_set < queue_sets; queue_set++) {
+ report_bitmap = GET_U_1(tptr);
+ ND_PRINT("\n\t Queue-Set #%u, Report-Bitmap [ %s ]",
+ queue_sets,
+ bittok2str(mpcp_report_bitmap_values, "Unknown", report_bitmap));
+ tptr++;
+
+ report=1;
+ while (report_bitmap != 0) {
+ if (report_bitmap & 1) {
+ ND_PRINT("\n\t Q%u Report, Duration %u ticks",
+ report,
+ GET_BE_U_2(tptr));
+ tptr += 2;
+ }
+ report++;
+ report_bitmap = report_bitmap >> 1;
+ }
+ }
+ break;
+
+ case MPCP_OPCODE_REG_REQ:
+ mpcp_reg_req = (const struct mpcp_reg_req_t *)tptr;
+ ND_PRINT("\n\tFlags [ %s ], Pending-Grants %u",
+ bittok2str(mpcp_reg_req_flag_values, "Reserved", GET_U_1(mpcp_reg_req->flags)),
+ GET_U_1(mpcp_reg_req->pending_grants));
+ break;
+
+ case MPCP_OPCODE_REG:
+ mpcp_reg = (const struct mpcp_reg_t *)tptr;
+ ND_PRINT("\n\tAssigned-Port %u, Flags [ %s ]"
+ "\n\tSync-Time %u ticks, Echoed-Pending-Grants %u",
+ GET_BE_U_2(mpcp_reg->assigned_port),
+ bittok2str(mpcp_reg_flag_values, "Reserved", GET_U_1(mpcp_reg->flags)),
+ GET_BE_U_2(mpcp_reg->sync_time),
+ GET_U_1(mpcp_reg->echoed_pending_grants));
+ break;
+
+ case MPCP_OPCODE_REG_ACK:
+ mpcp_reg_ack = (const struct mpcp_reg_ack_t *)tptr;
+ ND_PRINT("\n\tEchoed-Assigned-Port %u, Flags [ %s ]"
+ "\n\tEchoed-Sync-Time %u ticks",
+ GET_BE_U_2(mpcp_reg_ack->echoed_assigned_port),
+ bittok2str(mpcp_reg_ack_flag_values, "Reserved", GET_U_1(mpcp_reg_ack->flags)),
+ GET_BE_U_2(mpcp_reg_ack->echoed_sync_time));
+ break;
+