include/net/rtnh.h
Source file repositories/reference/linux-study-clean/include/net/rtnh.h
File Facts
- System
- Linux kernel
- Corpus path
include/net/rtnh.h- Extension
.h- Size
- 859 bytes
- Lines
- 35
- Domain
- Networking Core
- Bucket
- Sockets, Protocols, Packet Path, And Network Policy
- Inferred role
- Networking Core: implementation source
- Status
- source implementation candidate
Why This File Exists
Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/rtnetlink.hnet/netlink.h
Detected Declarations
function rtnh_okfunction rtnh_attrlen
Annotated Snippet
#ifndef __NET_RTNH_H
#define __NET_RTNH_H
#include <linux/rtnetlink.h>
#include <net/netlink.h>
static inline int rtnh_ok(const struct rtnexthop *rtnh, int remaining)
{
return remaining >= (int)sizeof(*rtnh) &&
rtnh->rtnh_len >= sizeof(*rtnh) &&
rtnh->rtnh_len <= remaining;
}
static inline struct rtnexthop *rtnh_next(const struct rtnexthop *rtnh,
int *remaining)
{
int totlen = NLA_ALIGN(rtnh->rtnh_len);
*remaining -= totlen;
return (struct rtnexthop *) ((char *) rtnh + totlen);
}
static inline struct nlattr *rtnh_attrs(const struct rtnexthop *rtnh)
{
return (struct nlattr *) ((char *) rtnh + NLA_ALIGN(sizeof(*rtnh)));
}
static inline int rtnh_attrlen(const struct rtnexthop *rtnh)
{
return rtnh->rtnh_len - NLA_ALIGN(sizeof(*rtnh));
}
#endif
Annotation
- Immediate include surface: `linux/rtnetlink.h`, `net/netlink.h`.
- Detected declarations: `function rtnh_ok`, `function rtnh_attrlen`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.