contactez toute la France pour 380 euros
toutes les entrepruses de France pour 380,00 euros ht Réservez votre place ici Envoyez ce message à un ami Pour être retiré de nos listes c'est ici serial : 560358142[IMAGE]
relayd: add new load balancing scheduling algorithms
Hi, the following diff adds support for the following scheduling algorithms: relays + rdrs: - source-hash - random rdrs: - least-states redirect foobar { listen on 198.51.100.24 port 80 forward to servers check tcp mode least-states } relay foobar { listen on 198.51.100.25 port 80 forward to servers check tcp mode random } Note that relayd does not support weights associated with addresses yet. This will be added later, in a separate diff. Tests? OK? Reyk Index: parse.y === RCS file: /cvs/src/usr.sbin/relayd/parse.y,v retrieving revision 1.167 diff -u -p -r1.167 parse.y --- parse.y 4 Oct 2012 20:53:30 - 1.167 +++ parse.y 15 Oct 2012 11:42:33 - @@ -30,6 +30,7 @@ #include sys/stat.h #include sys/queue.h #include sys/ioctl.h +#include sys/hash.h #include net/if.h #include net/pfvar.h @@ -157,6 +158,7 @@ typedef struct { %token RETURN ROUNDROBIN ROUTE SACK SCRIPT SEND SESSION SOCKET SPLICE %token SSL STICKYADDR STYLE TABLE TAG TCP TIMEOUT TO ROUTER RTLABEL %token TRANSPARENT TRAP UPDATES URL VIRTUAL WITH TTL RTABLE MATCH +%token RANDOM LEASTSTATES SRCHASH %token v.string STRING %token v.number NUMBER %type v.string hostname interface table @@ -484,9 +486,15 @@ rdroptsl : forwardmode TO tablespec inte if (rdr-table) { rdr-backup = $3; rdr-conf.backup_id = $3-conf.id; + if (dstmode != rdr-conf.mode) { + yyerror(backup table for %s with + different mode, rdr-conf.name); + YYERROR; + } } else { rdr-table = $3; rdr-conf.table_id = $3-conf.id; + rdr-conf.mode = dstmode; } $3-conf.fwdmode = $1; $3-conf.rdrid = rdr-conf.id; @@ -682,6 +690,16 @@ tableopts : CHECK tablecheck } /* FALLTHROUGH */ case RELAY_DSTMODE_ROUNDROBIN: + case RELAY_DSTMODE_SRCHASH: + case RELAY_DSTMODE_RANDOM: + dstmode = $2; + break; + case RELAY_DSTMODE_LEASTSTATES: + if (rdr == NULL) { + yyerror(mode not supported + for relays); + YYERROR; + } dstmode = $2; break; } @@ -1435,6 +1453,9 @@ dstmode : /* empty */ { $$ = RELAY_DST | LOADBALANCE { $$ = RELAY_DSTMODE_LOADBALANCE; } | ROUNDROBIN{ $$ = RELAY_DSTMODE_ROUNDROBIN; } | HASH { $$ = RELAY_DSTMODE_HASH; } + | LEASTSTATES { $$ = RELAY_DSTMODE_LEASTSTATES; } + | SRCHASH { $$ = RELAY_DSTMODE_SRCHASH; } + | RANDOM{ $$ = RELAY_DSTMODE_RANDOM; } ; router : ROUTER STRING { @@ -1794,6 +1815,7 @@ lookup(char *s) { interval, INTERVAL }, { ip, IP }, { label, LABEL }, + { least-states, LEASTSTATES }, { listen, LISTEN }, { loadbalance,LOADBALANCE }, { log,LOG }, @@ -1814,6 +1836,7 @@ lookup(char *s) { priority, PRIORITY }, { protocol, PROTO }, { query, QUERYSTR }, + { random, RANDOM }, { real, REAL }, { redirect, REDIRECT }, { relay, RELAY }, @@ -1832,6 +1855,7 @@ lookup(char *s) { send, SEND }, { session,SESSION }, { socket, SOCKET }, + { source-hash,SRCHASH }, { splice, SPLICE }, { ssl,SSL }, { sticky-address, STICKYADDR }, Index: pfe_filter.c === RCS file: /cvs/src/usr.sbin/relayd/pfe_filter.c,v retrieving revision 1.51 diff -u -p -r1.51 pfe_filter.c --- pfe_filter.c4 Oct 2012 20:53:30 - 1.51 +++ pfe_filter.c15 Oct 2012 11:42:33 - @@ -370,6 +370,7 @@
Re: Scheduler improvements, take 1001, Patch 2/5
On Sun, Oct 14, 2012 at 4:53 PM, Gregor Best g...@ring0.de wrote: On Sun, Oct 14, 2012 at 11:05:36AM +0200, David Coppa wrote: On Tue, Oct 9, 2012 at 6:21 PM, Gregor Best g...@ring0.de wrote: This patch simply halves the timeslice processes get until they are preempted. This patch is standalone and the rest of the patches does not depend on it, but I figured I'd throw it in anyway. -- Gregor Best Didn't get this patch. Is it me or the patch is missing? The patch was the message my mail was in reply to. There's no Patch 2/5 subject line because I forgot to change that after sending out Patch 1/5. Can you resend it, please? I'm confused... TIA, David
Re: Scheduler improvements, take 1001, Patch 2/5
On 2012/10/15 16:18, David Coppa wrote: On Sun, Oct 14, 2012 at 4:53 PM, Gregor Best g...@ring0.de wrote: On Sun, Oct 14, 2012 at 11:05:36AM +0200, David Coppa wrote: On Tue, Oct 9, 2012 at 6:21 PM, Gregor Best g...@ring0.de wrote: This patch simply halves the timeslice processes get until they are preempted. This patch is standalone and the rest of the patches does not depend on it, but I figured I'd throw it in anyway. -- Gregor Best Didn't get this patch. Is it me or the patch is missing? The patch was the message my mail was in reply to. There's no Patch 2/5 subject line because I forgot to change that after sending out Patch 1/5. Can you resend it, please? I'm confused... TIA, David Best to send the diff, with the accompanying text, in the same email, and make sure they still all apply, I tried testing some of these but didn't manage to get them to apply (either some conflicting change, or they were in the wrong order and stacked up on top of each other or something).
Re: Scheduler improvements, take 1001, Patch 2/5
On Monday 15 October 2012, Stuart Henderson wrote: Best to send the diff, with the accompanying text, in the same email, and make sure they still all apply, I tried testing some of these but didn't manage to get them to apply (either some conflicting change, or they were in the wrong order and stacked up on top of each other or something). As you mentioned using git in another mail, I would recommend to use git's format-patch to create the mails. Maybe with the --no-prefix option, because that seems to be the preferred patch format here. Also, interactive rebase (git rebase -i) is nice for adjusting patches and commit messages (in case you didn't know that one). Cheers, Stefan
Votre Rollup Original à partir de 49 eur - impression incluse
VOTRE ROLLUP À 49 eur ! * (*) Prix hors tva et hors frais de traitement du visuelImpression HD incluse 6 modèles disponibles Montage ultra rapide Dispositif garanti Housse de transport doublée Produit en 2 jours ouvrables Découvrez nos produits sur vedi-express POP UP (stands) A partir de 690 eur (htva)COMPTOIRS A partir de 122 eur (htva)PORTE-BROCHURES A partir de 39 eur (htva) VEDI express © 2002-2012 Powered by VEDI ne plus recevoir nos informations
Bringing some sanity to IPv6 traffic (IETF Internet-Drafts)
Folks, FYI: * http://tools.ietf.org/id/draft-ietf-6man-oversized-header-chain-01.txt * http://tools.ietf.org/id/draft-ietf-6man-nd-extension-headers-00.txt P.S.: These two have already been adopted by the 6man wg, and are close to publication as RFCs. Cheers, -- Fernando Gont e-mail: ferna...@gont.com.ar || fg...@si6networks.com PGP Fingerprint: 7809 84F5 322E 45C7 F1C9 3945 96EE A9EF D076 FFF1
Re: update athn(4) ar9485 initvals (please test on any athn(4))
On Sat, Oct 13, 2012 at 07:26:30PM +0200, Stefan Sperling wrote: On Sun, Oct 07, 2012 at 06:24:39PM +0200, Stefan Sperling wrote: The init values athn(4) has for the ar9485 are for version 1.0 of this chip, which according to Atheros Linux developers was never sold: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=903946e6e21ef4dd678acafb8881cabde9182caf This diff updates the initvals to what the Linux driver is using for the 1.1 generation of the ar9485. Because the serdes values are written to different registers on the ar9485 I had to tweak code for other athn(4) devices, too. So please test this on any athn(4) to make sure there are no regressions. Thanks! krw@ reported that the prior diff crashed his machine because I overlooked the serdes values table for non-pcie devices. Here's a hopefully fixed diff. Again, please test for regressions. This one does *not* blow up athn0 machine. :-) No regressions noted so far. Ken Index: ar5416reg.h === RCS file: /cvs/src/sys/dev/ic/ar5416reg.h,v retrieving revision 1.4 diff -u -p -r1.4 ar5416reg.h --- ar5416reg.h 10 Jun 2012 21:23:36 - 1.4 +++ ar5416reg.h 13 Oct 2012 17:20:50 - @@ -811,6 +811,20 @@ static const uint32_t ar5416_bank6_vals[ /* * Serializer/Deserializer programming. */ + +static const uint32_t ar5416_serdes_regs[] = { + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES2 +}; + static const uint32_t ar5416_serdes_vals[] = { 0x9248fc00, 0x24924924, @@ -821,10 +835,12 @@ static const uint32_t ar5416_serdes_vals 0x001defff, 0x1aaabe40, 0xbe105554, - 0x000e3007 + 0x000e3007, + 0x }; static const struct athn_serdes ar5416_serdes = { nitems(ar5416_serdes_vals), - ar5416_serdes_vals + ar5416_serdes_regs, + ar5416_serdes_vals, }; Index: ar9280reg.h === RCS file: /cvs/src/sys/dev/ic/ar9280reg.h,v retrieving revision 1.5 diff -u -p -r1.5 ar9280reg.h --- ar9280reg.h 10 Jun 2012 21:23:36 - 1.5 +++ ar9280reg.h 13 Oct 2012 17:20:50 - @@ -586,6 +586,20 @@ static const struct athn_gain ar9280_2_0 /* * Serializer/Deserializer programming. */ + +static const uint32_t ar9280_2_0_serdes_regs[] = { + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES, + AR_PCIE_SERDES2, +}; + static const uint32_t ar9280_2_0_serdes_vals[] = { 0x9248fd00, 0x24924924, @@ -599,10 +613,12 @@ static const uint32_t ar9280_2_0_serdes_ #endif 0x1aaabe41, 0xbe105554, - 0x00043007 + 0x00043007, + 0x }; static const struct athn_serdes ar9280_2_0_serdes = { nitems(ar9280_2_0_serdes_vals), + ar9280_2_0_serdes_regs, ar9280_2_0_serdes_vals }; Index: ar9380.c === RCS file: /cvs/src/sys/dev/ic/ar9380.c,v retrieving revision 1.15 diff -u -p -r1.15 ar9380.c --- ar9380.c 10 Jun 2012 21:23:36 - 1.15 +++ ar9380.c 13 Oct 2012 17:20:50 - @@ -117,11 +117,13 @@ ar9380_attach(struct athn_softc *sc) sc-cca_max_2g = AR9380_PHY_CCA_MAX_GOOD_VAL_2GHZ; sc-cca_min_5g = AR9380_PHY_CCA_MIN_GOOD_VAL_5GHZ; sc-cca_max_5g = AR9380_PHY_CCA_MAX_GOOD_VAL_5GHZ; - if (AR_SREV_9485(sc)) - sc-ini = ar9485_1_0_ini; - else + if (AR_SREV_9485(sc)) { + sc-ini = ar9485_1_1_ini; + sc-serdes = ar9485_1_1_serdes; + } else { sc-ini = ar9380_2_2_ini; - sc-serdes = ar9380_2_2_serdes; + sc-serdes = ar9380_2_2_serdes; + } return (ar9003_attach(sc)); } @@ -179,7 +181,7 @@ ar9380_setup(struct athn_softc *sc) else sc-rx_gain = ar9380_2_2_rx_gain; } else - sc-rx_gain = ar9485_1_0_rx_gain; + sc-rx_gain = ar9485_1_1_rx_gain; /* Select initialization values based on ROM. */ type = MS(eep-baseEepHeader.txrxgain, AR_EEP_TX_GAIN); @@ -193,7 +195,7 @@ ar9380_setup(struct athn_softc *sc) else sc-tx_gain = ar9380_2_2_tx_gain; } else - sc-tx_gain = ar9485_1_0_tx_gain; + sc-tx_gain = ar9485_1_1_tx_gain; } const uint8_t * Index: ar9380reg.h === RCS file: /cvs/src/sys/dev/ic/ar9380reg.h,v retrieving revision 1.17 diff -u -p -r1.17