/* * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The OpenAirInterface Software Alliance licenses this file to You under * the OAI Public License, Version 1.1 (the "License"); you may not use this file * except in compliance with the License. * You may obtain a copy of the License at * * http://www.openairinterface.org/?page_id=698 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *------------------------------------------------------------------------------- * For more information about the OpenAirInterface (OAI) Software Alliance: * contact@openairinterface.org */ /*************************************************************************** proto_extern.h - description ------------------- copyright : (C) 2002 by Eurecom email : navid.nikaein@eurecom.fr lionel.gauthier@eurecom.fr knopp@eurecom.fr ***************************************************************************/ #ifndef _UE_IP_PROTO_H #define _UE_IP_PROTO_H #include #include #include #include #include #include #include #include #include #include //#include #include #include #include #include #include #include #include "local.h" // device.c /** @defgroup _ue_ip_impl_ OAI Network Device for RRC Lite * @ingroup _ref_implementation_ * @{ \fn int ue_ip_find_inst(struct net_device *dev) \brief This function determines the instance id for a particular device pointer. @param dev Pointer to net_device structure */ int ue_ip_find_inst(struct net_device *dev); // common.c /** \fn void ue_ip_common_class_wireless2ip(unsigned short dlen, void* pdcp_sdu,int inst,struct classifier_entity *rclass,OaiNwDrvRadioBearerId_t rb_id) \brief Receive classified LTE packet, build skbuff struct with it and deliver it to the OS network layer. @param dlen Length of SDU in bytes @param pdcp_sdu Pointer to received SDU @param inst Instance number @param rb_id Radio Bearer Id */ void ue_ip_common_class_wireless2ip(sdu_size_t dlen, void *pdcp_sdu, int inst, rb_id_t rb_id); /** \fn void ue_ip_common_ip2wireless(struct sk_buff *skb, struct cx_entity *cx, struct classifier_entity *gc,int inst) \brief Request the transfer of data (QoS SAP) @param skb pointer to socket buffer @param inst device instance */ void ue_ip_common_ip2wireless(struct sk_buff *skb, int inst); /** \fn void ue_ip_common_ip2wireless_drop(struct sk_buff *skb, struct cx_entity *cx, struct classifier_entity *gc,int inst) \brief Drop the IP packet comming from the OS network layer. @param skb pointer to socket buffer @param inst device instance */ void ue_ip_common_ip2wireless_drop(struct sk_buff *skb, int inst); #ifndef OAI_NW_DRIVER_USE_NETLINK /** \fn void ue_ip_common_wireless2ip() \brief Retrieve PDU from PDCP through RT-fifos for delivery to the IP stack. */ void ue_ip_common_wireless2ip(void); #else /** \fn void ue_ip_common_wireless2ip(struct nlmsghdr *nlh) \brief Retrieve PDU from PDCP through netlink sockets for delivery to the IP stack. */ void ue_ip_common_wireless2ip(struct nlmsghdr *nlh); #endif //OAI_NW_DRIVER_USE_NETLINK #ifdef OAI_NW_DRIVER_USE_NETLINK /** \fn int ue_ip_netlink_send(unsigned char *data,unsigned int len) \brief Request the transfer of data by PDCP via netlink socket @param data pointer to SDU @param len length of SDU in bytes @returns Numeber of bytes transfered by netlink socket */ int ue_ip_netlink_send(unsigned char *data,unsigned int len); /** \fn void ue_ip_COMMON_QOS_receive(struct nlmsghdr *nlh) \brief Request a PDU from PDCP @param nlh pointer to netlink message header */ void ue_ip_COMMON_QOS_receive(struct nlmsghdr *nlh); #endif //OAI_NW_DRIVER_USE_NETLINK // netlink.c void ue_ip_netlink_release(void); int ue_ip_netlink_init(void); /** @} */ #endif