• Yonghong Song's avatar
    add padding to the end of structure · b32b4a5f
    Yonghong Song authored
    Commit 538a84e1 ("provide padded structure for
    table_{key|leaf}_desc API") added explicit padding, if needed,
    before every structure member.
    
    This is not enough as if an array of elements are returned
    from C++ to python side, the size of structure must be correct.
    
    This patch also adds padding after the last structure field
    to make structure size in python side consistent with C++
    side. With this patch, I experimented with the pull request
    for tcpretrans.py by Matthias Tafelmeier, the type
      struct ipv6_flow_key_t {
          unsigned __int128 saddr;
          unsigned __int128 daddr;
          u64 lport;
          u64 dport;
      }
    can be replaced with
      struct ipv6_flow_key_t {
          unsigned __int128 saddr;
          unsigned __int128 daddr;
          u16 lport;
          u16 dport;
      }
    where the original type of lport/dport is u16.
    Some other ipv6 related data structures can also be simplified.
    Signed-off-by: default avatarYonghong Song <yhs@fb.com>
    b32b4a5f
test_clang.py 18.2 KB