Compressdev ISA-L PMD介绍

640?wx_fmt=jpeg

作者简介

万 喆  软件工程师

主要从事DPDK相关工作。

640?wx_fmt=gif

ISA-L PMD (librte_pmd_isal_comp) 使用Intel ISA-L library来进行压缩和解压缩。ISA-L lib实现了deflate算法,包括Deflate(压缩)和Inflate(解压缩)。

01

Features

ISA-L PMD 支持以下feature:

压缩/解压缩算法:

  • DEFLATE

Huffman编码类型: 

  • FIXED

  • DYNAMIC

窗口大小支持:

  • 32K

压缩级别说明:

ISA-L压缩级别已映射到相同的ZLIB压缩级别,也就是说ZLIB L1和ISA-LL1具有同样的压缩率。Compressdev level 0 意味着“不压缩”,即把未经压缩的数据加上deflate头后传送到输出buffer中。ISA-Llibrary目前不支持compressdevlevel 0。

Compressdev API 有10个级别,即0-9。ISA-L有四个压缩级别,0-3。

具体映射关系见下表:

640?wx_fmt=jpeg

备注:

上表仅适用于动态Huffman压缩的情形。

对于Huffman固定压缩,不管API level是多少内部始终使用ISA-L level 0。

02

  限 制  

  • 目前不支持Compressdev level 0(不压缩)。

  • 不支持Checksums。

03

  安 装  

  • 安装步骤如下:

  • 从https://github.com/01org/isa-l 下载Intel’s ISA-L library。

  •  用ISA-Lautotools 编译library:

./autogen.sh

./configure

  • 编译DPDK前安装ISA-L library:

make

sudomake install

  • 如果要使用meson build, 需要把library sources中的libisal.pc文件拷贝到 “pkgconfig”:

cp isal/libisal.pc /usr/lib/pkgconfig/

04

  初始化  

  • 要使能ISA-L PMD, 用户需要:


  • 在config/common_base中设置 CONFIG_RTE_LIBRTE_PMD_ISAL=y

在应用中使用ISA-L PMD需要做如下操作:

  • 在应用中调用rte_vdev_init("compress_isal")。

  • 使用EAL选项--vdev="compress_isal",会内部调用rte_vdev_init() 。

上述两个函数调用中提供如下可选参数:

  • socket_id: 指定分配内存的socket(默认的socket_id是运行PMD的core所在socket)。

640?wx_fmt=jpeg

 推荐阅读 


640?wx_fmt=jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值