Files
android_kernel_samsung_sm86…/core/rmnet_private.h
Sean Tranchetti 0e2e5cc390 rmnet_core: Add additional hook for rmnet_perf
Allows programatic setting fo runtime rmnet_perf paramters.

Change-Id: I882918f6d3f69cbfb027b55caa4cb1ffc35a71ab
Signed-off-by: Sean Tranchetti <quic_stranche@quicinc.com>
2023-03-02 11:03:36 -08:00

71 baris
2.2 KiB
C

/* Copyright (c) 2013-2014, 2016-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _RMNET_PRIVATE_H_
#define _RMNET_PRIVATE_H_
#include <linux/types.h>
#define RMNET_MAX_PACKET_SIZE 16384
#define RMNET_DFLT_PACKET_SIZE 1500
#define RMNET_NEEDED_HEADROOM 16
#define RMNET_TX_QUEUE_LEN 1000
/* Constants */
#define RMNET_EGRESS_FORMAT_AGGREGATION BIT(31)
#define RMNET_INGRESS_FORMAT_DL_MARKER_V1 BIT(30)
#define RMNET_INGRESS_FORMAT_DL_MARKER_V2 BIT(29)
#define RMNET_FLAGS_INGRESS_COALESCE BIT(4)
#define RMNET_PRIV_FLAGS_INGRESS_MAP_CKSUMV5 BIT(5)
#define RMNET_PRIV_FLAGS_EGRESS_MAP_CKSUMV5 BIT(6)
#define RMNET_INGRESS_FORMAT_DL_MARKER (RMNET_INGRESS_FORMAT_DL_MARKER_V1 |\
RMNET_INGRESS_FORMAT_DL_MARKER_V2)
/* UL Packet prioritization */
#define RMNET_EGRESS_FORMAT_PRIORITY BIT(28)
/* Power save feature*/
#define RMNET_INGRESS_FORMAT_PS BIT(27)
#define RMNET_FORMAT_PS_NOTIF BIT(26)
/* UL Aggregation parameters */
#define RMNET_PAGE_RECYCLE BIT(0)
/* Replace skb->dev to a virtual rmnet device and pass up the stack */
#define RMNET_EPMODE_VND (1)
/* Pass the frame directly to another device with dev_queue_xmit() */
#define RMNET_EPMODE_BRIDGE (2)
/* Struct for skb control block use within rmnet driver */
struct rmnet_skb_cb {
/* MUST be the first entries because of legacy reasons */
char flush_shs;
char qmap_steer;
bool tethered;
/* coalescing stats */
u32 coal_bytes;
u32 coal_bufsize;
u32 bif;
u32 ack_thresh;
u32 ack_forced;
};
#define RMNET_SKB_CB(skb) ((struct rmnet_skb_cb *)(skb)->cb)
#endif /* _RMNET_PRIVATE_H_ */