xfrm/compat: Add 64=>32-bit messages translator
Provide the kernel-to-user translator under XFRM_USER_COMPAT, that creates for 64-bit xfrm-user message a 32-bit translation and puts it in skb's frag_list. net/compat.c layer provides MSG_CMSG_COMPAT to decide if the message should be taken from skb or frag_list. (used by wext-core which has also an ABI difference) Kernel sends 64-bit xfrm messages to the userspace for: - multicast (monitor events) - netlink dumps Wire up the translator to xfrm_nlmsg_multicast(). Signed-off-by: Dmitry Safonov <dima@arista.com> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
This commit is contained in:

committed by
Steffen Klassert

parent
c9e7c76d70
commit
5461fc0c8d
@@ -2000,7 +2000,12 @@ static inline int xfrm_tunnel_check(struct sk_buff *skb, struct xfrm_state *x,
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern const int xfrm_msg_min[XFRM_NR_MSGTYPES];
|
||||
|
||||
struct xfrm_translator {
|
||||
/* Allocate frag_list and put compat translation there */
|
||||
int (*alloc_compat)(struct sk_buff *skb, const struct nlmsghdr *src);
|
||||
|
||||
struct module *owner;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user