]> rtime.felk.cvut.cz Git - can-eth-gw.git/blobdiff - kernel/canethgw.h
Copy IPv6 support to submodules + fixes + small enhancements
[can-eth-gw.git] / kernel / canethgw.h
index 10f745a8392da509688c3d9b59e36971b5433a5f..ab1b6c1b5e008a0ecb426bf478c3a75bd36617e0 100644 (file)
@@ -2,43 +2,30 @@
 #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 */