1.一种OAM协议栈编码方法,其特征在于,所述OAM协议栈编码方法包括:设置对象定义模板 ;
根据所述对象定义模板对OAM对象进行定义OAM对象相关属性值;
根据定义的所述OAM对象相关属性值生成OAM协议栈相关的代码;
所述OAM协议栈相关的代码包括:协议栈公用函数源码;所述协议栈公用函数源码包括协议栈对象的结构体;所述结构体代码的生成是根据每一个所述OAM对象定义生成一个结构体实例;
所述OAM协议栈相关的代码包括:协议栈对象的设置函数代码;所述设置函数输入的参数包括回复报文内存指针、设置报文有效数据字段指针、以及对象实例号;所述对象实例号用于确定所述OAM对象;所述OAM对象的全局属性还包括:设置消息ID、设置消息结构体、手动设置标识以及目标进程ID;当所述OAM对象的手动设置标识不为预设的手动设置标识时,生成的所述设置函数代码包括:根据所述设置报文有效数据字段指针获取所述OAM对象的相应属性值,并将所述OAM对象的相应属性值填写到所述OAM对象的设置消息结构体中;根据所述OAM对象的设置消息ID、设置消息结构体以及目标进程ID生成设置消息发送给目标进程;根据所述目标进程的设置回复消息确定设置回复码;将所述OAM对象的Branch值、Leaf值以及所述设置回复码填写到所述回复报文内存指针确定的相应位置;当所述OAM对象的对象手动设置标识为预设的手动设置标识时,则生成的所述设置函数为空函数,此时所述设置函数需人工处理。
2.根据权利要求1所述的OAM协议栈编码方法,其特征在于:所述对象定义模板包括:对对象的全局属性以及对象的参数的定义;所述对象的全局属性包括:对象的名称、对象Branch值、以及对象Leaf值;所述对象的参数属性包括:参数的名称、参数的数据类型、以及参数在内存中占用的长度。
3.根据权利要求2所述的OAM协议栈编码方法,其特征在于:所述OAM协议栈相关的代码包括:协议栈公用函数源码;所述协议栈公用函数源码包括协议栈对象的结构体数组声明、以及取对象数函数;所述结构体数组声明代码的生成是根据每一个所述OAM对象定义生成一个结构体实例,所有的所述结构体实例组成结构体数组声明;所述取对象数函数返回所述结构体数组中的对象数目。
4.根据权利要求1或3所述的OAM协议栈编码方法,其特征在于:所述结构体代码的生成是根据每一个所述OAM对象定义生成一个结构体实例的具体实现包括:根据所述对象的名称、所述对象Branch值、对象Leaf值生成一个结构体实例;所述结构体实例包括相应对象的Branch、Leaf、设置函数、以及取值函数。
5.根据权利要求4所述的OAM协议栈编码方法,其特征在于:所述OAM协议栈相关的代码包括:协议栈对象的取值函数代码;所述取值函数输入的参数包括回复报文内存指针、取值报文有效数据字段指针、以及对象实例号;所述对象实例号用于确定所述OAM对象;所述OAM对象的全局属性还包括:取值消息ID、取值消息结构体、手动取值标识以及目标进程ID;当所述OAM对象的手动取值标识为预设的手动取值标识时,生成的所述取值函数代码包括:根据所述OAM对象的取值消息ID、取值消息结构体以及目标进程ID生成取值消息发送给目标进程;根据所述目标进程的取值回复消息获取所述OAM对象的相应属性值,并将所述OAM对象Branch值、Leaf值以及所获取的所述OAM对象的相应属性值填充到所述回复报文内存指针确定的相应位置;所当所述OAM对象的对象手动取值标识为预设的手动取值标识时,则生成的所述取值函数为空函数,此时所述取值函数需人工处理。
6.一种OAM协议栈编码系统,其特征在于:所述OAM协议栈编码系统包括:
模板定义模块,用于设置对象定义模板 ;
对象定义模块,与所述模板定义模块相连,用于根据所述对象定义模板对OAM对象进行定义OAM对象相关属性值;
代码生成模块,与所述对象定义模块相连,用于根据定义的所述OAM对象相关属性值生成OAM协议栈相关的代码;
所述OAM协议栈相关的代码包括:协议栈公用函数源码;所述协议栈公用函数源码包括协议栈对象的结构体;所述结构体代码的生成是根据每一个所述OAM对象定义生成一个结构体实例;
所述代码生成模块中的所述OAM协议栈相关的代码包括:协议栈对象的设置函数代码;
所述设置函数输入的参数包括回复报文内存指针、设置报文有效数据字段指针、以及对象实例号;所述对象实例号用于确定所述OAM对象;所述OAM对象的全局属性还包括:设置消息ID、设置消息结构体、手动设置标识以及目标进程ID;当所述OAM对象的手动设置标识不为预设的手动设置标识时,生成的所述设置函数代码包括:根据所述设置报文有效数据字段指针获取所述OAM对象的相应属性值,并将所述OAM对象的相应属性值填写到所述OAM对象的设置消息结构体中;根据所述OAM对象的设置消息ID、设置消息结构体以及目标进程ID生成设置消息发送给目标进程;根据所述目标进程的设置回复消息确定设置回复码;将所述OAM对象的Branch值、Leaf值以及所述设置回复码填写到所述回复报文内存指针确定的相应位置。
7.根据权利要求6所述的OAM协议栈编码系统,其特征在于:所述模板定义模块中的所述对象定义模板包括:对对象的全局属性以及对象的参数的定义;所述对象的全局属性包括:对象的名称、对象Branch值、以及对象Leaf值;所述对象的参数属性包括:参数的名称、参数的数据类型、以及参数在内存中占用的长度。
8.根据权利要求7所述的OAM协议栈编码系统,其特征在于:所述代码生成模块中的所述OAM协议栈相关的代码包括:协议栈公用函数源码;所述协议栈公用函数源码包括协议栈对象的结构体数组声明、以及取对象函数;所述结构体数组声明代码的生成是根据每一个所述OAM对象定义生成一个结构体实例,所有的所述结构体实例组成结构体数组声明;所述取对象函数返回所述结构体数组中的对象数目。
9.根据权利要求6或8所述的OAM协议栈编码系统,其特征在于:所述结构体实例包括相应对象的Branch、Leaf、设置函数、以及取值函数。
10.根据权利要求9所述的OAM协议栈编码系统,其特征在于:所述代码生成模块中的所述OAM协议栈相关的代码还包括:协议栈对象的取值函数代码;所述取值函数输入的参数包括回复报文内存指针、取值报文有效数据字段指针、以及对象实例号;所述对象实例号用于确定所述OAM对象;所述OAM对象的全局属性还包括:取值消息ID、取值消息结构体、手动取值标识以及目标进程ID;当所述OAM对象的手动取值标识为预设的手动取值标识时,生成的所述取值函数代码包括:根据所述OAM对象的取值消息ID、取值消息结构体以及目标进程ID生成取值消息发送给目标进程;根据所述目标进程的取值回复消息获取所述OAM对象的相应属性值,并将所述OAM对象Branch值、Leaf值以及所获取的所述OAM对象的相应属性值填充到所述回复报文内存指针确定的相应位置。