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