__u16 flags;
};
+/* CEGW_CMD_INFO values */
enum {
- CGW_TYPE_UNSPEC,
- CGW_TYPE_CAN_CAN, /* CAN->CAN routing */
- CGW_TYPE_CAN_ETH_UDP, /* CAN->ETH udp */
- CGW_TYPE_ETH_CAN_UDP, /* ETH->CAN udp */
- CGW_TYPE_CAN_ETH_TCP,
- CGW_TYPE_CONFIG,
- CEGW_FLUSH,
+ CEGW_RULE_CAN_ETH,
+ CEGW_RULE_ETH_CAN,
CEGW_LISTEN,
- __CGW_TYPE_MAX
+ CEGW_FLUSH,
+ __CEGW_CMD_MAX
};
-
-#define CGW_TYPE_MAX (__CGW_TYPE_MAX - 1)
+#define CEGW_CMD_MAX (__CEGW_CMD_MAX - 1)
/* rtnetlink attributes */
enum {
- CGW_UNSPEC,
- CGW_MOD_AND, /* CAN frame modification binary AND */
- CGW_MOD_OR, /* CAN frame modification binary OR */
- CGW_MOD_XOR, /* CAN frame modification binary XOR */
- CGW_MOD_SET, /* CAN frame modification set alternate values */
- CGW_CS_XOR, /* set data[] XOR checksum into data[index] */
- CGW_CS_CRC8, /* set data[] CRC8 checksum into data[index] */
- CGW_HANDLED, /* number of handled CAN frames */
- CGW_DROPPED, /* number of dropped CAN frames */
- CGW_CAN_IF, /* ifindex of source network interface */
- CGW_LISTEN_IP,
- CGW_LISTEN_PORT,
- CGW_CMD_INFO,
- CGW_ETH_IP,
- CGW_ETH_PORT,
- CGW_ETH_PROTO, /* ifindex of destination network interface */
- CGW_FILTER, /* specify struct can_filter on source CAN device */
- __CGW_MAX
+ CEGW_TYPE,
+ CEGW_CAN_IFINDEX,
+ CEGW_ETH_IP,
+ CEGW_ETH_PORT,
+ CEGW_CMD_INFO,
+ __CEGW_MAX
+};
+#define CEGW_MAX (__CEGW_MAX - 1)
+
+struct cegw_udp_dst
+{
+ __u32 len;
+ struct sockaddr addr;
+};
+
+struct cegw_udp_dst4
+{
+ __u32 len;
+ struct sockaddr_in addr;
};
-#define CGW_MAX (__CGW_MAX - 1)
+struct cegw_ioctl
+{
+ __u32 can_sock;
+ __u32 udp_sock;;
+ __u32 udp_dstcnt;
+ __u32 udp_addrlen;
+ struct sockaddr_in udp_dst[0];
+};
+
+struct cegw_job
+{
+ struct socket* can_sock;
+ struct socket* udp_sock;
+ __u32 udp_dstcnt;
+ struct sockaddr_in* udp_dst;
+};
+
+#define CEGW_IOCTL_BASE 'c'
+#define CEGW_IOCTL_START _IOW(CEGW_IOCTL_BASE, 0, struct cegw_ioctl)
+
+/* ToDo:
+ * CEGW_HANDLED
+ * CEGW_DROPPED
+ * CEGW_ETH_PROTO
+ */
+
#endif /* CANETHGW_H */