flow.h
来自「linux 内核源代码」· C头文件 代码 · 共 103 行
H
103 行
/* * * Generic internet FLOW. * */#ifndef _NET_FLOW_H#define _NET_FLOW_H#include <linux/in6.h>#include <asm/atomic.h>struct flowi { int oif; int iif; __u32 mark; union { struct { __be32 daddr; __be32 saddr; __u8 tos; __u8 scope; } ip4_u; struct { struct in6_addr daddr; struct in6_addr saddr; __be32 flowlabel; } ip6_u; struct { __le16 daddr; __le16 saddr; __u8 scope; } dn_u; } nl_u;#define fld_dst nl_u.dn_u.daddr#define fld_src nl_u.dn_u.saddr#define fld_scope nl_u.dn_u.scope#define fl6_dst nl_u.ip6_u.daddr#define fl6_src nl_u.ip6_u.saddr#define fl6_flowlabel nl_u.ip6_u.flowlabel#define fl4_dst nl_u.ip4_u.daddr#define fl4_src nl_u.ip4_u.saddr#define fl4_tos nl_u.ip4_u.tos#define fl4_scope nl_u.ip4_u.scope __u8 proto; __u8 flags;#define FLOWI_FLAG_MULTIPATHOLDROUTE 0x01 union { struct { __be16 sport; __be16 dport; } ports; struct { __u8 type; __u8 code; } icmpt; struct { __le16 sport; __le16 dport; } dnports; __be32 spi; struct { __u8 type; } mht; } uli_u;#define fl_ip_sport uli_u.ports.sport#define fl_ip_dport uli_u.ports.dport#define fl_icmp_type uli_u.icmpt.type#define fl_icmp_code uli_u.icmpt.code#define fl_ipsec_spi uli_u.spi#define fl_mh_type uli_u.mht.type __u32 secid; /* used by xfrm; see secid.txt */} __attribute__((__aligned__(BITS_PER_LONG/8)));#define FLOW_DIR_IN 0#define FLOW_DIR_OUT 1#define FLOW_DIR_FWD 2struct sock;typedef int (*flow_resolve_t)(struct flowi *key, u16 family, u8 dir, void **objp, atomic_t **obj_refp);extern void *flow_cache_lookup(struct flowi *key, u16 family, u8 dir, flow_resolve_t resolver);extern void flow_cache_flush(void);extern atomic_t flow_cache_genid;static inline int flow_cache_uli_match(struct flowi *fl1, struct flowi *fl2){ return (fl1->proto == fl2->proto && !memcmp(&fl1->uli_u, &fl2->uli_u, sizeof(fl1->uli_u)));}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?