Python与BPF映射的交互作用

问题描述 投票:0回答:1

我想知道是否可以轻松地从python用户空间初始化BPF映射。对于我的项目,每个过程都会有一个看起来很恐怖的NxN 2d浮点数组。为简单起见,让我们假设N在各个进程中都是恒定的(例如5)。为了获得对这些数据的内核支持,我可以执行以下操作:

b = BPF(text = """
    typedef struct
    {
        float transMat[5][5];
    } trans_struct;



    BPF_HASH(trans_mapping, char[16], trans_struct);

    .....
""")

我想知道是否有一种简便的方法可以从python初始化此地图。类似于:

for ele in someDictionary:
    #asume someDitionary has mapping (comm -> 5x5 float matrix)
    b["trans_mapping"].insert(ele, someDictionary[ele])

我想让我感到困惑的是-1)所有map方法都可供用户使用,2)当从python对象转到c结构时,如何确保类型一致性?>

我想知道是否可以轻松地从python用户空间初始化BPF映射。对于我的项目,每个过程都会有一个看起来很恐怖的NxN 2d浮点数组。为了简单起见,假设...

python maps trace bpf bcc-bpf
1个回答
0
投票

基于pchaigno注释的解决方案-要注意的关键是使用c_types以确保跨环境的类型一致性,并通过为BPF程序对象建立索引来提取表。由于我们能够通过索引获取地图,因此现在认为get_table()函数已过时。这种格式提供了从python前端将数据加载到地图中的结构,但并不完全符合我的问题的细节。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.