+ break;
+
+ case LMP_OBJ_SERVICE_CONFIG:
+ switch (lmp_obj_ctype) {
+ case LMP_CTYPE_SERVICE_CONFIG_SP:
+ if (obj_tlen != 4) {
+ ND_PRINT(" (not correct for object)");
+ break;
+ }
+ ND_PRINT("\n\t Flags: %s",
+ bittok2str(lmp_obj_service_config_sp_flag_values,
+ "none",
+ GET_U_1(obj_tptr)));
+
+ ND_PRINT("\n\t UNI Version: %u",
+ GET_U_1(obj_tptr + 1));
+
+ break;
+
+ case LMP_CTYPE_SERVICE_CONFIG_CPSA:
+ if (obj_tlen != 16) {
+ ND_PRINT(" (not correct for object)");
+ break;
+ }
+
+ link_type = GET_U_1(obj_tptr);
+
+ ND_PRINT("\n\t Link Type: %s (%u)",
+ tok2str(lmp_sd_service_config_cpsa_link_type_values,
+ "Unknown", link_type),
+ link_type);
+
+ switch (link_type) {
+ case LMP_SD_SERVICE_CONFIG_CPSA_LINK_TYPE_SDH:
+ ND_PRINT("\n\t Signal Type: %s (%u)",
+ tok2str(lmp_sd_service_config_cpsa_signal_type_sdh_values,
+ "Unknown",
+ GET_U_1(obj_tptr + 1)),
+ GET_U_1(obj_tptr + 1));
+ break;
+
+ case LMP_SD_SERVICE_CONFIG_CPSA_LINK_TYPE_SONET:
+ ND_PRINT("\n\t Signal Type: %s (%u)",
+ tok2str(lmp_sd_service_config_cpsa_signal_type_sonet_values,
+ "Unknown",
+ GET_U_1(obj_tptr + 1)),
+ GET_U_1(obj_tptr + 1));
+ break;
+ }
+
+ ND_PRINT("\n\t Transparency: %s",
+ bittok2str(lmp_obj_service_config_cpsa_tp_flag_values,
+ "none",
+ GET_U_1(obj_tptr + 2)));
+
+ ND_PRINT("\n\t Contiguous Concatenation Types: %s",
+ bittok2str(lmp_obj_service_config_cpsa_cct_flag_values,
+ "none",
+ GET_U_1(obj_tptr + 3)));
+
+ ND_PRINT("\n\t Minimum NCC: %u",
+ GET_BE_U_2(obj_tptr + 4));
+
+ ND_PRINT("\n\t Maximum NCC: %u",
+ GET_BE_U_2(obj_tptr + 6));
+
+ ND_PRINT("\n\t Minimum NVC:%u",
+ GET_BE_U_2(obj_tptr + 8));
+
+ ND_PRINT("\n\t Maximum NVC:%u",
+ GET_BE_U_2(obj_tptr + 10));
+
+ ND_PRINT("\n\t Local Interface ID: %s (0x%08x)",
+ GET_IPADDR_STRING(obj_tptr+12),
+ GET_BE_U_4(obj_tptr + 12));
+
+ break;
+
+ case LMP_CTYPE_SERVICE_CONFIG_TRANSPARENCY_TCM:
+ if (obj_tlen != 8) {
+ ND_PRINT(" (not correct for object)");
+ break;
+ }
+
+ ND_PRINT("\n\t Transparency Flags: %s",
+ bittok2str(
+ lmp_obj_service_config_nsa_transparency_flag_values,
+ "none",
+ GET_BE_U_4(obj_tptr)));
+
+ ND_PRINT("\n\t TCM Monitoring Flags: %s",
+ bittok2str(
+ lmp_obj_service_config_nsa_tcm_flag_values,
+ "none",
+ GET_U_1(obj_tptr + 7)));
+
+ break;
+
+ case LMP_CTYPE_SERVICE_CONFIG_NETWORK_DIVERSITY:
+ if (obj_tlen != 4) {
+ ND_PRINT(" (not correct for object)");
+ break;
+ }
+
+ ND_PRINT("\n\t Diversity: Flags: %s",
+ bittok2str(
+ lmp_obj_service_config_nsa_network_diversity_flag_values,
+ "none",
+ GET_U_1(obj_tptr + 3)));
+ break;
+
+ default:
+ hexdump = TRUE;
+ }
+
+ break;
+