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