您当前的位置:首页 > 计算机 > 软件应用 > 虚拟模拟

eNSP 第三方接口说明

时间:12-14来源:作者:点击数:
城东书院 www.cdsy.xyz

eNSP 第三方接口是一个接口标准,任何第三方模拟设备只要按照该标准提供接口,都可以将第三方设备作为插件加入到 eNSP 中来,通过 eNSP 绘制拓扑和操作设备。

函数接口说明

int InitOUT charpszErrMsgint nBufLen )

该函数用于插件的初始化操作。

参数:

  • pszErrMsg:返回错误信息。
  • nBufLen:pszErrMsg指向的内存大小。

返回值:

  • -1:初始化错误。
  • 0:初始化成功。
  • >0:初始化错误。(返回值是错误码,详见 附录2)。

BOOL IsRegister( charpszRegisterCode )

该函数用来告诉eNSP当前用户是否已经在第三方设备商注册,如果第三方设备无须注册,直接返回TRUE即可。

参数:

  • pszRegisterCode:由当前用户向第三方设备商申请的注册码。

返回值:

  • TRUE:已经注册。
  • FALSE:尚未注册。

BOOL CreateDevice( char* pszDevID, char* pszDevType, char* pszDevName )

该函数用来创建设备。

参数:

  • pszDevID:由eNSP为第三方设备提供的全局唯一的设备 ID。
  • pszDevType:设备的类型,如 NE5000E,CX200 等。如果第三方设备侧不需要该参数,可以忽略该参数。
  • pszDevName:当前设备在topo中显示的名字,如CE1,CE2,NE1等。如果第三方设备侧不需要该参数,可以忽略该参数。

返回值:

  • TRUE:创建成功。
  • FALSE:创建失败。

BOOL Start( char* pszDevID, USHORT usSlotNO, char* pszBootFile )

该函数用来启动第三方设备。

参数:

  • pszDevID:由eNSP为第三方设备提供的全局唯一的设备ID。
  • usSlotNO:需要启动的单板编号,如果为0xffff,则表示启动整机,否则为启动具体的单板。
  • pszBootFile:第三方设备启动的资源文件,具体参考 附录1

返回值:

  • TRUE:启动成功。
  • FALSE:启动失败。

BOOL Stop( char* pszDevID, USHORT usSlotNO )

该函数用来停止第三方设备。

参数:

  • pszDevID:由eNSP为第三方设备提供的全局唯一的设备ID。
  • usSlotNO:需要停止的单板编号,如果为0xffff,则表示停止整机,否则为停止具体的单板。

返回值:

  • TRUE:停止成功。
  • FALSE:停止失败。

int ExportCfgcharpszDevIDOUT charpszCfgFileDestPathint nBufLen )

该函数用来导出设备的配置文件。

参数:

  • pszDevID:由eNSP为第三方设备提供的全局唯一的设备ID。
  • pszCfgFileDestPath:[out]导出配置文件的路径。
  • nBufLen:pszCfgFileDestPath指向的内存大小。

返回值:

  • 0:导出成功。
  • -1:导出失败。
  • >0:导出失败。(pszCfgFileDestPath 指向的内存不足,返回需要的内存大小)

BOOL UploadCfg( char* pszDevID, char* pszCfgFileName )

该函数用来上传设备的配置文件。

参数:

  • pszDevID:由 eNSP 为第三方设备提供的全局唯一的设备ID。
  • pszCfgFileName:需要上传的配置文件的路径和名称。

返回值:

  • TRUE:上传成功。
  • FALSE:上传失败。

USHORT GetDevCliPort( char* pszDevID )

该函数用来获取设备命令行的虚拟串口号。

参数:

  • pszDevID:由eNSP为第三方设备提供的全局唯一的设备ID。

返回值:

  • 第三方设备的虚拟串口号,0xffff 表示获取失败。

BOOL PortLink( char* szDeviceID, char* szInterfaceName, ULONG ulPeerIP, USHORT usPeerPort, ULONG ulLocalIP , USHORT usLocalPort )

该函数用来告诉设备的某个接口所连接的对端的IP和端口号,后续将与其进行通信。

参数:

  • szDeviceID:由eNSP为第三方设备提供的全局唯一的设备ID。
  • szInterfaceName:具体的接口名称如 GE 1/0/1。
  • ulPeerIP:对端接口的IP。
  • usPeerPort:对端接口的端口号。
  • ulLocalIP:本地接口的IP。
  • usLocalPort:本地接口的端口号。

返回值:

  • TRUE:连接成功。
  • FALSE:连接失败。

BOOL Disconnect( char* szDeviceID, char* szInterfaceName )

该函数用来断开设备的某个接口与对端的连接。

参数:

  • szDeviceID:由eNSP为第三方设备提供的全局唯一的设备ID。
  • szInterfaceName:具体的接口名称如 GE 1/0/1。

返回值:

  • TRUE:断连成功。
  • FALSE:断连失败。

BOOL DeleteDevice( char* pszDevID, char* pszDevType )

该函数用来删除设备。

参数:

  • pszDevID:由eNSP为第三方设备提供的全局唯一的设备ID。
  • pszDevType:设备的类型,如NE5000E,CX200等。如果第三方设备侧不需要该参数,可以忽略该参数。

返回值:

  • TRUE:删除成功。
  • FALSE:删除失败。

BOOL CleanResource()

该函数用于清除插件的资源。

参数:

返回值:

  • TRUE:成功。
  • FALSE:失败。

资源文件说明

启动第三方设备时,eNSP为每台设备提供资源文件,加载适配dll后,适配dll读取资源文件信息,启动设备。流程如下

资源文件格式

设备接口之间通过socket UDP通信,配置文件resource.cfg格式如下:

注:

comport:eNSP 建议第三方设备使用的UDP端口号。

socketoffset:第三方设备多实例在自定义本地接口的UDP端口号时,ensp建议使用的UDP端口号偏移量,如:device1 本地接口使用的udp端口号为2000,2001,2002…,device2 本地接口使用的UDP端口号为 2000 + socketoffset,2000 + socketoffset +1,2000 + Socketoffset+2…。

systemmac:系统Mac地址。(格式:XX-XX-XX-XX-XX-XX)

资源文件详细内容如下:

eNSP 的错误码

错误码 说明 备注
ERR_CODE_SEND_REQUEST 1 发送请求失败。  
ERR_CODE_RECV_RESPONSE 2 接收响应失败。  
ERR_CODE_CREATE_DIR 3 创建目录失败。  
ERR_CODE_DEL_DIR 4 删除目录失败。  
ERR_CODE_START_DEV 5 启动设备失败。  
ERR_CODE_STOP_DEV 6 停止设备失败。  
ERR_CODE_REMOVE_DEV 7 删除设备设备。  
ERR_CODE_COPY_FILE 8 拷贝文件失败。  
ERR_CODE_WRITE_HARDCFG 9 写入配置文件失败。  
ERR_CODE_ASSIGN_SOCKOFFSET 10 分配端口失败。  
ERR_CODE_COMPRESS_FILE 11 压缩文件失败。  
ERR_CODE_DECOMPRESS_FILE 12 解压文件失败。  
ERR_CODE_TRANMISSION_FILE 13 传输文件失败。  
ERR_CODE_SYNC_FILE 14 同步文件失败。  
ERR_CODE_SAVE_TOPO 15 保存topo失败。  
ERR_CODE_MALLOC_MEM 16 分配内存失败。  
ERR_CODE_BIND_PORT 17 绑定端口失败。  
ERR_CODE_INIT_TELNET 18 初始化telnet服务失败。  
ERR_CODE_GET_PEERINFO 19 获取对端信息失败。  
ERR_CODE_CONNECT_DEST 20 连接失败。  
ERR_CODE_CONNECT_SRC 21 连接失败。  
ERR_CODE_DISCONNECT_DEST 22 断连失败。  
ERR_CODE_DISCONNECT_SRC 23 断连失败。  
ERR_CODE_NO_MEM 24 内存错误。  
ERR_CODE_NO_WORKSPACE 25 工作目录出错。  
ERR_CODE_CREATE_WORKSPACE 26 创建工作目录失败。  
ERR_CODE_WORKSPACE_EXIST 27 工作目录存在。  
ERR_CODE_BIND_VIRTURE_COMPORT 28 绑定虚拟端口失败。  
ERR_CODE_SAVE_CFG_FILE 29 保存配置文件失败。  
ERR_CODE_EXTRACT_CFG 30 导出配置文件失败。  
ERR_CODE_OPEN_FLASH 31 打开Flash失败。  
ERR_CODE_IMPORT_CONFIG 32 导入配置文件失败。  
ERR_CODE_WRITE_INTO_FLASH 33 写入flash失败。  
ERR_CODE_EXPORT_RESULT 34 导入失败。  
ERR_CODE_OPEN_FILE 35 打开文件失败。  
ERR_CODE_CONFIG_EXIST 36 配置文件已经存在。  
ERR_CODE_ADDRESS_EXCERED 37 获取flash信息失败。  
ERR_CODE_PATCH_EXIST 38 无法找到patch文件。  
ERR_CODE_TRANSFER_RESOURCE 39 生成资源文件失败。  
ERR_CODE_START_ARLINK 40 启动设备失败。  
ERR_CODE_BASE_NOT_FOUND 41 未找到Base设备。  
ERR_CODE_SNAPSHOT_NOT_FOUND 42 未找到snapshot设备。  
ERR_CODE_VBOX_INIT_FAILED 43 vbox初始化设备。  
ERR_CODE_VBOX_PACKAGE_NOT_FOUND 44 设备包不存在。  
ERR_CODE_REGIST_FAIL 45 注册失败。  
城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐