dump rhashtable and encap and decap flows

crash> mlx5e_flow_steering.tc  ffff880c6a724418
  tc = {
    t = 0x0,
    ht_params = {
      nelem_hint = 0x0,
      key_len = 0x8,
      key_offset = 0x8,
      head_offset = 0x0,
      max_size = 0x0,
      min_size = 0x0,
      automatic_shrinking = 0x1,
      locks_mul = 0x0,
      nulls_base = 0x0,
      hashfn = 0x0,
      obj_hashfn = 0x0,
      obj_cmpfn = 0x0
    },
    ht = {
      tbl = 0xffff880b8327a800,
      nelems = {
        counter = 0x2
      },
      key_len = 0x2,
      p = {
        nelem_hint = 0x0,
        key_len = 0x8,
        key_offset = 0x8,
        head_offset = 0x0,
        max_size = 0x0,
        min_size = 0x4,
        automatic_shrinking = 0x1,
        locks_mul = 0x20,
        nulls_base = 0x0,
        hashfn = 0xffffffff81374d80 <rhashtable_jhash2>,
        obj_hashfn = 0x0,
        obj_cmpfn = 0x0
      },
      max_elems = 0x80000000,
      rhlist = 0x0,
      run_work = {
        data = {
          counter = 0xfffffffe0
        },
        entry = {
          next = 0xffff880c6a724570,
          prev = 0xffff880c6a724570
        },
        func = 0xffffffff81375120 <rht_deferred_worker>
      },
      mutex = {
        owner = {
          counter = 0x0
        },
        wait_lock = {
          {
            rlock = {
              raw_lock = {
                val = {
                  counter = 0x0
                }
              }
            }
          }
        },
        osq = {
          tail = {
            counter = 0x0
          }
        },
        wait_list = {
          next = 0xffff880c6a724598,
          prev = 0xffff880c6a724598
        }
      },
      lock = {
        {
          rlock = {
            raw_lock = {
              val = {
                counter = 0x0
              }
            }
          }
        }
      }
    }
  }
crash> bucket_table  0xffff880b8327a800
struct bucket_table {
  size = 0x40,
  nest = 0x0,
  rehash = 0x0,
  hash_rnd = 0xe9e71c0f,
  locks_mask = 0x1f,
  locks = 0xffff880ba6e96280,
  walkers = {
    next = 0xffff880b8327a820,
    prev = 0xffff880b8327a820
  },
  rcu = {
    next = 0x0,
    func = 0x0
  },
  future_tbl = 0x0,
  buckets = 0xffff880b8327a880
}
crash> rd 0xffff880b8327a880 64
ffff880b8327a880:  0000000000000001 0000000000000003   ................
ffff880b8327a890:  0000000000000005 0000000000000007   ................
ffff880b8327a8a0:  0000000000000009 000000000000000b   ................
ffff880b8327a8b0:  000000000000000d 000000000000000f   ................
ffff880b8327a8c0:  0000000000000011 0000000000000013   ................
ffff880b8327a8d0:  0000000000000015 0000000000000017   ................
ffff880b8327a8e0:  0000000000000019 000000000000001b   ................
ffff880b8327a8f0:  000000000000001d 000000000000001f   ................
ffff880b8327a900:  0000000000000021 0000000000000023   !.......#.......
ffff880b8327a910:  0000000000000025 0000000000000027   %.......'.......
ffff880b8327a920:  0000000000000029 000000000000002b   ).......+.......
ffff880b8327a930:  000000000000002d 000000000000002f   -......./.......
ffff880b8327a940:  0000000000000031 0000000000000033   1.......3.......
ffff880b8327a950:  0000000000000035 0000000000000037   5.......7.......
ffff880b8327a960:  0000000000000039 000000000000003b   9.......;.......
ffff880b8327a970:  000000000000003d 000000000000003f   =.......?.......
ffff880b8327a980:  0000000000000041 0000000000000043   A.......C.......
ffff880b8327a990:  0000000000000045 0000000000000047   E.......G.......
ffff880b8327a9a0:  0000000000000049 000000000000004b   I.......K.......
ffff880b8327a9b0:  000000000000004d 000000000000004f   M.......O.......
ffff880b8327a9c0:  0000000000000051 0000000000000053   Q.......S.......
ffff880b8327a9d0:  0000000000000055 0000000000000057   U.......W.......
ffff880b8327a9e0:  0000000000000059 000000000000005b   Y.......[.......
ffff880b8327a9f0:  000000000000005d 000000000000005f   ]......._.......
ffff880b8327aa00:  0000000000000061 0000000000000063   a.......c.......
ffff880b8327aa10:  0000000000000065 0000000000000067   e.......g.......
ffff880b8327aa20:  0000000000000069 000000000000006b   i.......k.......
ffff880b8327aa30:  ffff880a9b2a58a0 000000000000006f   .X*.....o.......
ffff880b8327aa40:  0000000000000071 0000000000000073   q.......s.......
ffff880b8327aa50:  0000000000000075 0000000000000077   u.......w.......
ffff880b8327aa60:  0000000000000079 000000000000007b   y.......{.......
ffff880b8327aa70:  ffff880c5a4686c0 000000000000007f   ..FZ............
struct mlx5e_tc_flow {
  node = {
    next = 0x6d
  },
  cookie = 0xffff880b432f4800,
  flags = 0x5,
  rule = 0xffff880c20f48d40,
  encap = {
    next = 0x0,
    prev = 0x0
  },
  {
    esw_attr = 0xffff880a9b2a58d0,
    nic_attr = 0xffff880a9b2a58d0
  }
}
crash> mlx5_esw_flow_attr  0xffff880a9b2a58d0
struct mlx5_esw_flow_attr {
  in_rep = 0xffff880c823e7e00,
  out_rep = 0xffff880c823e7e48,
  action = 0x2c,
  vlan = 0x0,
  vlan_handled = 0x0,
  encap_id = 0x0,
  mod_hdr_id = 0x0,
  parse_attr = 0x0
}
crash> mlx5_eswitch_rep 0xffff880c823e7e48
struct mlx5_eswitch_rep {
  load = 0xffffffffa01b6c00 <mlx5e_rep_register_vf_vports+32>,
  unload = 0xffffffffa01b61b0 <mlx5e_rep_neigh_cleanup+64>,
  vport = 0x1,
  hw_id = "$\212\a\210", <incomplete sequence \312>,
  netdev = 0xffff880c875e0000,
  vport_rx_rule = 0xffff880b0f828840,
  vport_sqs_list = {
    next = 0xffff880bb6294dc8,
    prev = 0xffff880bb6294dc8
  },
  vlan = 0x0,
  vlan_refcount = 0x2,
  valid = 0x1
}



crash> mlx5e_rep_priv  ffff880c8173c000
struct mlx5e_rep_priv {
  rep = 0xffff880c823e7e00,
  neigh_update = {
    neigh_ht = {
      tbl = 0xffff880c7b33f800,
      nelems = {
        counter = 0x1
      },
      key_len = 0x8,
      p = {
        nelem_hint = 0x0,
        key_len = 0x20,
        key_offset = 0x8,
        head_offset = 0x0,
        max_size = 0x0,
        min_size = 0x4,
        automatic_shrinking = 0x1,
        locks_mul = 0x20,
        nulls_base = 0x0,
        hashfn = 0xffffffff81374d80 <rhashtable_jhash2>,
        obj_hashfn = 0x0,
        obj_cmpfn = 0x0
      },
      max_elems = 0x80000000,
      rhlist = 0x0,
      run_work = {
        data = {
          counter = 0xfffffffe0
        },
        entry = {
          next = 0xffff880c8173c058,
          prev = 0xffff880c8173c058
        },
        func = 0xffffffff81375120 <rht_deferred_worker>
      },
      mutex = {
        owner = {
          counter = 0x0
        },
        wait_lock = {
          {
            rlock = {
              raw_lock = {
                val = {
                  counter = 0x0
                }
              }
            }
          }
        },
        osq = {
          tail = {
            counter = 0x0
          }
        },
        wait_list = {
          next = 0xffff880c8173c080,
          prev = 0xffff880c8173c080
        }
      },
      lock = {
        {
          rlock = {
            raw_lock = {
              val = {
                counter = 0x0
              }
            }
          }
        }
      }
    },
    neigh_list = {
      next = 0xffff880c09c713a8,
      prev = 0xffff880c09c713a8
    },
    encap_lock = {
      {
        rlock = {
          raw_lock = {
            val = {
              counter = 0x0
            }
          }
        }
      }
    },
    netevent_nb = {
      notifier_call = 0xffffffffa01b7180 <mlx5e_rep_neigh_entry_lookup+208>,
      next = 0xffff880c7a2beeb0,
      priority = 0x0
    },
    neigh_stats_work = {
      work = {
        data = {
          counter = 0xc01
        },
        entry = {
          next = 0xffff880c8173c0d0,
          prev = 0xffff880c8173c0d0
        },
        func = 0xffffffffa01b6130 <mlx5e_rep_get_stats+160>
      },
      timer = {
        entry = {
          next = 0x0,
          pprev = 0xffff880c8ebd23b8
        },
        expires = 0x106443188,
        function = 0xffffffff8109d3c0 <delayed_work_timer_fn>,
        data = 0xffff880c8173c0c8,
        flags = 0x36600007
      },
      wq = 0xffff880c82b23400,
      cpu = 0x40
    },
    min_interval = 0x1388
  }
}

crash> list 0xffff880c09c713a8
ffff880c09c713a8
ffff880c8173c098

crash> list mlx5e_neigh_hash_entry.neigh_list  -H ffff880c8173c098 -s mlx5e_neigh_hash_entry
ffff880c09c71380
struct mlx5e_neigh_hash_entry {
  rhash_node = {
    next = 0x5b
  },
  m_neigh = {
    dev = 0xffff880c6a720000,
    dst_ip = {
      v4 = 0x1301a8c0,
      v6 = {
        in6_u = {
          u6_addr8 = "\300\250\001\023\000\000\000\000\000\000\000\000\000\000\000",
          u6_addr16 = {0xa8c0, 0x1301, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
          u6_addr32 = {0x1301a8c0, 0x0, 0x0, 0x0}
        }
      }
    },
    family = 0x2
  },
  neigh_list = {
    next = 0xffff880c8173c098,
    prev = 0xffff880c8173c098
  },
  encap_list = {
    next = 0xffff880aa3d43000,
    prev = 0xffff880aa3d43000
  },
  n = 0xffff880b6bf93200,
  neigh_update_work = {
    data = {
      counter = 0xc00
    },
    entry = {
      next = 0xffff880c09c713d8,
      prev = 0xffff880c09c713d8
    },
    func = 0xffffffffa01b6d30 <mlx5e_vport_rep_load+96>
  },
  refcnt = {
    refs = {
      counter = 0x1
    }
  },
  reported_lastuse = 0x10625ce00
}
crash> list -H ffff880c09c713b8 -s mlx5e_encap_entry
ffff880aa3d43000
struct mlx5e_encap_entry {
  encap_list = {
    next = 0xffff880c09c713b8,
    prev = 0xffff880c09c713b8
  },
  m_neigh = {
    dev = 0xffff880c6a720000,
    dst_ip = {
      v4 = 0x1301a8c0,                    # 192.168.1.19
      v6 = {
        in6_u = {
          u6_addr8 = "\300\250\001\023\000\000\000\000\000\000\000\000\000\000\000",
          u6_addr16 = {0xa8c0, 0x1301, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
          u6_addr32 = {0x1301a8c0, 0x0, 0x0, 0x0}
        }
      }
    },
    family = 0x2
  },
  encap_hlist = {
    next = 0x0,
    pprev = 0xffff88017e961850
  },
  flows = {
    next = 0xffff880aa0ac3f80,
    prev = 0xffff880bec287d40
  },
  encap_id = 0x0,
  tun_info = {
    key = {
      tun_id = 0x100000000000000,               # vxlan key = 1
      u = {
        ipv4 = {
          src = 0x0,
          dst = 0x1301a8c0
        },
        ipv6 = {
          src = {
            in6_u = {
              u6_addr8 = "\000\000\000\000\300\250\001\023\000\000\000\000\000\000\000",
              u6_addr16 = {0x0, 0x0, 0xa8c0, 0x1301, 0x0, 0x0, 0x0, 0x0},
              u6_addr32 = {0x0, 0x1301a8c0, 0x0, 0x0}
            }
          },
          dst = {
            in6_u = {
              u6_addr8 = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",
              u6_addr16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
              u6_addr32 = {0x0, 0x0, 0x0, 0x0}
            }
          }
        }
      },
      tun_flags = 0x400,
      tos = 0x0,
      ttl = 0x0,
      label = 0x0,
      tp_src = 0x0,
      tp_dst = 0xb512
    },
    dst_cache = {
      cache = 0x0,
      reset_ts = 0x0
    },
    options_len = 0x0,
    mode = 0x1
  },
  h_dest = "$\212\a\210'\233",
  out_dev = 0xffff880c6a720000,
  tunnel_type = 0x0,
  flags = 0x1,
  encap_header = 0xffff880b838a8b00 "$\212\a\210'\233$\212\a\210'\312\b",
  encap_size = 0x32
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值