<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>3708</bug_id>
          
          <creation_ts>2004-02-17 16:37:16 +0300</creation_ts>
          <short_desc>неправильная работа с интерфейсами ipsec_tunnel</short_desc>
          <delta_ts>2009-05-10 09:32:00 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>iproute2</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Denis Ovsienko">pilot</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>arseny</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>11820</commentid>
    <comment_count>0</comment_count>
    <who name="Denis Ovsienko">pilot</who>
    <bug_when>2004-02-17 16:37:16 +0300</bug_when>
    <thetext>Вот, к примеру, интерфейс:

3: ipsec0@NONE: &lt;NOARP&gt; mtu 1480 qdisc noop
    link/[31] 00:00:00:00 brd 00:00:00:00
8: ipsectun0@NONE: &lt;POINTOPOINT,NOARP,UP&gt; mtu 1418 qdisc noqueue
    link/[31] d4:2a:40:13 peer d4:5a:7c:2a
    inet 10.0.0.1 peer 10.0.0.2/32 scope global ipsectun0

Link-level address такой странный, потому что ip неизвестен ARP hardware type
31. Код 31 закреплён за IPSec tunnel mode, но ни в заголовках ядра, ни в коде
iproute2 он не встречается, хотя есть определения для протоколов ESP и AH. Если
приложить патч, то неудобство исчезает:

3: ipsec0@NONE: &lt;NOARP&gt; mtu 1480 qdisc noop
    link/ipsectun 0.0.0.0 brd 0.0.0.0
8: ipsectun0@NONE: &lt;POINTOPOINT,NOARP,UP&gt; mtu 1418 qdisc noqueue
    link/ipsectun 212.42.64.19 peer 212.90.124.42
    inet 10.0.0.1 peer 10.0.0.2/32 scope global ipsectun0

Патч идёт прицепом.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11821</commentid>
    <comment_count>1</comment_count>
    <who name="Denis Ovsienko">pilot</who>
    <bug_when>2004-02-17 16:37:57 +0300</bug_when>
    <thetext>diff -urN iproute2.altpatches/include/utils.h
iproute2.altpatches.ipsec/include/utils.h
--- iproute2.altpatches/include/utils.h	2002-01-08 21:41:16 +0200
+++ iproute2.altpatches.ipsec/include/utils.h	2004-02-17 15:12:47 +0200
@@ -22,6 +22,9 @@
 #ifndef IPPROTO_AH
 #define IPPROTO_AH	51
 #endif
+#ifndef ARPHRD_IPSECTUN
+#define ARPHRD_IPSECTUN 31 /* IPSec tunneled mode */
+#endif
 
 #define SPRINT_BSIZE 64
 #define SPRINT_BUF(x)	char x[SPRINT_BSIZE]
diff -urN iproute2.altpatches/lib/ll_addr.c iproute2.altpatches.ipsec/lib/ll_addr.c
--- iproute2.altpatches/lib/ll_addr.c	2004-02-17 15:06:50 +0200
+++ iproute2.altpatches.ipsec/lib/ll_addr.c	2004-02-17 15:09:33 +0200
@@ -33,7 +33,7 @@
 	int l;
 
 	if (alen == 4 &amp;&amp;
-	    (type == ARPHRD_TUNNEL || type == ARPHRD_SIT || type == ARPHRD_IPGRE)) {
+	    (type == ARPHRD_TUNNEL || type == ARPHRD_SIT || type == ARPHRD_IPGRE ||
type == ARPHRD_IPSECTUN)) {
 		return inet_ntop(AF_INET, addr, buf, blen);
 	}
 	l = 0;
diff -urN iproute2.altpatches/lib/ll_types.c
iproute2.altpatches.ipsec/lib/ll_types.c
--- iproute2.altpatches/lib/ll_types.c	2004-02-17 15:06:50 +0200
+++ iproute2.altpatches.ipsec/lib/ll_types.c	2004-02-17 15:08:56 +0200
@@ -52,6 +52,8 @@
 #ifdef ARPHRD_IEEE1394
 __PF(IEEE1394,ieee1394)
 #endif
+#define ARPHRD_IPSECTUN 31 /* IPSec tunneled mode */
+__PF(IPSECTUN,ipsectun)
 
 __PF(SLIP,slip)
 __PF(CSLIP,cslip)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11822</commentid>
    <comment_count>2</comment_count>
    <who name="Denis Ovsienko">pilot</who>
    <bug_when>2004-02-17 16:41:34 +0300</bug_when>
    <thetext>Так, это не тот файл...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11823</commentid>
    <comment_count>3</comment_count>
    <who name="Denis Ovsienko">pilot</who>
    <bug_when>2004-02-17 16:43:54 +0300</bug_when>
    <thetext>diff -urN iproute2.altpatches/include/utils.h
iproute2.altpatches.ipsec/include/utils.h
--- iproute2.altpatches/include/utils.h	2002-01-08 21:41:16 +0200
+++ iproute2.altpatches.ipsec/include/utils.h	2004-02-17 15:12:47 +0200
@@ -22,6 +22,9 @@
 #ifndef IPPROTO_AH
 #define IPPROTO_AH	51
 #endif
+#ifndef ARPHRD_IPSECTUN
+#define ARPHRD_IPSECTUN 31 /* IPSec tunneled mode */
+#endif
 
 #define SPRINT_BSIZE 64
 #define SPRINT_BUF(x)	char x[SPRINT_BSIZE]
diff -urN iproute2.altpatches/lib/ll_addr.c iproute2.altpatches.ipsec/lib/ll_addr.c
--- iproute2.altpatches/lib/ll_addr.c	2004-02-17 15:06:50 +0200
+++ iproute2.altpatches.ipsec/lib/ll_addr.c	2004-02-17 15:09:33 +0200
@@ -33,7 +33,7 @@
 	int l;
 
 	if (alen == 4 &amp;&amp;
-	    (type == ARPHRD_TUNNEL || type == ARPHRD_SIT || type == ARPHRD_IPGRE)) {
+	    (type == ARPHRD_TUNNEL || type == ARPHRD_SIT || type == ARPHRD_IPGRE ||
type == ARPHRD_IPSECTUN)) {
 		return inet_ntop(AF_INET, addr, buf, blen);
 	}
 	l = 0;
diff -urN iproute2.altpatches/lib/ll_types.c
iproute2.altpatches.ipsec/lib/ll_types.c
--- iproute2.altpatches/lib/ll_types.c	2004-02-17 15:06:50 +0200
+++ iproute2.altpatches.ipsec/lib/ll_types.c	2004-02-17 15:41:55 +0200
@@ -23,6 +23,7 @@
 #include &lt;linux/netdevice.h&gt;
 #include &lt;linux/if_arp.h&gt;
 #include &lt;linux/sockios.h&gt;
+#include &quot;utils.h&quot;
 
 char * ll_type_n2a(int type, char *buf, int len)
 {
@@ -52,6 +53,7 @@
 #ifdef ARPHRD_IEEE1394
 __PF(IEEE1394,ieee1394)
 #endif
+__PF(IPSECTUN,ipsectun)
 
 __PF(SLIP,slip)
 __PF(CSLIP,cslip)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11824</commentid>
    <comment_count>4</comment_count>
      <attachid>349</attachid>
    <who name="Denis Ovsienko">pilot</who>
    <bug_when>2004-02-17 16:46:24 +0300</bug_when>
    <thetext>Created attachment 349
нормальная обработка ipsec_tunnel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11825</commentid>
    <comment_count>5</comment_count>
    <who name="Denis Ovsienko">pilot</who>
    <bug_when>2004-02-17 16:47:28 +0300</bug_when>
    <thetext>наконец-то нашёл ссылку для аттачей :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13216</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2004-05-02 00:31:04 +0400</bug_when>
    <thetext>Thanks, applied in -alt5.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349</attachid>
            <date>2004-02-17 16:46:24 +0300</date>
            <delta_ts>2004-02-17 16:46:24 +0300</delta_ts>
            <desc>нормальная обработка ipsec_tunnel</desc>
            <filename>iproute2-2.4.7-alt-ipsectun.patch</filename>
            <type>text/plain</type>
            <size>1502</size>
            <attacher name="Denis Ovsienko">pilot</attacher>
            
              <data encoding="base64">ZGlmZiAtdXJOIGlwcm91dGUyLmFsdHBhdGNoZXMvaW5jbHVkZS91dGlscy5oIGlwcm91dGUyLmFs
dHBhdGNoZXMuaXBzZWMvaW5jbHVkZS91dGlscy5oCi0tLSBpcHJvdXRlMi5hbHRwYXRjaGVzL2lu
Y2x1ZGUvdXRpbHMuaAkyMDAyLTAxLTA4IDIxOjQxOjE2ICswMjAwCisrKyBpcHJvdXRlMi5hbHRw
YXRjaGVzLmlwc2VjL2luY2x1ZGUvdXRpbHMuaAkyMDA0LTAyLTE3IDE1OjEyOjQ3ICswMjAwCkBA
IC0yMiw2ICsyMiw5IEBACiAjaWZuZGVmIElQUFJPVE9fQUgKICNkZWZpbmUgSVBQUk9UT19BSAk1
MQogI2VuZGlmCisjaWZuZGVmIEFSUEhSRF9JUFNFQ1RVTgorI2RlZmluZSBBUlBIUkRfSVBTRUNU
VU4gMzEgLyogSVBTZWMgdHVubmVsZWQgbW9kZSAqLworI2VuZGlmCiAKICNkZWZpbmUgU1BSSU5U
X0JTSVpFIDY0CiAjZGVmaW5lIFNQUklOVF9CVUYoeCkJY2hhciB4W1NQUklOVF9CU0laRV0KZGlm
ZiAtdXJOIGlwcm91dGUyLmFsdHBhdGNoZXMvbGliL2xsX2FkZHIuYyBpcHJvdXRlMi5hbHRwYXRj
aGVzLmlwc2VjL2xpYi9sbF9hZGRyLmMKLS0tIGlwcm91dGUyLmFsdHBhdGNoZXMvbGliL2xsX2Fk
ZHIuYwkyMDA0LTAyLTE3IDE1OjA2OjUwICswMjAwCisrKyBpcHJvdXRlMi5hbHRwYXRjaGVzLmlw
c2VjL2xpYi9sbF9hZGRyLmMJMjAwNC0wMi0xNyAxNTowOTozMyArMDIwMApAQCAtMzMsNyArMzMs
NyBAQAogCWludCBsOwogCiAJaWYgKGFsZW4gPT0gNCAmJgotCSAgICAodHlwZSA9PSBBUlBIUkRf
VFVOTkVMIHx8IHR5cGUgPT0gQVJQSFJEX1NJVCB8fCB0eXBlID09IEFSUEhSRF9JUEdSRSkpIHsK
KwkgICAgKHR5cGUgPT0gQVJQSFJEX1RVTk5FTCB8fCB0eXBlID09IEFSUEhSRF9TSVQgfHwgdHlw
ZSA9PSBBUlBIUkRfSVBHUkUgfHwgdHlwZSA9PSBBUlBIUkRfSVBTRUNUVU4pKSB7CiAJCXJldHVy
biBpbmV0X250b3AoQUZfSU5FVCwgYWRkciwgYnVmLCBibGVuKTsKIAl9CiAJbCA9IDA7CmRpZmYg
LXVyTiBpcHJvdXRlMi5hbHRwYXRjaGVzL2xpYi9sbF90eXBlcy5jIGlwcm91dGUyLmFsdHBhdGNo
ZXMuaXBzZWMvbGliL2xsX3R5cGVzLmMKLS0tIGlwcm91dGUyLmFsdHBhdGNoZXMvbGliL2xsX3R5
cGVzLmMJMjAwNC0wMi0xNyAxNTowNjo1MCArMDIwMAorKysgaXByb3V0ZTIuYWx0cGF0Y2hlcy5p
cHNlYy9saWIvbGxfdHlwZXMuYwkyMDA0LTAyLTE3IDE1OjQxOjU1ICswMjAwCkBAIC0yMyw2ICsy
Myw3IEBACiAjaW5jbHVkZSA8bGludXgvbmV0ZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvaWZf
YXJwLmg+CiAjaW5jbHVkZSA8bGludXgvc29ja2lvcy5oPgorI2luY2x1ZGUgInV0aWxzLmgiCiAK
IGNoYXIgKiBsbF90eXBlX24yYShpbnQgdHlwZSwgY2hhciAqYnVmLCBpbnQgbGVuKQogewpAQCAt
NTIsNiArNTMsNyBAQAogI2lmZGVmIEFSUEhSRF9JRUVFMTM5NAogX19QRihJRUVFMTM5NCxpZWVl
MTM5NCkKICNlbmRpZgorX19QRihJUFNFQ1RVTixpcHNlY3R1bikKIAogX19QRihTTElQLHNsaXAp
CiBfX1BGKENTTElQLGNzbGlwKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>