summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Tranchetti <quic_stranche@quicinc.com>2021-10-12 15:30:05 -0700
committerAleksander Morgado <aleksander@aleksander.es>2021-10-14 15:20:54 +0200
commit043f4755eaf66c17ed13eb92e9093fb0ae7768b0 (patch)
tree46ed204ff2db17a9875c9d30275328c09d5f9b90
parent653b3b847d451d1ce6657ab5b628be1540ce2575 (diff)
qmi-device: add QMAPv5 link creation flags
Allows use of the QMAPv5 checksum offload format for both TX and RX paths.
-rw-r--r--src/libqmi-glib/kernel/if_link_rmnet.h2
-rw-r--r--src/libqmi-glib/qmi-device.h4
-rw-r--r--src/libqmi-glib/qmi-net-port-manager-rmnet.c7
3 files changed, 13 insertions, 0 deletions
diff --git a/src/libqmi-glib/kernel/if_link_rmnet.h b/src/libqmi-glib/kernel/if_link_rmnet.h
index 7800e6b..71a1e3e 100644
--- a/src/libqmi-glib/kernel/if_link_rmnet.h
+++ b/src/libqmi-glib/kernel/if_link_rmnet.h
@@ -15,6 +15,8 @@
#define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
#define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
#define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
+#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4)
+#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5)
enum {
IFLA_RMNET_UNSPEC,
diff --git a/src/libqmi-glib/qmi-device.h b/src/libqmi-glib/qmi-device.h
index 4fb71b5..ce45cca 100644
--- a/src/libqmi-glib/qmi-device.h
+++ b/src/libqmi-glib/qmi-device.h
@@ -953,6 +953,8 @@ gchar *qmi_device_add_link_finish (QmiDevice *self,
* @QMI_DEVICE_ADD_LINK_FLAGS_NONE: none.
* @QMI_DEVICE_ADD_LINK_FLAGS_INGRESS_MAP_CKSUMV4: checksum offload (v4) is enabled in ingress path.
* @QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV4: checksum offload (v4) is enabled in egress path.
+ * @QMI_DEVICE_ADD_LINK_FLAGS_INGRESS_MAP_CKSUMV5: checksum offload (v5) is enabled in ingress path. Since 1.32.
+ * @QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV5: checksum offload (v5) is enabled in egress path. Since 1.32.
*
* Flags specifying the behavior of the new link.
*
@@ -962,6 +964,8 @@ typedef enum { /*< since=1.30 >*/
QMI_DEVICE_ADD_LINK_FLAGS_NONE = 0,
QMI_DEVICE_ADD_LINK_FLAGS_INGRESS_MAP_CKSUMV4 = 1 << 1,
QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV4 = 1 << 2,
+ QMI_DEVICE_ADD_LINK_FLAGS_INGRESS_MAP_CKSUMV5 = 1 << 3,
+ QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV5 = 1 << 4,
} QmiDeviceAddLinkFlags;
/**
diff --git a/src/libqmi-glib/qmi-net-port-manager-rmnet.c b/src/libqmi-glib/qmi-net-port-manager-rmnet.c
index f10862f..887ad7e 100644
--- a/src/libqmi-glib/qmi-net-port-manager-rmnet.c
+++ b/src/libqmi-glib/qmi-net-port-manager-rmnet.c
@@ -543,8 +543,15 @@ net_port_manager_add_link (QmiNetPortManager *_self,
rmnet_flags |= RMNET_FLAGS_INGRESS_MAP_CKSUMV4;
if (flags & QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV4)
rmnet_flags |= RMNET_FLAGS_EGRESS_MAP_CKSUMV4;
+ if (flags & QMI_DEVICE_ADD_LINK_FLAGS_INGRESS_MAP_CKSUMV5)
+ rmnet_flags |= RMNET_FLAGS_INGRESS_MAP_CKSUMV5;
+ if (flags & QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV5)
+ rmnet_flags |= RMNET_FLAGS_EGRESS_MAP_CKSUMV5;
+
rmnet_mask = (RMNET_FLAGS_EGRESS_MAP_CKSUMV4 |
RMNET_FLAGS_INGRESS_MAP_CKSUMV4 |
+ RMNET_FLAGS_EGRESS_MAP_CKSUMV5 |
+ RMNET_FLAGS_INGRESS_MAP_CKSUMV5 |
RMNET_FLAGS_INGRESS_DEAGGREGATION);
msg = netlink_message_new_link (ctx->mux_id, ctx->ifname, base_if_index, rmnet_flags, rmnet_mask);