]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Combine extra_tun/frame parameter of frame_calculate_payload_overhead
authorArne Schwabe <arne@rfc2549.org>
Fri, 10 Feb 2023 14:27:06 +0000 (15:27 +0100)
committerGert Doering <gert@greenie.muc.de>
Tue, 14 Feb 2023 12:52:53 +0000 (13:52 +0100)
Instead of passing a value and a bool just pass the value and 0 if
the caller does not want the value to be added. This also allows
the function to be used by a function without a frame struct.

Signed-off-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
Message-Id: <20230210142712.572303-3-arne@rfc2549.org>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26223.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/mss.c
src/openvpn/mtu.c
src/openvpn/mtu.h
src/openvpn/occ.c

index 429aa1e9318881858bfeff4ace454585e49818d7..98d540688528c9c443056e7962da3b72a5c726bb 100644 (file)
@@ -303,7 +303,7 @@ frame_calculate_mssfix(struct frame *frame, struct key_type *kt,
 
     /* Calculate the number of bytes that the payload differs from the payload
      * MTU. This are fragment/compression/ethernet headers */
-    payload_overhead = frame_calculate_payload_overhead(frame, options, kt, true);
+    payload_overhead = frame_calculate_payload_overhead(frame->extra_tun, options, kt);
 
     /* We are in a "liberal" position with respect to MSS,
      * i.e. we assume that MSS can be calculated from MTU
index 748a1cf19c2466f15a1bf5085bd5d29aa8fc792d..2925b7feb3a994e08d002390bf77647a3cd47bbb 100644 (file)
@@ -107,20 +107,16 @@ frame_calculate_protocol_header_size(const struct key_type *kt,
 
 
 size_t
-frame_calculate_payload_overhead(const struct frame *frame,
+frame_calculate_payload_overhead(size_t extra_tun,
                                  const struct options *options,
-                                 const struct key_type *kt,
-                                 bool extra_tun)
+                                 const struct key_type *kt)
 {
     size_t overhead = 0;
 
     /* This is the overhead of tap device that is not included in the MTU itself
      * i.e. Ethernet header that we still need to transmit as part of the
-     * payload */
-    if (extra_tun)
-    {
-        overhead += frame->extra_tun;
-    }
+     * payload, this is set to 0 by caller if not applicable */
+    overhead += extra_tun;
 
 #if defined(USE_COMP)
     /* v1 Compression schemes add 1 byte header. V2 only adds a header when it
@@ -157,7 +153,7 @@ frame_calculate_payload_size(const struct frame *frame,
                              const struct key_type *kt)
 {
     size_t payload_size = options->ce.tun_mtu;
-    payload_size += frame_calculate_payload_overhead(frame, options, kt, true);
+    payload_size += frame_calculate_payload_overhead(frame->extra_tun, options, kt);
     return payload_size;
 }
 
index 65236508f4b9c401e4f9fc9f7c5d0e48b7a852c4..b602b86b5f2adcceedf7e237030f2fb00574217f 100644 (file)
@@ -217,10 +217,10 @@ frame_calculate_payload_size(const struct frame *frame,
  * *  [IP][UDP][OPENVPN PROTOCOL HEADER][ **PAYLOAD incl compression header** ]
  */
 size_t
-frame_calculate_payload_overhead(const struct frame *frame,
+frame_calculate_payload_overhead(size_t extra_tun,
                                  const struct options *options,
-                                 const struct key_type *kt,
-                                 bool extra_tun);
+                                 const struct key_type *kt);
+
 
 /**
  * Calculates the size of the OpenVPN protocol header. This includes
index 0fa803cdbc562564359a65493095b2da8755a1ea..94b82e0f5c3b247ca91e5dbbecac163d1315e6b6 100644 (file)
@@ -305,8 +305,7 @@ check_send_occ_msg_dowork(struct context *c)
             const struct key_type *kt = &c->c1.ks.key_type;
 
             /* OCC message have comp/fragment headers but not ethernet headers */
-            payload_hdr = frame_calculate_payload_overhead(&c->c2.frame, &c->options,
-                                                           kt, false);
+            payload_hdr = frame_calculate_payload_overhead(0, &c->options, kt);
 
             /* Since we do not know the payload size we just pass 0 as size here */
             proto_hdr = frame_calculate_protocol_header_size(kt, &c->options, false);