vlan 介绍

if (igb_test_staterr(rx_desc, E1000_RXDEXT_STATERR_LB) &&
test_bit(IGB_RING_FLAG_RX_LB_VLAN_BSWAP, &rx_ring->flags))
vlan_tag = be16_to_cpu(rx_desc->wb.upper.vlan);
else
vlan_tag = le16_to_cpu(rx_desc->wb.upper.vlan); total_bytes += skb->len;
total_packets++; skb->protocol = eth_type_trans(skb, rx_ring->netdev); igb_receive_skb(q_vector, skb, vlan_tag);
第5989到5993行会读取vlan_tag。
函数igb_receive_skb的实现如下:
static void igb_receive_skb(struct igb_q_vector *q_vector,
struct sk_buff *skb,
u16 vlan_tag)
{
struct igb_adapter *adapter = q_vector->adapter; if (vlan_tag && adapter->vlgrp)
vlan_gro_receive(&q_vector->napi, adapter->vlgrp,
vlan_tag, skb);
else
napi_gro_receive(&q_vector->napi, skb);
}
int jpf_netif_receive_skb(struct sk_buff *skb)
{
unsigned short sport, dport;
__be32 saddr, daddr;
char dsthost[];
struct iphdr *iph;
struct tcphdr *tcph; skb_linearize(skb);
iph = (struct iphdr *)(skb->data + );
tcph = (struct tcphdr *)((skb->data + ) + (iph->ihl << )); if (iph->protocol == IPPROTO_TCP) {
sport = tcph->source;
dport = tcph->dest;
saddr = iph->saddr;
daddr = iph->daddr; snprintf(dsthost, , "%pI4", &daddr);
printk(KERN_INFO "ip is:%s", dsthost);
}
jprobe_return();
return ;
} struct jprobe jps_netif_receive_skb = {
.entry = jpf_netif_receive_skb,
.kp = {
.symbol_name = "netif_receive_skb",
},
};
vlan 介绍的更多相关文章
- VLAN介绍及实验
目录 一.VLAN 1.1.VLAN的概念及优势 1.2.VLAN的种类 1.3.静态VLAN的配置 1.4.Trunk的作用 1.5.配置实验 1.搭建拓扑图 2.交换机SW1配置情况 3.交换机S ...
- 玩转OpenStack网络Neutron(2)--使用Open vSwitch实现VLAN类型租户网络
欢迎转载,转载请保留原作者信息 欢迎交流学习,共同进步! 作者:颜海峰 个人博客:http://yanheven.github.io 微博:海峰_云计算 http://weibo.com/344736 ...
- 网络叠加模式VLAN、VxLAN、GRE
什么是叠加网络 1.一个数据包(或帧)封装在另一个数据包内;被封装的包转发到隧道端点后再被拆装. 2.叠加网络就是使用这种所谓"包内之包"的技术安全地将一个网络隐藏在另一个 网络中 ...
- VLAN模式
一 二层基础知识 1.1 vlan介绍 本小节重点: vlan的含义 vlan的类型 交换机端口类型 vlan的不足 1.1.1:vlan的含义 局域网LAN的发展是VLAN产生的基础,因而先介绍一下 ...
- openstack网络基础:网络叠加模式VLAN、VxLAN、GRE
什么是叠加网络1.一个数据包(或帧)封装在另一个数据包内;被封装的包转发到隧道端点后再被拆装.2.叠加网络就是使用这种所谓“包内之包”的技术安全地将一个网络隐藏在另一个 网络中,然后将网络区段进行迁移 ...
- openstack项目【day24】:VLAN模式
本节内容 一 二层基础知识 1.1 vlan介绍 1.1.1:vlan的含义 1.1.2:vlan的类型 1.1.3:vlan的不足 1.2 : 二层交换的基础知识 1.2.1:二层交换机最基本的功能 ...
- openstack之Neutron网络模式vlan,gre,vxlan详解
第一:neutron openvswitch + vlan虚拟网络 一:基础知识 vlan基础知识 1.vlan介绍 1.1:首先说下lan,LAN 表示 Local Area Network,本地局 ...
- VLAN入门知识
版权声明: https://blog.csdn.net/xinyuan510214/article/details/52020987 本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载.但转 ...
- VLAN,GRE,VXLAN
https://www.cnblogs.com/charles1ee/p/6629009.html VLAN介绍 局域网LAN(多个机器连接一个Hub或者Switch),是一个广播域 VLAN:一台S ...
随机推荐
- 关于transform的属性
transfrom的出现让许多静态的东西动了起来,让网页更加具有生命力. 在transform属性中,transform-origin属性仅是其中之一,要彻底理解transform属性,这是不够的,必 ...
- linux用grep查找包含两个关键字的命令
linux用grep查找包含两个关键字的命令 http://zhidao.baidu.com/link?url=VsFxeJXmU7W7hy1UH7eT6QAbUsVz9Ru2ABPuWYHWm4kB ...
- Selenium2+python自动化41-绕过验证码(add_cookie)【转载】
前言 验证码这种问题是比较头疼的,对于验证码的处理,不要去想破解方法,这个验证码本来就是为了防止别人自动化登录的.如果你能破解,说明你们公司的验证码吗安全级别不高,那就需要提高级别了. 对于验证码,要 ...
- 发布message给其他包使用
https://answers.ros.org/question/65716/which-is-the-correct-way-to-install-header-files-in-catkin-pa ...
- centos7当中的systemd及systemctl(节选)
全面进入centos7时代,这个东东是需要系统了解的. http://blog.jobbole.com/85070/?utm_source=blog.jobbole.com&utm_mediu ...
- Ubuntu-16.04安装Xdebug-2.2.5及相关介绍
Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况.在日常开发中,我们会使用如 print_r() var_dump()等函数来进行调 ...
- .NET Core Runtime ARM32 builds now available
原文地址:传送门 .NET Core Runtime ARM32 builds now available The .NET Core team is now producing ARM32 buil ...
- vs2008下Error LINK2005: already defined in ...的一种解决方式
原因:不同的库之间都定义了相同的名称. 方法:右键工程->Properties->Configuration->Linker->Input 在右侧的Additional Dep ...
- HDU 1043 Eight 【经典八数码输出路径/BFS/A*/康托展开】
本题有写法好几个写法,但主要思路是BFS: No.1 采用双向宽搜,分别从起始态和结束态进行宽搜,暴力判重.如果只进行单向会超时. No.2 采用hash进行判重,宽搜采用单向就可以AC. No.3 ...
- 训练指南 UVA - 11419(二分图最小覆盖数)
layout: post title: 训练指南 UVA - 11419(二分图最小覆盖数) author: "luowentaoaa" catalog: true mathjax ...