sppp goes on a diet

2015-09-29 Thread Stuart Henderson
The last diff only had +'s, so restore the balance. Since the sad
demise of art, san, and lmc, there is some crisco that can be flensed.
The diff has ^L's in so there's a risk it may get mangled with
quoted-unreadable encoding, so I've put a copy at
http://junkpile.org/sppp-decisco.diff

Index: if_sppp.h
===
RCS file: /cvs/src/sys/net/if_sppp.h,v
retrieving revision 1.20
diff -u -p -r1.20 if_sppp.h
--- if_sppp.h   20 Nov 2013 08:21:33 -  1.20
+++ if_sppp.h   29 Sep 2015 23:31:45 -
@@ -2,7 +2,7 @@
 /* $NetBSD: if_sppp.h,v 1.2.2.1 1999/04/04 06:57:39 explorer Exp $ */
 
 /*
- * Defines for synchronous PPP/Cisco link level subroutines.
+ * Defines for synchronous PPP link level subroutines.
  *
  * Copyright (C) 1994 Cronyx Ltd.
  * Author: Serge Vakulenko, 
@@ -156,7 +156,7 @@ struct sppp {
struct  ifnet pp_if;/* network interface data */
struct  ifqueue pp_cpq; /* PPP control protocol queue */
struct  sppp *pp_next;  /* next interface in keepalive list */
-   u_int   pp_flags;   /* use Cisco protocol instead of PPP */
+   u_int   pp_flags;
u_int   pp_framebytes;  /* number of bytes added by hardware framing */
u_short pp_alivecnt;/* keepalive packets counter */
u_short pp_loopcnt; /* loopback detection counter */
@@ -208,7 +208,7 @@ struct sppp {
 };
 
 #define PP_KEEPALIVE0x01/* use keepalive protocol */
-#define PP_CISCO0x02/* use Cisco protocol instead of PPP */
+   /* 0x02 was PP_CISCO */
/* 0x04 was PP_TIMO */
 #define PP_CALLIN  0x08/* we are being called */
 #define PP_NEEDAUTH0x10/* remote requested authentication */
Index: if_spppsubr.c
===
RCS file: /cvs/src/sys/net/if_spppsubr.c,v
retrieving revision 1.137
diff -u -p -r1.137 if_spppsubr.c
--- if_spppsubr.c   24 Aug 2015 15:58:35 -  1.137
+++ if_spppsubr.c   29 Sep 2015 23:31:45 -
@@ -1,7 +1,6 @@
 /* $OpenBSD: if_spppsubr.c,v 1.137 2015/08/24 15:58:35 mpi Exp $   */
 /*
- * Synchronous PPP/Cisco link level subroutines.
- * Keepalive protocol implemented in both Cisco and PPP modes.
+ * Synchronous PPP link level subroutines.
  *
  * Copyright (C) 1994-1996 Cronyx Engineering Ltd.
  * Author: Serge Vakulenko, 
@@ -93,7 +92,7 @@
  *   :  
  *
  * with  being something like "bppp0", and 
- * being one of "lcp", "ipcp", "cisco", "chap", "pap", etc.
+ * being one of "lcp", "ipcp", "chap", "pap", etc.
  */
 
 #define IFF_PASSIVEIFF_LINK0   /* wait passively for connection */
@@ -151,13 +150,6 @@
 
 #define CHAP_MD5   5   /* hash algorithm - MD5 */
 
-#define CISCO_MULTICAST0x8f/* Cisco multicast address */
-#define CISCO_UNICAST  0x0f/* Cisco unicast address */
-#define CISCO_KEEPALIVE0x8035  /* Cisco keepalive protocol */
-#define CISCO_ADDR_REQ 0   /* Cisco address request */
-#define CISCO_ADDR_REPLY   1   /* Cisco address reply */
-#define CISCO_KEEPALIVE_REQ2   /* Cisco keepalive request */
-
 /* states are named and numbered according to RFC 1661 */
 #define STATE_INITIAL  0
 #define STATE_STARTING 1
@@ -184,16 +176,6 @@ struct lcp_header {
 };
 #define LCP_HEADER_LEN  sizeof (struct lcp_header)
 
-struct cisco_packet {
-   u_int32_t type;
-   u_int32_t par1;
-   u_int32_t par2;
-   u_short rel;
-   u_short time0;
-   u_short time1;
-};
-#define CISCO_PACKET_LEN 18
-
 /*
  * We follow the spelling and capitalization of RFC 1661 here, to make
  * it easier comparing with the standard.  Please refer to this RFC in
@@ -240,9 +222,6 @@ static struct timeout keepalive_ch;
 int sppp_output(struct ifnet *ifp, struct mbuf *m,
   struct sockaddr *dst, struct rtentry *rt);
 
-void sppp_cisco_send(struct sppp *sp, u_int32_t type, u_int32_t par1, 
u_int32_t par2);
-void sppp_cisco_input(struct sppp *sp, struct mbuf *m);
-
 void sppp_cp_input(const struct cp *cp, struct sppp *sp,
  struct mbuf *m);
 void sppp_cp_send(struct sppp *sp, u_short proto, u_char type,
@@ -495,15 +474,6 @@ sppp_input(struct ifnet *ifp, struct mbu
case PPP_ALLSTATIONS:
if (ht.control != PPP_UI)
goto invalid;
-   if (sp->pp_flags & PP_CISCO) {
-   if (debug)
-   log(LOG_DEBUG,
-   SPP_FMT "PPP packet in Cisco mode "
-   "\n",
-   SPP_ARGS(ifp),
-   ht.address, ht.control, ntohs(ht.protocol));
-   goto drop;
-   }
switch (ntohs (ht.protocol)) {
default:
if (sp->state[

sppp/pppoe and vlan prio

2015-09-29 Thread Stuart Henderson
This diff teachs sppp/pppoe(4) to set ifq priority on control frames
(LCP, PAP/CHAP, the various pppoe PADx). These cannot be set the normal
way because these non-IP frames aren't fed through PF.

It's done using a #define which is currently set to a high priority as
that's what is normally wanted to avoid control packets being dropped on
a busy link (too many missed LCP echoes and the link is likely to be
torn down). AFAICT this is also what cisco are now doing by default;
http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/bbdsl/configuration/xe-3s/asr1000/bba-xe-3s-asr1000-book/bba-cos-ppp-pppoe-xe.html#GUID-1B5EEC89-1EDF-459A-A097-22C867B12969

This is connected with the VLAN priority problem mentioned in
https://marc.info/?l=openbsd-misc&m=139889217231865&w=2 and
https://marc.info/?l=openbsd-misc&m=142920873204434&w=2 but isn't
a direct fix (though people who are recompiling to avoid that problem
could use this with a different value than 7, plus a PF rule - that
would allow ifq to work normally on interfaces not involved with pppoe).

Any comments?

Index: if_sppp.h
===
RCS file: /cvs/src/sys/net/if_sppp.h,v
retrieving revision 1.20
diff -u -p -r1.20 if_sppp.h
--- if_sppp.h   20 Nov 2013 08:21:33 -  1.20
+++ if_sppp.h   29 Sep 2015 22:42:49 -
@@ -56,6 +56,7 @@ enum ppp_phase {
 
 #define AUTHMAXLEN 256 /* including terminating '\0' */
 #define AUTHCHALEN 16  /* length of the challenge we send */
+#define SPPPCTL_IFQ_PRIO 7 /* priority for control frames */
 
 /*
  * Definitions to pass struct sppp data down into the kernel using the
Index: if_spppsubr.c
===
RCS file: /cvs/src/sys/net/if_spppsubr.c,v
retrieving revision 1.137
diff -u -p -r1.137 if_spppsubr.c
--- if_spppsubr.c   24 Aug 2015 15:58:35 -  1.137
+++ if_spppsubr.c   29 Sep 2015 22:42:49 -
@@ -1156,6 +1156,7 @@ sppp_cisco_send(struct sppp *sp, u_int32
return;
m->m_pkthdr.len = m->m_len = PPP_HEADER_LEN + CISCO_PACKET_LEN;
m->m_pkthdr.ph_ifidx = 0;
+   m->m_pkthdr.pf.prio = SPPPCTL_IFQ_PRIO;
 
h = mtod (m, struct ppp_header*);
h->address = CISCO_MULTICAST;
@@ -1215,6 +1216,7 @@ sppp_cp_send(struct sppp *sp, u_short pr
return;
m->m_pkthdr.len = m->m_len = pkthdrlen + LCP_HEADER_LEN + len;
m->m_pkthdr.ph_ifidx = 0;
+   m->m_pkthdr.pf.prio = SPPPCTL_IFQ_PRIO;
 
if (sp->pp_flags & PP_NOFRAMING) {
*mtod(m, u_int16_t *) = htons(proto);
@@ -4318,6 +4320,7 @@ sppp_auth_send(const struct cp *cp, stru
if (! m)
return;
m->m_pkthdr.ph_ifidx = 0;
+   m->m_pkthdr.pf.prio = SPPPCTL_IFQ_PRIO;
 
if (sp->pp_flags & PP_NOFRAMING) {
*mtod(m, u_int16_t *) = htons(cp->proto);
Index: if_pppoe.c
===
RCS file: /cvs/src/sys/net/if_pppoe.c,v
retrieving revision 1.48
diff -u -p -r1.48 if_pppoe.c
--- if_pppoe.c  13 Sep 2015 17:53:44 -  1.48
+++ if_pppoe.c  29 Sep 2015 22:42:49 -
@@ -1077,6 +1077,8 @@ pppoe_send_padi(struct pppoe_softc *sc)
if (m0 == NULL)
return (ENOBUFS);
 
+   m0->m_pkthdr.pf.prio = SPPPCTL_IFQ_PRIO;
+
/* fill in pkt */
p = mtod(m0, u_int8_t *);
PPPOE_ADD_HEADER(p, PPPOE_CODE_PADI, 0, len);
@@ -1314,6 +1316,8 @@ pppoe_send_padr(struct pppoe_softc *sc)
if (m0 == NULL)
return (ENOBUFS);
 
+   m0->m_pkthdr.pf.prio = SPPPCTL_IFQ_PRIO;
+
p = mtod(m0, u_int8_t *);
PPPOE_ADD_HEADER(p, PPPOE_CODE_PADR, 0, len);
PPPOE_ADD_16(p, PPPOE_TAG_SNAME);
@@ -1370,6 +1374,8 @@ pppoe_send_padt(struct ifnet *outgoing_i
if (m0 == NULL)
return (ENOBUFS);
 
+   m0->m_pkthdr.pf.prio = SPPPCTL_IFQ_PRIO;
+
p = mtod(m0, u_int8_t *);
PPPOE_ADD_HEADER(p, PPPOE_CODE_PADT, session, 0);
 
@@ -1409,6 +1415,8 @@ pppoe_send_pado(struct pppoe_softc *sc)
if (m0 == NULL)
return (ENOBUFS);
 
+   m0->m_pkthdr.pf.prio = SPPPCTL_IFQ_PRIO;
+
p = mtod(m0, u_int8_t *);
PPPOE_ADD_HEADER(p, PPPOE_CODE_PADO, 0, len);
PPPOE_ADD_16(p, PPPOE_TAG_ACCOOKIE);
@@ -1447,6 +1455,8 @@ pppoe_send_pads(struct pppoe_softc *sc)
m0 = pppoe_get_mbuf(len + PPPOE_HEADERLEN);
if (m0 == NULL)
return (ENOBUFS);
+
+   m0->m_pkthdr.pf.prio = SPPPCTL_IFQ_PRIO;
 
p = mtod(m0, u_int8_t *);
PPPOE_ADD_HEADER(p, PPPOE_CODE_PADS, sc->sc_session, len);



Re: Unable to install bootblocks

2015-09-29 Thread Pedro Caetano
Apologies for not including dmesg in original email.

OpenBSD 5.8-current (RAMDISK_CD) #1271: Tue Sep 29 10:30:11 MDT 2015
dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/RAMDISK_CD
real mem = 117374976 (111MB)
avail mem = 112254976 (107MB)
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xe0010 (364 entries)
bios0: vendor Phoenix Technologies LTD version "6.00" date 06/22/2012
bios0: VMware, Inc. VMware Virtual Platform
acpi0 at bios0: rev 2
acpi0: tables DSDT FACP BOOT APIC MCFG SRAT HPET WAET
acpimadt0 at acpi0 addr 0xfee0: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz, 2000.02 MHz
cpu0:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,MMX,FXSR,SSE,SSE2,SS,SSE3,SSSE3,CX16,SSE4.1,SSE4.2,POPCNT,HV,NXE,LONG,LAHF,PERF,ITSC,SENSOR,ARAT
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: apic clock running at 65MHz
ioapic0 at mainbus0: apid 1 pa 0xfec0, version 11, 24 pins
acpiprt0 at acpi0: bus 0 (PCI0)
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel 82443BX AGP" rev 0x01
ppb0 at pci0 dev 1 function 0 "Intel 82443BX AGP" rev 0x01
pci1 at ppb0 bus 1
"Intel 82371AB PIIX4 ISA" rev 0x08 at pci0 dev 7 function 0 not configured
pciide0 at pci0 dev 7 function 1 "Intel 82371AB IDE" rev 0x01: DMA, channel
0 configured to compatibility, channel 1 configured to compatibility
pciide0: channel 0 disabled (no drives)
atapiscsi0 at pciide0 channel 1 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0:  ATAPI
5/cdrom removable
cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2
"Intel 82371AB Power" rev 0x08 at pci0 dev 7 function 3 not configured
"VMware VMCI" rev 0x10 at pci0 dev 7 function 7 not configured
vga1 at pci0 dev 15 function 0 "VMware SVGA II" rev 0x00
vga1: aperture needed
wsdisplay1 at vga1 mux 1: console (80x25, vt100 emulation)
ppb1 at pci0 dev 17 function 0 "VMware PCI" rev 0x02
pci2 at ppb1 bus 2
ppb2 at pci0 dev 21 function 0 "VMware PCIE" rev 0x01
pci3 at ppb2 bus 3
vmwpvs0 at pci3 dev 0 function 0 "VMware PVSCSI" rev 0x02: apic 1 int 18
scsibus1 at vmwpvs0: 16 targets
sd0 at scsibus1 targ 0 lun 0:  SCSI2 0/direct
fixed
sd0: 1024MB, 512 bytes/sector, 2097152 sectors
sd1 at scsibus1 targ 1 lun 0:  SCSI2 0/direct
fixed
sd1: 1024MB, 512 bytes/sector, 2097152 sectors
sd2 at scsibus1 targ 2 lun 0:  SCSI2 0/direct
fixed
sd2: 20MB, 512 bytes/sector, 40960 sectors
ppb3 at pci0 dev 21 function 1 "VMware PCIE" rev 0x01
pci4 at ppb3 bus 4
ppb4 at pci0 dev 21 function 2 "VMware PCIE" rev 0x01
pci5 at ppb4 bus 5
ppb5 at pci0 dev 21 function 3 "VMware PCIE" rev 0x01
pci6 at ppb5 bus 6
ppb6 at pci0 dev 21 function 4 "VMware PCIE" rev 0x01
pci7 at ppb6 bus 7
ppb7 at pci0 dev 21 function 5 "VMware PCIE" rev 0x01
pci8 at ppb7 bus 8
ppb8 at pci0 dev 21 function 6 "VMware PCIE" rev 0x01
pci9 at ppb8 bus 9
ppb9 at pci0 dev 21 function 7 "VMware PCIE" rev 0x01
pci10 at ppb9 bus 10
ppb10 at pci0 dev 22 function 0 "VMware PCIE" rev 0x01
pci11 at ppb10 bus 11
vmx0 at pci11 dev 0 function 0 "VMware VMXNET3" rev 0x01: apic 1 int 19,
address 00:50:56:81:63:e3
ppb11 at pci0 dev 22 function 1 "VMware PCIE" rev 0x01
pci12 at ppb11 bus 12
ppb12 at pci0 dev 22 function 2 "VMware PCIE" rev 0x01
pci13 at ppb12 bus 13
ppb13 at pci0 dev 22 function 3 "VMware PCIE" rev 0x01
pci14 at ppb13 bus 14
ppb14 at pci0 dev 22 function 4 "VMware PCIE" rev 0x01
pci15 at ppb14 bus 15
ppb15 at pci0 dev 22 function 5 "VMware PCIE" rev 0x01
pci16 at ppb15 bus 16
ppb16 at pci0 dev 22 function 6 "VMware PCIE" rev 0x01
pci17 at ppb16 bus 17
ppb17 at pci0 dev 22 function 7 "VMware PCIE" rev 0x01
pci18 at ppb17 bus 18
ppb18 at pci0 dev 23 function 0 "VMware PCIE" rev 0x01
pci19 at ppb18 bus 19
ppb19 at pci0 dev 23 function 1 "VMware PCIE" rev 0x01
pci20 at ppb19 bus 20
ppb20 at pci0 dev 23 function 2 "VMware PCIE" rev 0x01
pci21 at ppb20 bus 21
ppb21 at pci0 dev 23 function 3 "VMware PCIE" rev 0x01
pci22 at ppb21 bus 22
ppb22 at pci0 dev 23 function 4 "VMware PCIE" rev 0x01
pci23 at ppb22 bus 23
ppb23 at pci0 dev 23 function 5 "VMware PCIE" rev 0x01
pci24 at ppb23 bus 24
ppb24 at pci0 dev 23 function 6 "VMware PCIE" rev 0x01
pci25 at ppb24 bus 25
ppb25 at pci0 dev 23 function 7 "VMware PCIE" rev 0x01
pci26 at ppb25 bus 26
ppb26 at pci0 dev 24 function 0 "VMware PCIE" rev 0x01
pci27 at ppb26 bus 27
ppb27 at pci0 dev 24 function 1 "VMware PCIE" rev 0x01
pci28 at ppb27 bus 28
ppb28 at pci0 dev 24 function 2 "VMware PCIE" rev 0x01
pci29 at ppb28 bus 29
ppb29 at pci0 dev 24 function 3 "VMware PCIE" rev 0x01
pci30 at ppb29 bus 30
ppb30 at pci0 dev 24 function 4 "VMware PCIE" rev 0x01
pci31 at ppb30 bus 31
ppb31 at pci0 dev 24 function 5 "VMware PCIE" rev 0x01
pci32 at ppb31 bus 32
ppb32 at pci0 dev 24 function 6 "VMware PCIE" rev 0x01
pci33 at ppb32 bus 33
ppb33 at pci0 dev 24 function 7 "VMware PCIE" rev 0x01
pci34 at ppb33 bus 34
isa0 at mainbus0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com1 at isa0 port 0x2f8/8 

Unable to install bootblocks

2015-09-29 Thread Pedro Caetano
Hi,

While installing openbsd on vmware using today's snapshot 29-sep-2015, I
get the following message on the final part of the install process, leaving
the system in an unusable state (not booting normally after installing from
bsd.rd).

The hypervisor is running esx 5.1.0

Guest settings:
128mb ram
1gb hdd
SCSI controller is set to paravirtual
NIC is set to vmx3

installboot: invalid boot record signature (0x) @ sector 0

Failed to install bootblocks.
You will not be able to boot OpenBSD from sd0

Best regards,
Pedro Caetano


Re: Unlocking em(4) a bit further

2015-09-29 Thread Hrvoje Popovski
On 29.9.2015. 1:00, Hrvoje Popovski wrote:
> On 28.9.2015. 23:53, Mark Kettenis wrote:
>> This diff makes the tx completion path run without the kernel lock
>> held.  With this change, the interrupt handler will not grab the
>> kernel lock under normal circumstances.  The diff follows the same
>> approach as dlg@ took with vmx(4).
>>
>> The diff removes the code that tries to reclaim tx descriptors in
>> if_start() if we have only EM_TX_CLEANUP_THRESHOLD available
>> descriptors left.  Running tx_eof() in both the normal transmit path
>> and from the interrupt handler becomes a locking nightmare.
>>
>> Seems to survive some serious stress-testing with tcpbench and ping -f
>> on my x220:
>>
>> em0 at pci0 dev 25 function 0 "Intel 82579LM" rev 0x04: msi, address 
>> f0:de:f1:70:87:8a
>>
>> Could use some further testing of course.
> 
> 
> 
> Hi,
> i'm getting 720kpps with 128 byte packets through bridge with two i350.
> Everything seems stable and openbsd box is responsive. Will leave it
> over night 


with routed setup i'm getting stable 1Mpps (64b packets) and box is
happy and responsive ...

both tests are with pf disabled ...

sysctl
kern.pool_debug=0
net.inet.ip.forwarding=1
net.inet.ip.ifq.maxlen=8192
ddb.console=1




Re: minor release of libxcb (1.11.1)

2015-09-29 Thread Matthieu Herrb
On Tue, Sep 29, 2015 at 01:34:03PM +0100, Stuart Henderson wrote:
> On 2015/09/29 14:27, Peter Hessler wrote:
> > On 2015 Sep 28 (Mon) at 22:23:49 +0200 (+0200), Matthieu Herrb wrote:
> > :On Wed, Sep 16, 2015 at 02:37:38AM -0600, David Coppa wrote:
> > :> 
> > :> Hi!
> > :> 
> > :> Here's an update to libxcb-1.11.1
> > :> 
> > :> Changes:
> > :> 
> > :> - Expose 64-bit sequence numbers for XLib
> > :> - Call _xcb_wake_up_next_reader from xcb_wait_for_special_event
> > :> - Fix a thread hang with xcb_wait_for_special_event()
> > :> 
> > :> Tested in a full xenocara rebuild on amd64.
> > :> I think a minor crank is required.
> > :
> > :The diff looks ok, but we currently don't have anything in xenocara
> > :using the new functions. Do you know any application in ports that
> > :would use it if available ?
> > :
> > 
> > Is it that painful to bump a library minor? I think we should always be
> > safe and bump even when we don't know if it would be used.
> 
> Oh I was assuming this related to testing rather than bumps. Yes a bump
> is necessary, it's not about what current ports do, but about what future
> updates might start using.

Yes I was referring to testing. Of course a minor bump is needed. 

In the mean time I read the code a bit more. I was wrong, the new code
is used indeed by the old API too. So it is tested if you run normal X
applications.

so ok matthieu@. 
-- 
Matthieu Herrb


pgpIrLqDJg5eT.pgp
Description: PGP signature


Re: [patch] cleaner checksum modification for pf

2015-09-29 Thread Henning Brauer
* Alexandr Nedvedicky  [2015-09-29 12:17]:
> I have not looked at current checksum handling at PF on OpenBSD, so can't tell
> exactly what's going on there. I feel PF does not bother too much with 
> updating
> the checksum, when it changes the packet. It seems to me the
> in_proto_cksum_out() gets called as soon as outbound packet gets inspected by
> pf_test() to calculate/fix checksums. It looks like in_proto_cksum_out() has 
> to
> recalculate checksum in SW for entire packet, when underlying HW does not 
> offer
> checksum offload. Is that right? Or am I missing some piece?

Basically. Packets that are modified by pf or are locally originated
get "needs checksumming" flags (there are a few actually).
in_proto_cksum_out basically emulates the hw cksum engine if we don't
have one. I consider having one the norm these days.

-- 
Henning Brauer, h...@bsws.de, henn...@openbsd.org
BS Web Services GmbH, http://bsws.de, Full-Service ISP
Secure Hosting, Mail and DNS. Virtual & Dedicated Servers, Root to Fully Managed
Henning Brauer Consulting, http://henningbrauer.com/



Re: D-Link DSR octeon-based models

2015-09-29 Thread Alexis de BRUYN

On 09/29/15 14:38, Paul Irofti wrote:

On Mon, Sep 14, 2015 at 04:52:07PM +0200, Alexis de BRUYN wrote:

Hi Paul,

I have tried the last -current/octeon (and 5.7/octeon) on a D-Link DSR-500N
(HW A1), but the bootoctlinux command failed.

Regards,


Wow, a reply to a one and a half year-old email! :-)

Yes thanks for your answer!


I think you need to clean the randomdata section from your kernel
because we don't have a native bootloader for Octeon.

$ objcopy -R .openbsd.randomdata bsd bsd.tmp && mv bsd.tmp bsd


Shoudn't I do this on a bsd.rd instead?

I have got the following error:

$ objcopy -R .openbsd.randomdata bsd bsd.tmp
objcopy: Unable to recognise the format of the input file `bsd'

I am running objcopy on a -current/amd64 machine with the last octeon 
bsd.rd snapshot.


--
Alexis de BRUYN



Re: D-Link DSR octeon-based models

2015-09-29 Thread Paul Irofti
On Mon, Sep 14, 2015 at 04:52:07PM +0200, Alexis de BRUYN wrote:
> Hi Paul,
> 
> I have tried the last -current/octeon (and 5.7/octeon) on a D-Link DSR-500N
> (HW A1), but the bootoctlinux command failed.
> 
> Regards,

Wow, a reply to a one and a half year-old email! :-)

I think you need to clean the randomdata section from your kernel
because we don't have a native bootloader for Octeon.

$ objcopy -R .openbsd.randomdata bsd bsd.tmp && mv bsd.tmp bsd

> 
> U-Boot 1.1.1 (Development build, svnversion: exported) (Build time: Sep  1
> 2010 - 16:21:09)
> 
> Warning: Board descriptor tuple not found in eeprom, using defaults
> CUST_DSR500N board revision major:2, minor:0, serial #: unknown
> OCTEON CN5010-SCP pass 1.1, Core clock: 300 MHz, DDR clock: 200 MHz (400 Mhz
> data rate)
> DRAM:  128 MB
> Flash: 32 MB
> Clearing DRAM.. done
> BIST check passed.
> Starting PCI
> PCI Status: PCI 32-bit
> PCI BAR 0: 0x, PCI BAR 1: Memory 0x  PCI 0xf800
> Net:   octeth0, octeth1, octeth2
> 
> Hit any key to stop autoboot:  0
> D-Link DSR-500N bootloader# dhcp
> Interface 0 has 3 ports (RGMII)
> BOOTP broadcast 1
> octeth0: Up 1000 Mbps Full duplex (port  0)
> *** Unhandled DHCP Option in OFFER/ACK: 28
> *** Unhandled DHCP Option in OFFER/ACK: 42
> *** Unhandled DHCP Option in OFFER/ACK: 28
> *** Unhandled DHCP Option in OFFER/ACK: 42
> DHCP client bound to address 192.168.0.39
> D-Link DSR-500N bootloader# tftpboot 0 bsd.rd
> Using octeth0 device
> TFTP from server 192.168.0.236; our IP address is 192.168.0.39
> Filename 'bsd.rd'.
> Load address: 0x550
> Loading: #
> done
> Bytes transferred = 7548970 (73302a hex), 3311 Kbytes/sec
> D-Link DSR-500N bootloader# bootoctlinux
> ELF file is 64 bit
> Attempting to allocate memory for ELF segment: addr: 0x8100
> (adjusted to: 0x0100), size 0x764600
> Allocated memory for ELF segment: addr: 0x8100, size 0x764600
> Attempting to allocate memory for ELF segment: addr: 0x816ec790
> (adjusted to: 0x016ec790), size 0x2400
> Error allocating memory for elf image!
> ## ERROR loading File!
> 
> 
> On 02/13/14 11:52, Paul Irofti wrote:
> >Hi there,
> >
> >I just updated the hardware section for the octeon port and added the
> >DSR-500 model to the supported list.
> >
> >I was wondering if similar models might also work with what's in-tree.
> >
> >Could people NFS-boot or at least try the ramdisk kernel on similar
> >models (e.g. DSR-500N, DSR-1000, DSR-1000N) and report back so we can
> >expand the supported list?
> >
> >Thank you,
> >Paul
> >
> 
> -- 
> Alexis de BRUYN



Re: minor release of libxcb (1.11.1)

2015-09-29 Thread Stuart Henderson
On 2015/09/29 14:27, Peter Hessler wrote:
> On 2015 Sep 28 (Mon) at 22:23:49 +0200 (+0200), Matthieu Herrb wrote:
> :On Wed, Sep 16, 2015 at 02:37:38AM -0600, David Coppa wrote:
> :> 
> :> Hi!
> :> 
> :> Here's an update to libxcb-1.11.1
> :> 
> :> Changes:
> :> 
> :> - Expose 64-bit sequence numbers for XLib
> :> - Call _xcb_wake_up_next_reader from xcb_wait_for_special_event
> :> - Fix a thread hang with xcb_wait_for_special_event()
> :> 
> :> Tested in a full xenocara rebuild on amd64.
> :> I think a minor crank is required.
> :
> :The diff looks ok, but we currently don't have anything in xenocara
> :using the new functions. Do you know any application in ports that
> :would use it if available ?
> :
> 
> Is it that painful to bump a library minor? I think we should always be
> safe and bump even when we don't know if it would be used.

Oh I was assuming this related to testing rather than bumps. Yes a bump
is necessary, it's not about what current ports do, but about what future
updates might start using.



Re: minor release of libxcb (1.11.1)

2015-09-29 Thread Peter Hessler
On 2015 Sep 28 (Mon) at 22:23:49 +0200 (+0200), Matthieu Herrb wrote:
:On Wed, Sep 16, 2015 at 02:37:38AM -0600, David Coppa wrote:
:> 
:> Hi!
:> 
:> Here's an update to libxcb-1.11.1
:> 
:> Changes:
:> 
:> - Expose 64-bit sequence numbers for XLib
:> - Call _xcb_wake_up_next_reader from xcb_wait_for_special_event
:> - Fix a thread hang with xcb_wait_for_special_event()
:> 
:> Tested in a full xenocara rebuild on amd64.
:> I think a minor crank is required.
:
:The diff looks ok, but we currently don't have anything in xenocara
:using the new functions. Do you know any application in ports that
:would use it if available ?
:

Is it that painful to bump a library minor? I think we should always be
safe and bump even when we don't know if it would be used.


-- 
We gave you an atomic bomb, what do you want, mermaids?
-- I. I. Rabi to the Atomic Energy Commission



Re: minor release of libxcb (1.11.1)

2015-09-29 Thread Stuart Henderson
On 2015/09/29 13:53, David Coppa wrote:
> > The diff looks ok, but we currently don't have anything in xenocara
> > using the new functions. Do you know any application in ports that
> > would use it if available ?
> 
> I don't know, I've just followed the "rule" new functions->minor bump.
> 
> Maybe Stuart can grep the ports tree with ag...
> 
> The new functions are:
> 
> uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct
> iovec *vector, const xcb_protocol_request_t *request);
> 
> void *xcb_wait_for_reply64(xcb_connection_t *c, uint64_t request,
> xcb_generic_error_t **e);
> 
> int xcb_poll_for_reply64(xcb_connection_t *c, uint64_t request, void
> **reply, xcb_generic_error_t **error);

I don't see anything.



Re: minor release of libxcb (1.11.1)

2015-09-29 Thread David Coppa
On Mon, Sep 28, 2015 at 10:23 PM, Matthieu Herrb  wrote:
> On Wed, Sep 16, 2015 at 02:37:38AM -0600, David Coppa wrote:
>>
>> Hi!
>>
>> Here's an update to libxcb-1.11.1
>>
>> Changes:
>>
>> - Expose 64-bit sequence numbers for XLib
>> - Call _xcb_wake_up_next_reader from xcb_wait_for_special_event
>> - Fix a thread hang with xcb_wait_for_special_event()
>>
>> Tested in a full xenocara rebuild on amd64.
>> I think a minor crank is required.
>
> The diff looks ok, but we currently don't have anything in xenocara
> using the new functions. Do you know any application in ports that
> would use it if available ?

I don't know, I've just followed the "rule" new functions->minor bump.

Maybe Stuart can grep the ports tree with ag...

The new functions are:

uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct
iovec *vector, const xcb_protocol_request_t *request);

void *xcb_wait_for_reply64(xcb_connection_t *c, uint64_t request,
xcb_generic_error_t **e);

int xcb_poll_for_reply64(xcb_connection_t *c, uint64_t request, void
**reply, xcb_generic_error_t **error);

Ciao!
David



Re: [patch] cleaner checksum modification for pf

2015-09-29 Thread Alexandr Nedvedicky
Hello,

I've tried Richard's patch on sparc. I took a brief look at its source code.
It's essentially what PF is doing on Solaris.

The checksum handling in PF on systems with HW assisted checksums is getting
tricky for local (out)bound packets. The approach we take on Solaris is as
follows:

- for inbound packets PF always trusts HW, if HW says chksum is
  correct, then checksum is correct. if HW is not able to verify
  checksum (HW checksum verification is off), PF falls back to SW
  verification (1)

- PF does not check (verify) checksum for outbound packets, outbound
  packet is either

- forwarded, so checksum has been verified in inbound side (2a)

- local outbound, then checksum is either valid or to be
  calculated by HW (2b)

The things are getting pretty wild in 2b, when PF is doing PBR (policy based
routing) on outbound packets. Consider situation when IP stack routes packet
via NIC, which is able to calculate chksum in HW.  IP stack sets flags and
fields and passes packet to PF. PF changes interface, where packet is bound to,
to NIC, which is not able to calculate checksum, so the HW-cksum flags set by
IP stack are no longer valid. In this case we always revert to calculation
in SW.

I have not looked at current checksum handling at PF on OpenBSD, so can't tell
exactly what's going on there. I feel PF does not bother too much with updating
the checksum, when it changes the packet. It seems to me the
in_proto_cksum_out() gets called as soon as outbound packet gets inspected by
pf_test() to calculate/fix checksums. It looks like in_proto_cksum_out() has to
recalculate checksum in SW for entire packet, when underlying HW does not offer
checksum offload. Is that right? Or am I missing some piece?

On the other hand Richard's patch adjusts checksums by delta caused by update.
The adjustment is of few operations (add/and/not) on very small chunk of
memory. The price should be same we pay for extra logic to decide if
HW will compute chksum for us or we have to do it on our own. However we will
save plenty of cycles, when we would have to revert to SW.


I currently have small suggestion to improve Richard's patch. The macro in
PF_ALGNMNT() in pfvar.h uses modulo:

#define PF_HI (true)
#define PF_LO (!PF_HI)
#define PF_ALGNMNT(off) (((off) % 2) == 0 ? PF_HI : PF_LO)

I think we can get away with simple and operation (& 1), which will be faster
than % on many platforms.

#define PF_ALGNMNT(off) (((off) & 1) == 0 ? PF_HI : PF_LO)

regards
sasha



relayd maintainance diff for OpenBSD 5.7

2015-09-29 Thread Sebastian Benoit
OpenBSD 5.7 errata:
http://www.openbsd.org/errata57.html#015_relayd

015: RELIABILITY FIX: September 28, 2015   All architectures
Various problems were identified in relayd and merged back from current to
5.7 in this maintanance update.

This patch is for 5.7 only, it fixes reliability problems that where
identified during the OpenBSD 5.8 release cycle.