+ case CCPOPT_BSDCOMP:
+ if (len < 3) {
+ ND_PRINT(" (length bogus, should be >= 3)");
+ return len;
+ }
+ ND_PRINT(": Version: %u, Dictionary Bits: %u",
+ GET_U_1(p + 2) >> 5,
+ GET_U_1(p + 2) & 0x1f);
+ break;
+ case CCPOPT_MVRCA:
+ if (len < 4) {
+ ND_PRINT(" (length bogus, should be >= 4)");
+ return len;
+ }
+ ND_PRINT(": Features: %u, PxP: %s, History: %u, #CTX-ID: %u",
+ (GET_U_1(p + 2) & 0xc0) >> 6,
+ (GET_U_1(p + 2) & 0x20) ? "Enabled" : "Disabled",
+ GET_U_1(p + 2) & 0x1f,
+ GET_U_1(p + 3));
+ break;
+ case CCPOPT_DEFLATE:
+ if (len < 4) {
+ ND_PRINT(" (length bogus, should be >= 4)");
+ return len;
+ }
+ ND_PRINT(": Window: %uK, Method: %s (0x%x), MBZ: %u, CHK: %u",
+ (GET_U_1(p + 2) & 0xf0) >> 4,
+ ((GET_U_1(p + 2) & 0x0f) == 8) ? "zlib" : "unknown",
+ GET_U_1(p + 2) & 0x0f,
+ (GET_U_1(p + 3) & 0xfc) >> 2,
+ GET_U_1(p + 3) & 0x03);
+ break;
+
+/* XXX: to be supported */
+#if 0