^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #ifndef __NET_BAREUDP_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #define __NET_BAREUDP_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include <linux/skbuff.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <net/rtnetlink.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) struct bareudp_conf {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) __be16 ethertype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) __be16 port;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) u16 sport_min;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) bool multi_proto_mode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) struct net_device *bareudp_dev_create(struct net *net, const char *name,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) u8 name_assign_type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) struct bareudp_conf *info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) static inline bool netif_is_bareudp(const struct net_device *dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) return dev->rtnl_link_ops &&
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) !strcmp(dev->rtnl_link_ops->kind, "bareudp");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #endif