瀏覽代碼

[BT-6709-MTS][MIB]change sysObjectID special for MTS

balbekova 2 年之前
父節點
當前提交
111eb43798
共有 3 個文件被更改,包括 55 次插入4 次删除
  1. 30 0
      modules/Ethernet/snmp_api.c
  2. 9 0
      modules/Ethernet/snmp_api.h
  3. 16 4
      patches/snmp_mib2_system_patch.diff

+ 30 - 0
modules/Ethernet/snmp_api.c

@@ -294,6 +294,36 @@ void SNMP_SetObjID(void)
     snmp_set_device_enterprise_oid(&my_object_id);
 }
 
+/**
+  * @brief  Установка sysObjectID согласно логике МТС (данное решение согласовано с заказчиком)
+  */
+const struct snmp_obj_id* SNMP_GetSysObjectIDforMTS(void)
+ {
+    if(strncmp(UPS.model, "RTMP-I 600r", 11) == 0) {
+     static struct snmp_obj_id my_object_id = {10, {1, 3, 6, 1, 4, 1, 41752, 911, SNMP_DEV_ROOT_OID, 600}};
+     return &my_object_id;
+    } else if(strncmp(UPS.model, "RTMP-II r", 9) == 0) {
+      static struct snmp_obj_id my_object_id = {10, {1, 3, 6, 1, 4, 1, 41752, 911, SNMP_DEV_ROOT_OID, 1000}};
+      return &my_object_id;
+    } else if(strncmp(UPS.model, "RTMP-II v2r", 11) == 0) {
+      static struct snmp_obj_id my_object_id = {10, {1, 3, 6, 1, 4, 1, 41752, 911, SNMP_DEV_ROOT_OID, 2000}};
+      return &my_object_id;
+    } else if(strncmp(UPS.model, "RTMP-II v3r", 11) == 0) {
+      static struct snmp_obj_id my_object_id = {10, {1, 3, 6, 1, 4, 1, 41752, 911, SNMP_DEV_ROOT_OID, 3000}};
+      return &my_object_id;
+    } else if(strncmp(UPS.model, "RTMP-II v10r", 12) == 0) {
+      static struct snmp_obj_id my_object_id = {10, {1, 3, 6, 1, 4, 1, 41752, 911, SNMP_DEV_ROOT_OID, 10000}};
+      return &my_object_id;
+    } else if(strncmp(UPS.model, "RTPS-v3310r", 11) == 0) {
+      static struct snmp_obj_id my_object_id = {10, {1, 3, 6, 1, 4, 1, 41752, 911, SNMP_DEV_ROOT_OID, 3310}};
+      return &my_object_id;
+    } else {
+      static struct snmp_obj_id my_object_id = {9, {1, 3, 6, 1, 4, 1, 41752, 911, SNMP_DEV_ROOT_OID}};
+      return &my_object_id;
+    }
+    return 0;
+ }
+
 /**
   * @brief  Вкл/выкл трапы
   * @retval

+ 9 - 0
modules/Ethernet/snmp_api.h

@@ -128,6 +128,15 @@ void SNMP_SettingsSave(void);
 
 #define SNMP_SYS_PARAM_CHECK(value, len) control_string_en_digit(value, len)
 
+/**
+  * @brief  Установка sysObjectID согласно логике МТС (данное решение согласовано с заказчиком)
+  */
+const struct snmp_obj_id* SNMP_GetSysObjectIDforMTS(void);
+#ifdef HARDWARE_BT6709_MTS 
+ #define SNMP_GET_SYSOBJECTID_MTS() SNMP_GetSysObjectIDforMTS();
+#endif
+
+
 #endif /* #ifndef SNMP_API_H */
 
 /********************************* (C) РОТЕК **********************************/

+ 16 - 4
patches/snmp_mib2_system_patch.diff

@@ -1,5 +1,5 @@
 diff --git a/thirdparty/lwip/src/apps/snmp/snmp_mib2_system.c b/thirdparty/lwip/src/apps/snmp/snmp_mib2_system.c
-index 4aa2926..89f5d92 100755
+index 4aa2926..f725139 100755
 --- a/thirdparty/lwip/src/apps/snmp/snmp_mib2_system.c
 +++ b/thirdparty/lwip/src/apps/snmp/snmp_mib2_system.c
 @@ -43,6 +43,10 @@
@@ -13,7 +13,19 @@ index 4aa2926..89f5d92 100755
  #if LWIP_SNMP && SNMP_LWIP_MIB2
  
  #if SNMP_USE_NETCONN
-@@ -284,6 +288,9 @@ system_set_test(const struct snmp_scalar_array_node_def *node, u16_t len, void *
+@@ -240,7 +244,11 @@ system_get_value(const struct snmp_scalar_array_node_def *node, void *value)
+     break;
+   case 2: /* sysObjectID */
+     {
++#ifdef SNMP_GET_SYSOBJECTID_MTS
++      const struct snmp_obj_id* dev_enterprise_oid = SNMP_GET_SYSOBJECTID_MTS();
++#else
+       const struct snmp_obj_id* dev_enterprise_oid = snmp_get_device_enterprise_oid();
++#endif
+       MEMCPY(value, dev_enterprise_oid->id, dev_enterprise_oid->len * sizeof(u32_t));
+       return dev_enterprise_oid->len * sizeof(u32_t);
+     }
+@@ -284,6 +292,9 @@ system_set_test(const struct snmp_scalar_array_node_def *node, u16_t len, void *
    snmp_err_t ret = SNMP_ERR_WRONGVALUE;
    const u16_t* var_bufsize  = NULL;
    const u16_t* var_wr_len;
@@ -23,7 +35,7 @@ index 4aa2926..89f5d92 100755
  
    LWIP_UNUSED_ARG(value);
  
-@@ -307,13 +314,24 @@ system_set_test(const struct snmp_scalar_array_node_def *node, u16_t len, void *
+@@ -307,13 +318,24 @@ system_set_test(const struct snmp_scalar_array_node_def *node, u16_t len, void *
  
    /* check if value is writable at all */
    if (*var_bufsize > 0) {
@@ -49,7 +61,7 @@ index 4aa2926..89f5d92 100755
          ret = SNMP_ERR_NOERROR;
        }
      }
-@@ -358,6 +376,9 @@ system_set_value(const struct snmp_scalar_array_node_def *node, u16_t len, void
+@@ -358,6 +380,9 @@ system_set_value(const struct snmp_scalar_array_node_def *node, u16_t len, void
    } else {
      *var_wr_len = len;
    }