18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * net/tipc/udp_media.h: Include file for UDP bearer media 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Copyright (c) 1996-2006, 2013-2016, Ericsson AB 58c2ecf20Sopenharmony_ci * Copyright (c) 2005, 2010-2011, Wind River Systems 68c2ecf20Sopenharmony_ci * All rights reserved. 78c2ecf20Sopenharmony_ci * 88c2ecf20Sopenharmony_ci * Redistribution and use in source and binary forms, with or without 98c2ecf20Sopenharmony_ci * modification, are permitted provided that the following conditions are met: 108c2ecf20Sopenharmony_ci * 118c2ecf20Sopenharmony_ci * 1. Redistributions of source code must retain the above copyright 128c2ecf20Sopenharmony_ci * notice, this list of conditions and the following disclaimer. 138c2ecf20Sopenharmony_ci * 2. Redistributions in binary form must reproduce the above copyright 148c2ecf20Sopenharmony_ci * notice, this list of conditions and the following disclaimer in the 158c2ecf20Sopenharmony_ci * documentation and/or other materials provided with the distribution. 168c2ecf20Sopenharmony_ci * 3. Neither the names of the copyright holders nor the names of its 178c2ecf20Sopenharmony_ci * contributors may be used to endorse or promote products derived from 188c2ecf20Sopenharmony_ci * this software without specific prior written permission. 198c2ecf20Sopenharmony_ci * 208c2ecf20Sopenharmony_ci * Alternatively, this software may be distributed under the terms of the 218c2ecf20Sopenharmony_ci * GNU General Public License ("GPL") version 2 as published by the Free 228c2ecf20Sopenharmony_ci * Software Foundation. 238c2ecf20Sopenharmony_ci * 248c2ecf20Sopenharmony_ci * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 258c2ecf20Sopenharmony_ci * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 268c2ecf20Sopenharmony_ci * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 278c2ecf20Sopenharmony_ci * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 288c2ecf20Sopenharmony_ci * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 298c2ecf20Sopenharmony_ci * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 308c2ecf20Sopenharmony_ci * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 318c2ecf20Sopenharmony_ci * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 328c2ecf20Sopenharmony_ci * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 338c2ecf20Sopenharmony_ci * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 348c2ecf20Sopenharmony_ci * POSSIBILITY OF SUCH DAMAGE. 358c2ecf20Sopenharmony_ci */ 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#ifdef CONFIG_TIPC_MEDIA_UDP 388c2ecf20Sopenharmony_ci#ifndef _TIPC_UDP_MEDIA_H 398c2ecf20Sopenharmony_ci#define _TIPC_UDP_MEDIA_H 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci#include <linux/ip.h> 428c2ecf20Sopenharmony_ci#include <linux/udp.h> 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciint tipc_udp_nl_bearer_add(struct tipc_bearer *b, struct nlattr *attr); 458c2ecf20Sopenharmony_ciint tipc_udp_nl_add_bearer_data(struct tipc_nl_msg *msg, struct tipc_bearer *b); 468c2ecf20Sopenharmony_ciint tipc_udp_nl_dump_remoteip(struct sk_buff *skb, struct netlink_callback *cb); 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci/* check if configured MTU is too low for tipc headers */ 498c2ecf20Sopenharmony_cistatic inline bool tipc_udp_mtu_bad(u32 mtu) 508c2ecf20Sopenharmony_ci{ 518c2ecf20Sopenharmony_ci if (mtu >= (TIPC_MIN_BEARER_MTU + sizeof(struct iphdr) + 528c2ecf20Sopenharmony_ci sizeof(struct udphdr))) 538c2ecf20Sopenharmony_ci return false; 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci pr_warn("MTU too low for tipc bearer\n"); 568c2ecf20Sopenharmony_ci return true; 578c2ecf20Sopenharmony_ci} 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci#endif 608c2ecf20Sopenharmony_ci#endif 61