dump vxlan internal data structures

本文记录了一次针对VXLAN网络配置与故障排查的过程,包括了VXLAN网络ID的确认、网络设备的详细信息及相关的数据结构分析。通过这些信息,可以深入理解VXLAN的工作原理及其实现细节。

crash> net.gen init_net
  gen = 0xffff880c60c4ff80
crash> net_generic 0xffff880c60c4ff80
struct net_generic {
  {
    s = {
      len = 16,
      rcu = {
        next = 0x0,
        func = 0x0
      }
    },
    ptr = 0xffff880c60c4ff80
  }
}
crash> mod -s vxlan
     MODULE       NAME                                           SIZE  OBJECT FILE
ffffffffa099b5c0  vxlan                                         45056  /lib/modules/4.10.2/kernel/drivers/net/vxlan.ko
crash> vxlan_net_id
vxlan_net_id = $11 = 15
crash> rd 0xffff880c60c4ff80 16
ffff880c60c4ff80:  0000000000000010 0000000000000000   ................
ffff880c60c4ff90:  0000000000000000 ffff8806fc588070   ........p.X.....
ffff880c60c4ffa0:  ffff88065bd4fc00 ffff88065d205bb0   ...[.....[ ]....
ffff880c60c4ffb0:  ffff8806609b8f00 ffff88065c2fd800   ...`....../\....
ffff880c60c4ffc0:  ffff8806fc75b080 ffff880c4e0197d8   ..u........N....
ffff880c60c4ffd0:  ffff88065d3f7e28 ffff880c473bbd10   (~?]......;G....
ffff880c60c4ffe0:  ffff88065effa590 ffff880633581600   ...^......X3....
ffff880c60c4fff0:  ffff8806335815c0 ffff880c61315000   ..X3.....P1a....
crash> vxlan_net  ffff880c61315000
  vxlan_list = {
    next = 0xffff880c44d50910,
    prev = 0xffff880c44d50910
  },
...
    }, {
      first = 0xffff880c129ac000
    }, {
...
crash> vxlan_sock 0xffff880c129ac000
struct vxlan_sock {
  hlist = {
    next = 0xffff880c12a08000,
    pprev = 0xffff880c613151f0
  },
  sock = 0xffff880c2b274380,
  vni_list = {{
      first = 0xffff880c44d50900
    }, {
      first = 0x0
...
  refcnt = {
    counter = 1
  },
  flags = 8448
}
crash> eval 8448
hexadecimal: 2100
    decimal: 8448
      octal: 20400
     binary: 0000000000000000000000000000000000000000000000000010000100000000
#define VXLAN_F_UDP_ZERO_CSUM6_RX       0x100
#define VXLAN_F_COLLECT_METADATA        0x2000

crash> net
   NET_DEVICE     NAME   IP ADDRESS(ES)
ffff880c66ca6000  lo     127.0.0.1
ffff88065ec1c000  em1    10.200.0.168
ffff88065f0f0000  em2
ffff880650e50000  p2p1   1.1.1.18
ffff880651a30000  p2p2
ffff880c545f0000  p7p1
ffff880c53e80000  p7p2
ffff88017c2ee000  ib0
ffff8806304ee000  ib1
ffff88065c624000  virbr0 192.168.122.1
ffff880623a9c000  virbr0-nic
ffff8806204af000  ovs-system
ffff8806204e1000  br0
ffff880c612e7000  ovsbr
ffff88061eee4000  vnet0
ffff880662db4000  vnet1
ffff88061ecd8000  vnet2
ffff88061ec80000  vnet3
ffff880c44d50000  vxlan_sys_4789
crash> net_device -o
SIZE: 2304
crash> eval 2304
hexadecimal: 900
    decimal: 2304
      octal: 4400
     binary: 0000000000000000000000000000000000000000000000000000100100000000
crash> vxlan_dev ffff880c44d50900
struct vxlan_dev {
  hlist = {
    next = 0x0,
    pprev = 0xffff880c129ac018
  },
  next = {
    next = 0xffff880c61315000,
    prev = 0xffff880c61315000
  },
  vn4_sock = 0xffff880c129ac000,
  vn6_sock = 0xffff880c12a08000,
  dev = 0xffff880c44d50000,
  net = 0xffffffff81d1f880 <init_net>,
  default_dst = {
    remote_ip = {
      sin = {
        sin_family = 2,
        sin_port = 0,
        sin_addr = {
          s_addr = 0
        },
        __pad = "\000\000\000\000\000\000\000"
      },
      sin6 = {
        sin6_family = 2,
        sin6_port = 0,
        sin6_flowinfo = 0,
        sin6_addr = {
          in6_u = {
            u6_addr8 = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",
            u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
            u6_addr32 = {0, 0, 0, 0}
          }
        },
        sin6_scope_id = 0
      },
      sa = {
        sa_family = 2,
        sa_data = "\000\000\000\000\000\000\000\000\000\000\000\000\000"
      }
    },
    remote_port = 0,
    remote_vni = 0,
    remote_ifindex = 0,
    list = {
      next = 0x0,
      prev = 0x0
    },
    rcu = {
      next = 0x0,
      func = 0x0
    },
    dst_cache = {
      cache = 0x0,
      reset_ts = 0
    }
  },
  flags = 8448,
  age_timer = {
    entry = {
      next = 0x0,
      pprev = 0xffff880c67151970
    },
    expires = 4373118824,
    function = 0xffffffffa0994920 <vxlan_cleanup>,
    data = 18446612185008638208,
    flags = 805830667,
    start_pid = -1,
    start_site = 0x0,
    start_comm = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
  },
...


从不同的数据结构中得到了同样的值。

ffff880c61315000 (vxlan_net)

ffff880c129ac000 (vxlan_sock)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值