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
}
dump rhashtable and encap and decap flows
最新推荐文章于 2024-01-29 16:44:22 发布