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>