.. | .. |
---|
1 | | -/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ |
---|
| 1 | +/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */ |
---|
2 | 2 | /* |
---|
3 | 3 | * linux/can/gw.h |
---|
4 | 4 | * |
---|
.. | .. |
---|
80 | 80 | CGW_DELETED, /* number of deleted CAN frames (see max_hops param) */ |
---|
81 | 81 | CGW_LIM_HOPS, /* limit the number of hops of this specific rule */ |
---|
82 | 82 | CGW_MOD_UID, /* user defined identifier for modification updates */ |
---|
| 83 | + CGW_FDMOD_AND, /* CAN FD frame modification binary AND */ |
---|
| 84 | + CGW_FDMOD_OR, /* CAN FD frame modification binary OR */ |
---|
| 85 | + CGW_FDMOD_XOR, /* CAN FD frame modification binary XOR */ |
---|
| 86 | + CGW_FDMOD_SET, /* CAN FD frame modification set alternate values */ |
---|
83 | 87 | __CGW_MAX |
---|
84 | 88 | }; |
---|
85 | 89 | |
---|
.. | .. |
---|
88 | 92 | #define CGW_FLAGS_CAN_ECHO 0x01 |
---|
89 | 93 | #define CGW_FLAGS_CAN_SRC_TSTAMP 0x02 |
---|
90 | 94 | #define CGW_FLAGS_CAN_IIF_TX_OK 0x04 |
---|
| 95 | +#define CGW_FLAGS_CAN_FD 0x08 |
---|
91 | 96 | |
---|
92 | 97 | #define CGW_MOD_FUNCS 4 /* AND OR XOR SET */ |
---|
93 | 98 | |
---|
94 | 99 | /* CAN frame elements that are affected by curr. 3 CAN frame modifications */ |
---|
95 | 100 | #define CGW_MOD_ID 0x01 |
---|
96 | | -#define CGW_MOD_DLC 0x02 |
---|
| 101 | +#define CGW_MOD_DLC 0x02 /* contains the data length in bytes */ |
---|
| 102 | +#define CGW_MOD_LEN CGW_MOD_DLC /* CAN FD length representation */ |
---|
97 | 103 | #define CGW_MOD_DATA 0x04 |
---|
| 104 | +#define CGW_MOD_FLAGS 0x08 /* CAN FD flags */ |
---|
98 | 105 | |
---|
99 | | -#define CGW_FRAME_MODS 3 /* ID DLC DATA */ |
---|
| 106 | +#define CGW_FRAME_MODS 4 /* ID DLC/LEN DATA FLAGS */ |
---|
100 | 107 | |
---|
101 | 108 | #define MAX_MODFUNCTIONS (CGW_MOD_FUNCS * CGW_FRAME_MODS) |
---|
102 | 109 | |
---|
.. | .. |
---|
105 | 112 | __u8 modtype; |
---|
106 | 113 | } __attribute__((packed)); |
---|
107 | 114 | |
---|
| 115 | +struct cgw_fdframe_mod { |
---|
| 116 | + struct canfd_frame cf; |
---|
| 117 | + __u8 modtype; |
---|
| 118 | +} __attribute__((packed)); |
---|
| 119 | + |
---|
108 | 120 | #define CGW_MODATTR_LEN sizeof(struct cgw_frame_mod) |
---|
| 121 | +#define CGW_FDMODATTR_LEN sizeof(struct cgw_fdframe_mod) |
---|
109 | 122 | |
---|
110 | 123 | struct cgw_csum_xor { |
---|
111 | 124 | __s8 from_idx; |
---|