lartc-request,hello! I find a line in tbf_change() in sch_tbf.c: ptab = xchg(&q->P_tab, ptab); Can I consider that the pointers are exchanged between q->P_tab and ptab? as following: prev=q->R_tab; q->R_tab = rtab; rtab = prev; Is my understanding righ? ======= 2002-03-23 12:01:00 you wrote:======= >Send LARTC mailing list submissions to > lartc@xxxxxxxxxxxxxxx > >To subscribe or unsubscribe via the World Wide Web, visit > http://mailman.ds9a.nl/mailman/listinfo/lartc >or, via email, send a message with subject or body 'help' to > lartc-request@xxxxxxxxxxxxxxx > >You can reach the person managing the list at > lartc-admin@xxxxxxxxxxxxxxx > >When replying, please edit your Subject line so it is more specific >than "Re: Contents of LARTC digest..." > > >Today's Topics: > > 1. Simple example of bandwidth management (Roberto Arcomano) > 2. Determining tbf parameters (Alex Leyva) > 3. Re: How to mark a device not to be used with IMQ? (Martin Devera) > 4. Re: How to mark a device not to be used with IMQ? (Patrick McHardy) > 5. Re: How to mark a device not to be used with IMQ? (Patrick McHardy) > >--__--__-- > >Message: 1 >From: Roberto Arcomano <berto@xxxxxxxxxxxxxxx> >To: lartc@xxxxxxxxxxxxxxx >Date: Fri, 22 Mar 2002 19:10:44 +0100 >Subject: [LARTC] Simple example of bandwidth management > >Hi all, >I tried to configure a simple script like this: > >************************************************* >#!/bin/bash > >SORG=10.0.0.33 >DEST=10.0.0.34 > >ipchains -F >ipchains -A output -s $SORG -d $DEST -j ACCEPT -m 1 > >tc qdisc del dev eth0 root handle 1:0 cbq bandwidth 33600bps avpkt 1000 >tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 33600bps avpkt 1000 > >tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 33600bps rate >10000bps allot 1514 maxburst 20 avpkt 1000 prio 3 > >tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 1 fw classid 1:1 >******************************************************** > >My problem is that I cannot see any bandwidth reduction, I download from >10.0.0.33 to 10.0.0.34 with same speed as before (normal ethernet speed). >Maybe there exists some file under /proc fs to modify? > >Some other debug info: > >******************************************************* >[root@xxxx bin]# tc -d qdisc show dev eth0 >qdisc cbq 1: rate 33600bps cell 8b (bounded,isolated) prio no-transmit/8 >weight 33600bps allot 1514b >level 1 ewma 5 avpkt 1000b maxidle 928us >[root@xxxx bin]# >[root@xxxx bin]# >[root@xxxx bin]# >[root@xxxx bin]# tc -d class show dev eth0 >class cbq 1: root rate 33600bps cell 8b (bounded,isolated) prio no-transmit/8 >weight 33600bps allot 1514b >level 1 ewma 5 avpkt 1000b maxidle 928us >class cbq 1:1 parent 1: rate 10000bps cell 8b prio 3/3 weight 10000bps allot >1514b >level 0 ewma 5 avpkt 1000b maxidle 62298us >[root@xxxx bin]# >[root@xxxx bin]# >[root@xxxx bin]# >[root@xxxx bin]# >[root@xxxx bin]# >[root@xxxx bin]# tc filter show dev eth0 >filter parent 1: protocol ip pref 1 fw >filter parent 1: protocol ip pref 1 fw handle 0x1 classid 1:1 >*************************************************************** > >My system is: >RedHat 7.2 with kernel 2.4.7-10 on Intel Celeron 300MHz - 128 MB ram >Please let me know what I'm wronging... >Thank you for your great support. >Regards >Roberto Arcomano > >--__--__-- > >Message: 2 >Date: Fri, 22 Mar 2002 12:49:26 -0600 (CST) >From: Alex Leyva <aleyva@xxxxxxxxxxxxxxxx> >To: <lartc@xxxxxxxxxxxxxxx> >Subject: [LARTC] Determining tbf parameters > >Hi, im doing something like this: >tc qdisc add $DEV parent 1:110 handle 110: estimator 1sec 8sec \ > tbf rate 1Mbit burst ??? limit ??? > >I've been triying with diferent values for burst, limit and latency, but >we cant understand how to determine the correct values for them. > >In "Short evaluation of linux token-bucket-filter queueing discipline" >by Kurt Wagner we learned that queue size=limit+bucket size, but we dont >know how to determine limit, burst and latency. > >We found different formulas to determine the size of the bucket, the >latency and the limit, but they doesnt work for us, because we get >incoherent values. > >We have another question, what is the normal values for dropped and >overlimit?. >We have: >qdisc tbf 110: dev eth1 rate 1Mbit burst 20Kb/8 mpu 0b [0001f400] limit >40Kb lat 190.7ms > Sent 17542230 bytes 11591 pkts (dropped 36, overlimits 35216) > >is this normal?. > >Thanks. > >Alex Leyva >Gobierno del Distrito Federal >Oficialia Mayor >Comite Ejecutivo de Desarrollo Informatico >Direccion de Nuevas Tecnologias > > >--__--__-- > >Message: 3 >Date: Sat, 23 Mar 2002 00:50:46 +0100 (CET) >From: Martin Devera <devik@xxxxxx> >To: Nils Lichtenfeld <Nils.Lichtenfeld@xxxxxxx> >Cc: lartc ML <lartc@xxxxxxxxxxxxxxx> >Subject: Re: [LARTC] How to mark a device not to be used with IMQ? > >> I understand what you mean... but i thought there has to be a way from what I >> read on the IMQ-site (http://luxik.cdi.cz/~devik/qos/imq.htm): >> >> --- snipp --- >> >> Each non-marked skb is intercepted in dev_queue_xmit and queued to IMQ if it is >> up. Immediately it tries to dequeue it (software pump). >> >> --- snapp --- >> >> "Each non-marked skb" <-- Thats what made me think that there is a way to "mark" >> a device... > >this is only internal mark to know whether the skb was >already in IMQ. You could use it but you would have to >add new user parameter to the interface structure. >I didn't want to do it as I want the pach to be as simple >as possible. >devik > > >--__--__-- > >Message: 4 >Date: Sat, 23 Mar 2002 02:42:49 +0100 >From: Patrick McHardy <kaber@xxxxxxxxx> >To: Martin Devera <devik@xxxxxx> >Cc: Nils Lichtenfeld <Nils.Lichtenfeld@xxxxxxx>, > lartc ML <lartc@xxxxxxxxxxxxxxx> >Subject: Re: [LARTC] How to mark a device not to be used with IMQ? > >Dies ist eine mehrteilige Nachricht im MIME-Format. >--------------3B62B4388E04887E67394F06 >Content-Type: text/plain; charset=us-ascii >Content-Transfer-Encoding: 7bit > >Martin Devera schrieb: >> >> > I understand what you mean... but i thought there has to be a way from what I >> > read on the IMQ-site (http://luxik.cdi.cz/~devik/qos/imq.htm): >> > >> > --- snipp --- >> > >> > Each non-marked skb is intercepted in dev_queue_xmit and queued to IMQ if it is >> > up. Immediately it tries to dequeue it (software pump). >> > >> > --- snapp --- >> > >> > "Each non-marked skb" <-- Thats what made me think that there is a way to "mark" >> > a device... >> >> this is only internal mark to know whether the skb was >> already in IMQ. You could use it but you would have to >> add new user parameter to the interface structure. >> I didn't want to do it as I want the pach to be as simple >> as possible. >> devik > >Hi. > >The same problem was bugging me a couple of days ago so i wrote an >iptables target which >allows you to exclude packets from beeing enqueued to the imq device. >The patch is tested with iptables-1.2.6a but should work with almost any >recent version. >After applying it you have to execute a "chmod +x >extensions/.IMQX-test", then >make patch-o-matic as usual. >Martin, maybe you want to put it on your imq page ? > >Bye, >Patrick >--------------3B62B4388E04887E67394F06 >Content-Type: text/plain; charset=us-ascii; > name="IMQX_iptables-1.2.6a.patch" >Content-Transfer-Encoding: 7bit >Content-Disposition: inline; > filename="IMQX_iptables-1.2.6a.patch" > >diff -urN iptables-1.2.6a-clean/extensions/.IMQX-test iptables-1.2.6a/extensions/.IMQX-test >--- iptables-1.2.6a-clean/extensions/.IMQX-test Thu Jan 1 01:00:00 1970 >+++ iptables-1.2.6a/extensions/.IMQX-test Sat Mar 23 02:37:20 2002 >@@ -0,0 +1,3 @@ >+#!/bin/sh >+# True if IMQX target patch is applied. >+[ -f $KERNEL_DIR/net/ipv4/netfilter/ipt_IMQX.c ] && echo IMQX >diff -urN iptables-1.2.6a-clean/extensions/libipt_IMQX.c iptables-1.2.6a/extensions/libipt_IMQX.c >--- iptables-1.2.6a-clean/extensions/libipt_IMQX.c Thu Jan 1 01:00:00 1970 >+++ iptables-1.2.6a/extensions/libipt_IMQX.c Sat Mar 23 02:37:49 2002 >@@ -0,0 +1,81 @@ >+/* Shared library add-on to iptables to add IMQX target support. */ >+#include <stdio.h> >+#include <string.h> >+#include <stdlib.h> >+#include <getopt.h> >+ >+#include <iptables.h> >+#include <linux/netfilter_ipv4/ip_tables.h> >+ >+/* Function which prints out usage message. */ >+static void >+help(void) >+{ >+ printf( >+"IMQX target vs has no options\n", >+NETFILTER_VERSION); >+} >+ >+static struct option opts[] = { >+ { 0 } >+}; >+ >+/* Initialize the target. */ >+static void >+init(struct ipt_entry_target *t, unsigned int *nfcache) >+{ >+} >+ >+/* Function which parses command options; returns true if it >+ ate an option */ >+static int >+parse(int c, char **argv, int invert, unsigned int *flags, >+ const struct ipt_entry *entry, >+ struct ipt_entry_target **target) >+{ >+ if (c) >+ return 0; >+ >+ return 1; >+} >+ >+static void >+final_check(unsigned int flags) >+{ >+} >+ >+/* Prints out the targinfo. */ >+static void >+print(const struct ipt_ip *ip, >+ const struct ipt_entry_target *target, >+ int numeric) >+{ >+ printf("IMQX"); >+} >+ >+/* Saves the union ipt_targinfo in parsable form to stdout. */ >+static void >+save(const struct ipt_ip *ip, const struct ipt_entry_target *target) >+{ >+} >+ >+static >+struct iptables_target mark >+= { NULL, >+ "IMQX", >+ NETFILTER_VERSION, >+ 0, >+ 0, >+ &help, >+ &init, >+ &parse, >+ &final_check, >+ &print, >+ &save, >+ opts >+}; >+ >+void _init(void) >+{ >+ register_target(&mark); >+} >diff -urN iptables-1.2.6a-clean/patch-o-matic/extra/IMQX.patch iptables-1.2.6a/patch-o-matic/extra/IMQX.patch >--- iptables-1.2.6a-clean/patch-o-matic/extra/IMQX.patch Thu Jan 1 01:00:00 1970 >+++ iptables-1.2.6a/patch-o-matic/extra/IMQX.patch Sat Mar 23 02:37:20 2002 >@@ -0,0 +1,60 @@ >+diff -urN linux-2.4.18-clean/net/ipv4/netfilter/ipt_IMQX.c linux-2.4.18/net/ipv4/netfilter/ipt_IMQX.c >+--- linux-2.4.18-clean/net/ipv4/netfilter/ipt_IMQX.c Thu Jan 1 01:00:00 1970 >++++ linux-2.4.18/net/ipv4/netfilter/ipt_IMQX.c Sat Mar 23 01:48:23 2002 >+@@ -0,0 +1,56 @@ >++/* This is a module which is used for setting the from_imq field of an skb. */ >++#include <linux/module.h> >++#include <linux/skbuff.h> >++#include <linux/ip.h> >++#include <net/checksum.h> >++ >++#include <linux/netfilter_ipv4/ip_tables.h> >++ >++static unsigned int >++target(struct sk_buff **pskb, >++ unsigned int hooknum, >++ const struct net_device *in, >++ const struct net_device *out, >++ const void *targinfo, >++ void *userinfo) >++{ >++ (*pskb)->from_imq = 1; >++ (*pskb)->nfcache |= NFC_ALTERED; >++ >++ return IPT_CONTINUE; >++} >++ >++static int >++checkentry(const char *tablename, >++ const struct ipt_entry *e, >++ void *targinfo, >++ unsigned int targinfosize, >++ unsigned int hook_mask) >++{ >++ if (strcmp(tablename, "mangle") != 0) { >++ printk(KERN_WARNING "IMQX: can only be called from \"mangle\" table, not \"s\"\n", tablename); >++ return 0; >++ } >++ >++ return 1; >++} >++ >++static struct ipt_target ipt_imqx_reg >++= { { NULL, NULL }, "IMQX", target, checkentry, NULL, THIS_MODULE }; >++ >++static int __init init(void) >++{ >++ if (ipt_register_target(&ipt_imqx_reg)) >++ return -EINVAL; >++ >++ return 0; >++} >++ >++static void __exit fini(void) >++{ >++ ipt_unregister_target(&ipt_imqx_reg); >++} >++ >++module_init(init); >++module_exit(fini); >++MODULE_LICENSE("GPL"); >diff -urN iptables-1.2.6a-clean/patch-o-matic/extra/IMQX.patch.config.in iptables-1.2.6a/patch-o-matic/extra/IMQX.patch.config.in >--- iptables-1.2.6a-clean/patch-o-matic/extra/IMQX.patch.config.in Thu Jan 1 01:00:00 1970 >+++ iptables-1.2.6a/patch-o-matic/extra/IMQX.patch.config.in Sat Mar 23 02:37:20 2002 >@@ -0,0 +1,4 @@ >+ dep_tristate ' MARK target support' CONFIG_IP_NF_TARGET_MARK $CONFIG_IP_NF_MANGLE >+ if [ "$CONFIG_IMQ" == "y" ]; then >+ dep_tristate ' IMQX target support' CONFIG_IP_NF_TARGET_IMQX $CONFIG_IP_NF_MANGLE >+ fi >diff -urN iptables-1.2.6a-clean/patch-o-matic/extra/IMQX.patch.configure.help iptables-1.2.6a/patch-o-matic/extra/IMQX.patch.configure.help >--- iptables-1.2.6a-clean/patch-o-matic/extra/IMQX.patch.configure.help Thu Jan 1 01:00:00 1970 >+++ iptables-1.2.6a/patch-o-matic/extra/IMQX.patch.configure.help Sat Mar 23 02:37:20 2002 >@@ -0,0 +1,8 @@ >+CONFIG_IP_NF_TARGET_MARK >+IMQX target support >+CONFIG_IP_NF_TARGET_IMQX >+ IMQX allows you to exclude packets from beeing enqueued >+ to the IMQ device >+ >+ If you want to compile it as a module, say M here and read >+ Documentation/modules.txt. If unsure, say `N'. >diff -urN iptables-1.2.6a-clean/patch-o-matic/extra/IMQX.patch.help iptables-1.2.6a/patch-o-matic/extra/IMQX.patch.help >--- iptables-1.2.6a-clean/patch-o-matic/extra/IMQX.patch.help Thu Jan 1 01:00:00 1970 >+++ iptables-1.2.6a/patch-o-matic/extra/IMQX.patch.help Sat Mar 23 02:37:20 2002 >@@ -0,0 +1,14 @@ >+Author: Patrick McHardy <kaber@xxxxxxxxx> >+Status: working >+ >+This patch adds IMQX (IMQ eXclude) target for excluding >+traffic from beeing enqueued to the IMQ device. >+ >+Usage: >+ >+ IMQX >+ This target excludes traffic from beeing enqueued >+ to the IMQ device. >+ >+Example: >+ iptables -t mangle -A POSTROUTING -o eth0 -j IMQX >diff -urN iptables-1.2.6a-clean/patch-o-matic/extra/IMQX.patch.makefile iptables-1.2.6a/patch-o-matic/extra/IMQX.patch.makefile >--- iptables-1.2.6a-clean/patch-o-matic/extra/IMQX.patch.makefile Thu Jan 1 01:00:00 1970 >+++ iptables-1.2.6a/patch-o-matic/extra/IMQX.patch.makefile Sat Mar 23 02:37:20 2002 >@@ -0,0 +1,2 @@ >+obj-$(CONFIG_IP_NF_TARGET_MARK) += ipt_MARK.o >+obj-$(CONFIG_IP_NF_TARGET_IMQX) += ipt_IMQX.o > >--------------3B62B4388E04887E67394F06-- > > >--__--__-- > >Message: 5 >Date: Sat, 23 Mar 2002 02:49:23 +0100 (CET) >From: Patrick McHardy <kaber@xxxxxxxxx> >To: Martin Devera <devik@xxxxxx> >Cc: Nils Lichtenfeld <Nils.Lichtenfeld@xxxxxxx>, > lartc ML <lartc@xxxxxxxxxxxxxxx> >Subject: Re: [LARTC] How to mark a device not to be used with IMQ? > > This message is in MIME format. The first part should be readable text, > while the remaining parts are likely unreadable without MIME-aware tools. > Send mail to mime@xxxxxxxxxxxxxxxxxxxxxxxxxxxx for more info. > >---1463786496-272413705-1016848163=:9604 >Content-Type: TEXT/PLAIN; charset=US-ASCII > >Ahh stupid netscape fucked up the attachment :) >Hope this works .. >Bye Patrick > >---1463786496-272413705-1016848163=:9604 >Content-Type: TEXT/PLAIN; charset=US-ASCII; name="IMQX_iptables-1.2.6a.patch" >Content-Transfer-Encoding: BASE64 >Content-ID: <Pine.LNX.4.33.0203230249230.9604@xxxxxxxxxxx> >Content-Description: >Content-Disposition: attachment; filename="IMQX_iptables-1.2.6a.patch" > >ZGlmZiAtdXJOIGlwdGFibGVzLTEuMi42YS1jbGVhbi9leHRlbnNpb25zLy5J >TVFYLXRlc3QgaXB0YWJsZXMtMS4yLjZhL2V4dGVuc2lvbnMvLklNUVgtdGVz >dA0KLS0tIGlwdGFibGVzLTEuMi42YS1jbGVhbi9leHRlbnNpb25zLy5JTVFY >LXRlc3QJVGh1IEphbiAgMSAwMTowMDowMCAxOTcwDQorKysgaXB0YWJsZXMt >MS4yLjZhL2V4dGVuc2lvbnMvLklNUVgtdGVzdAlTYXQgTWFyIDIzIDAyOjM3 >OjIwIDIwMDINCkBAIC0wLDAgKzEsMyBAQA0KKyMhL2Jpbi9zaA0KKyMgVHJ1 >ZSBpZiBJTVFYIHRhcmdldCBwYXRjaCBpcyBhcHBsaWVkLg0KK1sgLWYgJEtF >Uk5FTF9ESVIvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwdF9JTVFYLmMgXSAmJiBl >Y2hvIElNUVgNCmRpZmYgLXVyTiBpcHRhYmxlcy0xLjIuNmEtY2xlYW4vZXh0 >ZW5zaW9ucy9saWJpcHRfSU1RWC5jIGlwdGFibGVzLTEuMi42YS9leHRlbnNp >b25zL2xpYmlwdF9JTVFYLmMNCi0tLSBpcHRhYmxlcy0xLjIuNmEtY2xlYW4v >ZXh0ZW5zaW9ucy9saWJpcHRfSU1RWC5jCVRodSBKYW4gIDEgMDE6MDA6MDAg >MTk3MA0KKysrIGlwdGFibGVzLTEuMi42YS9leHRlbnNpb25zL2xpYmlwdF9J >TVFYLmMJU2F0IE1hciAyMyAwMjozNzo0OSAyMDAyDQpAQCAtMCwwICsxLDgx >IEBADQorLyogU2hhcmVkIGxpYnJhcnkgYWRkLW9uIHRvIGlwdGFibGVzIHRv >IGFkZCBJTVFYIHRhcmdldCBzdXBwb3J0LiAqLw0KKyNpbmNsdWRlIDxzdGRp >by5oPg0KKyNpbmNsdWRlIDxzdHJpbmcuaD4NCisjaW5jbHVkZSA8c3RkbGli >Lmg+DQorI2luY2x1ZGUgPGdldG9wdC5oPg0KKw0KKyNpbmNsdWRlIDxpcHRh >Ymxlcy5oPg0KKyNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXJfaXB2NC9pcF90 >YWJsZXMuaD4NCisNCisvKiBGdW5jdGlvbiB3aGljaCBwcmludHMgb3V0IHVz >YWdlIG1lc3NhZ2UuICovDQorc3RhdGljIHZvaWQNCitoZWxwKHZvaWQpDQor >ew0KKwlwcmludGYoDQorIklNUVggdGFyZ2V0IHYlcyBoYXMgbm8gb3B0aW9u >c1xuIiwgDQorTkVURklMVEVSX1ZFUlNJT04pOw0KK30NCisNCitzdGF0aWMg >c3RydWN0IG9wdGlvbiBvcHRzW10gPSB7DQorCXsgMCB9DQorfTsNCisNCisv >KiBJbml0aWFsaXplIHRoZSB0YXJnZXQuICovDQorc3RhdGljIHZvaWQNCitp >bml0KHN0cnVjdCBpcHRfZW50cnlfdGFyZ2V0ICp0LCB1bnNpZ25lZCBpbnQg >Km5mY2FjaGUpDQorew0KK30NCisNCisvKiBGdW5jdGlvbiB3aGljaCBwYXJz >ZXMgY29tbWFuZCBvcHRpb25zOyByZXR1cm5zIHRydWUgaWYgaXQNCisgICBh >dGUgYW4gb3B0aW9uICovDQorc3RhdGljIGludA0KK3BhcnNlKGludCBjLCBj >aGFyICoqYXJndiwgaW50IGludmVydCwgdW5zaWduZWQgaW50ICpmbGFncywN >CisgICAgICBjb25zdCBzdHJ1Y3QgaXB0X2VudHJ5ICplbnRyeSwNCisgICAg >ICBzdHJ1Y3QgaXB0X2VudHJ5X3RhcmdldCAqKnRhcmdldCkNCit7DQorCWlm >IChjKSANCisJCXJldHVybiAwOw0KKw0KKwlyZXR1cm4gMTsNCit9DQorDQor >c3RhdGljIHZvaWQNCitmaW5hbF9jaGVjayh1bnNpZ25lZCBpbnQgZmxhZ3Mp >DQorew0KK30NCisNCisvKiBQcmludHMgb3V0IHRoZSB0YXJnaW5mby4gKi8N >CitzdGF0aWMgdm9pZA0KK3ByaW50KGNvbnN0IHN0cnVjdCBpcHRfaXAgKmlw >LA0KKyAgICAgIGNvbnN0IHN0cnVjdCBpcHRfZW50cnlfdGFyZ2V0ICp0YXJn >ZXQsDQorICAgICAgaW50IG51bWVyaWMpDQorew0KKwlwcmludGYoIklNUVgi >KTsNCit9DQorDQorLyogU2F2ZXMgdGhlIHVuaW9uIGlwdF90YXJnaW5mbyBp >biBwYXJzYWJsZSBmb3JtIHRvIHN0ZG91dC4gKi8NCitzdGF0aWMgdm9pZA0K >K3NhdmUoY29uc3Qgc3RydWN0IGlwdF9pcCAqaXAsIGNvbnN0IHN0cnVjdCBp >cHRfZW50cnlfdGFyZ2V0ICp0YXJnZXQpDQorew0KK30NCisNCitzdGF0aWMN >CitzdHJ1Y3QgaXB0YWJsZXNfdGFyZ2V0IG1hcmsNCis9IHsgTlVMTCwNCisg >ICAgIklNUVgiLA0KKyAgICBORVRGSUxURVJfVkVSU0lPTiwNCisgICAgMCwN >CisgICAgMCwNCisgICAgJmhlbHAsDQorICAgICZpbml0LA0KKyAgICAmcGFy >c2UsDQorICAgICZmaW5hbF9jaGVjaywNCisgICAgJnByaW50LA0KKyAgICAm >c2F2ZSwNCisgICAgb3B0cw0KK307DQorDQordm9pZCBfaW5pdCh2b2lkKQ0K >K3sNCisJcmVnaXN0ZXJfdGFyZ2V0KCZtYXJrKTsNCit9DQpkaWZmIC11ck4g >aXB0YWJsZXMtMS4yLjZhLWNsZWFuL3BhdGNoLW8tbWF0aWMvZXh0cmEvSU1R >WC5wYXRjaCBpcHRhYmxlcy0xLjIuNmEvcGF0Y2gtby1tYXRpYy9leHRyYS9J >TVFYLnBhdGNoDQotLS0gaXB0YWJsZXMtMS4yLjZhLWNsZWFuL3BhdGNoLW8t >bWF0aWMvZXh0cmEvSU1RWC5wYXRjaAlUaHUgSmFuICAxIDAxOjAwOjAwIDE5 >NzANCisrKyBpcHRhYmxlcy0xLjIuNmEvcGF0Y2gtby1tYXRpYy9leHRyYS9J >TVFYLnBhdGNoCVNhdCBNYXIgMjMgMDI6Mzc6MjAgMjAwMg0KQEAgLTAsMCAr >MSw2MCBAQA0KK2RpZmYgLXVyTiBsaW51eC0yLjQuMTgtY2xlYW4vbmV0L2lw >djQvbmV0ZmlsdGVyL2lwdF9JTVFYLmMgbGludXgtMi40LjE4L25ldC9pcHY0 >L25ldGZpbHRlci9pcHRfSU1RWC5jDQorLS0tIGxpbnV4LTIuNC4xOC1jbGVh >bi9uZXQvaXB2NC9uZXRmaWx0ZXIvaXB0X0lNUVguYwlUaHUgSmFuICAxIDAx >OjAwOjAwIDE5NzANCisrKysgbGludXgtMi40LjE4L25ldC9pcHY0L25ldGZp >bHRlci9pcHRfSU1RWC5jCVNhdCBNYXIgMjMgMDE6NDg6MjMgMjAwMg0KK0BA >IC0wLDAgKzEsNTYgQEANCisrLyogVGhpcyBpcyBhIG1vZHVsZSB3aGljaCBp >cyB1c2VkIGZvciBzZXR0aW5nIHRoZSBmcm9tX2ltcSBmaWVsZCBvZiBhbiBz >a2IuICovDQorKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCisrI2luY2x1 >ZGUgPGxpbnV4L3NrYnVmZi5oPg0KKysjaW5jbHVkZSA8bGludXgvaXAuaD4N >CisrI2luY2x1ZGUgPG5ldC9jaGVja3N1bS5oPg0KKysNCisrI2luY2x1ZGUg >PGxpbnV4L25ldGZpbHRlcl9pcHY0L2lwX3RhYmxlcy5oPg0KKysNCisrc3Rh >dGljIHVuc2lnbmVkIGludA0KKyt0YXJnZXQoc3RydWN0IHNrX2J1ZmYgKipw >c2tiLA0KKysgICAgICAgdW5zaWduZWQgaW50IGhvb2tudW0sDQorKyAgICAg >ICBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqaW4sDQorKyAgICAgICBjb25z >dCBzdHJ1Y3QgbmV0X2RldmljZSAqb3V0LA0KKysgICAgICAgY29uc3Qgdm9p >ZCAqdGFyZ2luZm8sDQorKyAgICAgICB2b2lkICp1c2VyaW5mbykNCisrew0K >KysJKCpwc2tiKS0+ZnJvbV9pbXEgPSAxOw0KKysJKCpwc2tiKS0+bmZjYWNo >ZSB8PSBORkNfQUxURVJFRDsNCisrDQorKwlyZXR1cm4gSVBUX0NPTlRJTlVF >Ow0KKyt9DQorKw0KKytzdGF0aWMgaW50DQorK2NoZWNrZW50cnkoY29uc3Qg >Y2hhciAqdGFibGVuYW1lLA0KKysJICAgY29uc3Qgc3RydWN0IGlwdF9lbnRy >eSAqZSwNCisrICAgICAgICAgICB2b2lkICp0YXJnaW5mbywNCisrICAgICAg >ICAgICB1bnNpZ25lZCBpbnQgdGFyZ2luZm9zaXplLA0KKysgICAgICAgICAg >IHVuc2lnbmVkIGludCBob29rX21hc2spDQorK3sNCisrCWlmIChzdHJjbXAo >dGFibGVuYW1lLCAibWFuZ2xlIikgIT0gMCkgew0KKysJCXByaW50ayhLRVJO >X1dBUk5JTkcgIklNUVg6IGNhbiBvbmx5IGJlIGNhbGxlZCBmcm9tIFwibWFu >Z2xlXCIgdGFibGUsIG5vdCBcIiVzXCJcbiIsIHRhYmxlbmFtZSk7DQorKwkJ >cmV0dXJuIDA7DQorKwl9DQorKw0KKysJcmV0dXJuIDE7DQorK30NCisrDQor >K3N0YXRpYyBzdHJ1Y3QgaXB0X3RhcmdldCBpcHRfaW1xeF9yZWcNCisrPSB7 >IHsgTlVMTCwgTlVMTCB9LCAiSU1RWCIsIHRhcmdldCwgY2hlY2tlbnRyeSwg >TlVMTCwgVEhJU19NT0RVTEUgfTsNCisrDQorK3N0YXRpYyBpbnQgX19pbml0 >IGluaXQodm9pZCkNCisrew0KKysJaWYgKGlwdF9yZWdpc3Rlcl90YXJnZXQo >JmlwdF9pbXF4X3JlZykpDQorKwkJcmV0dXJuIC1FSU5WQUw7DQorKw0KKysJ >cmV0dXJuIDA7DQorK30NCisrDQorK3N0YXRpYyB2b2lkIF9fZXhpdCBmaW5p >KHZvaWQpDQorK3sNCisrCWlwdF91bnJlZ2lzdGVyX3RhcmdldCgmaXB0X2lt >cXhfcmVnKTsNCisrfQ0KKysNCisrbW9kdWxlX2luaXQoaW5pdCk7DQorK21v >ZHVsZV9leGl0KGZpbmkpOw0KKytNT0RVTEVfTElDRU5TRSgiR1BMIik7DQpk >aWZmIC11ck4gaXB0YWJsZXMtMS4yLjZhLWNsZWFuL3BhdGNoLW8tbWF0aWMv >ZXh0cmEvSU1RWC5wYXRjaC5jb25maWcuaW4gaXB0YWJsZXMtMS4yLjZhL3Bh >dGNoLW8tbWF0aWMvZXh0cmEvSU1RWC5wYXRjaC5jb25maWcuaW4NCi0tLSBp >cHRhYmxlcy0xLjIuNmEtY2xlYW4vcGF0Y2gtby1tYXRpYy9leHRyYS9JTVFY >LnBhdGNoLmNvbmZpZy5pbglUaHUgSmFuICAxIDAxOjAwOjAwIDE5NzANCisr >KyBpcHRhYmxlcy0xLjIuNmEvcGF0Y2gtby1tYXRpYy9leHRyYS9JTVFYLnBh >dGNoLmNvbmZpZy5pbglTYXQgTWFyIDIzIDAyOjM3OjIwIDIwMDINCkBAIC0w >LDAgKzEsNCBAQA0KKyAgICBkZXBfdHJpc3RhdGUgJyAgICBNQVJLIHRhcmdl >dCBzdXBwb3J0JyBDT05GSUdfSVBfTkZfVEFSR0VUX01BUksgJENPTkZJR19J >UF9ORl9NQU5HTEUNCisgICAgaWYgWyAiJENPTkZJR19JTVEiID09ICJ5IiBd >OyB0aGVuDQorICAgICAgZGVwX3RyaXN0YXRlICcgICAgSU1RWCB0YXJnZXQg >c3VwcG9ydCcgQ09ORklHX0lQX05GX1RBUkdFVF9JTVFYICRDT05GSUdfSVBf >TkZfTUFOR0xFDQorICAgIGZpDQpkaWZmIC11ck4gaXB0YWJsZXMtMS4yLjZh >LWNsZWFuL3BhdGNoLW8tbWF0aWMvZXh0cmEvSU1RWC5wYXRjaC5jb25maWd1 >cmUuaGVscCBpcHRhYmxlcy0xLjIuNmEvcGF0Y2gtby1tYXRpYy9leHRyYS9J >TVFYLnBhdGNoLmNvbmZpZ3VyZS5oZWxwDQotLS0gaXB0YWJsZXMtMS4yLjZh >LWNsZWFuL3BhdGNoLW8tbWF0aWMvZXh0cmEvSU1RWC5wYXRjaC5jb25maWd1 >cmUuaGVscAlUaHUgSmFuICAxIDAxOjAwOjAwIDE5NzANCisrKyBpcHRhYmxl >cy0xLjIuNmEvcGF0Y2gtby1tYXRpYy9leHRyYS9JTVFYLnBhdGNoLmNvbmZp >Z3VyZS5oZWxwCVNhdCBNYXIgMjMgMDI6Mzc6MjAgMjAwMg0KQEAgLTAsMCAr >MSw4IEBADQorQ09ORklHX0lQX05GX1RBUkdFVF9NQVJLDQorSU1RWCB0YXJn >ZXQgc3VwcG9ydA0KK0NPTkZJR19JUF9ORl9UQVJHRVRfSU1RWA0KKyAgSU1R >WCBhbGxvd3MgeW91IHRvIGV4Y2x1ZGUgcGFja2V0cyBmcm9tIGJlZWluZyBl >bnF1ZXVlZA0KKyAgdG8gdGhlIElNUSBkZXZpY2UNCisNCisgIElmIHlvdSB3 >YW50IHRvIGNvbXBpbGUgaXQgYXMgYSBtb2R1bGUsIHNheSBNIGhlcmUgYW5k >IHJlYWQNCisgIERvY3VtZW50YXRpb24vbW9kdWxlcy50eHQuICBJZiB1bnN1 >cmUsIHNheSBgTicuDQpkaWZmIC11ck4gaXB0YWJsZXMtMS4yLjZhLWNsZWFu >L3BhdGNoLW8tbWF0aWMvZXh0cmEvSU1RWC5wYXRjaC5oZWxwIGlwdGFibGVz >LTEuMi42YS9wYXRjaC1vLW1hdGljL2V4dHJhL0lNUVgucGF0Y2guaGVscA0K >LS0tIGlwdGFibGVzLTEuMi42YS1jbGVhbi9wYXRjaC1vLW1hdGljL2V4dHJh >L0lNUVgucGF0Y2guaGVscAlUaHUgSmFuICAxIDAxOjAwOjAwIDE5NzANCisr >KyBpcHRhYmxlcy0xLjIuNmEvcGF0Y2gtby1tYXRpYy9leHRyYS9JTVFYLnBh >dGNoLmhlbHAJU2F0IE1hciAyMyAwMjozNzoyMCAyMDAyDQpAQCAtMCwwICsx >LDE0IEBADQorQXV0aG9yOiBQYXRyaWNrIE1jSGFyZHkgPGthYmVyQHRyYXNo >Lm5ldD4NCitTdGF0dXM6IHdvcmtpbmcNCisNCitUaGlzIHBhdGNoIGFkZHMg >SU1RWCAoSU1RIGVYY2x1ZGUpIHRhcmdldCBmb3IgZXhjbHVkaW5nDQordHJh >ZmZpYyBmcm9tIGJlZWluZyBlbnF1ZXVlZCB0byB0aGUgSU1RIGRldmljZS4N >CisNCitVc2FnZToNCisNCisgICAgSU1RWA0KKwlUaGlzIHRhcmdldCBleGNs >dWRlcyB0cmFmZmljIGZyb20gYmVlaW5nIGVucXVldWVkDQorCXRvIHRoZSBJ >TVEgZGV2aWNlLg0KKw0KK0V4YW1wbGU6DQorCWlwdGFibGVzIC10IG1hbmds >ZSAtQSBQT1NUUk9VVElORyAtbyBldGgwIC1qIElNUVgNCmRpZmYgLXVyTiBp >cHRhYmxlcy0xLjIuNmEtY2xlYW4vcGF0Y2gtby1tYXRpYy9leHRyYS9JTVFY >LnBhdGNoLm1ha2VmaWxlIGlwdGFibGVzLTEuMi42YS9wYXRjaC1vLW1hdGlj >L2V4dHJhL0lNUVgucGF0Y2gubWFrZWZpbGUNCi0tLSBpcHRhYmxlcy0xLjIu >NmEtY2xlYW4vcGF0Y2gtby1tYXRpYy9leHRyYS9JTVFYLnBhdGNoLm1ha2Vm >aWxlCVRodSBKYW4gIDEgMDE6MDA6MDAgMTk3MA0KKysrIGlwdGFibGVzLTEu >Mi42YS9wYXRjaC1vLW1hdGljL2V4dHJhL0lNUVgucGF0Y2gubWFrZWZpbGUJ >U2F0IE1hciAyMyAwMjozNzoyMCAyMDAyDQpAQCAtMCwwICsxLDIgQEANCitv >YmotJChDT05GSUdfSVBfTkZfVEFSR0VUX01BUkspICs9IGlwdF9NQVJLLm8N >CitvYmotJChDT05GSUdfSVBfTkZfVEFSR0VUX0lNUVgpICs9IGlwdF9JTVFY >Lm8NCg== >---1463786496-272413705-1016848163=:9604-- > > >--__--__-- > >_______________________________________________ >LARTC mailing list >LARTC@xxxxxxxxxxxxxxx >http://mailman.ds9a.nl/mailman/listinfo/lartc > > >End of LARTC Digest = = = = = = = = = = = = = = = = = = = = best regards! Huang Xin Gang hxgang@xxxxxxxxxxxxxxxxxxxxxxxxx 2002-05-14