dump CCLK accuracy/type as part of bs11_config query

diff --git a/src/abis_nm.c b/src/abis_nm.c
index 5fb53d7..9820d97 100644
--- a/src/abis_nm.c
+++ b/src/abis_nm.c
@@ -351,6 +351,8 @@
 		[NM_ATT_BS11_E1_STATE]	=	{ TLV_TYPE_TLV },
 		[NM_ATT_BS11_PLL_MODE]	=	{ TLV_TYPE_TLV },
 		[NM_ATT_BS11_PLL]	=	{ TLV_TYPE_TLV },
+		[NM_ATT_BS11_CCLK_ACCURACY] =	{ TLV_TYPE_TV },
+		[NM_ATT_BS11_CCLK_TYPE] =	{ TLV_TYPE_TV },
 		/* ip.access specifics */
 		[NM_ATT_IPACC_RSL_BSC_IP] =	{ TLV_TYPE_FIXED, 4 },
 		[NM_ATT_IPACC_RSL_BSC_PORT] =	{ TLV_TYPE_FIXED, 2 },
@@ -1837,6 +1839,21 @@
 	return abis_nm_sendmsg(bts, msg);
 }
 
+int abis_nm_bs11_get_cclk(struct gsm_bts *bts)
+{
+	struct abis_om_hdr *oh;
+	struct msgb *msg = nm_msgb_alloc();
+	u_int8_t attr[] = { NM_ATT_BS11_CCLK_ACCURACY,
+			    NM_ATT_BS11_CCLK_TYPE };
+
+	oh = (struct abis_om_hdr *) msgb_put(msg, ABIS_OM_FOM_HDR_SIZE);
+	fill_om_fom_hdr(oh, 2+sizeof(attr), NM_MT_GET_ATTR,
+			NM_OC_BS11, BS11_OBJ_CCLK, 0x00, 0x00);
+	msgb_tlv_put(msg, NM_ATT_LIST_REQ_ATTR, sizeof(attr), attr);
+
+	return abis_nm_sendmsg(bts, msg);
+
+}
 
 //static const u_int8_t bs11_logon_c7[] = { 0x07, 0xd9, 0x01, 0x11, 0x0d, 0x10, 0x20 };
 static const u_int8_t bs11_logon_c8[] = { 0x02 };
diff --git a/src/bs11_config.c b/src/bs11_config.c
index 2a25b60..25ff0e0 100644
--- a/src/bs11_config.c
+++ b/src/bs11_config.c
@@ -306,6 +306,18 @@
 	}
 }
 
+static const char *cclk_acc_name(u_int8_t acc)
+{
+	switch (acc) {
+	case 0:
+		return "Medium";
+	case 1:
+		return "High";
+	default:
+		return "unknown";
+	}
+}
+
 static const char *obj_name(struct abis_om_fom_hdr *foh)
 {
 	static char retbuf[256];
@@ -323,6 +335,9 @@
 		case BS11_OBJ_LI:
 			sprintf(retbuf+strlen(retbuf), "Line Interface ");
 			break;
+		case BS11_OBJ_CCLK:
+			sprintf(retbuf+strlen(retbuf), "CCLK ");
+			break;
 		}
 		break;
 	case NM_OC_SITE_MANAGER:
@@ -403,7 +418,17 @@
 		printf("\tPLL Set Value=%d, Work Value=%d\n",
 			vp[0] << 8 | vp[1], vp[2] << 8 | vp[3]);
 	}
-			
+	if (TLVP_PRESENT(tp, NM_ATT_BS11_CCLK_ACCURACY) &&
+	    TLVP_LEN(tp, NM_ATT_BS11_CCLK_ACCURACY) >= 1) {
+		const u_int8_t *acc = TLVP_VAL(tp, NM_ATT_BS11_CCLK_ACCURACY);
+		printf("\tCCLK Accuracy: %s (%d)\n", cclk_acc_name(*acc), *acc);
+	}
+	if (TLVP_PRESENT(tp, NM_ATT_BS11_CCLK_TYPE) &&
+	    TLVP_LEN(tp, NM_ATT_BS11_CCLK_TYPE) >= 1) {
+		const u_int8_t *acc = TLVP_VAL(tp, NM_ATT_BS11_CCLK_TYPE);
+		printf("\tCCLK Type=%d\n", *acc);
+	}
+
 
 	return 0;
 }
@@ -414,9 +439,10 @@
 	abis_nm_bs11_get_serno(g_bts);
 	abis_nm_bs11_get_oml_tei_ts(g_bts);
 	abis_nm_bs11_get_pll_mode(g_bts);
+	abis_nm_bs11_get_cclk(g_bts);
 	abis_nm_bs11_get_trx_power(&g_bts->trx[0]);
 	abis_nm_bs11_get_trx_power(&g_bts->trx[1]);
-	sleep(5);
+	sleep(1);
 	abis_nm_bs11_factory_logon(g_bts, 0);
 	command = NULL;
 }