After L2 processing, the LL protocol type is already known and should be set accordingly on the packet. Therefore it can be passed to the net_packet_socket_input() function to allow proper socket filtering based on protocol. Additionally, as LL protocol type is 16 bit value, fix the proto parameter type in net_packet_socket_input(). Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
39 lines
918 B
C
39 lines
918 B
C
/** @file
|
|
* @brief Packet Socket related functions
|
|
*
|
|
* This is not to be included by the application.
|
|
*/
|
|
|
|
/*
|
|
* Copyright (c) 2019 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef __PACKET_SOCKET_H
|
|
#define __PACKET_SOCKET_H
|
|
|
|
#include <zephyr/types.h>
|
|
|
|
/**
|
|
* @brief Called by net_core.c when a network packet is received.
|
|
*
|
|
* @param pkt Network packet
|
|
*
|
|
* @return NET_OK if the packet was consumed, NET_DROP if
|
|
* the packet parsing failed and the caller should handle
|
|
* the received packet. If corresponding IP protocol support is
|
|
* disabled, the function will always return NET_DROP.
|
|
*/
|
|
#if defined(CONFIG_NET_SOCKETS_PACKET)
|
|
enum net_verdict net_packet_socket_input(struct net_pkt *pkt, uint16_t proto);
|
|
#else
|
|
static inline enum net_verdict net_packet_socket_input(struct net_pkt *pkt,
|
|
uint16_t proto)
|
|
{
|
|
return NET_CONTINUE;
|
|
}
|
|
#endif
|
|
|
|
#endif /* __PACKET_SOCKET_H */
|