skb-4
2016-01-26 15:06
423 查看
unsigned char *data = skb_put(skb, user_data_len); int err = 0; skb->csum = csum_and_copy_from_user(user_pointer, data, user_data_len, 0, &err); if (err) goto user_fault;
This is what a new SKB looks like right after the user datais added.
skb_put() advances 'skb->tail' by the specified number ofbytes, it also increments 'skb->len' by that number of bytes as well.This routine must not be called on a SKB that has any paged data.You must also be sure that there is enough tail room in
the SKB forthe amount of bytes you are trying to put. Both of these conditionsare checked for by
skb_put() and an assertion failure willtrigger if either rule is violated.
The computed checksum is remembered in 'skb->csum'. Now, it's time tobuild the protocol headers. We'll build a UDP header, then one forIPV4.
相关文章推荐
- flume nginx 日志处理异常 JsonParseException: Unexpected character ('(' (code 40)): expected a valid value
- 搭mongodb+zookeeper+kafka环境
- 蓝桥杯:基础练习 查找整数
- autoupdate script
- Ctrl+Z 后恢复进程到前台
- Android中使用加密图片的解决方案
- XHR2通信基础
- netbeans环境搭建
- Ninject的使用
- 单例模式
- hdu 4003 Find Metal Mineral
- Linux 下安装JDK
- Linux 下安装JDK
- Linux 下安装JDK
- skb-3
- sql语句练习50题
- (转)linux 屏幕亮度调整命令
- .h头文件找不到报错!
- #学习笔记#(26)CSS3总结-慕课教程(部分)
- 3.2 活动对话框