RE: Gig-E performance with FreeBSD

2001-08-31 Thread Charles Richmond

I am the manager of the kernel group at Sitara Networks and we have tested
both Netgear and Intel GigE cards. The Tigon based Netgear card is not as
good as the Intel 543 based card. The Tigon chip maxes out at 200k
packets/second. The Intel 543 does better by about 30%.

Charles Richmond 

Original Message-
   >From:   "Kevin Oberman" <[EMAIL PROTECTED]>
   >To: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
   >Cc: 
   >Bcc:
   >Subj:   Gig-E performance with FreeBSD
   >Type:   IPM.Note
   >Sent:   Wednesday, August 29, 2001 4:12 PM
   >
   >Has anyone done any performance testing of Gig-E cards on FreeBSD? I
   >need to run them with some high performance apps and I'm wondering what
   >sort of performance people have been able to get, assuming large
   >windows (up to 8 MB), with and without jumbo frames.
   >
   >Does anyone have any experience in this area?
   >
   >Thanks,
   >
   >R. Kevin Oberman, Network Engineer
   >Energy Sciences Network (ESnet)
   >Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
   >E-mail: [EMAIL PROTECTED]  Phone: +1 510 486-8634
   >
   >To Unsubscribe: send mail to [EMAIL PROTECTED]
   >with "unsubscribe freebsd-net" in the body of the message
   >

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Help with IPSec VPN

2001-08-31 Thread Matthew Emmerton

Hi all,

I've been trying to get an IPSec tunneling VPN between two boxes working
without much success.  I've read the FAQs and HOWTOs on www.freebsd.org,
www.freebsddiary.org, www.daemonnews.org and www.kame.net and they all have
helped me get closer to where I want to be, but I'm still missing something.

The exact problem that I'm running into is that once I've got everything
configured (all details below), when I try and ping the other end of the
tunnel, nothing happens.  I get this from 'netstat -p ipsec', with every
other ipsec counter showing a value of 0.

8 outbound packets with no SA available

Both boxes are running RELENG_4_3 (security release), and have 'options
IPSEC' and 'options IPSEC_ESP' in the kernel.

Box A is 192.168.0.2/24, Box B is 192.168.0.3/24.

Here's what I'm doing on box A:

gabby# gifconfig gif0 192.168.0.2 192.168.0.3
gabby# ifconfig gif0 inet 10.0.2.1 10.0.3.1 netmask 255.255.255.0
gabby# setkey -F
gabby# setkey -FP
gabby# setkey -c << EOF
add 10.0.2.1 10.0.3.1 esp 1000 -E 3des-cbc "goofgoofgoofgoofgoofgoof";
add 10.0.3.1 10.0.2.1 esp 1001 -E 3des-cbc "foolfoolfoolfoolfoolfool";
spdadd 10.0.2.0/24 10.0.3.0/24 any -P out ipsec
esp/tunnel/192.168.0.2-192.168.0.3/require;
spdadd 10.0.3.0/24 10.0.2.0/24 any -P in ipsec
esp/tunnel/192.168.0.3-192.168.0.2/require;
EOF
gabby# route add -net 10.0.3.0/24 10.0.3.1
gabby#

I'm doing the exact same thing on Box B, except that all the IP pairs are
reversed, with the exception of the 'add' lines for setkey (as outlined in
the KAME IpSec FAQ, VPN tunnel section.) and the route statement.

Here's output from gifconfig, ifconfig, netstat, and setkey (slightly
trimmed):
gabby# gifconfig -a gif0
gif0: flags=8011 mtu 1280
inet6 fe80::200:c0ff:fef2:7c40%gif0 --> ::  prefixlen 64
inet 10.0.2.1 --> 10.0.3.1 netmask 0xff00
physical address inet 192.168.0.2 --> 192.168.0.3

gabby# ifconfig gif0
gif0: flags=8011 mtu 1280
inet6 fe80::200:c0ff:fef2:7c40%gif0 --> :: prefixlen 64 scopeid 0x4
inet 10.0.2.1 --> 10.0.3.1 netmask 0xff00

gabby# netstat -rn -f inet
DestinationGatewayFlags Refs Use Netif
Expire
default192.168.0.1UGSc10  ed0
10.0.3/24  10.0.3.1   UGSc00 gif0
10.0.3.1   10.0.2.1   UH  18 gif0
127.0.0.1  127.0.0.1  UH  1   92  lo0
192.168link#1 UC  00  ed0 =>

gabby# setkey -D
10.0.3.1 10.0.2.1
esp mode=any spi=1001(0x03e9) reqid=0(0x)
E: 3des-cbc  666f6f6c 666f6f6c 666f6f6c 666f6f6c 666f6f6c 666f6f6c
replay=0 flags=0x0040 state=mature seq=1 pid=403
created: Aug 31 08:39:59 2001   current: Aug 31 09:11:49 2001
diff: 1910(s)   hard: 0(s)  soft: 0(s)
last:   hard: 0(s)  soft: 0(s)
current: 0(bytes)   hard: 0(bytes)  soft: 0(bytes)
allocated: 0hard: 0 soft: 0
refcnt=1
10.0.2.1 10.0.3.1
esp mode=any spi=1000(0x03e8) reqid=0(0x)
E: 3des-cbc  676f6f66 676f6f66 676f6f66 676f6f66 676f6f66 676f6f66
replay=0 flags=0x0040 state=mature seq=0 pid=403
created: Aug 31 08:39:59 2001   current: Aug 31 09:11:49 2001
diff: 1910(s)   hard: 0(s)  soft: 0(s)
last:   hard: 0(s)  soft: 0(s)
current: 0(bytes)   hard: 0(bytes)  soft: 0(bytes)
allocated: 0hard: 0 soft: 0
refcnt=1

gabby# setkey -DP
10.0.3.0/24[any] 10.0.2.0/24[any] any
in ipsec
esp/tunnel/192.168.0.3-192.168.0.2/require
spid=4 seq=1 pid=404
refcnt=1
10.0.2.0/24[any] 10.0.3.0/24[any] any
out ipsec
esp/tunnel/192.168.0.2-192.168.0.3/require
spid=3 seq=0 pid=404
refcnt=1

--
Matt Emmerton


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Tuning UDP for NFS

2001-08-31 Thread Steve Shorter

Howdy!

I am interested in tuning UDP for NFS over a 100Mbs LAN.

Specifically, to tune UDP, what are guidelines/restrictions for
setting the sysclt variables

net.inet.udp.maxdgram

net.inet.udp.recvspace


I assume that increasing both of these will improve performance.
Is this correct? What factors should be considered, and what other 
barriers/effects (if any) will I come up against. 

Any experience/knowledge that you can share will be greatly
appreciated.

thanx - steve (Please CC me as I am not on the list)



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Tuning UDP for NFS

2001-08-31 Thread Garrett Wollman

< said:

>   net.inet.udp.maxdgram
>   net.inet.udp.recvspace

>   I assume that increasing both of these will improve performance.

Neither of these have any impact on UDP performance.  In fact, there
really are no UDP performance parameters to be tweaked; the UDP
protocol doesn't have much in the way of mechanism which would need
it.  You need to instead look at tuning NFS.

-GAWollman



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: Tuning UDP for NFS

2001-08-31 Thread Alfred Perlstein

* Steve Shorter <[EMAIL PROTECTED]> [010831 12:14] wrote:
> Howdy!
> 
>   I am interested in tuning UDP for NFS over a 100Mbs LAN.
> 
>   Specifically, to tune UDP, what are guidelines/restrictions for
> setting the sysclt variables
> 
>   net.inet.udp.maxdgram
> 
>   net.inet.udp.recvspace
> 
>   
>   I assume that increasing both of these will improve performance.
> Is this correct? What factors should be considered, and what other 
> barriers/effects (if any) will I come up against. 
> 
>   Any experience/knowledge that you can share will be greatly
> appreciated.

Using UDP is usually a bad idea, I would use tcp, I find that these
flags make for a decent mount point that's quite fast:
  rw,tcp,intr,nfsv3,-w=32768,-r=32768

-- 
-Alfred Perlstein [[EMAIL PROTECTED]]
'Instead of asking why a piece of software is using "1970s technology,"
start asking why software is ignoring 30 years of accumulated wisdom.'

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: Tuning UDP for NFS

2001-08-31 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Alfred Perlstein  <[EMAIL PROTECTED]> wrote:
> 
> Using UDP is usually a bad idea, I would use tcp, I find that these
> flags make for a decent mount point that's quite fast:
>   rw,tcp,intr,nfsv3,-w=32768,-r=32768

FreeBSD's "src/etc/amd.map" file still has "vers=2,proto=udp".  Do
you think we should change it?

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: Tuning UDP for NFS

2001-08-31 Thread Alfred Perlstein

* John Polstra <[EMAIL PROTECTED]> [010831 15:03] wrote:
> In article <[EMAIL PROTECTED]>,
> Alfred Perlstein  <[EMAIL PROTECTED]> wrote:
> > 
> > Using UDP is usually a bad idea, I would use tcp, I find that these
> > flags make for a decent mount point that's quite fast:
> >   rw,tcp,intr,nfsv3,-w=32768,-r=32768
> 
> FreeBSD's "src/etc/amd.map" file still has "vers=2,proto=udp".  Do
> you think we should change it?

I'm not familiar with amd, what implications would that have?

What worries me is people using amd against a v2 server, also those
tunables are good at tickling bugs in other NFS implementations
(as well as ours, at least a year or two ago).  So if amd is smart
enough to downgrade then yes, otherwise perhaps just a comment to
indicate that the person may want to use better mount options... ?

-- 
-Alfred Perlstein [[EMAIL PROTECTED]]
'Instead of asking why a piece of software is using "1970s technology,"
start asking why software is ignoring 30 years of accumulated wisdom.'

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



4.3 RELEASE "bug" status and patches?

2001-08-31 Thread Steve Shorter

Howdy!

There is a reference to a networking code bug in 4.3 RELEASE on 

http://www.daemonnews.org/200108/benchmark.html

in the footnote at the bottom.


It also references a patch. I can find no other information about
this issue. Can someone point me to the patch or other documentation
about this. 

thanx - steve (Please Cc me as I am not on the list)

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re:

2001-08-31 Thread Jun-ichiro itojun Hagino

>By the way, RFC2893 has the following text:
(snip)
>Thus, people would say that KAME (FreeBSD) is not compliant to RFC
>2893.

i guess you did not check the original question.

itojun

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



PATCH: if_tap device cloning (final)

2001-08-31 Thread Maksim Yevmenkin

Hackers,

Attached some patches that implements device cloning 
(with devfs(5) support) for tap(4). The implementation is based 
on resource manager (see tun(4) and gif(4)).
Brooks Davis ([EMAIL PROTECTED]) took a quick
look at the patch and seems has no objection. Please review, 
test and if there is no objection Brooks Davis will commit it.
If there are any problems, please let me know. 

thanks,
max

p.s. i'm not on freebsd-net list, so please reply directly

p.p.s.

Brooks Davis wrote:

[...] 

> Looks good.  If could post a copy to freebsd-net and give it another
> 24hrs or so for other responses, I'll commit it if nothing else comes
> up.

diff -ru /usr/src/share/man/man4/tap.4 ./src/share/man/man4/tap.4
--- /usr/src/share/man/man4/tap.4   Thu Aug 30 14:23:44 2001
+++ ./src/share/man/man4/tap.4  Thu Aug 30 15:14:40 2001
@@ -1,4 +1,4 @@
-.\" $FreeBSD: src/share/man/man4/tap.4,v 1.8 2001/08/07 15:48:39 ru Exp $
+.\" $FreeBSD: src/share/man/man4/tap.4,v 1.7 2001/05/01 09:15:13 schweikh Exp $
 .\" Based on PR#2411
 .\"
 .Dd July 9, 2000
@@ -36,11 +36,50 @@
 interface.
 .Pp
 The network interfaces are named
-.Sy tap Ns Ar 0 ,
-.Sy tap Ns Ar 1 ,
-etc, as many as were made by
-.Xr MAKEDEV 8 .
-Each one supports the usual Ethernet network-interface
+.Dq Li tap0 ,
+.Dq Li tap1 ,
+etc., one for each control device that has been opened.
+These Ethernet network interfaces persist until
+.Pa if_tap.ko
+module is unloaded (if
+.Nm
+is built into your kernel, the network interfaces can not be removed).
+.Pp
+On older systems without
+.Xr devfs 5
+support,
+.Xr MAKEDEV 8
+should be used to create the initial control devices and the task
+of locating an unused device is left up to the opener (a
+.Nm
+device is usually obtained by attempting to open
+.Pa /dev/tap0 ,
+and if that fails
+.Pa /dev/tap1
+etc., until an
+.Va errno
+of
+.Er EBUSY
+is not received).
+.Pp
+On systems with
+.Xr devfs 5
+support,
+.Nm
+permits opens on the special control device
+.Pa /dev/tap .
+When this device is opened,
+.Nm
+will return a handle for the lowest unused
+.Nm
+device (use
+.Xr devname 3
+to determine which).
+Control devices (once successfully opened) persist until
+.Pa if_tap.ko
+is unloaded in the same way that network interfaces persist (see above).
+.Pp
+Each interface supports the usual Ethernet network interface
 .Xr ioctl 2 Ns s ,
 such as
 .Dv SIOCSIFADDR
@@ -56,7 +95,7 @@
 there);
 writing an Ethernet frame to the control device generates an input frame on
 the network interface, as if the
-(non-existent)
+.Pq non-existent
 hardware had just received it.
 .Pp
 The Ethernet tunnel device, normally
@@ -91,15 +130,14 @@
 .Fn write .
 Writes will not block; if the frame cannot be accepted
 for a transient reason
-(e.g., no buffer space available),
+.Pq e.g., no buffer space available ,
 it is silently dropped; if the reason is not transient
-(e.g., frame too large),
+.Pq e.g., frame too large ,
 an error is returned.
 The following
 .Xr ioctl 2
 calls are supported
-(defined in
-.Aq Pa net/if_tap.h ) :
+.Pq defined in Aq Pa net/if_tap.h Ns :
 .Bl -tag -width VMIO_SIOCSETMACADDR
 .It Dv TAPSDEBUG
 The argument should be a pointer to an
@@ -115,7 +153,7 @@
 Turn non-blocking I/O for reads off or on, according as the argument
 .Va int Ns 's
 value is or isn't zero
-(Writes are always nonblocking).
+.Pq Writes are always nonblocking .
 .It Dv FIOASYNC
 Turn asynchronous I/O for reads
 (i.e., generation of
@@ -172,8 +210,7 @@
 .Dq remote
 side. This command is used by VMware port and expected to be executed on
 a descriptor, associated with control device
-(usually
-.Pa /dev/vmnet Ns Sy N ) .
+.Pq usually Pa /dev/vmnet Ns Sy N .
 .El
 .Pp
 The control device also supports
@@ -199,7 +236,7 @@
 and
 .Nm vmnet
 devices. VMnet minor numbers begin at
-.Va 0x1
+.Va 0x80
 +
 .Va N .
 Where
diff -ru /usr/src/sys/net/if_tap.c ./src/sys/net/if_tap.c
--- /usr/src/sys/net/if_tap.c   Mon Mar 26 04:41:17 2001
+++ ./src/sys/net/if_tap.c  Thu Aug 30 17:51:00 2001
@@ -54,6 +54,9 @@
 #include 
 #include 
 #include 
+#include/* XXX: Shouldn't really be required! */
+#include 
+#include 
 
 #include 
 #include 
@@ -73,7 +76,9 @@
 
 #define TAP"tap"
 #define VMNET  "vmnet"
-#define VMNET_DEV_MASK 0x0001
+#define TAPMAXUNIT 0x7fff
+#define VMNET_DEV_MASK 0x0080
+   /*  0x007f00ff  */
 
 /* module */
 static int tapmodevent __P((module_t, int, void *));
@@ -111,9 +116,12 @@
/* flags */ 0,
 };
 
-static int taprefcnt = 0;  /* module ref. counter   */
-static int taplastunit = -1;   /* max. open unit number */
-static int tapdebug = 0;   /* debug flag*/
+static int tapdebug = 0;/* debug flag   */
+static SLIST_HEAD(, tap_softc) taphead; /* first device */
+static udev_t  tapbasedev = NOUDEV; /* base device  */
+