[Feature][ZXW-41] merged 0601 version

Change-Id: I667af6bb09d65581d455b73f8984c160b2c67ad8
diff --git a/ap/lib/libsoftap/netotherapi.c b/ap/lib/libsoftap/netotherapi.c
index c1d73ce..62edaaf 100755
--- a/ap/lib/libsoftap/netotherapi.c
+++ b/ap/lib/libsoftap/netotherapi.c
@@ -320,6 +320,35 @@
 			return 0;
 		}
 		break;
+	case TXERR:
+		if ((field = getField(semiColon, " ", 10))) {
+			errno = 0;
+			result_data_num = strtoull(field, NULL, 10);
+			if (errno == ERANGE)// kw ERRNO.NOT_CHECKED
+			{
+				printf("strtoull errno %d: %s\n", errno, strerror(errno));
+			}
+			if (result_data_num < 0 || result_data_num > LLONG_MAX-1)
+				result_data_num = 0;
+			*result_data = result_data_num;
+			
+			return 0; //kw 3
+		}
+		break;
+	case TXDROP:
+		if ((field = getField(semiColon, " ", 11))) {
+			errno = 0;
+			result_data_num = strtoull(field, NULL, 10);
+			if (errno == ERANGE)// kw ERRNO.NOT_CHECKED
+			{
+				printf("strtoull errno %d: %s\n", errno, strerror(errno));
+			}
+			if (result_data_num < 0 || result_data_num > LLONG_MAX-1)
+				result_data_num = 0;
+			*result_data = result_data_num;
+			return 0;
+		}
+		break;
 	case RXBYTE:
 		if ((field = getField(semiColon, " ", 0))) {
 			errno = 0;
@@ -349,6 +378,34 @@
 			return 0;
 		}
 		break;
+	case RXERR:
+		if ((field = getField(semiColon, " ", 2))) {
+			errno = 0;
+			result_data_num = strtoull(field, NULL, 10);
+			if (errno == ERANGE)// kw ERRNO.NOT_CHECKED
+			{
+				printf("strtoull errno %d: %s\n", errno, strerror(errno));
+			}
+			if (result_data_num < 0 || result_data_num > LLONG_MAX-1)
+				result_data_num = 0;
+			*result_data = result_data_num;
+			return 0;
+		}
+		break;
+	case RXDROP:
+		if ((field = getField(semiColon, " ", 3))) {
+			errno = 0;
+			result_data_num = strtoull(field, NULL, 10);
+			if (errno == ERANGE)// kw ERRNO.NOT_CHECKED
+			{
+				printf("strtoull errno %d: %s\n", errno, strerror(errno));
+			}
+			if (result_data_num < 0 || result_data_num > LLONG_MAX-1)
+				result_data_num = 0;
+			*result_data = result_data_num;
+			return 0;
+		}
+		break;
 	}
 	return -1;
 }