Re: ospf6d problem when a route already exists with a different nexthop

2012-09-29 Thread Manuel Guesdon
(ibuf)) == -1)
@@ -444,7 +444,9 @@
 
switch (imsg.hdr.type) {
case IMSG_KROUTE_CHANGE:
-   if (kr_change(imsg.data))
+   count = (imsg.hdr.len - IMSG_HEADER_SIZE) /
+   sizeof(struct kroute);
+   if (kr_change(imsg.data,count))
log_warn(main_dispatch_rde: error changing 
route);
break;
diff -u ospf6d.uptodate/ospf6d.h ospf6d.patch1/ospf6d.h
--- ospf6d.uptodate/ospf6d.hThu Sep 20 15:25:33 2012
+++ ospf6d.patch1/ospf6d.h  Thu Sep 20 22:27:10 2012
@@ -526,7 +526,7 @@
 
 /* kroute.c */
 int kr_init(int);
-int kr_change(struct kroute *);
+int kr_change(struct kroute *, int);
 int kr_delete(struct kroute *);
 voidkr_shutdown(void);
 voidkr_fib_couple(void);
diff -u ospf6d.uptodate/rde.c ospf6d.patch1/rde.c
--- ospf6d.uptodate/rde.c   Thu Sep 20 15:25:33 2012
+++ ospf6d.patch1/rde.c Thu Sep 27 17:51:59 2012
@@ -869,28 +869,36 @@
 void
 rde_send_change_kroute(struct rt_node *r)
 {
+   int  krcount = 0;
struct kroutekr;
struct rt_nexthop   *rn;
+   struct ibuf *wbuf;
 
-   TAILQ_FOREACH(rn, r-nexthop, entry) {
-   if (!rn-invalid)
-   break;
+   if ((wbuf = imsg_create(iev_main-ibuf, IMSG_KROUTE_CHANGE, 0, 0,
+   sizeof(kr))) == NULL) {
+   return;
}
-   if (!rn)
-   fatalx(rde_send_change_kroute: no valid nexthop found);
 
-   bzero(kr, sizeof(kr));
-   kr.prefix = r-prefix;
-   kr.nexthop = rn-nexthop;
-   if (IN6_IS_ADDR_LINKLOCAL(rn-nexthop) ||
-   IN6_IS_ADDR_MC_LINKLOCAL(rn-nexthop))
-   kr.scope = rn-ifindex;
-   kr.ifindex = rn-ifindex;
-   kr.prefixlen = r-prefixlen;
-   kr.ext_tag = r-ext_tag;
+   TAILQ_FOREACH(rn, r-nexthop, entry) {
+   if (rn-invalid)
+   continue;
+   krcount++;
 
-   imsg_compose_event(iev_main, IMSG_KROUTE_CHANGE, 0, 0, -1,
-   kr, sizeof(kr));
+   bzero(kr, sizeof(kr));
+   kr.prefix = r-prefix;
+   kr.nexthop = rn-nexthop;
+   if (IN6_IS_ADDR_LINKLOCAL(rn-nexthop) ||
+   IN6_IS_ADDR_MC_LINKLOCAL(rn-nexthop))
+   kr.scope = rn-ifindex;
+   kr.ifindex = rn-ifindex;
+   kr.prefixlen = r-prefixlen;
+   kr.ext_tag = r-ext_tag;
+   imsg_add(wbuf, kr, sizeof(kr));
+   }
+   if (krcount == 0)
+   fatalx(rde_send_change_kroute: no valid nexthop found);
+   imsg_close(iev_main-ibuf, wbuf);
+   imsg_event_add(iev_main);
 }
 
 void


On Thu, 27 Sep 2012 19:09:58 +0200
Manuel Guesdon ml+openbsd.m...@oxymium.net wrote:

| On Thu, 20 Sep 2012 18:00:26 +0200
| Claudio Jeker cje...@diehard.n-r-g.com wrote:
| 
| | On Thu, Sep 20, 2012 at 05:19:53PM +0200, Manuel Guesdon wrote:
| |  Hi,
| |  
| |  After checking cvs tree, it seems that ospf6d isn't following changes 
done in
| |  ospfd. 
| |  
| |  Is someone working on updating ospf6d to add changes done in ospfd ? 
(or may
| |  be it's not the best way to do ?).
| |  
| |  If it's a good idea to do it, I can try. Do you have some advice ? 
Should I
| |  try to apply a big diff between ospfd initial (i.e. 2007 version) and 
current
| |  state ? Or is there a way to retrieve each patch made to ospfd between 
2007
| |  and now ?
| |  
| |  A last question: ospf6d initial version was created by copying and 
modifying
| |  ospfd files; I presume it was done this way instead of having same code 
with
| |  #ifdef mecanism for good reasons. After 5 years of evolution, does these
| |  reasons still appear beoing valid (I just ask, I haven't sufficient 
knowledge
| |  to give an answer).
| |  
| | 
| | OSPFv2 and OSPFv3 are similar but still to different to have a common
| | source. We try to sync parts between the two daemons from time to time but
| | in some parts the behaviour is to different so that syncing is almost
| | impossible.
| 
| OK.
| 
| | I may sound like a broken record but we accept diffs. So if you think
| | there are commits in ospfd that need to be synced over we will have a look
| | at them.
| 
| Here is a patch adapted from ospfd patch of Tue Sep 25 11:25:41 2007
| UTC (the one of version 1.52 of kroute.c):
| 
| Last missing piece in the equal cost multipath support for ospfd.
| Send all possible nexthops to the parent process and correctly sync
| the RIB, FIB and kernel routing table. Based on initial work by pyr@.
| OK pyr@ norby@
| PS: don't forget that you need to enable multipath support via a sysctl
| 
| 
| It seems to solve my problem but not perfectly. 
| When starting ospf6d with the best link between 2 hosts down, fib

interfaces disappear when doing ospf6ctl reload

2012-09-28 Thread Manuel Guesdon
When running ospf6ctl reload, all interfaces disappear.

It seems to come from IMSG_RECONF_IFACE message removal in rde.c v1.10 and
ospf6d v1.8.
Is another mechanism planned or should we re-add this IMSG_RECONF_IFACE
message  ?

Manuel
--
__
Manuel Guesdon - OXYMIUM



Re: ospf6d problem when a route already exists with a different nexthop

2012-09-27 Thread Manuel Guesdon
On Thu, 20 Sep 2012 18:00:26 +0200
Claudio Jeker cje...@diehard.n-r-g.com wrote:

| On Thu, Sep 20, 2012 at 05:19:53PM +0200, Manuel Guesdon wrote:
|  Hi,
|  
|  After checking cvs tree, it seems that ospf6d isn't following changes done 
in
|  ospfd. 
|  
|  Is someone working on updating ospf6d to add changes done in ospfd ? (or 
may
|  be it's not the best way to do ?).
|  
|  If it's a good idea to do it, I can try. Do you have some advice ? Should I
|  try to apply a big diff between ospfd initial (i.e. 2007 version) and 
current
|  state ? Or is there a way to retrieve each patch made to ospfd between 2007
|  and now ?
|  
|  A last question: ospf6d initial version was created by copying and 
modifying
|  ospfd files; I presume it was done this way instead of having same code 
with
|  #ifdef mecanism for good reasons. After 5 years of evolution, does these
|  reasons still appear beoing valid (I just ask, I haven't sufficient 
knowledge
|  to give an answer).
|  
| 
| OSPFv2 and OSPFv3 are similar but still to different to have a common
| source. We try to sync parts between the two daemons from time to time but
| in some parts the behaviour is to different so that syncing is almost
| impossible.

OK.

| I may sound like a broken record but we accept diffs. So if you think
| there are commits in ospfd that need to be synced over we will have a look
| at them.

Here is a patch adapted from ospfd patch of Tue Sep 25 11:25:41 2007
UTC (the one of version 1.52 of kroute.c):

Last missing piece in the equal cost multipath support for ospfd.
Send all possible nexthops to the parent process and correctly sync
the RIB, FIB and kernel routing table. Based on initial work by pyr@.
OK pyr@ norby@
PS: don't forget that you need to enable multipath support via a sysctl


It seems to solve my problem but not perfectly. 
When starting ospf6d with the best link between 2 hosts down, fib contains
2 other routes comme from 2 other hosts (these 2 routes have equal cost).
When the link came UP, these 2 routes are removed and replaced by the best
route; that's alright.
Next when the link goes down, the 2 alternative routes are well added in fib
but the precedent best route is still in the fib (I see it with  route -n -v
show |grep TargetIP). May be an important point: TargetIP is an IPv6 on lo1.

I can't find why; if you have any idea... I have a test network so I can make
test easily...


Manuel


-- 
Cordialement,

Manuel Guesdon

--
__
Manuel Guesdon - OXYMIUM

[demime 1.01d removed an attachment of type application/octet-stream which had 
a name of ospf6d-patch1]



Re: ospf6d problem when a route already exists with a different nexthop

2012-09-20 Thread Manuel Guesdon
Hi,

After checking cvs tree, it seems that ospf6d isn't following changes done in
ospfd. 

Is someone working on updating ospf6d to add changes done in ospfd ? (or may
be it's not the best way to do ?).

If it's a good idea to do it, I can try. Do you have some advice ? Should I
try to apply a big diff between ospfd initial (i.e. 2007 version) and current
state ? Or is there a way to retrieve each patch made to ospfd between 2007
and now ?

A last question: ospf6d initial version was created by copying and modifying
ospfd files; I presume it was done this way instead of having same code with
#ifdef mecanism for good reasons. After 5 years of evolution, does these
reasons still appear beoing valid (I just ask, I haven't sufficient knowledge
to give an answer).


Manuel


On Sun, 9 Sep 2012 17:14:42 +0200
Manuel Guesdon ml+openbsd.m...@oxymium.net wrote:

| Hi,
| 
| When an ospf route already exists, ospf6d doesn't update the nexthop.
| I have 6 routers (4 with openbsd 5.0, 2 with openbsd 4.9) running ospfd,
| ospf6d and bgpd, routeur id is on lo1.
| 
| For some reason (see at end for a way to reproduce it), one of the router
| (openbsd 5.0 one) have multiple ospf ipv6 routes still in fib (even if no 
more
| ospf6d or bgpd process is running). For exemple:
| 
| root@core3: route -n get -inet6 :::a
|route to: :::a
| destination: :::a
| gateway: fe80::5054:60ff:fe60:3a1%vlan216
|   interface: vlan216
|  if address: fe80::5054:60ff:fe60:348%vlan216
|priority: 32 (ospf)
|   flags: UP,GATEWAY,HOST,DONE
|  use   mtuexpire
| 4200 0 0
| 
| :::a is the loopback address of another router (the gateway is
| obviously wrong as I've killed ospf6d and bgpd on the referenced host).
| 
| when starting ospf6d, a new route for :::a is found but ospf6d
| find the previous one and don't change the nexthop. And when killing
| ospf6d it doesn't remove it.
| 
| If I route delete -inet6 -host :::a
| fe80::5054:60ff:fe60:3a1%vlan216, and restart ospf6d the problem disappear.
| 
| I've took a look at ospf6d/kroute.c and found this route is processed like
| that:
| 
| kr_change(struct kroute *kroute)
| {
| struct kroute_node  *kr;
| int  action = RTM_ADD;
| 
| kroute-rtlabel = rtlabel_tag2id(kroute-ext_tag);
| 
| if ((kr = kroute_find(kroute-prefix, kroute-prefixlen)) !=
| NULL) {
| === goes here
| 
| if (!(kr-r.flags  F_KERNEL))
| action = RTM_CHANGE;
| else {  /* a non-ospf route already exists. not a problem */
| === goes here
| if (!(kr-r.flags  F_BGPD_INSERTED)) {
| === goes here
| do {
| kr-r.flags |= F_OSPFD_INSERTED;
| kr = kr-next;
| } while (kr);
| === exit (nexthop is unchanged)
| return (0);
| }
| 
| 
| 
| This problem occurs when the prefix is announced by different
| ospf peers with a different nexthop. Exemple:
| 
| When starting ospf6d a first route is added learned from one ospf6d peer:
| 
| root@core3: route -n get -inet6 :::8
|route to: :::8
| destination: :::8
| gateway: fe80::5054:60ff:fe60:365%vlan222
|   interface: vlan222
|  if address: fe80::5054:60ff:fe60:345%vlan222
|priority: 32 (ospf)
|   flags: UP,GATEWAY,HOST,DONE
|  use   mtuexpire
|0 0 0
| 
| Next a second route is learned (gateway on fe80::5054:60ff:fe60:321%vlan213
| which is the most direct route) but ospf6d doesn't update it.
| 
| Here some traces I've added in ospf6d:
| MG kr_change:  prefix :::8/128
| MG send_rtmsg1: action 1, prefix :::8/128
| MG send_rtmsg2: action 1, nexthop: fe80::5054:60ff:fe60:365
| ...
| MG kr_change:  prefix :::8/128
| MG kr_change2: found prefix :::8/128
| MG kr_change:  prefix :::8/128 !FKERNEL
| MG send_rtmsg1: action 3, prefix :::8/128
| MG send_rtmsg2: action 3, nexthop: fe80::5054:60ff:fe60:321
| send_rtmsg: action 1, prefix :::8/128: File exists
| 
| 
| After killing ospf6d, (first/bad) route is still here:
| root@core3:usr.sbin$ route -n get -inet6 :::8
|route to: :::8
| destination: :::8
| gateway: fe80::5054:60ff:fe60:365%vlan222
|   interface: vlan222
|  if address: fe80::5054:60ff:fe60:345%vlan222
|priority: 32 (ospf)
|   flags: UP,GATEWAY,HOST,DONE
|  use   mtuexpire
|   28 0 0
| 
| I've retried multiple times and when the 1st learned route is the good one
| (via vlan213) the route is well deleted when killing ospf6d.
| 
| 
| I've tried to compare with ospfd and found that the following chnage seems to
| handle nexthop change case:
|  
http://www.openbsd.org/cgi-bin/cvsweb

ospf6d problem when a route already exists with a different nexthop

2012-09-09 Thread Manuel Guesdon
Hi,

When an ospf route already exists, ospf6d doesn't update the nexthop.
I have 6 routers (4 with openbsd 5.0, 2 with openbsd 4.9) running ospfd,
ospf6d and bgpd, routeur id is on lo1.

For some reason (see at end for a way to reproduce it), one of the router
(openbsd 5.0 one) have multiple ospf ipv6 routes still in fib (even if no more
ospf6d or bgpd process is running). For exemple:

root@core3: route -n get -inet6 :::a
   route to: :::a
destination: :::a
gateway: fe80::5054:60ff:fe60:3a1%vlan216
  interface: vlan216
 if address: fe80::5054:60ff:fe60:348%vlan216
   priority: 32 (ospf)
  flags: UP,GATEWAY,HOST,DONE
 use   mtuexpire
4200 0 0

:::a is the loopback address of another router (the gateway is
obviously wrong as I've killed ospf6d and bgpd on the referenced host).

when starting ospf6d, a new route for :::a is found but ospf6d
find the previous one and don't change the nexthop. And when killing
ospf6d it doesn't remove it.

If I route delete -inet6 -host :::a
fe80::5054:60ff:fe60:3a1%vlan216, and restart ospf6d the problem disappear.

I've took a look at ospf6d/kroute.c and found this route is processed like
that:

kr_change(struct kroute *kroute)
{
struct kroute_node  *kr;
int  action = RTM_ADD;

kroute-rtlabel = rtlabel_tag2id(kroute-ext_tag);

if ((kr = kroute_find(kroute-prefix, kroute-prefixlen)) !=
NULL) {
=== goes here

if (!(kr-r.flags  F_KERNEL))
action = RTM_CHANGE;
else {  /* a non-ospf route already exists. not a problem */
=== goes here
if (!(kr-r.flags  F_BGPD_INSERTED)) {
=== goes here
do {
kr-r.flags |= F_OSPFD_INSERTED;
kr = kr-next;
} while (kr);
=== exit (nexthop is unchanged)
return (0);
}



This problem occurs when the prefix is announced by different
ospf peers with a different nexthop. Exemple:

When starting ospf6d a first route is added learned from one ospf6d peer:

root@core3: route -n get -inet6 :::8
   route to: :::8
destination: :::8
gateway: fe80::5054:60ff:fe60:365%vlan222
  interface: vlan222
 if address: fe80::5054:60ff:fe60:345%vlan222
   priority: 32 (ospf)
  flags: UP,GATEWAY,HOST,DONE
 use   mtuexpire
   0 0 0

Next a second route is learned (gateway on fe80::5054:60ff:fe60:321%vlan213
which is the most direct route) but ospf6d doesn't update it.

Here some traces I've added in ospf6d:
MG kr_change:  prefix :::8/128
MG send_rtmsg1: action 1, prefix :::8/128
MG send_rtmsg2: action 1, nexthop: fe80::5054:60ff:fe60:365
...
MG kr_change:  prefix :::8/128
MG kr_change2: found prefix :::8/128
MG kr_change:  prefix :::8/128 !FKERNEL
MG send_rtmsg1: action 3, prefix :::8/128
MG send_rtmsg2: action 3, nexthop: fe80::5054:60ff:fe60:321
send_rtmsg: action 1, prefix :::8/128: File exists


After killing ospf6d, (first/bad) route is still here:
root@core3:usr.sbin$ route -n get -inet6 :::8
   route to: :::8
destination: :::8
gateway: fe80::5054:60ff:fe60:365%vlan222
  interface: vlan222
 if address: fe80::5054:60ff:fe60:345%vlan222
   priority: 32 (ospf)
  flags: UP,GATEWAY,HOST,DONE
 use   mtuexpire
  28 0 0

I've retried multiple times and when the 1st learned route is the good one
(via vlan213) the route is well deleted when killing ospf6d.


I've tried to compare with ospfd and found that the following chnage seems to
handle nexthop change case:
 
http://www.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/ospfd/kroute.c.diff?r1=1.52;r2=1.53;f=h

May be common changes in ospfd weren't ported to ospf6d ?


Manuel 



problems on ldpd with multiple links between 2 hosts

2012-09-08 Thread Manuel Guesdon
Hi,

I've made some tests on ldpd and found some problems/strange things with the
following configuration:

2 hosts (v 5.0)
 - core3 (loopback 10.0.0.7)
 - core1 (loopback 10.0.0.9)

2 links between these 2 hosts:
 - vlan211 (on em9)
 core3 IP: 10.0.0.125
 core1 IP: 10.0.0.126
 - vlan212 (on em5)
 core3 IP: 10.0.0.121
 core1 IP: 10.0.0.122

I've keeped only interesting part in command results (there some other ospf
neighbors and interfaces). Sorry for this long post, I wanted to reproduce a
problem I've got one time but failed to get it again (see a the end of this
email). 

ospf is running on both hosts:
core3:
ID  Pri StateDeadTime Address Iface Uptime
10.0.0.91   FULL/DR  00:00:34 10.0.0.122  vlan212   00:24:38
10.0.0.91   FULL/DR  00:00:34 10.0.0.126  vlan211   00:23:27

core1:
ID  Pri StateDeadTime Address Iface Uptime
10.0.0.71   FULL/BCKUP   00:00:31 10.0.0.121  vlan212   00:24:50
10.0.0.71   FULL/BCKUP   00:00:31 10.0.0.125  vlan211   00:23:40

ldpd.conf on core3:

router-id 10.0.0.7

distribution independent
retention liberal
advertisement unsolicited

interface vlan212
interface vlan211

same on core1 except that router-id is 10.0.0.9


I start ldpd on 2 hosts:

core3 logs:
Sep  8 14:04:59 core3 ldpd[5529]: startup
Sep  8 14:05:00 core3 ldpd[5529]: mpath route not found
Sep  8 14:05:05 core3 ldpd[30289]: Connection attempt from unknown neighbor
10.0.0.126: NO HELLO

core1 logs:
Sep  8 14:04:54 core1 ldpd[8601]: startup
Sep  8 14:04:55 core1 ldpd[17310]: received notification from neighbor
10.0.0.7: Session Rejected, No Hello

ldpd seems confused by notification received from same host on different
links.


root@core3:etc$ ldpctl sh nei
ID  State  Address Iface Uptime
10.0.0.9OPERATIONAL/ACTIVE 10.0.0.126  vlan211   00:00:09

root@core1:etc$ ldpctl sh nei
ID  State  Address Iface Uptime
10.0.0.7OPERATIONAL/ACTIVE 10.0.0.125  vlan211   00:00:13


=== First problem: only routes from one interface are tagged:

root@core1:etc$ ldpctl sh l
Destination  Nexthop   Local LabelRemote Label   In Use

10.200.0.176/29 10.0.0.12156 33 yes
10.200.0.176/29 10.0.0.12556 Untagged   yes
10.100.0.0/24   10.0.0.12162 39 yes
10.100.0.0/24   10.0.0.12562 Untagged   yes

Tagged interface correspond to interface in fib:

root@core1:etc$ route -n get 10.100.0.1
   route to: 10.100.0.1
destination: 10.100.0.0
   mask: 255.255.255.0
gateway: 10.0.0.121
  interface: vlan212
 if address: 10.0.0.122
 mpls label: PUSH 39
   priority: 32 (ospf)
  flags: UP,GATEWAY,DONE,MPATH,MPLS
 use   mtuexpire
  72 0 0


Now I shutdown vlan211 on core1 with ifconfig vlan211 down

No logs on core3

on core1:
Sep  8 14:15:03 core1 ldpd[17310]: interface vlan211 down
Sep  8 14:15:03 core1 ospfd[23127]: send_packet: error sending packet on
interface vlan211: Network is down
Sep  8 14:15:03 core1 ospfd[23127]: interface vlan211 down
Sep  8 14:15:07 core1 ldpd[17310]: send_packet: error sending packet on
interface vlan211: Network is down


root@core3:etc$ ospfctl sh nei
ID  Pri StateDeadTime Address Iface Uptime
10.0.0.91   FULL/DR  00:00:36 10.0.0.122  vlan212   00:37:17
10.0.0.91   DOWN/OTHER   00:00:54 10.0.0.126  vlan211   -


root@core1:etc$ ospfctl sh nei
ID  Pri StateDeadTime Address Iface Uptime
10.0.0.71   FULL/BCKUP   00:00:33 10.0.0.121  vlan212   00:37:08
10.0.0.71   DOWN/DOWN00:01:18 10.0.0.125  vlan211   -

root@core3:etc$ ldpctl sh nei
ID  State  Address Iface Uptime
10.0.0.9OPERATIONAL/ACTIVE 10.0.0.126  vlan211   00:11:40

root@core1:etc$ ldpctl sh nei
ID  State  Address Iface Uptime
10.0.0.7OPERATIONAL/DOWN   10.0.0.125  vlan211   00:11:35



Next I restore vlan211 with ifconfig vlan211 up

no logs on core3

on core1:
Sep  8 14:17:45 core1 ldpd[17310]: interface vlan211 up
Sep  8 14:17:45 core1 ospfd[23127]: interface vlan211 up

root@core3:etc$ ospfctl sh nei
ID  Pri StateDeadTime Address Iface Uptime
10.0.0.91   FULL/DR  00:00:37 10.0.0.122  vlan212   00:39:06
10.0.0.91   FULL/DR  00:00:37 10.0.0.126  vlan211   00:00:23

root@core1:etc$ ospfctl sh nei
ID  Pri StateDeadTime Address Iface Uptime
10.0.0.71   FULL/BCKUP   00:00:34 10.0.0.121  vlan212   00:39:28
10.0.0.71   FULL/BCKUP   00:00:34 10.0.0.125  vlan211   00:00:45


and shut down vlan212 on core1 with ifconfig vlan212 down


Sep  8 

Re: network bandwith with em(4)

2011-03-05 Thread Manuel Guesdon
On Sat, 5 Mar 2011 22:09:51 +0900
Ryan McBride mcbr...@openbsd.org wrote:

| On Fri, Feb 25, 2011 at 08:40:10PM +0100, Manuel Guesdon wrote:
|  systat -s 2 vmstat:
| 
| 3.2%Int   0.1%Sys   0.0%Usr   0.0%Nic  96.8%Idle   
|  |||||||||||   
| 
| The numbers presented here are calculated against the sum of your CPUs.
| Since you are running bsd.mp with hyperthreading turned on, your machine
| has 16 CPUs; each CPU accounts for about 6% of the total available so
| the 3.2%Int value in your systat vmstat means that you have one cpu
| (the only one that is actually working in the kernel) about 50% in
| interrupt context.  
| 
| The exact behaviour varies from hardware to hardware, but it's not
| surprising that you start losing packets at this level of load.

OK. Understood. Thank you. I'll try SP kernel with mulithread disabled as soon
as I can and make some tests.

Manuel 

--
__
Manuel Guesdon - OXYMIUM



Re: network bandwith with em(4)

2011-03-04 Thread Manuel Guesdon
On Fri, 4 Mar 2011 22:53:30 +0900
Ryan McBride mcbr...@openbsd.org wrote:

| On Thu, Mar 03, 2011 at 03:52:54PM +0100, Manuel Guesdon wrote:
|  | I think we already mentioned it that you will always see Ierr. The
|  | question is if the box is able to forward more then 150kpps.
|  
|  Yes that's one a the questions. We can divide it into 3 questions:
|  1) is the limitation comes from hardware ?
|  2) is the limitation comes from OpenBSD ?
|  3) is the limitation comes from the way OpenBSD exploit hardware.
|  
|  1) Except if someone explain by a+b why the hardware can't forward this
|  rate, I'm keep thinking it can do it (otherwise I don't see reason to sell
|  quad 1Gbps nic).
| 
| Are you suggesting that because you have a quad-port gig nic, your box
| should be able to do 6 *million* packets per second? By that logic my
| 5-port Soekris net4801 should be able to handle 740kpps. (for reference,
| the net4801 does about 3kpps with 4.9)

No, I don't suggest that, I simply think it strange to have these
kind of hardware specification (bus length and speed and bgps nic) and
can't handle something like 160kpps in packets when the 'only' (i.e. no
userland application) job of the server is to forward packets and that server
seems to be 90% idle.


|  I'm ok to hear that I've purchased crappy motherboard card
|  or nic (but I'd like to understand why they are crappy).
| 
| It has nothing to do with hardware crappiness, it has to do with your
| expectations. Your box should certainly be able to fill a few of your
| gig ports with 1500byte packets, but there is no way it'll handle a full
| 4 gigabits / second of TCP syn packets.

I don't expect that numbers.


|  I've spent days and days making tests, searches, reading kernel source
|  code and so on because I think it's interesting for the community to
|  find where the problem come from and how to solve it (if possible). If
|  finally the answer is that OpenBSD (or may be any other OS) can't
|  forward more than 150kpps without losing 1 to 20 pps with this
|  hardware, I'll live with it. 
| 
| Are you actually complaining about 1 to 20 errors per second? That's
| 0.01% packet loss, welcome to ethernet. You will not see this change by
| switching to different hardware or OS.

I'm not complaining, I just try to see if it's 'normal' to have these loss
when server seems not very loaded or if it hide a problem.



| It /is/ possible that something is wrong with your box and you could be
| getting a slightly higher throughput. But don't expect that we'll make
| it handle 2 million PPS any time soon.

Once again, I don't expect forwarding 2Mpps nor 4Gbps.


| However, don't bother just telling us there's something to improve.
| We've working on this for years, we've already made huge improvements,
| and we're always looking for more.  Perhaps the biggest limitation on
| modern hardware is that we can't split the packet handling across
| multiple CPUs, but your input provides exactly ZERO help with changing
| that.

Please see my previous messages: I've never said I see Ierrs, please fix
it.
Claudio suggested a possible mbuf leak problem and I've asked how can I
try to confirm (or not) that.
You've also pointed out high livelocks value so I've understood it as there's
may be something wrong somewhere.

I've provided requested information to help us trying to see if there's a
problem or not.
I'm not hardware expert, not driver expert and even not OpenBSD expert, I just
try to understand and may be help improving things; All my apologies if my
previous messages didn't reflect that.


Manuel 

--
__
Manuel Guesdon - OXYMIUM



Re: network bandwith with em(4)

2011-03-03 Thread Manuel Guesdon
On Thu, 3 Mar 2011 00:51:46 + (UTC)
Stuart Henderson s...@spacehopper.org wrote:

| On 2011-02-28, Manuel Guesdon ml+openbsd.m...@oxymium.net wrote:
|  http://www.oxymium.net/tmp/core3-dmesg
| 
| ipmi0 at mainbus0: version 2.0 interface KCS iobase 0xca2/2 spacing 1
| 
| ipmi is disabled in GENERIC. have you tried without it?

Not on this server (I can't reboot it often) but on another one with same
hardware: it doesn't seems to make difference (it still have Ierr). 


Manuel 

--
__
Manuel Guesdon - OXYMIUM



Re: network bandwith with em(4)

2011-03-03 Thread Manuel Guesdon
On Thu, 3 Mar 2011 11:12:09 +0100
Claudio Jeker cje...@diehard.n-r-g.com wrote:

| On Thu, Mar 03, 2011 at 09:11:13AM +0100, Manuel Guesdon wrote:
|  On Thu, 3 Mar 2011 00:51:46 + (UTC)
|  Stuart Henderson s...@spacehopper.org wrote:
|
|  | On 2011-02-28, Manuel Guesdon ml+openbsd.m...@oxymium.net wrote:
|  |  http://www.oxymium.net/tmp/core3-dmesg
|  | 
|  | ipmi0 at mainbus0: version 2.0 interface KCS iobase 0xca2/2 spacing 1
|  | 
|  | ipmi is disabled in GENERIC. have you tried without it?  
|  
|  Not on this server (I can't reboot it often) but on another one with same
|  hardware: it doesn't seems to make difference (it still have Ierr). 
|
| 
| This diff will help./sarcasm

Of course and s/OpenBSD/FreeBSD/ may help too but none of these proposals
seems very constructive.


| I think we already mentioned it that you will always see Ierr. The
| question is if the box is able to forward more then 150kpps.

Yes that's one a the questions. We can divide it into 3 questions:
1) is the limitation comes from hardware ?
2) is the limitation comes from OpenBSD ?
3) is the limitation comes from the way OpenBSD exploit hardware.

1) Except if someone explain by a+b why the hardware can't forward this
rate, I'm keep thinking it can do it (otherwise I don't see reason to sell
quad 1Gbps nic). I'm ok to hear that I've purchased crappy motherboard card
or nic (but I'd like to understand why they are crappy).

The last 2 questions are still open in my mind.

I've spent days and days making tests, searches, reading kernel source code
and so on because I think it's interesting for the community to find where the
problem come from and how to solve it (if possible). If finally the answer is
that OpenBSD (or may be any other OS) can't forward more than 150kpps without
losing 1 to 20 pps with this hardware, I'll live with it. But as we've
already seen that increasing int/s improve performances (for good or bad
reason), I keep thinking there's something to improve or fix but I may be
wrong.

Anyway, thank you for your work and help.

Manuel 

--
__
Manuel Guesdon - OXYMIUM



Re: network bandwith with em(4)

2011-03-02 Thread Manuel Guesdon
On Wed, 2 Mar 2011 21:52:03 +0900
Ryan McBride mcbr...@openbsd.org wrote:

| On Mon, Feb 28, 2011 at 12:49:01PM +0100, Manuel Guesdon wrote:
|  OK. Anyway NIC buffers restrict buffered packets number. But the problem
|  remain: why a (for exemple) dual Xeon E5520@2.27GHz with Intel PRO/1000
|  (82576) can't route 150kpps without Ierr :-)
|  http://www.oxymium.net/tmp/core3-dmesg
| 
| I've done some more comprehensive testing and talked to some other
| developers, and it seems that 150kpps is in the range of what is
| expected for such hardware with an unoptimized install.

Thank you for the help !


| One thing that seems to have a big performance impact is
| net.inet.ip.ifq.maxlen. If and only if your network cards are all
| supported by MCLGETI (ie, they show LWM/CWM/HWM values in 'systat
| mbufs', you can try increasing ifq.maxlen until you don't see
| net.inet.ip.ifq.drops incrementing anymore under constant load.

Yes all my nic interfaces have LWM/CWM/HWM values:
IFACE LIVELOCKS  SIZE ALIVE   LWM   HWM   CWM
System256 837715502
   2k   1601252
em0  372k 4 4   256 4
em1 2582k 4 4   256 4
em2  3727512k 7 4   256 7
em382582k 4 4   256 4
em4   250722k63 4   25663
em536582k 8 4   256 8
em6  5012882k24 4   25624
em7  222k 4 4   256 4
em8   365512k23 4   25623
em9   520532k 5 4   256 4


I've already increased to 2048 some time ago with good effect on ifq.drops 
but even when ifq.drops doesn't increase, I still have
Ierrs on interfaces (I've just verified this right now) :-)
I've made some change to em some time ago to dump card stats with -debug
option and it give me this stuff like this:
---
em4: Dropped PKTS = 0
em4: Excessive collisions = 0
em4: Symbol errors = 0
em4: Sequence errors = 0
em4: Defer count = 3938
em4: Missed Packets = 17728103
em4: Receive No Buffers = 21687370
em4: Receive Length Errors = 0
em4: Receive errors = 0
em4: Crc errors = 0
em4: Alignment errors = 0
em4: Carrier extension errors = 0
em4: RX overruns = 1456725
em4: watchdog timeouts = 0
em4: XON Rcvd = 31813
em4: XON Xmtd = 2304158
em4: XOFF Rcvd = 935928
em4: XOFF Xmtd = 20031226
em4: Good Packets Rcvd = 33772245185
em4: Good Packets Xmtd = 20662758161
---
em4: Dropped PKTS = 0
em4: Excessive collisions = 0
em4: Symbol errors = 0
em4: Sequence errors = 0
em4: Defer count = 3938
em4: Missed Packets = 17728457
em4: Receive No Buffers = 21687421
em4: Receive Length Errors = 0
em4: Receive errors = 0
em4: Crc errors = 0
em4: Alignment errors = 0
em4: Carrier extension errors = 0
em4: RX overruns = 1456730
em4: watchdog timeouts = 0
em4: XON Rcvd = 31813
em4: XON Xmtd = 2304166
em4: XOFF Rcvd = 935928
em4: XOFF Xmtd = 20031588
em4: Good Packets Rcvd = 33772265127
em4: Good Packets Xmtd = 20662759039

So If I well understand this, the card indicate that there are Missed Packets
because the nic have sometime not enough buffer space to store them which
seems stange with 8000 int/s and an 40K buffer (40K for Rx, 24K for Tx as
seen in if_em.c)



One of my interrogation is how to know that the system is heavy loaded.
systat -s 2 vmstat, give me these informations:

Proc:r  d  s  wCsw   Trp   Sys   Int   Sof  Flt
  14   149 2   509 2011898   31
   
   3.5%Int   0.5%Sys   0.0%Usr   0.0%Nic  96.0%Idle
|||||||||||

which make me think that the system is really not very loaded but I may miss
a point


Manuel 

--
__
Manuel Guesdon - OXYMIUM



Re: network bandwith with em(4)

2011-03-02 Thread Manuel Guesdon
 seems 
'normal' 
and be sure (as far as I can) it doesn't hide a more or less important problem 
:-)



| The FIFO on the card don't matter that much. The problem is the DMA ring
| and the amount of slots on the ring that are actually usable. This is the
| CWM in the systat mbuf output. MCLGETI() reduces the buffers on the ring
| to limit the work getting into the system over a specific network card. 

OK

|  One of my interrogation is how to know that the system is heavy loaded.
|  systat -s 2 vmstat, give me these informations:
|  
|  Proc:r  d  s  wCsw   Trp   Sys   Int   Sof  Flt
|14   149 2   509 2011898   31
| 
| 3.5%Int   0.5%Sys   0.0%Usr   0.0%Nic  96.0%Idle
|  |||||||||||
|  
|  which make me think that the system is really not very loaded but I may 
miss
|  a point
|  
| 
| So you have this 3.5% Int and 0.5% Sys load and are still hitting tons of
| LIVELOCKS (e.g. the counters increase all the time)? It really looks like
| there is a different problem (the mentioned mbuf leak) slowing you down.

:-)

2 points which may help:
On a same hardware but with v 4.7, I have high livelocks too:
IFACE LIVELOCKS  SIZE ALIVE   LWM   HWM   CWM
System25694 271
   2k84 615
lo0
em015202k 4 4   256 4
em1 1962k 5 4   256 4
em2   272212k 6 4   256 6
em3   12k 4 4   256 4
em4   12k 4 4   256 4
em5   484082k 7 4   256 7
em6 3792k 4 4   256 4
em7   2
em8   12k 4 4   256 4
em9   556122k 9 4   256 9

The 2 systems are generic MP kernel build with options:
option  MULTIPROCESSOR
option  MPLS

And option EM_DEBUG on core3 (the 4.8 system): I've added it to try 
to debug this problem.

core3 run ospf (v4  v6) and bgpd with 13 peers and around 344000 
routes (3 peers feed 344000 route each). The problem was here before 
we run ospf6d.


Manuel 

--
__
Manuel Guesdon - OXYMIUM mgues...@oxymium.net
4 rue Auguste Gillot  -  93200 Saint-Denis  -  France
Standard: 0 811 093 286 (Cout d'un appel local)   Fax: +33 1 7473 3971
LD Support: +33 1 7473 3973   LD:  +33 1 7473 3980


-- 
Cordialement,

Manuel Guesdon

--
__
Manuel Guesdon - OXYMIUM



Re: network bandwith with em(4)

2011-02-28 Thread Manuel Guesdon
On Thu, 24 Feb 2011 22:03:22 -0700 (MST)
Theo de Raadt dera...@cvs.openbsd.org wrote:

|  We've got same problems (on a routeur, not a firewall). Increasing
|  MAX_INTS_PER_SEC to 24000  increased bandwith and lowered packet loss.
|  Our cards are Intel PRO/1000 (82576) and Intel PRO/1000 FP
|  (82576).
| 
| Did you try to increase the number of descriptor?
| #define EM_MAX_TXD 256
| #define EM_MAX_RXD 256
| 
| I've tried up to 2048 (and with MAX_INTS_PER_SEC = 16000) but it looks
| worth.
| 
| Say you increase this.
| 
| That means on a single interrupt, the handler could be forced to handle
| around 2000 packets.
| 
| Nothing else will happen on the machine during that period.
| 
| Can you say 'interrupt latency increase' boys and girls?

OK. Anyway NIC buffers restrict buffered packets number. But the problem
remain: why a (for exemple) dual Xeon E5520@2.27GHz with Intel PRO/1000
(82576) can't route 150kpps without Ierr :-)
http://www.oxymium.net/tmp/core3-dmesg

Manuel 



Re: network bandwith with em(4)

2011-02-28 Thread Manuel Guesdon
On Mon, 28 Feb 2011 21:29:01 +0900
Ryan McBride mcbr...@openbsd.org wrote:

| On Mon, Feb 28, 2011 at 12:49:01PM +0100, Manuel Guesdon wrote:
|  OK. Anyway NIC buffers restrict buffered packets number. But the problem
|  remain: why a (for exemple) dual Xeon E5520@2.27GHz with Intel PRO/1000
|  (82576) can't route 150kpps without Ierr :-)
|  http://www.oxymium.net/tmp/core3-dmesg
| 
| Turn off hyperthreading, run a uniprocessor kernel rather than bsd.mp.
| I can't immediately tell if you're running i386 or amd64, but i386 will
| probably be better.

amd64 currently.


| There may be something else going on here, because 150kpps should be
| trivial for a box like this, but the advice above will certainly improve
| your situation.

Thank you ! I'll plan to test that !


| (Yes, it will hurt to know that 7 of your cores are doing nothing. Too
| bad, they're just slowing you down now)

Hum, I prefer to see it working well with only 1 core instead of working bad
using 8 cores :-)


Manuel 

--
__
Manuel Guesdon - OXYMIUM



Re: network bandwith with em(4)

2011-02-25 Thread Manuel Guesdon
Hi,

On Fri, 25 Feb 2011 08:41:20 +0900
Ryan McBride mcbr...@openbsd.org wrote:
..
| The output of `systat mbufs` is worth looking at, in particular the
| figure for LIVELOCKS, and the LWM/CWM figures for the interface(s) in
| question. 
| 
| If the livelocks value is very high, and the LWM/CWM numbers are very
| small, 

Thnak you for your help, Ryan.


It seems I'm in this situation:
   5 usersLoad 0.17 0.15 0.10  (1-48 of 58)Fri Feb 25 20:27:44
2011

IFACE LIVELOCKS  SIZE ALIVE   LWM   HWM   CWM
System256 820505446
   2k   2571252
lo0
em0  342k 4 4   256 4
em1 2572k 4 4   256 4
em2  3383822k 7 4   256 7
em382582k 4 4   256 4
em4   226352k48 4   25648
em534702k 6 4   256 6
em6  4582412k28 4   25628
em7   82k 4 4   256 4
em8   332322k50 4   25650
em9   468782k 4 4   256 4

systat -s 2 vmstat:
   5 usersLoad 0.22 0.17 0.10  Fri Feb 25 20:28:18
2011

memory totals (in KB)PAGING   SWAPPING Interrupts
   real   virtual free   in  out   in  out25589 total
Active   741204741204  1761104   ops   1600 clock
All 1278264   1278264  1761104   pages   11 ipi
  1 em0
Proc:r  d  s  wCsw   Trp   Sys   Int   Sof  Flt   forks em1
  1532 5   117 2286799   33   fkppw2691 em2
  fksvm em3
   3.2%Int   0.1%Sys   0.0%Usr   0.0%Nic  96.8%Idle   pwait6778 em4
|||||||||||   relck 382 em5
||rlkok7328 em6
  noram em7
Namei Sys-cacheProc-cacheNo-cache ndcpy6724 em8
Calls hits%hits %miss   % fltcp  74 em9
3 zfod  uhci1
  cow   ehci0
Disks   wd0   cd0   sd0 25328 fmin  ehci1
seeks   33770 ftarg
pciide0 xfers
itarg com0 speed 241
wired com1 sec
pdfre pckbc0 pdscn
  pzidle
   44 kmapent


  81542 IPKTS
  78860 OPKTS


(it's on a device with MAX_INTS_PER_SEC=8000)


|it is likely that the MCLGETI interface is protecting your system
| from being completly flattened by forcing the em card to drop packets
| (supported by your statement that the error rate is high). 
| 
| How about a _full_ dmesg, so someone can take a wild guess at what
| your machine is capable of?

http://www.oxymium.net/tmp/core3-dmesg

This device is not overloaded but it drop packets :-(

Manuel 



Re: network bandwith with em(4)

2011-02-23 Thread Manuel Guesdon
On Wed, 23 Feb 2011 17:52:21 +0100
Patrick Lamaiziere patf...@davenulle.org wrote:

| Le Tue, 22 Feb 2011 19:13:48 +0100,
| Manuel Guesdon ml+openbsd.m...@oxymium.net a icrit :
|
| Hello,
|
|  We've got same problems (on a routeur, not a firewall). Increasing
|  MAX_INTS_PER_SEC to 24000  increased bandwith and lowered packet loss.
|  Our cards are Intel PRO/1000 (82576) and Intel PRO/1000 FP
|  (82576).
|
| Did you try to increase the number of descriptor?
| #define EM_MAX_TXD 256
| #define EM_MAX_RXD 256
|
| I've tried up to 2048 (and with MAX_INTS_PER_SEC = 16000) but it looks
| worth.

Thank you ! I'll investigate this !


| My configuration is two firewalls in master/backup mode. On the first
| one the two most busy links are on the first card (Fiber). On the
| second, these two links are not on the same card, one is on the fiber
| card and the other on the cupper card. I've noticed today that the
| input Ierr rate is far lower on the second firewall than on the first.
|
| Is it possible to have a bottleneck on the ethernet card or on the bus?

May be (but I'm not an expert :-). In my case, the bus doesn't seems to be
the problem (cards are on the PCI #1 64-bit PCI Express on a X8DTU
http://www.supermicro.com/products/motherboard/QPI/5500/X8DTU.cfm).

Manuel

--
__
Manuel Guesdon - OXYMIUM



Re: network bandwith with em(4)

2011-02-22 Thread Manuel Guesdon
Hi,

On Tue, 22 Feb 2011 18:09:32 +0100
Patrick Lamaiziere patf...@davenulle.org wrote:
| I'm using two ethernet cards Intel 1000/PRO quad ports (gigabit) on a
| firewall (one fiber and one copper).
| 
| The problem is that we don't get more than ~320 Mbits/s of bandwith
| beetween the internal networks and internet (gigabit).
| 
| As far I can see, on load there is a number of Ierr on the interface
| connected to Internet (between 1% to 5%).
| 
| Also the interrupt rate on this card is around ~7500 (using systat). In
| the em(4) driver, there is a limitation of the interrupt rate at 8000/s.
| 
| if_em.h
| /*
|  * MAX_INTS_PER_SEC (ITR - Interrupt Throttle Register)
|  * The Interrupt Throttle Register (ITR) limits the delivery of
| interrupts
|  * to a reasonable rate by providing a guaranteed inter-interrupt delay
|  * between interrupts asserted by the Ethernet controller.
|  */
| #define MAX_INTS_PER_SEC 8000
| 
| Do you think I can increase this value? The interrupt rate of the
| machine is at max ~60% (top).

We've got same problems (on a routeur, not a firewall). Increasing
MAX_INTS_PER_SEC to 24000  increased bandwith and lowered packet loss.
Our cards are Intel PRO/1000 (82576) and Intel PRO/1000 FP (82576).

We still have Ierr (but lower count). I don't understand why we still get
errors with a 90+%Idle system.
I've made some calculations and for a 1Gbps link with 600 Bytes packets, we
have to process 208 334 pps. With a 40KB RX buffer on nic (4/600=66
packets max in buffer) we only need 208334/66=3157 interrupts/s so 24000 and
even 8000 interrupts/s should be enough :-(

If someone have an explanation...

Manuel 



Re: OSPF6D on 4.7 not adding certain {passive} interfaces to RIB.

2011-02-14 Thread Manuel Guesdon
On Sun, 13 Feb 2011 17:36:01 + (GMT)
a b rclo...@yahoo.co.uk wrote:

| Awsome !
| 
| Thanks Manuel.
| 
| Think I'll hold out for it to become an errata patch rather than applying 
the 
| interim one.
| 
| I've also got an issue with BGPD not complying with announce all when 
talking 
| to an eBGP neighbor (redistributing to a private ASN peer).  I'll do some 
more 
| digging around the PR database incase I've missed something, but if you know 
of 
| something off the top of your head like you did on this problem, feel free 
to 
| let me know !

I haven't found such problem. May be bad filter rules ?

Manuel



Re: OSPF6D on 4.7 not adding certain {passive} interfaces to RIB.

2011-02-13 Thread Manuel Guesdon
Hi,

On Sun, 13 Feb 2011 12:50:52 + (GMT)
a b rclo...@yahoo.co.uk wrote:
| I've got a curious issue.
| 
...
| The loopback and vlan interfaces get added to the RIB without
| problem.
| 
| bnx1 does not get added to the RIB unless I remove the {passive}
| statement, in 
| which case everything works fine.
...
| Has anyone come accross the same issue ?

Yes, see:
http://wwhw.mail-archive.com/misc@openbsd.org/msg96980.html
  There a link to a patch from Patrick Coleman

http://www.openbsd.org/query-pr.html  
  Search PR 6559


Manuel 



Re: ospf6d doesn't announce passive interfaces

2011-02-09 Thread Manuel Guesdon
Hi,

On Tue, 9 Nov 2010 14:04:22 +0100
Jan Johansson janj+open...@wenf.org wrote:
...
| I am now trying to replicate this setup for IPv6 using
| ospf6d but it seems that it will only announce addresses on
| active interfaces.

FYI, having the same problem (on passive emX; I haven't tried on carp), I've
applied your patch:
  http://patrick.ld.net.au/ospf6d-fix-passive-interfaces-mk2.patch
which solve this problem but create a new one: loopback (lo1 in my case) is
no more announced.

PR opened:
http://cvs.openbsd.org/cgi-bin/query-pr-wrapper?full=yesnumbers=6559

Manuel 



Re: ospf6d doesn't announce passive interfaces

2011-02-09 Thread Manuel Guesdon
On Thu, 10 Feb 2011 00:21:59 +0800
Patrick Coleman blin...@gmail.com wrote:

| On Wed, Feb 9, 2011 at 11:42 PM, Manuel Guesdon
| ml+openbsd.m...@oxymium.net wrote:
|  Hi,
| 
|  On Tue, 9 Nov 2010 14:04:22 +0100
|  Jan Johansson janj+open...@wenf.org wrote:
|  ...
| | I am now trying to replicate this setup for IPv6 using
| | ospf6d but it seems that it will only announce addresses on
| | active interfaces.
| 
|  FYI, having the same problem (on passive emX; I haven't tried on carp),
I've
|  applied your patch:
|  B http://patrick.ld.net.au/ospf6d-fix-passive-interfaces-mk2.patch
|  which solve this problem but create a new one: loopback (lo1 in my case)
is
|  no more announced.
|
| Oops. I do intend to fix this; things have just been busy recently.
| Hopefully soon.

Thx !
I've made a (very) quik  dirty change in rde.c:
--- rde.c.patched   Wed Feb  9 13:48:20 2011
+++ rde.c   Wed Feb  9 17:50:04 2011
@@ -1476,13 +1476,15 @@
 * This will not advertise backup carp interfaces (which have
a link
 * state of down).
 */
-   if (!(LINK_STATE_IS_UP(iface-linkstate)) ||
+ if (iface-media_type!=IFT_LOOP
+ (
+   !(LINK_STATE_IS_UP(iface-linkstate)) ||
!(iface-flags  IFF_UP) ||
((iface-state  IF_STA_DOWN) 
!((iface-media_type == IFT_CARP) ||
(iface-cflags  F_IFACE_PASSIVE))) ||
((iface-linkstate == LINK_STATE_UNKNOWN) 
-   (iface-media_type == IFT_CARP))) {
+(iface-media_type == IFT_CARP {
log_debug(orig_intra_lsa_rtr: area %s, interface %s:
not including
 in LSA, inet_ntoa(area-id), iface-name);
continue;

which bring back the loopback announcement but it's really dirty :-)


Manuel



Re: em(4) detailed errors

2011-01-28 Thread Manuel Guesdon
Hi,

On Thu, 18 Nov 2010 16:38:55 +0100
Manuel Guesdon ml+openbsd.m...@oxymium.net wrote:
| Is there a way to get detailed em(4) device errors without having to
| recompile kernel with EM_DEBUG ?
| I try to find in-errors reason(s) but netstat only gives errors as a sum of
| dropped_pkts + stats.rxerrc + stats.crcerrs + sc-stats.algnerrc +... as far
| as I can see :-(

I took me some time to upgrade to 4.8 version and modify kernel to get detail
info on demand.
I still have the problem on multiple servers (but with very similar hardware 
and software).


em4 at pci11 dev 0 function 0 Intel PRO/1000 (82576) rev 0x01: apic 9 int 15 
(irq 15), address 00:25:90:05:53:3e


em4: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500
lladdr 00:25:90:05:53:3e
description: br1.th2
priority: 0
groups: pf-off
media: Ethernet autoselect (1000baseT 
full-duplex,master,rxpause,txpause) 
status: active 
inet6 fe80::225:90ff:fe05:533e%em4 prefixlen 64 scopeid 0x5 

#netstat -I em4 -d
NameMtu   Network Address  IpktsIerrsOpkts  
Oerrs Colls  Drop 
em4 1500  Link  00:25:90:05:53:3e 8936976317 4614835  5430820423 
0 00 
em4 1500  fe80::%em4/ fe80::225:90ff:fe 8936976317 4614835  5430820423  
0 00

Detailed stats:
em4: Dropped PKTS = 0
em4: Excessive collisions = 0
em4: Symbol errors = 0
em4: Sequence errors = 0
em4: Defer count = 353
em4: Missed Packets = 4241586
em4: Receive No Buffers = 5297798
em4: Receive Length Errors = 0
em4: Receive errors = 0
em4: Crc errors = 0
em4: Alignment errors = 0
em4: Carrier extension errors = 0
em4: RX overruns = 372913
em4: watchdog timeouts = 0
em4: XON Rcvd = 3086
em4: XON Xmtd = 592675
em4: XOFF Rcvd = 164449
em4: XOFF Xmtd = 4833995
em4: Good Packets Rcvd = 8936940571
em4: Good Packets Xmtd = 5430798347

At this time, the interface carry around 56mbps inbound and 35Mbps outbound
Server load is 0.14

The em4 interface is connected to a an interface on another server with near 
same config (but I get same kind of problem for interfaces connected to switch 
with copper and fiber).

Errors seems a little related to interface load but not very closely.

Each servers have 2xQuad-ports cards (82576) + 2 ports on motherboard (82576 
too).

I was thinking of problem with interrupt mitigation.

Any idea, comments, things to test ?

Thank you !

Manuel



em(4) detailed errors

2010-11-18 Thread Manuel Guesdon
Hi,

Is there a way to get detailed em(4) device errors without having to
recompile kernel with EM_DEBUG ?
I try to find in-errors reason(s) but netstat only gives errors as a sum of
dropped_pkts + stats.rxerrc + stats.crcerrs + sc-stats.algnerrc +... as far
as I can see :-(


Manuel 



Problem with OSPF static route redistribution and routing table

2010-10-31 Thread Manuel Guesdon
Hi,

I have some problem with a redistributed static route not added to 
the routing table.

On a routeur A, there is a static route:
  route add  -net  a.b.c.d/27 e.f.g.h
(e.f.g.h is a carp IP on this router)

route get a.b.c.d show the good gateway (e.f.g.h)

ospfd.conf for this router have 
redistribute static set { metric 1 }

On a routeur B, I find the static route when I do a 
  ospfctl sh da ext

LS age: 434
Options: *|*|-|-|-|-|-|*
LS Type: AS External
Link State ID: a.b.c.d (External Network Number)
Advertising Router: IP of A Router
LS Seq Number: 0x802b
Checksum: 0xf321
Length: 36
Network Mask: 255.255.255.224
Metric type: 1
Metric: 1
Forwarding Address: e.f.g.h
External Route Tag: 0


So far so good: the route is redistributed but on this B router, a
  route get a.b.c.d
doesn't return the good final gateway (e.f.g.h) nor the A router; instead it
returns the default gateway for this router.

Additional element: Router B knows how to reach the final gateway e.f.g.h
  (route get e.f.g.h is correct).

Any idea ?

Manuel



IPMI local access

2010-10-24 Thread Manuel Guesdon
Hi,

I've seen BMC local access seems impossible:
  http://www.mail-archive.com/misc@openbsd.org/msg93376.html
Is it really impossible or did I missed some point ?
Is there a reason for not implementing a local driver
as /usr/src/sys/dev/ipmi.c seems to contain all the code needed to interact
with bmc ?


Manuel 

--
__
Manuel Guesdon - OXYMIUM