#define CANETHGW_H
#include <linux/types.h>
-#include <linux/can.h>
-/* these are from gw.h */
-struct rtcanmsg {
- __u8 can_family;
- __u8 gwtype;
- __u16 flags;
+struct cegw_ioctl
+{
+ __u32 can_sock;
+ __u32 udp_sock;
+ __u32 udp_dstcnt;
+ __u32 udp_addrlen;
+ __u8 udp_dst[0];
};
-/* CEGW_CMD_INFO values */
-enum {
- CEGW_RULE_CAN_ETH,
- CEGW_RULE_ETH_CAN,
- CEGW_LISTEN,
- CEGW_FLUSH,
- __CEGW_CMD_MAX
+#ifdef __KERNEL__
+struct cegw_job
+{
+ struct kref refcount;
+ struct socket* can_sock;
+ struct socket* udp_sock;
+ u32 udp_dstcnt;
+ u32 udp_addrlen;
+ u8 udp_dst[0];
};
-#define CEGW_CMD_MAX (__CEGW_CMD_MAX - 1)
+#endif
-/* rtnetlink attributes */
-enum {
- CEGW_TYPE,
- CEGW_CAN_IFINDEX,
- CEGW_ETH_IP,
- CEGW_ETH_PORT,
- CEGW_CMD_INFO,
- CEGW_CAN_SOCK,
- CEGW_ETH_SOCK,
- __CEGW_MAX
-};
-#define CEGW_MAX (__CEGW_MAX - 1)
-
-/* ToDo:
- * CEGW_HANDLED
- * CEGW_DROPPED
- * CEGW_ETH_PROTO
- */
+#define CEGW_IOCTL_BASE 'c'
+#define CEGW_IOCTL_START _IOW(CEGW_IOCTL_BASE, 0, struct cegw_ioctl)
#endif /* CANETHGW_H */