linux
文章平均质量分 57
mishuang2017
这个作者很懒,什么都没留下…
展开
-
ovs internal port offload with multiple mirrors
1.1 发送方向, 首先match vf的mac,然后mirror到port 1和port 4,最后跳转到split table。1.3 在1.2做了encap后,match pf mac和reg c0,然后跳转到termination table。2.2 match tunnel ip,然后跳转到三个indir table,从port 1, 2, 4发送出去。2.1 接收方向,match pf mac,然后跳转到root table。2.3 三个indir table。原创 2023-06-09 15:27:47 · 144 阅读 · 0 评论 -
tc flower hw offload counters
首先mlx5_core驱动有一个单线程的workqueue,每一秒mlx5_fc_stats_work都会被调到,去fw里面查询flow对应的counter。tc_action的cpu_bstats和cpu_bstats_hw并不是每个action都有,tcf_idr_create的时候有个参数cpustats控制创建与否。之所以有两个counter,是因为per cpu的counter太耗费cpu资源,action初始化的时候可以选择不用per cpu counter。原创 2023-01-05 11:35:21 · 788 阅读 · 0 评论 -
vxlan tunnel收发原理
commit ee122c79d4227f6ec642157834b6a90fcffa4382Author: Thomas Graf <tgraf@suug.ch>Date: Tue Jul 21 10:43:58 2015 +0200 vxlan: Flow based tunneling Allows putting a VXLAN device into a new flow-based mode in which skbs with a ip...原创 2021-11-04 22:13:49 · 731 阅读 · 0 评论 -
dev_set_name
# ls /sys/class/infinibandmlx5_0 mlx5_1创建bondmodprobe bonding/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 upecho '2' > /sys/class/net/enp8s0f0/device/sriov_numvfs/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 vf 0 state enable/.原创 2021-08-24 15:08:28 · 830 阅读 · 0 评论 -
stack devices
$ git format-patch -o ~/stack_devices/1 b055ecf5827d81a60144560266a78fea652bdf1a..8914add2c9e5518f6a864936658bba5752510b39$ lltotal 312K-rw-r--r-- 1 cmi nvu 8.8K May 25 09:04 0001-net-mlx5e-E-Switch-Maintain-vhca_id-to-vport_num-map.patch-rw-r--r-- 1原创 2021-05-25 20:25:03 · 179 阅读 · 0 评论 -
efibootmgr
原来装的是fedora 30,升级到kernel 5.10后,发现bcc不能用了。提示说要升级到fedora 32。装完32后发现efiboomgr里面只有一个Fedora,也就是说原来的fedora 30不见了,虽然磁盘没有丢,但是没法启动了。可以用下面的命令添加一项:efibootmgr -c -d /dev/sda -p 1 -L "fedora_30" -l "\EFI\fedora\grubx64.efi"[root@dev-r630-03 ~]# efibootmgr -vBootCu原创 2020-12-18 23:24:02 · 1088 阅读 · 2 评论 -
ovs的revalidator
一般情况下ukey->reval_seq和udpif->reval_seq是一样的,所以在revalidate_ukey函数里need_revalidate是false。但是如果添加或者删除了openflow rule的规则,udpif->reval_seq会加1。(gdb) bt#0 set_tables_version (ofproto_=0x1169f50, version=0xa) at ofproto/ofproto-dpif.c:2017#1 0x000000原创 2020-09-14 17:17:49 · 1034 阅读 · 0 评论 -
TRex
Trex是思科的一款基于DPDK的网络测试工具。首先安装centos 7.5,然后安装kernel-devel-3.10.0-862.el7.x86_64.rpm。最好不要用# yum install kernel-devel,以免安装了最新的,和当前kernel不匹配。下载MLNX_OFED_LINUX-4.4-1.0.0.0-rhel7.5-x86_64.iso,安装:./mln...原创 2020-02-20 22:17:51 · 3060 阅读 · 0 评论 -
linux flashplayer
下载flash_player_npapi_linux.x86_64.tar.gz,放在根目录解压。然后把/libflashplayer.so放到个人目录里。$ mkdir ~/.mozilla/plugins$ cp /libflashplayer.so ~/.mozilla/plugins...原创 2020-02-16 15:37:18 · 140 阅读 · 0 评论 -
PERCPU
https://0xax.gitbooks.io/linux-insides/content/Concepts/linux-cpu-1.htmlpercpu对某些应用来说非常高效,但是对需要频繁分配percpu变量时,机会变成累赘。因为分配时需要一个全局变量的锁。最新的upstreamkernel里面有一些patch解决了tc里面的percpu的问题。commit d86784fe...原创 2020-02-14 18:13:34 · 546 阅读 · 0 评论 -
ping
下载地址:git clone git@github.com:iputils/iputils.git还有另外一个gnu的ping:wget http://ftp.gnu.org/gnu/inetutils/inetutils-1.9.4.tar.xzstruct icmphdr { __u8 type; __u8 code; __...原创 2019-12-07 21:25:24 · 314 阅读 · 0 评论 -
ubuntu用netplan配置静态ip
[chrism@hp netplan]$ cd /etc/netplan/[chrism@hp netplan]$ cat 01-network-manager-all.yaml# Let NetworkManager manage all devices on this systemnetwork: version: 2 renderer: NetworkManager et...原创 2019-11-24 17:22:17 · 3264 阅读 · 1 评论 -
Subject: [PATCH] net: solve a NAPI race
包括我在内很多人认为Linux已经很成熟了,不应该有什么不可思议的bug。最近发现有个bug在2017年才fix。From 39e6c8208d7b6fb9d2047850fb3327db567b564b Mon Sep 17 00:00:00 2001From: Eric Dumazet <edumazet@google.com>Date: Tue, 28 Feb 2017 ...原创 2018-10-28 22:14:37 · 350 阅读 · 1 评论 -
debian/ubuntu
1. 设置源:mirrors.aliyun.comhttps://opsx.alibaba.com/mirror/etc/apt/sources.listhttp://www.cnblogs.com/wudonghang/p/8e0b1c5ef4f570a3eab4367080a80a11.htmlubuntu aliyun:https://blog.csdn.net/ezre...原创 2018-11-03 16:45:10 · 775 阅读 · 0 评论 -
Pulse Secure installation on linux
在ubuntu 18上可以参考下文:https://blog.csdn.net/cpak00/article/details/83790837sudo apt install network-manager-openconnect-gnomehttps://cis.technion.ac.il/en/central-services/communication/install-...原创 2018-11-04 10:21:54 · 5272 阅读 · 0 评论 -
用bcc打印参数内容
Linux DTrace仍然遥遥无期,不过最近发现bcc功能也很强大,可以打印参数成员变量的内容。https://github.com/mishuang2017/sm/blob/master/bcc/device_add.py'modprobe -v mlx5_core'输出如下:$ sudo ./device_add.pyTIME(s) device ...原创 2019-03-22 18:07:50 · 569 阅读 · 0 评论 -
用bcc打印调用函数和返回的时间
#!/usr/bin/pythonfrom __future__ import print_functionfrom bcc import BPFimport socket# load BPF programb = BPF(text="""#include <linux/pci.h>BPF_PERF_OUTPUT(events);struct data_t { ...原创 2019-04-12 15:51:23 · 508 阅读 · 0 评论 -
用crash打印所有pci设备的驱动和内核模块信息
笔记本所有pci设备如下:[root@lenovo ~]# lspci00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Gener...原创 2019-04-03 16:50:50 · 604 阅读 · 0 评论 -
在ubuntu上开启kdump-tools服务
# apt install linux-crashdumpubuntu多了一个grub配置文件 /etc/default/grub.d/kdump-tools.cfg,这样就不需要在/etc/default/grub设置crashkernel大小了。# cat /proc/cmdlineBOOT_IMAGE=/boot/vmlinuz-4.18.0-17-generic roo...原创 2019-04-23 22:10:11 · 4566 阅读 · 6 评论 -
ovs的dot1q-tunnel的vlan-mode
# man ovs-vswitchd.conf.db dot1q-tunnel A dot1q-tunnel port is somewhat like an access port. Like an access port, it carries packets on the single VLAN specifie...原创 2019-05-12 20:13:20 · 1579 阅读 · 0 评论 -
用pktgen产生随机mac流量
在samples/pktgen目录下面并没有具体的例子,但是pktgen是支持的,需要修改下面的文件:[chrism@dev-r630-04 linux]$ git diff samples/pktgen/pktgen_sample02_multiqueue.shdiff --git a/samples/pktgen/pktgen_sample02_multiqueue.sh b/samp...原创 2019-05-31 14:50:42 · 754 阅读 · 0 评论 -
不产生initramfs的解决方法
cd /images/chrism/linuxmake distcleancp /swgwork/majd/for_people/for_guyle/.config .config ##Enable the ACT_CT (Or take the .config from the dev-l-vrt-202 machine under )make menuconfig make ...原创 2019-07-09 19:58:20 · 250 阅读 · 0 评论 -
GRO checksum在tcpdump中incorrect的问题
tcpdump -i $link src 192.168.1.14 and port 4000 and greater 100 -v -nn当rx-checksumming打开的时候,skb->csum里面是硬件计算的tcp checksum,但是不包括伪头。dev_gro_receive(){ ... /* ...原创 2019-08-28 15:35:23 · 1439 阅读 · 1 评论 -
dump struct sw_flow from vport/datapath
+ cat /root/stap/ovs_vport_receive.stp#!/root/systemtap-3.2-22242/binglobal startfunction timestamp:long() { return gettimeofday_us() - start }probe begin { start = gettimeofday_us() }原创 2017-03-20 15:44:50 · 425 阅读 · 1 评论 -
Linux进程与线程的关系
crash> ps | grep ovs 5657 1 10 ffff88031b910000 IN 0.0 28668 5236 ovsdb-server 5715 1 8 ffff880329ec1d00 IN 0.9 1284180 151728 ovs-vswitchdcrash> task_struct.co...原创 2018-04-07 21:22:37 · 274 阅读 · 0 评论 -
进程,可执行文件和内存的关系
假设我们有如下程序:#include <stdio.h>int bss;int data = 10;void f(unsigned long *a){ *a = 1;}int main(int argc, char*argv[]){ int stack; void *heap; printf("bss:...原创 2018-03-24 23:06:05 · 1613 阅读 · 0 评论 -
some useful links and articles
GDB下查看内存命令(x命令)https://blog.csdn.net/allenlinrui/article/details/5964046https://lwn.net/Kernel/LDD3/https://lwn.net/Kernel/Index/SPARSEMEM_VMEMMAPhttps://blog.csdn.net/richardysteven/article/details/6...转载 2017-10-13 17:56:21 · 309 阅读 · 0 评论 -
OVS vport, datapath, flow_table, flex_array, sw_flow
dev_table在kernel里面有好多重名的数据结构,可以先改一下名字:$ git diffdiff --git a/net/openvswitch/vport.c b/net/openvswitch/vport.cindex b6c8524..554b919 100644--- a/net/openvswitch/vport.c+++ b/net/openvswitch/vpor原创 2017-06-17 10:42:09 · 636 阅读 · 1 评论 -
~/.vimrc
set rulerset hlsearchset nohlsearchset background=dark" set background=darkset tabstop=8set softtabstop=4set shiftwidth=4set softtabstop=2set softtabstop=8set shiftwidth=2set shiftwidth原创 2017-06-07 14:27:26 · 272 阅读 · 3 评论 -
dump rtable and dst_entry
ping www.baidu.com, ip_route_output_flow returns ffff880c834f6900crash> rtable ffff880c834f6900struct rtable { dst = { callback_head = { next = 0xffff880c834f7b00, func = 0x0原创 2017-06-01 10:43:52 · 429 阅读 · 0 评论 -
build gcc 5.4.0
To enable KASAN, we must use gcc 5.# wget ftp://ftp.gnu.org/pub/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2# tar jxf gcc-5.4.0.tar.bz2# cd gcc-5.4.0# ./contrib/download_prerequisites# mkdir gcc-原创 2017-05-27 14:38:07 · 1896 阅读 · 0 评论 -
tc flower
tc1 (){ set -x; offload=skip_sw; [[ $# == 1 ]] && offload=$1; [[ "$offload" == "sw" ]] && offload="skip_hw"; TC=tc; typeset link=p2p1; vf=p2p1_0; vid=52;原创 2017-04-28 08:53:52 · 2476 阅读 · 1 评论 -
dump vxlan internal data structures
crash> net.gen init_net gen = 0xffff880c60c4ff80crash> gen 0xffff880c60c4ff80struct net_generic { { s = { len = 16, rcu = { next = 0x0, func = 0x0原创 2017-03-17 11:24:45 · 343 阅读 · 0 评论 -
Mellanox 100G SRIOV E-Switch offload and VF representors
https://lwn.net/Articles/692942/ vport 1 (VF1) || /\ \/ ||rep: tirn 205 sqn 211crash> net NET_DEVICE NAME IP ADDRESS(ES)ffff88原创 2017-04-07 19:26:12 · 1760 阅读 · 1 评论 -
Neighboring Subsystem and ARP
crash> p neigh_tablesneigh_tables = $9 = {0xffffffff81cd9a40 , 0xffffffff81cdec60 , 0x0}crash> neigh_table.nht arp_tbl nht = 0xffff880bb65c9900crash> neigh_hash_table 0xffff880bb65c9900原创 2017-05-26 13:43:04 · 368 阅读 · 0 评论 -
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_原创 2017-05-26 18:49:57 · 637 阅读 · 0 评论 -
wait queue
1. MakefileKVERSION = $(shell uname -r)obj-m = workQueue.oall: make -C /lib/modules/$(KVERSION)/build M=$(PWD) modulesclean: make -C /lib/modules/$(KVERSION)/build M=原创 2017-04-23 14:50:26 · 409 阅读 · 0 评论 -
WSL and tmux
开启WSL1. 设置,更新与安全,针对开发人员2. 设置,系统,应用和功能,拉到最下面,相关设置,程序与功能,启动或关闭Windows功能,WSL然后就可以启动bash了。以前一直用screen,虽然很强大,但是老觉得有美中不足的地方。今天才只有还有tmux这种升级版的东西。分享一下之前一直用的~/.screenrchardstatus alwa原创 2017-06-03 21:49:29 · 2784 阅读 · 4 评论 -
dump rtnl_msg_handlers and rtnl_link
static int __init tc_filter_init(void){ rtnl_register(PF_UNSPEC, RTM_NEWTFILTER, tc_ctl_tfilter, NULL, NULL); rtnl_register(PF_UNSPEC, RTM_DELTFILTER, tc_ctl_tfilter, NULL, NULL);原创 2017-06-10 19:33:19 · 380 阅读 · 0 评论 -
dump tc_action
crash> net.gen init_net gen = 0xffff880afd858200struct net_generic { { s = { len = 0x10, rcu = { next = 0x0, func = 0x0 } }, ptr = 0xffff880afd85820原创 2017-06-07 17:37:25 · 415 阅读 · 5 评论