Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Mar 2001 19:24:23 -0800 (PST)
From:      togou@crl.go.jp
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/26017: ProblemReport kern/23620がFreeBSD 4.2でも起こる 
Message-ID:  <200103230324.f2N3ONb67896@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         26017
>Category:       kern
>Synopsis:       ProblemReport kern/23620がFreeBSD 4.2でも起こる
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Mar 22 19:30:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     都甲 章己(とごう しょうき)
>Release:        4.2
>Organization:
通信総合研究所
>Environment:
FreeBSD scn1e 4.2-RELEASE FreeBSD 4.2-RELEASE #0: Fri Mar 23 10:47:30 JST 2001     root@scn1e:/usr/src/sys/compile/ACTIVENET  i386

>Description:
FreeBSD4.2でFore Systems製ATM NIC「PCA-200E」を利用するとPingなど
外部ホストとの通信ができなくなる。
Problem Report kern/23620ではPingコマンドでパケットがロスするように出ているが、
今回の場合は外部ホストへはパケットを飛ばしても戻りが一切受け取れない状態である。
パケットを出しているかどうかについてはATMスイッチを経由させてチェックしているの
で間違いはない。
注)PCA-200Eを使っている方にとっては致命的なのですが、重要度に関しては判断がつ
きません。私が行っている業務上致命的であって、優先順位も高かったので重要度/優先
順位も高く設定させていただきました。

>How-To-Repeat:
1.カーネルのコンフィグに以下6行を設定
options         ATM_CORE
options         ATM_IP
options         ATM_SIGPVC
options         ATM_SPANS
options         ATM_UNI
device          hfa
2.カーネルを作成
3.PCA-200Eのマイクロコードを/etcへコピー
4.再起動後、ATMの設定を行う(以下の行を実行)
fore_dnld -i hfa0 -d /etc
atm set netif hfa0 nia 1
atm attach hfa0 SIGPVC
ifconfig nia0 192.168.1.1.up
atm add pvc hfa0 0 100 aal5 llc ip nia 192.168.1.2
※192.168.1.2は相手先のアドレスである。今回のテストでは相手先はFreeBSD4.0で
 同様のやり方で動作することを確認している。
5.pingコマンドで開通を確認
ping 192.168.1.2
※このあとは何もメッセージは出ない。ctrl+cで終了する。
>Fix:
ProbremReport kern/23620に出ているパッチを当てれば解決するのだが、残念ながら
そのままパッチを当ててもリジェクトされてしまった。
以下のパッチを作成したのでこれをFreeBSD4.2で当てるとうまくいく。
--- sys.old/dev/hfa/fore.h	Sat Aug 28 09:41:48 1999
+++ sys/dev/hfa/fore.h	Fri Mar 23 11:14:21 2001
@@ -115,11 +115,11 @@
  *			BUF_DATA_ALIGN) - BUF1_SM_HDR)
  *	#define	BUF1_SM_SIZE	MAX(BUF1_SM_LEN - BUF1_SM_DOFF, 64)
  *
  */
 #if ((BSD >= 199103) && defined(FORE_PCI))
-#define	BUF1_SM_DOFF	((BUF1_SM_HOFF + SIZEOF_Buf_handle) - BUF1_SM_HDR)
+#define	BUF1_SM_DOFF	(SIZEOF_Buf_handle)
 #define	BUF1_SM_SIZE	(BUF1_SM_LEN - BUF1_SM_DOFF)
 #endif
 #if ((BSD < 199103) && defined(FORE_SBUS) && defined(sun4c))
 #define	BUF1_SM_DOFF	(BUF_DATA_ALIGN - BUF1_SM_HDR)
 #define	BUF1_SM_SIZE	(BUF1_SM_LEN - BUF1_SM_DOFF)
--- sys.old/dev/hfa/fore_receive.c	Sat Aug 28 09:41:51 1999
+++ sys/dev/hfa/fore_receive.c	Fri Mar 23 10:40:26 2001
@@ -417,10 +417,13 @@
 		}
 
 		/*
 		 * It looks like we've got a valid PDU - count it quick!!
 		 */
+		mhead->m_pkthdr.rcvif = NULL;
+		mhead->m_pkthdr.csum_flags = 0;
+		mhead->m_pkthdr.aux = NULL;
 		KB_PLENSET(mhead, pdulen);
 		fup->fu_pif.pif_ipdus++;
 		fup->fu_pif.pif_ibytes += pdulen;
 		vcp = fvp->fv_connvc->cvc_vcc;
 		vcp->vc_ipdus++;

注)出てくる内容は23620のレポート中のものと変わりがありません。違うのはファイルの
日付だけなので、もしかしたら私が無知なだけかも知れません。
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103230324.f2N3ONb67896>