linux/net/netfilter/xt_tcpmss.c
<<
>>
Prefs
   1/* Kernel module to match TCP MSS values. */
   2
   3/* Copyright (C) 2000 Marc Boucher <marc@mbsi.ca>
   4 * Portions (C) 2005 by Harald Welte <laforge@netfilter.org>
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License version 2 as


  
  
9 
  <9ption>
  
     1   1an f">filte/MSS va.hment"netter/xt_tcpmss.c#L3" id="L3" class="li1ne" name1="L2">   2
   1an f">filte/skbuff.hment"netter/xt_tcpmss.c#L3" id="L3" class="li1ne" name1="L3">   3   1an f">mss. cl.hment"netter/xt_tcpmss.c#L3" id="L3" class="li1ne" name1="L4">   4   5   1an f">filte/c#L3" id="L3" class=hment"netter/xt_tcpmss.c#L3" id="L3" class="li1ne" name1="L6">   6   1an f">filte/c#L3" id="L_tables=hment"netter/xt_tcpmss.c#L3" id="L3" class="li1ne" name1="L7">   7

1  
  18ment#ipreudter.orer/xt_tcpipreudttfilte/c#L3" id=_ipv4/ip_tables=h"L1">   1an f">filte/c#L3" id=_ipv4/ip_tables=hment"netter/xt_tcpmss.c#L3" id="L3" class="li19ue="v2.19.1y

19 
  19ment#ipreudter.orer/xt_tcpipreudttfilte/c#L3" id=_ipv6/ip6_tables=h"L1">   1an f">filte/c#L3" id=_ipv6/ip6_tables=hment"netter/xt_tcpmss.c#L3" id="L3" class="li20e" name20"L1">   1   1
 n f">MODULE_LICENSEment(n>
  
  >"GPL"/netfil)tter/xt_tcpmss.c#L3" id="L3" class="li2ne" name=="L2">   2

 n f">MODULE_AUTHORment(n>
  
  >"c@mbsi.ca>
   3
 n f">MODULE_DESCRIPTIONment(n>
  
  >"Xtables:/span>
   4
 n f">MODULE_ALIASment(n>
  
  >"ip3" class"/netfil)tter/xt_tcpmss.c#L3" id="L3" class="li2ne" name2="L5">   5
 n f">MODULE_ALIASment(n>
  
  >"ip63" class"/netfil)tter/xt_tcpmss.c#L3" id="L3" class="li2ne" name2="L6">   6   7
 n f">boolonilter/xt_tcpmss.c#L3" id="L3" class="li2lue="v2.26.1y

2  
  28ment"n=net/netcode= class_mtlts"
	 >
 n f"> class_mtment(cld t odiuct "n=net/netcode=sk_bufflts"
	 >
 n f">sk_buffmentet/n=net/netcode=skblts"
	 >
 n f">skbment, odiuct "n=net/netcode=L3"od="po_prgemlts"
	 >
 n f">L3"od="po_prgemmentet/n=net/netcode=prglts"
	 >
 n f">prgment)ter/xt_tcpmss.c#L3" id="L3" class="li29ue="v2.29.1y

29 
  29ment{ter/xt_tcpmss.c#L3" id="L3" class="lin0e" name30"L1">   1
 n f">L3" class_. */<_infomentet/n=net/netcode=infolts"
	 >
 n f">infomente= "n=net/netcode=prglts"
	 >
 n f">prgment-"net/n=net/netcode=. */
 n f">. */   1
 n f"> clhdgmentet/n=net/netcode=thlts"
	 >
 n f"> hmenttter/xt_tcpmss.c#L3" id="L3" class="li3ne" name3="L2">   2

 n f"> clhdgmente"n=net/netcode=" clhlts"
	 >
 n f">" clhmenttter/xt_tcpmss.c#L3" id="L3" class="li3ne" name=="L3">   3/* Copyright (C) 2000 M cl.doffou conly 4 bits, ie.a. xc15 * 4 bytes"vt/netfilter/xt_tcpmss.c#L2" id="L2" class="li3ne" name3="L4">   4
 n f">u_int8_tmentet/n=net/netcode=oplts"
	 >
 n f">opmenttter/xt_tcpmss.c#L3" id="L3" class="li3ne" name3="L5">   5
 n f">u8mente"n=net/netcode="optlts"
	 >
 n f">"optment[15 * 4 - sizeof("n=net/netcode=" clhlts"
	 >
 n f">" clhment)]tter/xt_tcpmss.c#L3" id="L3" class="li3ne" name3="L6">   6
 n f">iment, /n=net/netcode=optlp" is"
	 >
 n f">optlp"menttter/xt_tcpmss.c#L3" id="L3" class="li3ne" name3="L7">   7

3  
  38onil        ">/* Copyright (C) 2000 MIf we don't havefic Lwhole >
  er, drop packet"net/netfilter/xt_tcpmss.c#L2" id="L2" class="li39ue="v2.39.1y

39 
  39onil        "n=net/netcode=thlts"
	 >
 n f"> hmente= "n=net/netcode=skb_>
  er_pointeglts"
	 >
 n f">skb_>
  er_pointegment(nn=net/netcode=skblts"
	 >
 n f">skbment, "n=net/netcode=prglts"
	 >
 n f">prgment-"net/n=net/netcode=thofflts"
	 >
 n f">thoffment, oizeof("n=net/netcode=" clhlts"
	 >
 n f">" clhment), &t/n=net/netcode=" clhlts"
	 >
 n f">" clhment)tter/xt_tcpmss.c#L3" id="L3" class="li40e" name40"L1">   1
 n f"> hmente== "n=net/netcode=NULLlts"
	 >
 n f">NULLment)ter/xt_tcpmss.c#L3" id="L3" class="li4ne" name4="L1">   1
 n f">dropitmenttter/xt_tcpmss.c#L3" id="L3" class="li4ne" name4="L2">   2
   3/* Copyright (C) 2000 MMalass=ed"net/netfilter/xt_tcpmss.c#L2" id="L2" class="li4ne" name=="L4">   4
 n f"> hment-"net/n=net/netcode=dofflts"
	 >
 n f">doffment*4;
 n f"> hment))ter/xt_tcpmss.c#L3" id="L3" class="li4ne" name4="L5">   5
 n f">dropitmenttter/xt_tcpmss.c#L3" id="L3" class="li4ne" name4="L6">   6   7
 n f">optlp"mente= "n=net/netcode=thlts"
	 >
 n f"> hment-"net/n=net/netcode=dofflts"
	 >
 n f">doffment*4;- oizeof(t/n=net/netcode=thlts"
	 >
 n f"> hment)tter/xt_tcpmss.c#L3" id="L3" class="li4lue="v2.46.1y

4  
  48onil        if (!"n=net/netcode=optlp" is"
	 >
 n f">optlp"ment)ter/xt_tcpmss.c#L3" id="L3" class="li49ue="v2.49.1y

49 
  49onil                goto "n=net/netcode=outlts"
	 >
 n f">outmenttter/xt_tcpmss.c#L3" id="L3" class="li50e" name50"L1">   1   1/* Copyright (C) 2000 MTruncated 

	   ="net/netfilter/xt_tcpmss.c#L2" id="L2" class="li5ne" name5="L2">   2

 n f">opmente= "n=net/netcode=skb_>
  er_pointeglts"
	 >
 n f">skb_>
  er_pointegment(nn=net/netcode=skblts"
	 >
 n f">skbment, "n=net/netcode=prglts"
	 >
 n f">prgment-"net/n=net/netcode=thofflts"
	 >
 n f">thoffment + oizeof(t/n=net/netcode=thlts"
	 >
 n f"> hment), /n=net/netcode=optlp" is"
	 >
 n f">optlp"ment, /n=net/netcode="optlts"
	 >
 n f">"optment)tter/xt_tcpmss.c#L3" id="L3" class="li5ne" name5="L3">   3
 n f">opmente== "n=net/netcode=NULLlts"
	 >
 n f">NULLment)ter/xt_tcpmss.c#L3" id="L3" class="li5ne" name5="L4">   4
 n f">dropitmenttter/xt_tcpmss.c#L3" id="L3" class="li5ne" name=="L5">   5   6
 n f">imente= 0;e"n=net/netcode=ilts"
	 >
 n f">iment;
 n f">optlp"mentt ) {ter/xt_tcpmss.c#L3" id="L3" class="li5ne" name5="L7">   7
 n f">opment["n=net/netcode=ilts"
	 >
 n f">iment]e== "n=net/netcode=TCPOPT_MSSlts"
	 >
 n f">TCPOPT_MSSonilter/xt_tcpmss.c#L3" id="L3" class="li5lue="v2.56.1y

5  
  58onil                    &t&t ("n=net/netcode=optlp" is"
	 >
 n f">optlp"mente-e"n=net/netcode=ilts"
	 >
 n f">iment) "net= "n=net/netcode=TCPOLEN_MSSlts"
	 >
 n f">TCPOLEN_MSSonilter/xt_tcpmss.c#L3" id="L3" class="li59ue="v2.59.1y

59 
  59onil                    &t&t "n=net/netcode=oplts"
	 >
 n f">opment["n=net/netcode=ilts"
	 >
 n f">iment+1]e== "n=net/netcode=TCPOLEN_MSSlts"
	 >
 n f">TCPOLEN_MSSonil) {ter/xt_tcpmss.c#L3" id="L3" class="li60e" name60"L1">   1
 n f">u_int16_tmente"n=net/netcode=assvallts"
	 >
 n f">assvalmenttter/xt_tcpmss.c#L3" id="L3" class="li6ne" name6="L1">   1   2

 n f">assvalmente= ("n=net/netcode=oplts"
	 >
 n f">opment["n=net/netcode=ilts"
	 >
 n f">iment+2];
 n f">opment["n=net/netcode=ilts"
	 >
 n f">iment+3]tter/xt_tcpmss.c#L3" id="L3" class="li6ne" name6="L3">   3   4
 n f">assvalmente"net= "n=net/netcode=infolts"
	 >
 n f">infoment-"net/n=net/netcode=.ss_.i" is"
	 >
 n f">.ss_.i"mente"ampt&tter/xt_tcpmss.c#L3" id="L3" class="li6ne" name6="L5">   5
 n f">assvalmente
 n f">infoment-"net/n=net/netcode=.ss_.ax is"
	 >
 n f">.ss_.axonil) ^ "n=net/netcode=infolts"
	 >
 n f">infoment-"net/n=net/netcode=invertlts"
	 >
 n f">invertmenttter/xt_tcpmss.c#L3" id="L3" class="li6ne" name=="L6">   6   7
 n f">opment["n=net/netcode=ilts"
	 >
 n f">iment]e

6  
  68onil                        "n=net/netcode=ilts"
	 >
 n f">iment++tter/xt_tcpmss.c#L3" id="L3" class="li69ue="v2.69.1y

69 
  69onil                elseter/xt_tcpmss.c#L7" id="L7" class="lin0e" name70"L1">   1
 n f">iment;+= "n=net/netcode=oplts"
	 >
 n f">opment["n=net/netcode=ilts"
	 >
 n f">iment+1]e? : 1tter/xt_tcpmss.c#L3" id="L3" class="li7ne" name7="L1">   1   2

 n f">outment:ter/xt_tcpmss.c#L3" id="L3" class="li7ne" name7="L3">   3
 n f">infoment-"net/n=net/netcode=invertlts"
	 >
 n f">invertmenttter/xt_tcpmss.c#L3" id="L3" class="li7ne" name7="L4">   4   5
 n f">dropitment:ter/xt_tcpmss.c#L3" id="L3" class="li7ne" name7="L6">   6
 n f">prgment-"net/n=net/netcode=hotdroplts"
	 >
 n f">hotdropmente= "n=net/netcode=truelts"
	 >
 n f"> ruementtter/xt_tcpmss.c#L3" id="L3" class="li7ne" name=="L7">   7
 n f">e="himenttter/xt_tcpmss.c#L3" id="L3" class="li7lue="v2.76.1y

7  
  78onil}ter/xt_tcpmss.c#L3" id="L3" class="li79ue="v2.79.1y

79 
  79onilter/xt_tcpmss.c#L3" id="L3" class="li80e" name80"L1">   1
 n f">L3". */
 n f"> class_mt_regment[] /n=net/netcode="_read_mostlylts"
	 >
 n f">"_read_mostlymente= {ter/xt_tcpmss.c#L3" id="L3" class="li8ne" name8="L1">   1   2

 n f">a hronil           = n>
  
  >" class"/netfil,ter/xt_tcpmss.c#L3" id="L3" class="li8ne" name8="L3">   3
 n f">familyonil         = "n=net/netcode=NFPROTO_IPV4lts"
	 >
 n f">NFPROTO_IPV4ment,ter/xt_tcpmss.c#L3" id="L3" class="li8ne" name8="L4">   4
 n f">. */
 n f"> class_mtment,ter/xt_tcpmss.c#L3" id="L3" class="li8ne" name8="L5">   5
 n f">. */
 n f">L3" class_. */<_infoment),ter/xt_tcpmss.c#L3" id="L3" class="li8ne" name8="L6">   6
 n f">protomente         = "n=net/netcode=IPPROTO_TCPlts"
	 >
 n f">IPPROTO_TCPment,ter/xt_tcpmss.c#L3" id="L3" class="li8ne" name8="L7">   7
 n f">.ronil             = "n=net/netcode=THIS_MODULElts"
	 >
 n f">THIS_MODULEment,ter/xt_tcpmss.c#L3" id="L3" class="li8lue="v2.66.1y

   
  88onil        },ter/xt_tcpmss.c#L3" id="L3" class="li89ue="v2.89.1y

89 
  89onil        {ter/xt_tcpmss.c#L3" id="L3" class="li90e" name90"L1">   1
 n f">a hronil           = n>
  
  >" class"/netfil,ter/xt_tcpmss.c#L3" id="L3" class="li9ne" name9="L1">   1
 n f">familyonil         = "n=net/netcode=NFPROTO_IPV6lts"
	 >
 n f">NFPROTO_IPV6ment,ter/xt_tcpmss.c#L3" id="L3" class="li9ne" name9="L2">   2

 n f">. */
 n f"> class_mtment,ter/xt_tcpmss.c#L3" id="L3" class="li9ne" name9="L3">   3
 n f">. */
 n f">L3" class_. */<_infoment),ter/xt_tcpmss.c#L3" id="L3" class="li9ne" name9="L4">   4
 n f">protomente         = "n=net/netcode=IPPROTO_TCPlts"
	 >
 n f">IPPROTO_TCPment,ter/xt_tcpmss.c#L3" id="L3" class="li9ne" name9="L5">   5
 n f">.ronil             = "n=net/netcode=THIS_MODULElts"
	 >
 n f">THIS_MODULEment,ter/xt_tcpmss.c#L3" id="L3" class="li9ne" name9="L6">   6   7

9  
  98onilter/xt_tcpmss.c#L3" id="L3" class="li99ue="v2.99.1y

99 
  99onil" alt= inte"n=net/netcode=__initlts"
	 >
 n f">__initmente"n=net/netcode= class_mt_initlts"
	 >
 n f"> class_mt_initment(void)ter/xt_tcpmss.c#L3" id="L3" class="li100e" name=00"L1">   1   1
 n f">L3"regisid=_. */
 n f"> class_mt_regment, /n=net/netcode=ARRAY_SIZElts"
	 >
 n f">ARRAY_SIZEment(nn=net/netcode= class_mt_reglts"
	 >
 n f"> class_mt_regment))tter/xt_tcpmss.c#L3" id="L3" class="li10ne" name10="L2">   2
   3   4
 n f">__exitmente"n=net/netcode= class_mt_exitlts"
	 >
 n f"> class_mt_exitment(void)ter/xt_tcpmss.c#L3" id="L3" class="li10ne" name10="L5">   5   6
 n f">L3"unregisid=_. */
 n f"> class_mt_regment, /n=net/netcode=ARRAY_SIZElts"
	 >
 n f">ARRAY_SIZEment(nn=net/netcode= class_mt_reglts"
	 >
 n f"> class_mt_regment))tter/xt_tcpmss.c#L3" id="L3" class="li10ne" name10="L7">   7

108 
 s08onilter/xt_tcpmss.c#L3" id="L3" class="li109ue="v2.109.1y

109 
 s09ment"n=net/netcode=MSS va_initlts"
	 >
 n f">MSS va_initment(nn=net/netcode= class_mt_initlts"
	 >
 n f"> class_mt_initment)tter/xt_tcpmss.c#L3" id="L3" class="li110e" name==0"L1">   1
 n f">MSS va_exitment(nn=net/netcode= class_mt_exitlts"
	 >
 n f"> class_mt_exitment)tter/xt_tcpmss.c#L3" id="L3" class="li11ne" name==="L1">   1