mirror of
https://github.com/breeze303/nss-packages.git
synced 2025-12-16 08:44:52 +00:00
Merge remote-tracking branch 'qos/NSS-12.5-K6.x' into NSS-12.5-K6.x
This commit is contained in:
commit
2b94eaf3ba
@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=qca-nss-cfi
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/nss-cfi.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
||||
72
qca-nss-cfi/patches/0007-cryptoapi-v2.0-fix-crash.patch
Normal file
72
qca-nss-cfi/patches/0007-cryptoapi-v2.0-fix-crash.patch
Normal file
@ -0,0 +1,72 @@
|
||||
--- a/cryptoapi/v2.0/nss_cryptoapi_aead.c
|
||||
+++ b/cryptoapi/v2.0/nss_cryptoapi_aead.c
|
||||
@@ -97,9 +97,9 @@ int nss_cryptoapi_aead_init(struct crypt
|
||||
bool need_fallback;
|
||||
|
||||
BUG_ON(!ctx);
|
||||
- NSS_CRYPTOAPI_SET_MAGIC(ctx);
|
||||
|
||||
memset(ctx, 0, sizeof(struct nss_cryptoapi_ctx));
|
||||
+ NSS_CRYPTOAPI_SET_MAGIC(ctx);
|
||||
|
||||
ctx->user = g_cryptoapi.user;
|
||||
ctx->stats.init++;
|
||||
--- a/cryptoapi/v2.0/nss_cryptoapi_ahash.c
|
||||
+++ b/cryptoapi/v2.0/nss_cryptoapi_ahash.c
|
||||
@@ -231,8 +231,10 @@ int nss_cryptoapi_ahash_setkey(struct cr
|
||||
void nss_cryptoapi_ahash_done(void *app_data, struct nss_crypto_hdr *ch, uint8_t status)
|
||||
{
|
||||
struct ahash_request *req = app_data;
|
||||
- struct nss_cryptoapi_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
+ struct crypto_ahash *ahash = crypto_ahash_reqtfm(req);
|
||||
+ struct nss_cryptoapi_ctx *ctx = crypto_ahash_ctx(ahash);
|
||||
struct nss_cryptoapi_req_ctx *rctx = ahash_request_ctx(req);
|
||||
+
|
||||
uint8_t *hw_hmac;
|
||||
int error;
|
||||
|
||||
@@ -268,7 +270,7 @@ void nss_cryptoapi_ahash_done(void *app_
|
||||
* Decrement cryptoapi reference
|
||||
*/
|
||||
nss_cryptoapi_ref_dec(ctx);
|
||||
- req->base.complete(&req->base, error);
|
||||
+ ahash_request_complete(req, error);
|
||||
}
|
||||
|
||||
/*
|
||||
--- a/cryptoapi/v2.0/nss_cryptoapi_skcipher.c
|
||||
+++ b/cryptoapi/v2.0/nss_cryptoapi_skcipher.c
|
||||
@@ -92,9 +92,9 @@ int nss_cryptoapi_skcipher_init(struct c
|
||||
struct nss_cryptoapi_ctx *ctx = crypto_skcipher_ctx(tfm);
|
||||
|
||||
BUG_ON(!ctx);
|
||||
- NSS_CRYPTOAPI_SET_MAGIC(ctx);
|
||||
|
||||
memset(ctx, 0, sizeof(struct nss_cryptoapi_ctx));
|
||||
+ NSS_CRYPTOAPI_SET_MAGIC(ctx);
|
||||
|
||||
ctx->user = g_cryptoapi.user;
|
||||
ctx->stats.init++;
|
||||
@@ -220,11 +220,11 @@ int nss_cryptoapi_skcipher_setkey(struct
|
||||
void nss_cryptoapi_skcipher_done(void *app_data, struct nss_crypto_hdr *ch, uint8_t status)
|
||||
{
|
||||
struct skcipher_request *req = app_data;
|
||||
- struct nss_cryptoapi_ctx *ctx = skcipher_request_ctx(req);
|
||||
+ struct crypto_skcipher *cipher = crypto_skcipher_reqtfm(req);
|
||||
+ struct nss_cryptoapi_ctx *ctx = crypto_skcipher_ctx(cipher);
|
||||
int error;
|
||||
|
||||
BUG_ON(!ch);
|
||||
-
|
||||
/*
|
||||
* Check cryptoapi context magic number.
|
||||
*/
|
||||
@@ -256,7 +256,7 @@ void nss_cryptoapi_skcipher_done(void *a
|
||||
* Decrement cryptoapi reference
|
||||
*/
|
||||
nss_cryptoapi_ref_dec(ctx);
|
||||
- req->base.complete(&req->base, error);
|
||||
+ skcipher_request_complete(req, error);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=qca-nss-crypto
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/nss-crypto.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
@ -28,7 +28,7 @@ define KernelPackage/qca-nss-crypto
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Cryptographic API modules
|
||||
DEPENDS:=@TARGET_qualcommax +kmod-qca-nss-drv +@NSS_DRV_CRYPTO_ENABLE @BROKEN
|
||||
DEPENDS:=@TARGET_qualcommax +kmod-qca-nss-drv +nss-eip-firmware +@NSS_DRV_CRYPTO_ENABLE
|
||||
TITLE:=Kernel driver for NSS crypto driver
|
||||
FILES:=$(PKG_BUILD_DIR)/$(NSS_CRYPTO_DIR)/src/qca-nss-crypto.ko \
|
||||
$(PKG_BUILD_DIR)/$(NSS_CRYPTO_DIR)/tool/qca-nss-crypto-tool.ko
|
||||
|
||||
@ -0,0 +1,76 @@
|
||||
commit 1db9e5510558817d138de87f5a4942293a9fcb91
|
||||
Author: syed touqeer pasha <quic_spasha@quicinc.com>
|
||||
AuthorDate: Thu May 16 14:59:48 2024 +0530
|
||||
Commit: syed touqeer pasha <quic_spasha@quicinc.com>
|
||||
CommitDate: Thu May 16 14:59:48 2024 +0530
|
||||
|
||||
[qca-nss-drv] Add missing error code for wifili pkg.
|
||||
|
||||
Add missing error code between nss fw and nss drv.
|
||||
|
||||
Change-Id: I3f81da10b33fd15b1817a40eb906df9642a10d98
|
||||
Signed-off-by: syed touqeer pasha <quic_spasha@quicinc.com>
|
||||
|
||||
--- a/exports/nss_wifili_if.h
|
||||
+++ b/exports/nss_wifili_if.h
|
||||
@@ -392,6 +392,60 @@ enum nss_wifili_error_types {
|
||||
/**< Invalid TLV length. */
|
||||
NSS_WIFILI_EMESG_RX_BUF_LEN_INVALID,
|
||||
/**< Invalid Rx buffer length. */
|
||||
+ NSS_WIFILI_EMSG_INVALID_PDEV_ID,
|
||||
+ /**< Invalid pdev id from host. */
|
||||
+ NSS_WIFILI_EMSG_NO_PDEV_PRESENT,
|
||||
+ /**< Pdev corresponding to this pdev id is not present. */
|
||||
+ NSS_WIFILI_EMESG_WDS_UPDATE_FAIL,
|
||||
+ /**< Wds peer ast update failed. */
|
||||
+ NSS_WIFILI_EMSG_VLAN_ID_SET_FAIL,
|
||||
+ /**< Vlan id set failed. */
|
||||
+ NSS_WIFILI_EMSG_PDEV_UPDATE_INVALID_RADIOID_FAIL,
|
||||
+ /**< Pdev update failed due to invalid radio id. */
|
||||
+ NSS_WIFILI_EMSG_PDEV_UPDATE_INVALID_LMACID_FAIL,
|
||||
+ /**< Pdev update failed due to invalid lmac id. */
|
||||
+ NSS_WIFILI_EMSG_PDEV_UPDATE_INVALID_TARGETPDEVID_FAIL,
|
||||
+ /**< Pdev update failed due to invalid target pdev id. */
|
||||
+ NSS_WIFILI_EMESG_PEER_AST_FLOWID_MAP_VAPID_INVALID_FAIL,
|
||||
+ /**< Peer ast flow map failed due to invalid vdev_id. */
|
||||
+ NSS_WIFILI_EMESG_PEER_AST_FLOWID_MAP_VDEV_NULL_FAIL,
|
||||
+ /**< Peer ast flow map failed due to vdev null. */
|
||||
+ NSS_WIFILI_EMESG_PEER_AST_FLOWID_MAP_PEERID_INVALID_FAIL,
|
||||
+ /**< Peer ast flow map failed due to invalid peer_id. */
|
||||
+ NSS_WIFILI_EMSG_PEER_AST_FLOWID_MAP_STA_VAP_FAIL,
|
||||
+ /**< Peer ast flowid map failed due to sta vap. */
|
||||
+ NSS_WIFILI_EMESG_PEER_AST_FLOWID_MAP_PEERID_MISMATCH_FAIL,
|
||||
+ /**< Peer ast flow map failed due to mismatched peer_id. */
|
||||
+ NSS_WIFILI_EMESG_PEER_AST_FLOWID_MAP_PEER_NULL_FAIL,
|
||||
+ /**< Peer ast flow map failed due to peer null. */
|
||||
+ NSS_WIFILI_EMSG_PEER_AST_FLOWID_MAP_AST_MISMATCH_FAIL,
|
||||
+ /**< Peer ast flow map failed due to mismatched ast index. */
|
||||
+ NSS_WIFILI_EMSG_INVALID_V3_STATS_TYPE,
|
||||
+ /**< Invalid v3 stats type. */
|
||||
+ NSS_WIFILI_EMSG_ISOLATION_SET_FAIL,
|
||||
+ /**< Peer isolation set failed. */
|
||||
+ NSS_WIFILI_EMESG_WDS_ALREADY_PRESENT,
|
||||
+ /**< Wds peer ast add failed. */
|
||||
+ NSS_WIFILI_EMSG_STATS_CLR_VDEV_NULL_FAIL,
|
||||
+ /**< Statistics clear failed due to null vdev. */
|
||||
+ NSS_WIFILI_EMSG_INVALID_VDEV_ID,
|
||||
+ /**< Invalid vdev id from host. */
|
||||
+ NSS_WIFILI_EMSG_PDEV_INIT_FAIL_INVALID_THREAD_SCHEME_ID,
|
||||
+ /**< Incorrect scheme ID sent from host. */
|
||||
+ NSS_WIFILI_EMSG_PEER_WDS_4ADDR_EVENT_INV_PEER,
|
||||
+ /**< Invalid peer ID sent from host. */
|
||||
+ NSS_WIFILI_EMSG_PEER_WDS_INVALID_IFNUM,
|
||||
+ /**< Invalid peer ID sent from host. */
|
||||
+ NSS_WIFILI_EMSG_PEER_AUTH_FLAG_UPDATE_FAIL,
|
||||
+ /**< Peer authentication flag update failed. */
|
||||
+ NSS_WIFILI_EMSG_PEER_TEARDOWN_ALLOC_FAIL,
|
||||
+ /**< Alloc fail in peer tear down path. */
|
||||
+ NSS_WIFILI_EMSG_TX_CAPTURE_MODE_UPDATE_FAIL,
|
||||
+ /**< Tx capture mode update failure. */
|
||||
+ NSS_WIFILI_EMSG_PEER_MEMORY_INSUFFICIENT_FROM_HOST,
|
||||
+ /**< Peer memory from host is less than NSS peer struct. */
|
||||
+ NSS_WIFILI_EMSG_DUPLICATE_MPASS_ID_SET,
|
||||
+ /**< Duplicate mpass vlan id set. */
|
||||
NSS_WIFILI_EMSG_UNKNOWN
|
||||
/**< Unknown error message. */
|
||||
};
|
||||
39
qca-nss-drv/patches-11.4/0024-fix-mesh-stats-naming.patch
Normal file
39
qca-nss-drv/patches-11.4/0024-fix-mesh-stats-naming.patch
Normal file
@ -0,0 +1,39 @@
|
||||
--- a/nss_wifi_mesh_strings.c
|
||||
+++ b/nss_wifi_mesh_strings.c
|
||||
@@ -80,8 +80,8 @@ struct nss_stats_info nss_wifi_mesh_stri
|
||||
{"not_found", NSS_STATS_TYPE_SPECIAL},
|
||||
{"delete_success", NSS_STATS_TYPE_SPECIAL},
|
||||
{"update_success", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_path_expired", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_path_refresh_needed", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"path_expired", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"path_refresh_needed", NSS_STATS_TYPE_SPECIAL},
|
||||
{"add_requests", NSS_STATS_TYPE_SPECIAL},
|
||||
{"del_requests", NSS_STATS_TYPE_SPECIAL},
|
||||
{"update_requests", NSS_STATS_TYPE_SPECIAL},
|
||||
@@ -91,8 +91,8 @@ struct nss_stats_info nss_wifi_mesh_stri
|
||||
{"metric_updations", NSS_STATS_TYPE_SPECIAL},
|
||||
{"block_mesh_fwd_updations", NSS_STATS_TYPE_SPECIAL},
|
||||
{"delete_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_path_dummy_add_failures",NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_path_dummy_add_success", NSS_STATS_TYPE_SPECIAL}
|
||||
+ {"path_dummy_add_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"path_dummy_add_success", NSS_STATS_TYPE_SPECIAL}
|
||||
|
||||
};
|
||||
|
||||
@@ -126,10 +126,10 @@ struct nss_stats_info nss_wifi_mesh_stri
|
||||
{"update_requests", NSS_STATS_TYPE_SPECIAL},
|
||||
{"mda_updations", NSS_STATS_TYPE_SPECIAL},
|
||||
{"flag_updations", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_proxy_path_dummy_lookup_success", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_proxy_path_dummy_lookup_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_proxy_path_dummy_add_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_proxy_path_dummy_add_success", NSS_STATS_TYPE_SPECIAL}
|
||||
+ {"proxy_path_dummy_lookup_success", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"proxy_path_dummy_lookup_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"proxy_path_dummy_add_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"proxy_path_dummy_add_success", NSS_STATS_TYPE_SPECIAL}
|
||||
};
|
||||
|
||||
/*
|
||||
@ -0,0 +1,76 @@
|
||||
commit 1db9e5510558817d138de87f5a4942293a9fcb91
|
||||
Author: syed touqeer pasha <quic_spasha@quicinc.com>
|
||||
AuthorDate: Thu May 16 14:59:48 2024 +0530
|
||||
Commit: syed touqeer pasha <quic_spasha@quicinc.com>
|
||||
CommitDate: Thu May 16 14:59:48 2024 +0530
|
||||
|
||||
[qca-nss-drv] Add missing error code for wifili pkg.
|
||||
|
||||
Add missing error code between nss fw and nss drv.
|
||||
|
||||
Change-Id: I3f81da10b33fd15b1817a40eb906df9642a10d98
|
||||
Signed-off-by: syed touqeer pasha <quic_spasha@quicinc.com>
|
||||
|
||||
--- a/exports/nss_wifili_if.h
|
||||
+++ b/exports/nss_wifili_if.h
|
||||
@@ -404,8 +404,60 @@ enum nss_wifili_error_types {
|
||||
/**< Invalid TLV length. */
|
||||
NSS_WIFILI_EMESG_RX_BUF_LEN_INVALID,
|
||||
/**< Invalid Rx buffer length. */
|
||||
+ NSS_WIFILI_EMSG_INVALID_PDEV_ID,
|
||||
+ /**< Invalid pdev id from host. */
|
||||
+ NSS_WIFILI_EMSG_NO_PDEV_PRESENT,
|
||||
+ /**< Pdev corresponding to this pdev id is not present. */
|
||||
+ NSS_WIFILI_EMESG_WDS_UPDATE_FAIL,
|
||||
+ /**< Wds peer ast update failed. */
|
||||
+ NSS_WIFILI_EMSG_VLAN_ID_SET_FAIL,
|
||||
+ /**< Vlan id set failed. */
|
||||
+ NSS_WIFILI_EMSG_PDEV_UPDATE_INVALID_RADIOID_FAIL,
|
||||
+ /**< Pdev update failed due to invalid radio id. */
|
||||
+ NSS_WIFILI_EMSG_PDEV_UPDATE_INVALID_LMACID_FAIL,
|
||||
+ /**< Pdev update failed due to invalid lmac id. */
|
||||
+ NSS_WIFILI_EMSG_PDEV_UPDATE_INVALID_TARGETPDEVID_FAIL,
|
||||
+ /**< Pdev update failed due to invalid target pdev id. */
|
||||
+ NSS_WIFILI_EMESG_PEER_AST_FLOWID_MAP_VAPID_INVALID_FAIL,
|
||||
+ /**< Peer ast flow map failed due to invalid vdev_id. */
|
||||
+ NSS_WIFILI_EMESG_PEER_AST_FLOWID_MAP_VDEV_NULL_FAIL,
|
||||
+ /**< Peer ast flow map failed due to vdev null. */
|
||||
+ NSS_WIFILI_EMESG_PEER_AST_FLOWID_MAP_PEERID_INVALID_FAIL,
|
||||
+ /**< Peer ast flow map failed due to invalid peer_id. */
|
||||
+ NSS_WIFILI_EMSG_PEER_AST_FLOWID_MAP_STA_VAP_FAIL,
|
||||
+ /**< Peer ast flowid map failed due to sta vap. */
|
||||
+ NSS_WIFILI_EMESG_PEER_AST_FLOWID_MAP_PEERID_MISMATCH_FAIL,
|
||||
+ /**< Peer ast flow map failed due to mismatched peer_id. */
|
||||
+ NSS_WIFILI_EMESG_PEER_AST_FLOWID_MAP_PEER_NULL_FAIL,
|
||||
+ /**< Peer ast flow map failed due to peer null. */
|
||||
+ NSS_WIFILI_EMSG_PEER_AST_FLOWID_MAP_AST_MISMATCH_FAIL,
|
||||
+ /**< Peer ast flow map failed due to mismatched ast index. */
|
||||
+ NSS_WIFILI_EMSG_INVALID_V3_STATS_TYPE,
|
||||
+ /**< Invalid v3 stats type. */
|
||||
+ NSS_WIFILI_EMSG_ISOLATION_SET_FAIL,
|
||||
+ /**< Peer isolation set failed. */
|
||||
+ NSS_WIFILI_EMESG_WDS_ALREADY_PRESENT,
|
||||
+ /**< Wds peer ast add failed. */
|
||||
+ NSS_WIFILI_EMSG_STATS_CLR_VDEV_NULL_FAIL,
|
||||
+ /**< Statistics clear failed due to null vdev. */
|
||||
+ NSS_WIFILI_EMSG_INVALID_VDEV_ID,
|
||||
+ /**< Invalid vdev id from host. */
|
||||
+ NSS_WIFILI_EMSG_PDEV_INIT_FAIL_INVALID_THREAD_SCHEME_ID,
|
||||
+ /**< Incorrect scheme ID sent from host. */
|
||||
+ NSS_WIFILI_EMSG_PEER_WDS_4ADDR_EVENT_INV_PEER,
|
||||
+ /**< Invalid peer ID sent from host. */
|
||||
+ NSS_WIFILI_EMSG_PEER_WDS_INVALID_IFNUM,
|
||||
+ /**< Invalid peer ID sent from host. */
|
||||
+ NSS_WIFILI_EMSG_PEER_AUTH_FLAG_UPDATE_FAIL,
|
||||
+ /**< Peer authentication flag update failed. */
|
||||
+ NSS_WIFILI_EMSG_PEER_TEARDOWN_ALLOC_FAIL,
|
||||
+ /**< Alloc fail in peer tear down path. */
|
||||
NSS_WIFILI_EMSG_TX_CAPTURE_MODE_UPDATE_FAIL,
|
||||
/**< Tx capture mode update failure. */
|
||||
+ NSS_WIFILI_EMSG_PEER_MEMORY_INSUFFICIENT_FROM_HOST,
|
||||
+ /**< Peer memory from host is less than NSS peer struct. */
|
||||
+ NSS_WIFILI_EMSG_DUPLICATE_MPASS_ID_SET,
|
||||
+ /**< Duplicate mpass vlan id set. */
|
||||
NSS_WIFILI_EMSG_UNKNOWN
|
||||
/**< Unknown error message. */
|
||||
};
|
||||
39
qca-nss-drv/patches/0024-fix-mesh-stats-naming.patch
Normal file
39
qca-nss-drv/patches/0024-fix-mesh-stats-naming.patch
Normal file
@ -0,0 +1,39 @@
|
||||
--- a/nss_wifi_mesh_strings.c
|
||||
+++ b/nss_wifi_mesh_strings.c
|
||||
@@ -80,8 +80,8 @@ struct nss_stats_info nss_wifi_mesh_stri
|
||||
{"not_found", NSS_STATS_TYPE_SPECIAL},
|
||||
{"delete_success", NSS_STATS_TYPE_SPECIAL},
|
||||
{"update_success", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_path_expired", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_path_refresh_needed", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"path_expired", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"path_refresh_needed", NSS_STATS_TYPE_SPECIAL},
|
||||
{"add_requests", NSS_STATS_TYPE_SPECIAL},
|
||||
{"del_requests", NSS_STATS_TYPE_SPECIAL},
|
||||
{"update_requests", NSS_STATS_TYPE_SPECIAL},
|
||||
@@ -91,8 +91,8 @@ struct nss_stats_info nss_wifi_mesh_stri
|
||||
{"metric_updations", NSS_STATS_TYPE_SPECIAL},
|
||||
{"block_mesh_fwd_updations", NSS_STATS_TYPE_SPECIAL},
|
||||
{"delete_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_path_dummy_add_failures",NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_path_dummy_add_success", NSS_STATS_TYPE_SPECIAL}
|
||||
+ {"path_dummy_add_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"path_dummy_add_success", NSS_STATS_TYPE_SPECIAL}
|
||||
|
||||
};
|
||||
|
||||
@@ -126,10 +126,10 @@ struct nss_stats_info nss_wifi_mesh_stri
|
||||
{"update_requests", NSS_STATS_TYPE_SPECIAL},
|
||||
{"mda_updations", NSS_STATS_TYPE_SPECIAL},
|
||||
{"flag_updations", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_proxy_path_dummy_lookup_success", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_proxy_path_dummy_lookup_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_proxy_path_dummy_add_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
- {"mesh_proxy_path_dummy_add_success", NSS_STATS_TYPE_SPECIAL}
|
||||
+ {"proxy_path_dummy_lookup_success", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"proxy_path_dummy_lookup_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"proxy_path_dummy_add_failures", NSS_STATS_TYPE_SPECIAL},
|
||||
+ {"proxy_path_dummy_add_success", NSS_STATS_TYPE_SPECIAL}
|
||||
};
|
||||
|
||||
/*
|
||||
@ -1,14 +1,14 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=qca-nss-ecm
|
||||
PKG_RELEASE:=4
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-nss-ecm.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2024-06-20
|
||||
PKG_SOURCE_VERSION:=92c7fa1
|
||||
PKG_MIRROR_HASH:=d69d09fe8e3d6339085854de4f5a44dbfdc9648f5d5f9001a874ac177e2bf16b
|
||||
QSDK_VERSION:=12.5
|
||||
PKG_SOURCE_DATE:=2024-09-02
|
||||
PKG_SOURCE_VERSION:=bd5057b
|
||||
PKG_MIRROR_HASH:=b50130ee65b575226e1d715d38b09cc496a901ea1d2ef48a83e727d61e0d8283
|
||||
QSDK_VERSION:=12.5.5
|
||||
PKG_VERSION:=$(QSDK_VERSION).$(subst -,.,$(PKG_SOURCE_DATE))~$(PKG_SOURCE_VERSION)
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
@ -32,7 +32,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
|
||||
ecm-y := \
|
||||
frontends/cmn/ecm_ae_classifier.o \
|
||||
@@ -115,10 +117,18 @@ ccflags-$(ECM_INTERFACE_BOND_ENABLE) +=
|
||||
@@ -117,10 +119,18 @@ ccflags-$(ECM_INTERFACE_BOND_ENABLE) +=
|
||||
# Define ECM_INTERFACE_PPPOE_ENABLE=y in order
|
||||
# to enable support for PPPoE acceleration.
|
||||
# #############################################################################
|
||||
@ -52,7 +52,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
# Define ECM_INTERFACE_L2TPV2_ENABLE=y in order
|
||||
# to enable support for l2tpv2 acceleration.
|
||||
# #############################################################################
|
||||
@@ -151,6 +161,12 @@ endif
|
||||
@@ -153,6 +163,12 @@ endif
|
||||
ccflags-$(ECM_INTERFACE_PPP_ENABLE) += -DECM_INTERFACE_PPP_ENABLE
|
||||
|
||||
# #############################################################################
|
||||
@ -65,7 +65,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
# Define ECM_INTERFACE_GRE_TAP_ENABLE=y in order
|
||||
# to enable support for GRE TAP interface.
|
||||
# #############################################################################
|
||||
@@ -233,7 +249,9 @@ ccflags-$(ECM_INTERFACE_OVS_BRIDGE_ENABL
|
||||
@@ -235,7 +251,9 @@ ccflags-$(ECM_INTERFACE_OVS_BRIDGE_ENABL
|
||||
# #############################################################################
|
||||
# Define ECM_INTERFACE_VLAN_ENABLE=y in order to enable support for VLAN
|
||||
# #############################################################################
|
||||
@ -76,7 +76,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
ccflags-$(ECM_INTERFACE_VLAN_ENABLE) += -DECM_INTERFACE_VLAN_ENABLE
|
||||
|
||||
# #############################################################################
|
||||
@@ -275,7 +293,9 @@ ccflags-$(ECM_CLASSIFIER_OVS_ENABLE) +=
|
||||
@@ -279,7 +297,9 @@ ccflags-$(ECM_CLASSIFIER_OVS_ENABLE) +=
|
||||
# #############################################################################
|
||||
# Define ECM_CLASSIFIER_MARK_ENABLE=y in order to enable mark classifier.
|
||||
# #############################################################################
|
||||
@ -87,7 +87,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
ecm-$(ECM_CLASSIFIER_MARK_ENABLE) += ecm_classifier_mark.o
|
||||
ccflags-$(ECM_CLASSIFIER_MARK_ENABLE) += -DECM_CLASSIFIER_MARK_ENABLE
|
||||
|
||||
@@ -299,7 +319,9 @@ ccflags-$(ECM_CLASSIFIER_NL_ENABLE) += -
|
||||
@@ -303,7 +323,9 @@ ccflags-$(ECM_CLASSIFIER_NL_ENABLE) += -
|
||||
# #############################################################################
|
||||
# Define ECM_CLASSIFIER_DSCP_ENABLE=y in order to enable DSCP classifier.
|
||||
# #############################################################################
|
||||
@ -98,7 +98,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
ecm-$(ECM_CLASSIFIER_DSCP_ENABLE) += ecm_classifier_dscp.o
|
||||
ccflags-$(ECM_CLASSIFIER_DSCP_ENABLE) += -DECM_CLASSIFIER_DSCP_ENABLE
|
||||
ccflags-$(ECM_CLASSIFIER_DSCP_IGS) += -DECM_CLASSIFIER_DSCP_IGS
|
||||
@@ -318,7 +340,9 @@ ccflags-$(ECM_CLASSIFIER_HYFI_ENABLE) +=
|
||||
@@ -322,7 +344,9 @@ ccflags-$(ECM_CLASSIFIER_HYFI_ENABLE) +=
|
||||
# the Parental Controls subsystem classifier in ECM. Currently disabled until
|
||||
# customers require it / if they need to integrate their Parental Controls with it.
|
||||
# #############################################################################
|
||||
@ -109,7 +109,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
ecm-$(ECM_CLASSIFIER_PCC_ENABLE) += ecm_classifier_pcc.o
|
||||
ccflags-$(ECM_CLASSIFIER_PCC_ENABLE) += -DECM_CLASSIFIER_PCC_ENABLE
|
||||
|
||||
@@ -367,27 +391,36 @@ ccflags-$(ECM_NON_PORTED_SUPPORT_ENABLE)
|
||||
@@ -371,27 +395,36 @@ ccflags-$(ECM_NON_PORTED_SUPPORT_ENABLE)
|
||||
# #############################################################################
|
||||
# Define ECM_STATE_OUTPUT_ENABLE=y to support XML state output
|
||||
# #############################################################################
|
||||
@ -149,7 +149,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
ccflags-$(ECM_TRACKER_DPI_SUPPORT_ENABLE) += -DECM_TRACKER_DPI_SUPPORT_ENABLE
|
||||
|
||||
# #############################################################################
|
||||
@@ -395,14 +428,18 @@ ccflags-$(ECM_TRACKER_DPI_SUPPORT_ENABLE
|
||||
@@ -399,14 +432,18 @@ ccflags-$(ECM_TRACKER_DPI_SUPPORT_ENABLE
|
||||
# support for the database keeping lists of connections that are assigned
|
||||
# on a per TYPE of classifier basis.
|
||||
# #############################################################################
|
||||
@ -252,7 +252,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
|
||||
--- a/ecm_interface.c
|
||||
+++ b/ecm_interface.c
|
||||
@@ -1525,6 +1525,7 @@ struct neighbour *ecm_interface_ipv6_nei
|
||||
@@ -1531,6 +1531,7 @@ struct neighbour *ecm_interface_ipv6_nei
|
||||
*/
|
||||
bool ecm_interface_is_pptp(struct sk_buff *skb, const struct net_device *out)
|
||||
{
|
||||
@ -260,7 +260,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
struct net_device *in;
|
||||
|
||||
/*
|
||||
@@ -1549,6 +1550,7 @@ bool ecm_interface_is_pptp(struct sk_buf
|
||||
@@ -1555,6 +1556,7 @@ bool ecm_interface_is_pptp(struct sk_buf
|
||||
}
|
||||
|
||||
dev_put(in);
|
||||
@ -268,7 +268,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1561,6 +1563,7 @@ bool ecm_interface_is_pptp(struct sk_buf
|
||||
@@ -1567,6 +1569,7 @@ bool ecm_interface_is_pptp(struct sk_buf
|
||||
*/
|
||||
bool ecm_interface_is_l2tp_packet_by_version(struct sk_buff *skb, const struct net_device *out, int ver)
|
||||
{
|
||||
@ -276,7 +276,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
uint32_t flag = 0;
|
||||
struct net_device *in;
|
||||
|
||||
@@ -1593,6 +1596,7 @@ bool ecm_interface_is_l2tp_packet_by_ver
|
||||
@@ -1599,6 +1602,7 @@ bool ecm_interface_is_l2tp_packet_by_ver
|
||||
}
|
||||
|
||||
dev_put(in);
|
||||
@ -284,7 +284,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1605,6 +1609,7 @@ bool ecm_interface_is_l2tp_packet_by_ver
|
||||
@@ -1611,6 +1615,7 @@ bool ecm_interface_is_l2tp_packet_by_ver
|
||||
*/
|
||||
bool ecm_interface_is_l2tp_pptp(struct sk_buff *skb, const struct net_device *out)
|
||||
{
|
||||
@ -292,7 +292,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
struct net_device *in;
|
||||
|
||||
/*
|
||||
@@ -1627,6 +1632,7 @@ bool ecm_interface_is_l2tp_pptp(struct s
|
||||
@@ -1633,6 +1638,7 @@ bool ecm_interface_is_l2tp_pptp(struct s
|
||||
}
|
||||
|
||||
dev_put(in);
|
||||
@ -300,7 +300,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -7182,6 +7188,7 @@ static void ecm_interface_regenerate_con
|
||||
@@ -7292,6 +7298,7 @@ static void ecm_interface_regenerate_con
|
||||
return;
|
||||
}
|
||||
|
||||
@ -308,7 +308,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
for (dir = 0; dir < ECM_DB_OBJ_DIR_MAX; dir++) {
|
||||
/*
|
||||
* Re-generate all connections associated with this interface
|
||||
@@ -7197,6 +7204,7 @@ static void ecm_interface_regenerate_con
|
||||
@@ -7307,6 +7314,7 @@ static void ecm_interface_regenerate_con
|
||||
ci[dir] = cin;
|
||||
}
|
||||
}
|
||||
@ -318,7 +318,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
/*
|
||||
--- a/frontends/ecm_front_end_common.c
|
||||
+++ b/frontends/ecm_front_end_common.c
|
||||
@@ -538,6 +538,7 @@ bool ecm_front_end_gre_proto_is_accel_al
|
||||
@@ -594,6 +594,7 @@ bool ecm_front_end_gre_proto_is_accel_al
|
||||
struct nf_conntrack_tuple *reply_tuple,
|
||||
int ip_version, uint16_t offset)
|
||||
{
|
||||
@ -326,7 +326,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
struct net_device *dev;
|
||||
struct gre_base_hdr *greh;
|
||||
|
||||
@@ -549,10 +550,12 @@ bool ecm_front_end_gre_proto_is_accel_al
|
||||
@@ -605,10 +606,12 @@ bool ecm_front_end_gre_proto_is_accel_al
|
||||
/*
|
||||
* Case 1: PPTP locally terminated
|
||||
*/
|
||||
@ -339,7 +339,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
|
||||
/*
|
||||
* Case 2: PPTP pass through
|
||||
@@ -680,6 +683,10 @@ bool ecm_front_end_gre_proto_is_accel_al
|
||||
@@ -736,6 +739,10 @@ bool ecm_front_end_gre_proto_is_accel_al
|
||||
*/
|
||||
DEBUG_TRACE("%px: GRE IPv%d pass through non NAT - allow acceleration\n", skb, ip_version);
|
||||
return true;
|
||||
|
||||
@ -39,7 +39,7 @@ instead or relying on a downstream api not present upstream.
|
||||
spin_lock_bh(&ct->lock);
|
||||
--- a/frontends/sfe/ecm_sfe_ipv4.c
|
||||
+++ b/frontends/sfe/ecm_sfe_ipv4.c
|
||||
@@ -563,7 +563,8 @@ sync_conntrack:
|
||||
@@ -576,7 +576,8 @@ sync_conntrack:
|
||||
#else
|
||||
timeouts = nf_ct_timeout_lookup(ct);
|
||||
if (!timeouts) {
|
||||
@ -51,7 +51,7 @@ instead or relying on a downstream api not present upstream.
|
||||
spin_lock_bh(&ct->lock);
|
||||
--- a/frontends/sfe/ecm_sfe_ipv6.c
|
||||
+++ b/frontends/sfe/ecm_sfe_ipv6.c
|
||||
@@ -556,7 +556,8 @@ sync_conntrack:
|
||||
@@ -569,7 +569,8 @@ sync_conntrack:
|
||||
#else
|
||||
timeouts = nf_ct_timeout_lookup(ct);
|
||||
if (!timeouts) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/ecm_interface.c
|
||||
+++ b/ecm_interface.c
|
||||
@@ -3640,7 +3640,7 @@ identifier_update:
|
||||
@@ -3718,7 +3718,7 @@ identifier_update:
|
||||
if (skb && (skb->skb_iif == dev->ifindex)) {
|
||||
struct pppol2tp_common_addr info;
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
DEBUG_TRACE("%px: Net device: %px is MULTILINK PPP - Unknown to the ECM\n", feci, dev);
|
||||
type_info.unknown.os_specific_ident = dev_interface_num;
|
||||
|
||||
@@ -3650,7 +3650,7 @@ identifier_update:
|
||||
@@ -3728,7 +3728,7 @@ identifier_update:
|
||||
ii = ecm_interface_unknown_interface_establish(&type_info.unknown, dev_name, dev_interface_num, ae_interface_num, dev_mtu);
|
||||
return ii;
|
||||
}
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
+EXPORT_SYMBOL(ecm_nss_ipv4_is_conn_limit_reached);
|
||||
--- a/frontends/nss/ecm_nss_non_ported_ipv4.c
|
||||
+++ b/frontends/nss/ecm_nss_non_ported_ipv4.c
|
||||
@@ -1847,6 +1847,7 @@ struct ecm_front_end_connection_instance
|
||||
@@ -1897,6 +1897,7 @@ struct ecm_front_end_connection_instance
|
||||
|
||||
return feci;
|
||||
}
|
||||
@ -36,7 +36,7 @@
|
||||
struct ecm_db_connection_instance **nci);
|
||||
--- a/frontends/nss/ecm_nss_non_ported_ipv6.c
|
||||
+++ b/frontends/nss/ecm_nss_non_ported_ipv6.c
|
||||
@@ -1657,6 +1657,7 @@ struct ecm_front_end_connection_instance
|
||||
@@ -1707,6 +1707,7 @@ struct ecm_front_end_connection_instance
|
||||
|
||||
return feci;
|
||||
}
|
||||
@ -57,7 +57,7 @@
|
||||
struct ecm_db_connection_instance **nci);
|
||||
--- a/frontends/nss/ecm_nss_ported_ipv4.c
|
||||
+++ b/frontends/nss/ecm_nss_ported_ipv4.c
|
||||
@@ -1906,6 +1906,7 @@ struct ecm_front_end_connection_instance
|
||||
@@ -1956,6 +1956,7 @@ struct ecm_front_end_connection_instance
|
||||
|
||||
return feci;
|
||||
}
|
||||
@ -78,7 +78,7 @@
|
||||
struct ecm_db_connection_instance **nci);
|
||||
--- a/frontends/nss/ecm_nss_ported_ipv6.c
|
||||
+++ b/frontends/nss/ecm_nss_ported_ipv6.c
|
||||
@@ -1812,6 +1812,7 @@ struct ecm_front_end_connection_instance
|
||||
@@ -1862,6 +1862,7 @@ struct ecm_front_end_connection_instance
|
||||
|
||||
return feci;
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/ecm_interface.c
|
||||
+++ b/ecm_interface.c
|
||||
@@ -4057,7 +4057,11 @@ static uint32_t ecm_interface_multicast_
|
||||
@@ -4141,7 +4141,11 @@ static uint32_t ecm_interface_multicast_
|
||||
* For MLO bond netdevice, destination for multicast is bond netdevice itself
|
||||
* Therefore, slave lookup is not needed.
|
||||
*/
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/ecm_interface.c
|
||||
+++ b/ecm_interface.c
|
||||
@@ -8009,7 +8009,7 @@ static int ecm_interface_wifi_event_iwev
|
||||
@@ -8537,7 +8537,7 @@ static int ecm_interface_wifi_event_iwev
|
||||
/*
|
||||
* Copy the base data structure to get iwe->len
|
||||
*/
|
||||
@ -9,7 +9,7 @@
|
||||
|
||||
/*
|
||||
* Check that len is valid and that we have that much in the buffer.
|
||||
@@ -8026,10 +8026,10 @@ static int ecm_interface_wifi_event_iwev
|
||||
@@ -8554,10 +8554,10 @@ static int ecm_interface_wifi_event_iwev
|
||||
dpos = (char *)&iwe_buf.u.data.length;
|
||||
dlen = dpos - (char *)&iwe_buf;
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -8037,7 +8037,7 @@ static int ecm_interface_wifi_event_iwev
|
||||
@@ -8565,7 +8565,7 @@ static int ecm_interface_wifi_event_iwev
|
||||
* Check the flags of iw event if it indicates the IW authorized signal.
|
||||
*/
|
||||
if (iwe->u.data.flags == ECM_INTERFACE_WIFI_EVENT_NODE_AUTH) {
|
||||
@ -31,7 +31,7 @@
|
||||
if (!dbuf) {
|
||||
DEBUG_WARN("Failed to allocated a buffer to process the custom event");
|
||||
return -1;
|
||||
@@ -8060,16 +8060,16 @@ static int ecm_interface_wifi_event_iwev
|
||||
@@ -8588,16 +8588,16 @@ static int ecm_interface_wifi_event_iwev
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/frontends/nss/ecm_nss_non_ported_ipv4.c
|
||||
+++ b/frontends/nss/ecm_nss_non_ported_ipv4.c
|
||||
@@ -855,7 +855,7 @@ static void ecm_nss_non_ported_ipv4_conn
|
||||
@@ -880,7 +880,7 @@ static void ecm_nss_non_ported_ipv4_conn
|
||||
#endif
|
||||
break;
|
||||
case ECM_DB_IFACE_TYPE_RAWIP:
|
||||
@ -9,7 +9,7 @@
|
||||
nircm->valid_flags |= NSS_IPV4_RULE_CREATE_RAWIP_VALID;
|
||||
#else
|
||||
rule_invalid = true;
|
||||
@@ -1072,7 +1072,7 @@ static void ecm_nss_non_ported_ipv4_conn
|
||||
@@ -1122,7 +1122,7 @@ static void ecm_nss_non_ported_ipv4_conn
|
||||
#endif
|
||||
break;
|
||||
case ECM_DB_IFACE_TYPE_RAWIP:
|
||||
|
||||
10
qca-nss-ecm/patches/0019-ecm-fix-missing-nl80211.patch
Normal file
10
qca-nss-ecm/patches/0019-ecm-fix-missing-nl80211.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- a/ecm_interface.c
|
||||
+++ b/ecm_interface.c
|
||||
@@ -47,6 +47,7 @@
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/socket.h>
|
||||
#include <linux/wireless.h>
|
||||
+#include <linux/nl80211.h>
|
||||
#include <net/genetlink.h>
|
||||
#include <net/gre.h>
|
||||
#ifdef ECM_INTERFACE_BOND_ENABLE
|
||||
@ -52,7 +52,7 @@ return network.registerProtocol('quectel', {
|
||||
},
|
||||
|
||||
renderFormOptions: function(s) {
|
||||
var dev = this.getL3Device() || this.getDevice(), o;
|
||||
var dev = this.getL3Device() || this.getDevice(), o, apn, apnv6;
|
||||
|
||||
o = s.taboption('general', form.Value, '_modem_device', _('Modem device'));
|
||||
o.ucioption = 'device';
|
||||
@ -65,8 +65,13 @@ return network.registerProtocol('quectel', {
|
||||
}, this));
|
||||
};
|
||||
|
||||
o = s.taboption('general', form.Value, 'apn', _('APN'));
|
||||
o.validate = function(section_id, value) {
|
||||
o = s.taboption('general', form.Flag, 'multiplexing', _('Use IP Multiplexing'));
|
||||
o.default = o.disabled;
|
||||
|
||||
apn = s.taboption('general', form.Value, 'apn', _('APN'));
|
||||
apn.depends('pdptype', 'ipv4v6');
|
||||
apn.depends('pdptype', 'ipv4');
|
||||
apn.validate = function(section_id, value) {
|
||||
if (value == null || value == '')
|
||||
return true;
|
||||
|
||||
@ -76,6 +81,24 @@ return network.registerProtocol('quectel', {
|
||||
return true;
|
||||
};
|
||||
|
||||
apnv6 = s.taboption('general', form.Value, 'apnv6', _('IPv6 APN'));
|
||||
apnv6.depends({ pdptype: 'ipv4v6', multiplexing: '1' });
|
||||
apnv6.depends({ pdptype: 'ipv6', multiplexing: '1' });
|
||||
apnv6.validate = function(section_id, value) {
|
||||
if (value == null || value == '')
|
||||
return true;
|
||||
|
||||
if (!/^[a-zA-Z0-9\-.]*[a-zA-Z0-9]$/.test(value))
|
||||
return _('Invalid APN provided');
|
||||
|
||||
var apn_value = apn.formvalue(section_id);
|
||||
|
||||
if (value.toLowerCase() === apn_value.toLowerCase())
|
||||
return _('APN IPv6 must be different from APN');
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
o = s.taboption('general', form.Value, 'pincode', _('PIN'));
|
||||
o.datatype = 'and(uinteger,minlength(4),maxlength(8))';
|
||||
|
||||
@ -99,13 +122,25 @@ return network.registerProtocol('quectel', {
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'delay', _('Modem init timeout'),
|
||||
_('Maximum amount of seconds to wait for the modem to become ready'));
|
||||
o.placeholder = '10';
|
||||
o.placeholder = '5';
|
||||
o.datatype = 'min(1)';
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'mtu', _('Override MTU'));
|
||||
o.placeholder = dev ? (dev.getMTU() || '1500') : '1500';
|
||||
o.datatype = 'max(9200)';
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'pdnindex', _('PDN index'));
|
||||
o.depends({ pdptype: 'ipv4v6', multiplexing: '1' });
|
||||
o.depends({ pdptype: 'ipv4', multiplexing: '1' });
|
||||
o.placeholder = '1';
|
||||
o.datatype = 'and(uinteger,min(1),max(7))';
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'pdnindexv6', _('IPv6 PDN index'));
|
||||
o.depends({ pdptype: 'ipv4v6', multiplexing: '1' });
|
||||
o.depends({ pdptype: 'ipv6', multiplexing: '1' });
|
||||
o.placeholder = '2';
|
||||
o.datatype = 'and(uinteger,min(1),max(7))';
|
||||
|
||||
o = s.taboption('general', form.ListValue, 'pdptype', _('PDP Type'));
|
||||
o.value('ipv4v6', 'IPv4/IPv6');
|
||||
o.value('ipv4', 'IPv4');
|
||||
@ -120,5 +155,30 @@ return network.registerProtocol('quectel', {
|
||||
o.placeholder = '0';
|
||||
o.datatype = 'uinteger';
|
||||
o.depends('defaultroute', '1');
|
||||
|
||||
o = s.taboption('advanced', form.DynamicList, 'cell_lock_4g', _('4G Cell ID Lock'));
|
||||
o.datatype = 'string';
|
||||
o.placeholder = _('<PCI>,<EARFCN>');
|
||||
|
||||
o.validate = function(section_id, value) {
|
||||
if (value === null || value === '')
|
||||
return true;
|
||||
|
||||
var parts = value.split(',');
|
||||
if (parts.length !== 2)
|
||||
return _('Must be two values separated by a comma(,)');
|
||||
|
||||
var isUnsignedInteger = function(str) {
|
||||
return /^\d+$/.test(str);
|
||||
};
|
||||
|
||||
if (!isUnsignedInteger(parts[0]))
|
||||
return _('Invalid PCI!');
|
||||
|
||||
if (!isUnsignedInteger(parts[1]))
|
||||
return _('Invalid EARFCN!');
|
||||
|
||||
return true;
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
@ -10,7 +10,11 @@ proto_quectel_init_config() {
|
||||
available=1
|
||||
no_device=1
|
||||
proto_config_add_string "device:device"
|
||||
proto_config_add_boolean "multiplexing"
|
||||
proto_config_add_string "apn"
|
||||
proto_config_add_string "apnv6"
|
||||
proto_config_add_string "pdnindex"
|
||||
proto_config_add_string "pdnindexv6"
|
||||
proto_config_add_string "auth"
|
||||
proto_config_add_string "username"
|
||||
proto_config_add_string "password"
|
||||
@ -22,21 +26,49 @@ proto_quectel_init_config() {
|
||||
proto_config_add_boolean "sourcefilter"
|
||||
proto_config_add_boolean "delegate"
|
||||
proto_config_add_int "mtu"
|
||||
proto_config_add_array 'cell_lock_4g:list(string)'
|
||||
proto_config_add_defaults
|
||||
}
|
||||
|
||||
proto_quectel_setup() {
|
||||
local interface="$1"
|
||||
local device apn auth username password pincode delay pdptype
|
||||
local device apn apnv6 auth username password pincode delay pdptype pdnindex pdnindexv6 multiplexing cell_lock_4g
|
||||
local dhcp dhcpv6 sourcefilter delegate mtu $PROTO_DEFAULT_OPTIONS
|
||||
local ip4table ip6table
|
||||
local pid zone
|
||||
|
||||
json_get_vars device apn auth username password pincode delay
|
||||
json_get_vars device apn apnv6 auth username password pincode delay pdnindex pdnindexv6 multiplexing
|
||||
json_get_vars pdptype dhcp dhcpv6 sourcefilter delegate ip4table
|
||||
json_get_vars ip6table mtu $PROTO_DEFAULT_OPTIONS
|
||||
|
||||
[ -n "$delay" ] && sleep "$delay"
|
||||
echo -ne "AT+CFUN=1\r\n" > /dev/ttyUSB2
|
||||
|
||||
[ -n "$delay" ] || delay="5"
|
||||
sleep "$delay"
|
||||
|
||||
if json_is_a cell_lock_4g array; then
|
||||
echo "4G Cell ID Locking"
|
||||
json_select cell_lock_4g
|
||||
idx=1
|
||||
cell_ids=""
|
||||
|
||||
while json_is_a ${idx} string
|
||||
do
|
||||
json_get_var cell_lock $idx
|
||||
pci=$(echo $cell_lock | cut -d',' -f1)
|
||||
earfcn=$(echo $cell_lock | cut -d',' -f2)
|
||||
cell_ids="$cell_ids,$earfcn,$pci"
|
||||
idx=$(( idx + 1 ))
|
||||
done
|
||||
idx=$(( idx - 1 ))
|
||||
|
||||
if [ "$idx" -gt 0 ]; then
|
||||
cell_ids="${idx}${cell_ids}"
|
||||
echo -e "AT+QNWLOCK=\"COMMON/4G\",${cell_ids}" | atinout - /dev/ttyUSB2 -
|
||||
fi
|
||||
else
|
||||
echo -e "AT+QNWLOCK=\"COMMON/4G\",0" | atinout - /dev/ttyUSB2 -
|
||||
fi
|
||||
|
||||
[ -n "$metric" ] || metric="0"
|
||||
[ -z "$ctl_device" ] || device="$ctl_device"
|
||||
@ -66,19 +98,42 @@ proto_quectel_setup() {
|
||||
return 1
|
||||
}
|
||||
|
||||
[ "$pdptype" = "ip" -o "$pdptype" = "ipv4v6" ] && ipv4opt="-4"
|
||||
[ "$pdptype" = "ipv4" -o "$pdptype" = "ipv4v6" ] && ipv4opt="-4"
|
||||
[ "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] && ipv6opt="-6"
|
||||
[ -n "$auth" ] || auth="none"
|
||||
|
||||
eval "proto_run_command '$interface' /usr/bin/quectel-cm -i '$ifname' $ipv4opt $ipv6opt ${pincode:+-p $pincode} -s '$apn' '$username' '$password' '$auth'"
|
||||
quectel-qmi-proxy &
|
||||
sleep 3
|
||||
|
||||
if [ "$multiplexing" = 1 ]; then
|
||||
[ -n "$pdnindex" ] || pdnindex="1"
|
||||
[ -n "$pdnindexv6" ] || pdnindexv6="2"
|
||||
|
||||
if [ -n "$ipv4opt" ]; then
|
||||
quectel-cm -i "$ifname" $ipv4opt -n $pdnindex -m 1 ${pincode:+-p $pincode} -s "$apn" "$username" "$password" "$auth" &
|
||||
fi
|
||||
if [ -n "$ipv6opt" ]; then
|
||||
quectel-cm -i "$ifname" $ipv6opt -n $pdnindexv6 -m 2 ${pincode:+-p $pincode} -s "$apnv6" "$username" "$password" "$auth" &
|
||||
fi
|
||||
else
|
||||
quectel-cm -i "$ifname" $ipv4opt $ipv6opt ${pincode:+-p $pincode} -s "$apn" "$username" "$password" "$auth" &
|
||||
fi
|
||||
|
||||
sleep 5
|
||||
|
||||
ifconfig "$ifname" up
|
||||
ifconfig "${ifname}_1" &>"/dev/null" && ifname="${ifname}_1"
|
||||
ifconfig "${ifname}_1" &>"/dev/null" && ifname4="${ifname}_1"
|
||||
|
||||
if [ "$multiplexing" = 1 ]; then
|
||||
ifconfig "${ifname}_2" &>"/dev/null" && ifname6="${ifname}_2"
|
||||
else
|
||||
ifname6="$ifname4"
|
||||
fi
|
||||
|
||||
if [ -n "$mtu" ]; then
|
||||
echo "Setting MTU to $mtu"
|
||||
/sbin/ip link set dev "$ifname" mtu "$mtu"
|
||||
/sbin/ip link set dev "$ifname4" mtu "$mtu"
|
||||
[ "$multiplexing" = 1 ] && /sbin/ip link set dev "$ifname6" mtu "$mtu"
|
||||
fi
|
||||
|
||||
echo "Setting up $ifname"
|
||||
@ -89,9 +144,11 @@ proto_quectel_setup() {
|
||||
zone="$(fw3 -q network "$interface" 2>/dev/null)"
|
||||
|
||||
if [ "$pdptype" = "ipv6" ] || [ "$pdptype" = "ipv4v6" ]; then
|
||||
ip -6 addr flush dev $ifname6
|
||||
|
||||
json_init
|
||||
json_add_string name "${interface}_6"
|
||||
json_add_string ifname "@$interface"
|
||||
json_add_string device "$ifname6"
|
||||
[ "$pdptype" = "ipv4v6" ] && json_add_string iface_464xlat "0"
|
||||
json_add_string proto "dhcpv6"
|
||||
proto_add_dynamic_defaults
|
||||
@ -105,10 +162,10 @@ proto_quectel_setup() {
|
||||
ubus call network add_dynamic "$(json_dump)"
|
||||
fi
|
||||
|
||||
if [ "$pdptype" = "ip" ] || [ "$pdptype" = "ipv4v6" ]; then
|
||||
if [ "$pdptype" = "ipv4" ] || [ "$pdptype" = "ipv4v6" ]; then
|
||||
json_init
|
||||
json_add_string name "${interface}_4"
|
||||
json_add_string ifname "@$interface"
|
||||
json_add_string device "$ifname4"
|
||||
json_add_string proto "dhcp"
|
||||
[ -z "$ip4table" ] || json_add_string ip4table "$ip4table"
|
||||
proto_add_dynamic_defaults
|
||||
@ -127,10 +184,10 @@ proto_quectel_teardown() {
|
||||
|
||||
echo "Stopping network $interface"
|
||||
|
||||
proto_kill_command "$interface"
|
||||
|
||||
proto_init_update "*" 0
|
||||
proto_send_update "$interface"
|
||||
killall quectel-cm
|
||||
killall quectel-qmi-proxy
|
||||
}
|
||||
|
||||
[ -n "$INCLUDE_ONLY" ] || {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user