[OpenDataPlane 译] 2. 简介

OpenDataPlane Components.png

ODP API 规范

ODP由三个各自独立又相关联的组件组成。首先,ODP是一个抽象的API规范,用于描述数据面应用程序的功能模型。 该规范涵盖了许多常见数据面应用程序的编程需求,如接收、操作、传输数据包,但是并不要求这些功能具体如何实现。 这是非常有意义的,正因为ODP API没有一个优选实施例,它们允许在支持ODP实现的各种平台上运行ODP,并进行各种创新开发。 为了实现这一目标,ODP API使用了抽象数据类型描述,其定义留给ODP的实现者。 例如,ODP数据包由类型为 odp_packet_t 的抽象句柄引用,与数据包相关的API会引用此类型的参数。 这就是为什么 odp_packet_t 不是ODP API的一部分,这是实现者的责任。

ODP API 特性

  • 开源,开放贡献,BSD-3许可
  • 供应商与平台中立
  • 以应用为中心,涵盖数据面应用的功能需求
  • 通过指定ODP的功能行为确保可移植性
  • 由应用程序作者和平台实施者共同公开界定
  • 架构可以有效在各种平台上实现
  • 由Linaro集团赞助、管理和维护

ODP API 实现

其次,ODP由这个API规范的多个实现组成,每个实现都针对特定的目标平台进行定制。 ODP的具体实现确定每个ODP抽象类型在该平台上的标识方式及每个ODP API是如何实现的。 在某些平台上,ODP API将使用某些具有加速API功能的特殊执行来实现。 另一方面,硬件协处理器引擎可能会完全卸载API,以便CPU可以很少或者完全不参与执行。 但是,不论什么情况,应用程序都会看到相同的功能行为,而不依赖于给定平台选择如何实现它。 通过允许每个平台自由地确定如何以最佳方式实现每个API的指定功能行为,ODP运行应用程序充分利用每个平台的独特功能, 而不需要具有该平台的专业知识,或者关心如何最好的将应用程序调整到特定平台。 后一种考虑在网络功能虚拟化(NFV)环境中尤为重要,其中,应用将在其他人选择的目标平台上运行。

ODP 实现特性

通用实现并不适用于所有平台,支持多个实现使得ODP适应于平台之间的差异性。
任何人都可以根据自己的平台创建一个ODP实现
每个实现的开发和维护由拥有者决定
根据业务需求确定开源和闭源
具有独立的发布周期和服务流
允许在平台的ODP API实现上使用HW和SW的新特性

参考实现

为了轻松开始在新平台上实现ODP,ODP提供了许多实现方案,作为参考。 其中两个主要的实现是 odp-linux 和 odp-dpdk 。

  • odp-linux

odp-linux 实现是仅依赖于Linux系统API的纯SW实现。作为ODP的功能模型,它能方便的将ODP引导到任何支持Linux内核的平台上。

  • odp-dpdk

odp-dpdk 实现是使用DPDK作为SW加速器的纯SW实现。特别地,odp-dpdk为使用NIC的系统提供卓越的IO性能,这允许ODP应用程序充分利用 DPDK支持的各种NIC设备驱动程序。

  • odp参考实现特性

    • 开源,开放贡献,BSD-3许可
    • 提供ODP在新平台上的轻松引导
    • 实施者可根据需要自由借用或定制代码
    • 是否来自参考实现,实施者可以保留对其实现的完全控制。

ODP 验证套件

第三,为了保证不同ODP实现之间的一致性,ODP包含一个验证套件,用于验证ODP的任何给定实现是否忠实的提供每个API指定的功能行为。 作为单独的开源组件,应用程序编写者,系统集成商和平台提供商都可以使用验证套件来确认任何所谓ODP实现是否符合ODP API规范。

odp验证套件特性

  • 与ODP API规范同步
  • 由LNG维护和分配
  • 开源,开放贡献,BSD-3许可
  • 是确保所有ODP实现中的应用程序可移植性的关键
  • 测试ODP实现是否符合ODP API的指定功能行为
  • 用户和供应商可以随时运行,以验证ODP的实现

2.1. ODP API SPEC 版本

作为不断发展的标准,ODP API SPEC以增量版本发布,ODP相应的实现以及验证API一致性的验证套件与此版本号关联。 ODP版本号使用一个标准的三级数字(major.minor.fixlevel)进行指定,根据级别所表示的变化程度递增。

  • fixlevel级别的增量表示规范的说明或其他不影响规范的语法或语义的次要更改。API规范中的这种变化预计将是罕见的。
  • minor级别的增量代表引入新的API或功能功能,或者对其指定API的语法或功能行为的更改,因此可能需要应用程序源代码更改。 在规范的每个版本的发行说明中都对这些更改进行了详细的记录。
  • major级别的增量代表了很大的结构性变化,这些变化最有可能需要一定程度的应用程序源代码更改,再次在该版本的发行说明中记录。

2.2. ODP 实现版本

ODP实现可以随意使用他们希望的任何发布命名/编号约定,只要清楚给定的版本实现了什么级别的ODP API。 推荐使用相同的三级编号方案,其中major和minor对应于ODP API相应级别,fixlevel表示与该API级别实现相关联的实现定义的服务级别。 LNG提供的ODP参考实现遵循这个原则。

2.3. ODP 测试套件版本

ODP验证测试套件遵循这些相同的命名规则。major和minor对应于套件验证的API级别,fixlevel代表该API级别的验证套件本身的服务级别。

2.4. ODP 设计目标

ODP组件结构有三个主要目标。

  • 第一个是应用程序在各种平台上的可移植性。 这些平台在处理器指令集架构,应用处理核心数目和类型,内存组织以及平台特定的硬件加速和卸载功能都不一样。 ODP应用程序可以从一个一致实现方便转到另一个,最多只需要进行重新编译。

  • 第二,ODP旨在允许数据面应用程序充分利用平台的特性,包括专门的硬件加速器,而无需专门的编程。 这是通过将API规范与其在各个平台上的实现分开来实现的。 由于每个平台以对该平台最佳的方式实现每个ODP API,所以应用程序自动获得这种优化的优点,而不需要显式编程。

  • 第三,ODP旨在允许应用程序自动扩展以支持多核心架构。 这是使用基于事件的编程模型完成的,该模型允许将应用程序写入独立于可用于实现应用程序功能的处理核心数量。 结果是写入此模型的应用程序不需要重新设计,因为它支持从4到40核到400核心。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容