Linux Kernel Networking : implementation and theory /
Saved in:
Author / Creator: | Rosen, Rami. |
---|---|
Imprint: | [New York, N.Y.] : Apress, ©2014. |
Description: | 1 online resource (1 volume) : illustrations. |
Language: | English |
Series: | The expert's voice in open source Expert's voice in open source. |
Subject: | |
Format: | E-Resource Book |
URL for this record: | http://pi.lib.uchicago.edu/1001/cat/bib/11083040 |
Table of Contents:
- At a Glance; Chapter 1: Introduction; The Linux Network Stack; The Network Device; New API (NAPI) in Network Devices; Receiving and Transmitting Packets; The Socket Buffer; The Linux Kernel Networking Development Model; Summary; Chapter 2: Netlink Sockets; The Netlink Family; Netlink Sockets Libraries; The sockaddr_nl Structure; Userspace Packages for Controlling TCP/IP Networking; Kernel Netlink Sockets; The Netlink Message Header; NETLINK_ROUTE Messages; Adding and Deleting a Routing Entry in a Routing Table; Generic Netlink Protocol; Creating and Sending Generic Netlink Messages.
- Socket Monitoring InterfaceSummary; Quick Reference; Chapter 3: Internet Control Message Protocol (ICMP); ICMPv4; ICMPv4 Initialization; ICMPv4 Header; Receiving ICMPv4 Messages; Sending ICMPv4 Messages: "Destination Unreachable"; Code 2: ICMP_PROT_UNREACH (Protocol Unreachable); Code 3: ICMP_PORT_UNREACH ("Port Unreachable"); Code 4: ICMP_FRAG_NEEDED; Code 5: ICMP_SR_FAILED; ICMPv6; ICMPv6 Initialization; ICMPv6 Header; Receiving ICMPv6 Messages; Sending ICMPv6 Messages; Example: Sending "Hop Limit Time Exceeded" ICMPv6 Messages.
- Example: Sending "Fragment Reassembly Time Exceeded" ICMPv6 MessagesExample: Sending "Destination Unreachable"/"Port Unreachable" ICMPv6 Messages; Example: Sending "Fragmentation Needed" ICMPv6 Messages; Example: Sending "Parameter Problem" ICMPv6 Messages; ICMP Sockets ("Ping sockets"); Summary; Quick Reference; Methods; int icmp_rcv(struct sk_buff *skb); ; extern void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info); ; struct icmp6hdr *icmp6_hdr(const struct sk_buff *skb); ; void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info).
- Void icmpv6_param_prob(struct sk_buff *skb, u8 code, int pos); Tables; procfs entries; sysctl_icmp_echo_ignore_all; sysctl_icmp_echo_ignore_broadcasts; sysctl_icmp_ignore_bogus_error_responses; sysctl_icmp_ratelimit; sysctl_icmp_ratemask; sysctl_icmp_errors_use_inbound_ifaddr; Creating "Destination Unreachable" Messages with iptables; Chapter 4: IPv4; IPv4 Header; IPv4 Initialization; Receiving IPv4 Packets; Receiving IPv4 Multicast Packets; IP Options; Timestamp Option; Record Route Option; IP Options and Fragmentation; Building IP Options; Sending IPv4 Packets; Fragmentation; Fast Path.
- Slow PathDefragmentation; Forwarding; Summary; Quick Reference; Methods; int ip_queue_xmit(struct sk_buff *skb, struct flowi *fl); ; int ip_append_data(struct sock *sk, struct flowi4 *fl4, int getfrag(void *from, char *to, int offset, int len, int odd, str ... ; struct sk_buff *ip_make_skb(struct sock *sk, struct flowi4 *fl4, int getfrag(void *from, char *to, int offset, int len, int ... ; int ip_generic_getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb); ; static int icmp_glue_bits(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb).