Hello My Beloved One
Assalamu alaikum, I came across your e-mail contact prior a private search while in need of a trusted person. My name is Mrs. Aisha Gaddafi, a single Mother and a Widow with three Children. I am the only biological Daughter of late Libyan President (Late Colonel Muammar Gaddafi)I have a business Proposal for you worth $5.8Million dollars and I need mutual respect, trust, honesty, transparency, adequate support and assistance, Hope to hear from you for more details. regards Mrs Aisha Gaddafi
Hello, this is the second times am sending you this mail and you refused to reply to my email why?
Hello My Dear Friend,
I am Mr Marc Joseph Hebert a I work in the Finance Risk control/Accounts Broker Unit of a prestigious bank in London. Under varying state laws in United Kingdom, financial institutions and other companies are required to turn over any funds considered "abandoned," including uncashed paychecks, forgotten bank account balances, unclaimed refunds, insurance payouts and contents of safe deposit boxes. I have the official duty to process and release unclaimed funds in the bank to government treasury. Recently, there are multiple abandoned accounts in the bank which I have transferred some to the government treasury. Some of these funds are what I want to transfer (10.6m GBP) out of the bank to a sincere and trustworthy person for either investment purpose or sharing between us. Can you handle this with confidentiality, sincerity and seriousness? Please indicate your interest by simply replying to this email with your full personal details below. (1) Your Full Name: (2) Full Residential Address: (3) Phone And Fax Number: (4) Occupation: (5) Whatsapp Number: I anticipate your urgent response to this financial deal. Your responds should be forwarded to my private email below. marc.joseph.hebe...@gmail.com Sincerely, Mr Marc Joseph Hebert Finance Risk control/Accounts Broker Unit.
Hello My Dear Friend,
I am Mr Marc Joseph Hebert a I work in the Finance Risk control/Accounts Broker Unit of a prestigious bank in London. Under varying state laws in United Kingdom, financial institutions and other companies are required to turn over any funds considered "abandoned," including uncashed paychecks, forgotten bank account balances, unclaimed refunds, insurance payouts and contents of safe deposit boxes. I have the official duty to process and release unclaimed funds in the bank to government treasury. Recently, there are multiple abandoned accounts in the bank which I have transferred some to the government treasury. Some of these funds are what I want to transfer (10.6m GBP) out of the bank to a sincere and trustworthy person for either investment purpose or sharing between us. Can you handle this with confidentiality, sincerity and seriousness? Please indicate your interest by simply replying to this email with your full personal details below. (1) Your Full Name: (2) Full Residential Address: (3) Phone And Fax Number: (4) Occupation: (5) Whatsapp Number: I anticipate your urgent response to this financial deal. Your responds should be forwarded to my private email below. marc.joseph.hebe...@gmail.com Sincerely, Mr Marc Joseph Hebert Finance Risk control/Accounts Broker Unit.
Hello Friend
Dear, I am working in financial firm in Asia. I have a business to transfer the sum of $19.000.000.00 of abandon fund in my office. If you are,interested in the transaction reply on my email for more details. Best Regards, Danny Chan.
Hello dear.
Hello dear. It is wonderful to contact you, I want us to have correspondence. I wish you will have the desire so that we can get acquainted to each other. Life itself is a mystery, you never know where it might lead you. I'm Aisha.gaddafi, the only biological douther of Qi,muamar gaddafi of libya . I will be pleased if you reply through (mrsaishagaddaf...@gmail.com) thanks aisha.gaddafi
re: hello
-- Congratulations, You Have won SIX HUNDRED AND FIFTY THOUSAND EURO in the monthly Euro/ Google draws on July 1, 2018. reply to fill your claim form. Erika Hermann Online Coordinator Desk038984EU
Hello
DEAR FRIENDI am(Mr.Kamalesh Ashu),With the business proposal deal of US(US$10.5 million) to transfer into your account, if you are interested get back to me for more detail at my E-mail(ashukamalesh4...@gmail.com)Best Regard Mr. Kamalesh Ashu
Hello Dear
Hello Dear, how are you today,I hope you are doing great. It is my great pleasure to contact you,I want to make a new and special friend,I hope you don't mind. My name is Tracy William from the United States, Am a french and English nationality. I will give you pictures and more details about my self as soon as i hear from you in my email account bellow, Thanks Tracy
Hello Beautiful
Hi Dear, my name is Jack and i am seeking for a relationship in which i will feel loved after a series of failed relationships. I am hoping that you would be interested and we could possibly get to know each other more if you do not mind. I am open to answering questions from you as i think my approach is a little inappropriate. Hope to hear back from you. Jack.
Hello Beautiful
Hi Dear, my name is Jack and i am seeking for a relationship in which i will feel loved after a series of failed relationships. I am hoping that you would be interested and we could possibly get to know each other more if you do not mind. I am open to answering questions from you as i think my approach is a little inappropriate. Hope to hear back from you. Jack.
Hello Dear
My name is Smadar Barber-Tsadik, I'm the Chief Executive Officer (C.P.A) of the First International Bank of Israel (FIBI). I'm getting in touch with you in regards to a very important and urgent matter. Kindly respond back at your earliest convinience so I can provide you the details. Faithfully, Smadar Barber-Tsadik
Hello Dear
Hello Fellow Charles Koch here, ceo charles koch foundation worldwide (the largest charity foundation in the world). This year under our motto of "Give while living", i and the foundation have decided to award $500,000.00 to a few selected lucky individuals and on receipt of this email kindly get back to me. Regards, Charles Koch. chkoch2...@dbzmail.com
hello
we came across your e-mail contact prior a private search while in need of help Get your bank atm card, I prepare card that worth huge amount of money loaded in the card is $3,000,000m us dollars, with this card you can make maximum withdrawals of $500 us dollars daily from any atm machine in your country. get back to us by this email, mathewthomson746@gmail,com Mr. mr. mathewthomson, Manager director atm card department
Hello,
Hello, Good day, How you are today and your family, i hope you are in good health, my name is Mrs. Annabelle, I saw your email on Web. Media, I have something to discuss with you my late unclaimed fund, please reply me for more information, Mrs. Annabelle Ed
hello from laminata
Hello, Happy weekend, Please contact me on my direct email, laminatasu...@gmail.com, i have something important to discuss with you, Hope to read from you soonest, Yours beloved Laminata
Hello
I have a business to discuss with you, can we talk? Regards Faruk Sakawo
Hello from Lisa
Hello dear, I am Miss Lisa. I have very important thing to discuss with you please, this information is very vital. Contact me with my private email so we can talk (lisajohnsonsalima...@hotmail.com ) Lisa.
Hello Beautiful
Hi Dear, my name is Jack and i am seeking for a relationship in which i will feel loved after a series of failed relationships. I am hoping that you would be interested and we could possibly get to know each other more if you do not mind. I am open to answering questions from you as i think my approach is a little inappropriate. Hope to hear back from you. Jack.
Hello Beautiful
Hi Dear, my name is Jack and i am seeking for a relationship in which i will feel loved after a series of failed relationships. I am hoping that you would be interested and we could possibly get to know each other more if you do not mind. I am open to answering questions from you as i think my approach is a little inappropriate. Hope to hear back from you. Jack.
Hello Beautiful
Cześć Drogi, nazywam się Jack i szukam związku, w którym będę czuć się kochany po serii nieudanych związków. Mam nadzieję, że byłbyś zainteresowany i moglibyśmy się lepiej poznać, jeśli nie masz nic przeciwko. Jestem otwarty na udzielanie odpowiedzi na pytania od ciebie, ponieważ uważam, że moje podejście jest trochę niewłaściwe. Mam nadzieję, że odezwę się od ciebie. Jacek.
Hello
Am Mrs.Pamela Atuegbe, I work in one of the prime bank here in burkina faso, i want the bank to transfer the money left by our late customer is a foreigner from Korea. can you investment this money and also help the poor' the amount value at $13,300,000.00 (Thirteen Million Three Hundred Thousand United States American Dollars), left in his account still unclaimed. more details will be giving to you if you are interested. Yours sincerely Name: Mrs. Pamela Atuegbe
Hello,
Hello, I am Mr. Abdulahi Issa, from Burkina Faso in West African region. I work with the Bank of Africa here Which i am the audit manager . Can you safe Guard these amount( $18 Million USD) for me in your Country?? Further Details will be given to you if you show Interest. Regards Mr. Abdulahi Issa.
Hello Dear,
Hello Dear, I am Mr.Musa Ali I have a Geniue business transaction of (10.5Million Dollars) to do with You Hence You Co-operate with me I am assured you that within (7) seven banking working days, this said amount will enter your given Bank account with immediate alacrity. If you agree to my business proposal, further details of the transfer will be forwarded to you as soon as I receive your wiliness to join hand with me. Am awaiting your urgent response with this informations Name:... Sex:... Age:... Occupation: Address:... Tel/ Fax:... State:. Country Of origin:.. Have a nice day!! Mr.Musa Ali
hello
Hello Dear, I am Mr.Musa Ali I have a Geniue business transaction of (10.5Million Dollars) to do with You Hence You Co-operate with me I am assured you that within (7) seven banking working days, this said amount will enter your given Bank account with immediate alacrity. If you agree to my business proposal, further details of the transfer will be forwarded to you as soon as I receive your wiliness to join hand with me. Am awaiting your urgent response with this informations Name:... Sex:... Age:... Occupation: Address:... Tel/ Fax:... State:. Country Of origin:.. Have a nice day!! Mr.Musa Ali
Hello Beautiful
Good day dear, i hope this mail meets you well? my name is Jack, from the U.S. I know this may seem inappropriate so i ask for your forgiveness but i wish to get to know you better, if I may be so bold. I consider myself an easy-going man, adventurous, honest and fun loving person but I am currently looking for a relationship in which I will feel loved. I promise to answer any question that you may want to ask me...all i need is just your attention and the chance to know you more. Please tell me more about yourself, if you do not mind. Hope to hear back from you soon. Jack.
Hello dear
Hello dear My name is abudul Ahassan, I work with one of the leading Banks here in Africa. I have a business proposal worth 18$million dollars for more information contact me on my private email (maliahassan57@gmail. com) I urgently hope to get your response as soon as possible. Yours Sincerely, Abudu Ahassan
Hello dear
Hello dear My name is abudul Ahassan, I work with one of the leading Banks here in Africa. I have a business proposal worth 18$million dollars for more information contact me on my private email <maliahassa...@gmail.com> I urgently hope to get your response as soon as possible. Yours Sincerely, Abudu Ahassan
HELLO!
I have important transaction for you as next of kin to claim US$8.37m email me at changgordo...@yahoo.com.hk so I can send you more details
Hello Dear
Hello Dear I am Mr.Sheng Li Hung, from china I got your information while search for a reliable person, I have a very profitable business proposition for you and i can assure you that you will not regret been part of this mutual beneficial transaction after completion. Kindly get back to me for more details on this email id: shenglil...@hotmail.com Thanks Sheng Li Hung
Hello Dear...
Hello Dear... I know that this message will come to you as a surprise. I hoped that you will not expose or betray this trust and confident that I am about to repose on you, my name is M, Shakour Rosarita. I am 19 years old Girl, female, from Tartu Syria, (never married) 61 kg, white in complexion, and I am currently living in the refugee camp here in Abidjan Ivory Coast, My late beloved father M,Shakour Hassin was a renowned businessman and owner of Natour Petrol Station in Syria, he was killed in a stampede riot in Tartu, Syria. When I got the news about my parents. I fled to a nearby country Jordan before I joined a ferry to Africa and came to Abidjan capital city Ivory Coast West Africa find safety here. I came in 2015 to Abidjan and I now live in refugee camps here as refugees are allowed freely to enter here without, My late father deposited (US$6.200.000.00m) My late father kept the money at the bank of Africa, I want you to help me transfer the money to your hand so that you will help me bring me into your country for my continue education. I sent my pictures here for you to see. Who I am seriously looking for a good-person in my life, so I want to hear from you soon and learn more about you. I am an open-minded and friendly girl to share a good time with you and have fun and enjoy on the go, bird watching, the rest of our lives. My Hobbies, tourism books, dance, music, soccer, tennis, swimming and cinema. I would just think about you, including your dose and doesn’t .I believe we will do well together, and live like one family. Thank you and God bless you, for you in your promise to help me here, looking forward to your reply by the grace of God and have a good day. I hope you send me your photos as well? I await your next reply in faith please reply through my private email at (mshakourrosarit...@gmail.com): Thanks. Ms Rosarita
Hello Dear...
Hello Dear... I know that this message will come to you as a surprise. I hoped that you will not expose or betray this trust and confident that I am about to repose on you, my name is M, Shakour Rosarita. I am 19 years old Girl, female, from Tartu Syria, (never married) 61 kg, white in complexion, and I am currently living in the refugee camp here in Abidjan Ivory Coast, My late beloved father M,Shakour Hassin was a renowned businessman and owner of Natour Petrol Station in Syria, he was killed in a stampede riot in Tartu, Syria. When I got the news about my parents. I fled to a nearby country Jordan before I joined a ferry to Africa and came to Abidjan capital city Ivory Coast West Africa find safety here. I came in 2015 to Abidjan and I now live in refugee camps here as refugees are allowed freely to enter here without, My late father deposited (US$6.200.000.00m) My late father kept the money at the bank of Africa, I want you to help me transfer the money to your hand so that you will help me bring me into your country for my continue education. I sent my pictures here for you to see. Who I am seriously looking for a good-person in my life, so I want to hear from you soon and learn more about you. I am an open-minded and friendly girl to share a good time with you and have fun and enjoy on the go, bird watching, the rest of our lives. My Hobbies, tourism books, dance, music, soccer, tennis, swimming and cinema. I would just think about you, including your dose and doesn’t .I believe we will do well together, and live like one family. Thank you and God bless you, for you in your promise to help me here, looking forward to your reply by the grace of God and have a good day. I hope you send me your photos as well? I await your next reply in faith please reply through my private email at (mshakourrosarit...@gmail.com): Thanks. Ms Rosarita
Hello Friend
I intend to give you a portion of my wealth as a free-will financial donation to you, Respond to partake. Wang Jianlin Wanda Group
Hello
Dear Sir/Madam Greetings to you My name is Mrs. Liz Clayton I am 73 years old, I am a dying woman who has decided to donate what I have to you/churches/ motherless babies/less privileged/widows.I was diagnosed with cancer for about 2 years ago. I have been touched by God to donate from what I have inherited from my late husband to you for good work of God. Please if you are ready to assist me to distribute my funds of Twenty Million Dollars to charity. Awaiting your reply. Your sister in Christ, Mrs. Liz Clayton.
Hello
Hello Dear, Please forgive me for stressing you with my predicaments as I know that this letter may come to you as big surprise. Actually, I came across your E-mail from my personal search afterward I decided to email you directly believing that you will be honest to fulfill my final wish before i die. Meanwhile, I am Mrs. Amiraa Williams, 62 years old, from America, and I am suffering from a long time cancer and from all indication my condition is really deteriorating as my doctors have confirmed and courageously Advised me that I may not live beyond two months from now for the reason that my tumor has reached a critical stage which has defiled all forms of medical treatment, As a matter of fact, registered nurse by profession while my husband was dealing on Gold Dust and Gold Dory Bars in Burkina Faso till his sudden death the year 2008 then I took over his business till date. In fact, at this moment I have a deposit sum of four million five hundred thousand US dollars [$4,500,000.00] with one of the leading bank in Burkina Faso but unfortunately I cannot visit the bank since I’m critically sick and powerless to do anything myself but my bank account officer advised me to assign any of my trustworthy relative, friends or partner with authorization letter to stand as the recipient of my money but sorrowfully I don’t have any reliable relative and no child. Therefore, I want you to receive the money and take 50% to take care of yourself and family while 50% should be use basically on humanitarian purposes mostly to orphanages home, Motherless babies home, less privileged and disable citizens and widows around the world. as soon as I receive your respond I shall send you the full details with my pictures, banking records and with full contacts of my banking institution to communicate them on the matter. Hope to hear from you soon. Yours Faithfully, Mrs. Amiraa Williams
Hello
Hello, Can i trust an investment project in your country? accepted please send email for more details. Best Regards Daria Yoong Shang
Hello Friend
I NEED YOUR ASSISTANCE INTO THIS TRANSACTION
Hello Friend
I NEED YOUR ASSISTANCE INTO THIS TRANSACTION
Hello
Greetings dear Friend, I have a proposal for you, this however is not mandatory nor will I in any manner compel you to honor against your will, Please read carefully. I am Mr Mehdi A. Al-Shamali, A former executive director with Arab Tunisian Bank here in Tunis; I retired 1 year 7 months ago after putting in 28 years of meticulous service. During my days with Arab Tunisian Bank, I was the personal account officer and one of the financial advisers to Zine Al-Abidine Ben Ali the past Tunisian President in self exile at Saudi Arabia. During his trying period, he instructed me to move all his investment in my care which consists of US$115M and 767KG of gold out of the Gulf States for safe keeping; and that I successfully did by moving US$50 Million to Madrid Spain, US$50 Million to Dubai United Arab Emirate, US$15 Million to Burkina Faso and the 767KG of gold to Burkina Faso in West Africa as an anonymous deposits, so that the funds will in no way be traced to him. He has instructed me to find an investor who would stand as the anonymous depositor of the fund and gold; and claim it for further investment. Consequent upon the above, my proposal is that I would like you as a foreigner to stand in as the anonymous depositor of this fund and gold that I have successfully moved outside the country and provide an account overseas where this said fund will be transferred into. It is a careful network and my voluntary retirement from the Arab Tunisian Bank is to ensure a hitch-free operation as all modalities for you to stand as beneficiary and owner of the deposits has been perfected by me. Mr. Zine al-Abidine Ben Ali will be offering you 20% of the total investment if you can be the investor and claim this deposits in Spain and Burkina Faso as the anonymous depositor. Now my questions are:- 1. Can you handle this transaction? 2. Can I give you this trust? Consider this and get back to me as soon as possible so that I can give you more details regarding this transaction. Finally, it is my humble request that the information as contained herein be accorded the necessary attention, urgency as well as the secrecy it deserves. I expect your urgent response if you can handle this project. Respectfully yours, Mr Mehdi A. Al-Shamali.
Hello
Dear Sir/Madam Greetings of the session July, My name is Mrs. Liz Clayton I am 63 years old, I am a dying woman who has decided to donate what I have to you/churches/ motherless babies/less privileged/widows.I was diagnosed with cancer for about 2 years ago. I have been touched by God to donate from what I have inherited from my late husband to you for good work of God. Please if you are ready to assist me to distribute my funds of Twenty Million Dollars to charity. Awaiting your reply. Your sister in Christ, Mrs. Liz Clayton.
Re: [PATCH net] net: bridge: start hello timer only if device is up
On Thu, 1 Jun 2017, Nikolay Aleksandrov wrote: > When the transition of NO_STP -> KERNEL_STP was fixed by always calling > mod_timer in br_stp_start, it introduced a new regression which causes > the timer to be armed even when the bridge is down, and since we stop > the timers in its ndo_stop() function, they never get disabled if the > device is destroyed before it's upped. > > To reproduce: > $ while :; do ip l add br0 type bridge hello_time 100; brctl stp br0 on; > ip l del br0; done; > > CC: Xin Long> CC: Ivan Vecera > CC: Sebastian Ott > Reported-by: Sebastian Ott > Fixes: 6d18c732b95c ("bridge: start hello_timer when enabling KERNEL_STP in > br_stp_start") > Signed-off-by: Nikolay Aleksandrov > --- > Sebastian it'd be great if you can test the patch as well. I did and can confirm that it fixes the problem. Thanks, Sebastian
Re: [PATCH net] net: bridge: start hello timer only if device is up
From: Nikolay AleksandrovDate: Thu, 1 Jun 2017 18:07:55 +0300 > When the transition of NO_STP -> KERNEL_STP was fixed by always calling > mod_timer in br_stp_start, it introduced a new regression which causes > the timer to be armed even when the bridge is down, and since we stop > the timers in its ndo_stop() function, they never get disabled if the > device is destroyed before it's upped. > > To reproduce: > $ while :; do ip l add br0 type bridge hello_time 100; brctl stp br0 on; > ip l del br0; done; > > CC: Xin Long > CC: Ivan Vecera > CC: Sebastian Ott > Reported-by: Sebastian Ott > Fixes: 6d18c732b95c ("bridge: start hello_timer when enabling KERNEL_STP in > br_stp_start") > Signed-off-by: Nikolay Aleksandrov Applied and queued up for -stable.
[PATCH net] net: bridge: start hello timer only if device is up
When the transition of NO_STP -> KERNEL_STP was fixed by always calling mod_timer in br_stp_start, it introduced a new regression which causes the timer to be armed even when the bridge is down, and since we stop the timers in its ndo_stop() function, they never get disabled if the device is destroyed before it's upped. To reproduce: $ while :; do ip l add br0 type bridge hello_time 100; brctl stp br0 on; ip l del br0; done; CC: Xin LongCC: Ivan Vecera CC: Sebastian Ott Reported-by: Sebastian Ott Fixes: 6d18c732b95c ("bridge: start hello_timer when enabling KERNEL_STP in br_stp_start") Signed-off-by: Nikolay Aleksandrov --- Sebastian it'd be great if you can test the patch as well. net/bridge/br_stp_if.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index 4efd5d54498a..89110319ef0f 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -173,7 +173,8 @@ static void br_stp_start(struct net_bridge *br) br_debug(br, "using kernel STP\n"); /* To start timers on any ports left in blocking */ - mod_timer(>hello_timer, jiffies + br->hello_time); + if (br->dev->flags & IFF_UP) + mod_timer(>hello_timer, jiffies + br->hello_time); br_port_state_selection(br); } -- 2.1.4
Re: [PATCH net-next v2] bridge: fix hello and hold timers starting/stopping
From: Ivan Vecera <c...@cera.cz> Date: Fri, 19 May 2017 19:30:43 +0200 > Current bridge code incorrectly handles starting/stopping of hello and > hold timers during STP enable/disable. > > 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP >transition. The timers are already stopped in NO_STP state so >this is confusing no-op. > > 2. During USER_STP->NO_STP transition the timers are started. This >does not make sense and is confusion because the timer should not be >active in NO_STP state. > > Cc: da...@davemloft.net > Cc: sas...@cumulusnetworks.com > Cc: step...@networkplumber.org > Cc: bri...@lists.linux-foundation.org > Cc: lucien@gmail.com > Cc: niko...@cumulusnetworks.com > Signed-off-by: Ivan Vecera <c...@cera.cz> Applied.
Re: [PATCH net-next v2] bridge: fix hello and hold timers starting/stopping
On Sat, May 20, 2017 at 09:06:16AM +0200, Ivan Vecera wrote: > 2017-05-20 7:57 GMT+02:00 Hangbin Liu <liuhang...@gmail.com>: > > On Fri, May 19, 2017 at 07:30:43PM +0200, Ivan Vecera wrote: > >> Current bridge code incorrectly handles starting/stopping of hello and > >> hold timers during STP enable/disable. > >> > >> 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP > >>transition. The timers are already stopped in NO_STP state so > >> this is confusing no-op. > > > > Hi Ivan, > > > > Shouldn't we start hello timer in br_stp_start when NO_STP -> BR_KERNEL_STP > > ? > > As Nikolay mentioned, this is fixed by > https://patchwork.ozlabs.org/patch/764685/ Ah, sorry. My mistake. I only saw xin's patch and your v2 patch. So I mixed them up and thought this is xin's V2 patch. That's why I wonder we didn't start hello timer in br_stp_start... Now I see your v1 patch with: The patch is a follow-up for "bridge: start hello_timer when enabling KERNEL_STP in br_stp_start" patch from Xin Long." Sorry for mixed them up. > > >> > >> 2. During USER_STP->NO_STP transition the timers are started. This > >>does not make sense and is confusion because the timer should not be > >>active in NO_STP state. > > > > Yes, but what about BR_KERNEL_STP -> NO_STP in function br_stp_stop() ? > > The timer is lazily stopped by itself in its handler... or not rearmed > respectively. Yes, with xin's patch this timer will stoped by itself. Thanks Hangbin
Re: [PATCH net-next v2] bridge: fix hello and hold timers starting/stopping
2017-05-20 7:57 GMT+02:00 Hangbin Liu <liuhang...@gmail.com>: > On Fri, May 19, 2017 at 07:30:43PM +0200, Ivan Vecera wrote: >> Current bridge code incorrectly handles starting/stopping of hello and >> hold timers during STP enable/disable. >> >> 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP >>transition. The timers are already stopped in NO_STP state so >>this is confusing no-op. > > Hi Ivan, > > Shouldn't we start hello timer in br_stp_start when NO_STP -> BR_KERNEL_STP ? As Nikolay mentioned, this is fixed by https://patchwork.ozlabs.org/patch/764685/ >> >> 2. During USER_STP->NO_STP transition the timers are started. This >>does not make sense and is confusion because the timer should not be >>active in NO_STP state. > > Yes, but what about BR_KERNEL_STP -> NO_STP in function br_stp_stop() ? The timer is lazily stopped by itself in its handler... or not rearmed respectively. >> Cc: da...@davemloft.net >> Cc: sas...@cumulusnetworks.com >> Cc: step...@networkplumber.org >> Cc: bri...@lists.linux-foundation.org >> Cc: lucien@gmail.com >> Cc: niko...@cumulusnetworks.com >> Signed-off-by: Ivan Vecera <c...@cera.cz> >> --- >> net/bridge/br_stp_if.c | 11 --- >> 1 file changed, 11 deletions(-) >> >> diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c >> index 08341d2aa9c9..a05027027513 100644 >> --- a/net/bridge/br_stp_if.c >> +++ b/net/bridge/br_stp_if.c >> @@ -150,7 +150,6 @@ static int br_stp_call_user(struct net_bridge *br, char >> *arg) >> >> static void br_stp_start(struct net_bridge *br) >> { >> - struct net_bridge_port *p; >> int err = -ENOENT; >> >> if (net_eq(dev_net(br->dev), _net)) >> @@ -169,11 +168,6 @@ static void br_stp_start(struct net_bridge *br) >> if (!err) { >> br->stp_enabled = BR_USER_STP; >> br_debug(br, "userspace STP started\n"); >> - >> - /* Stop hello and hold timers */ >> - del_timer(>hello_timer); >> - list_for_each_entry(p, >port_list, list) >> - del_timer(>hold_timer); > > I'm not sure if user space daemon will send bpdu or not? In comment > 76b91c32dd86 ("bridge: stp: when using userspace stp stop kernel hello and > hold timers"). Nikolay said we should not handle it with BR_USER_STP. > >> } else { >> br->stp_enabled = BR_KERNEL_STP; >> br_debug(br, "using kernel STP\n"); >> @@ -187,7 +181,6 @@ static void br_stp_start(struct net_bridge *br) >> >> static void br_stp_stop(struct net_bridge *br) >> { >> - struct net_bridge_port *p; >> int err; >> >> if (br->stp_enabled == BR_USER_STP) { >> @@ -196,10 +189,6 @@ static void br_stp_stop(struct net_bridge *br) >> br_err(br, "failed to stop userspace STP (%d)\n", err); >> >> /* To start timers on any ports left in blocking */ >> - mod_timer(>hello_timer, jiffies + br->hello_time); >> - list_for_each_entry(p, >port_list, list) >> - mod_timer(>hold_timer, >> - round_jiffies(jiffies + BR_HOLD_TIME)); > > If we do not del hello_timer. after it expired in br_hello_timer_expired(), > Our state is br->dev->flags & IFF_UP and br->stp_enabled == NO_STP, it will > call mod_timer(>hello_timer, round_jiffies(jiffies + br->hello_time)) > and we will keep sending bpdu message even after stp stoped. > >> spin_lock_bh(>lock); >> br_port_state_selection(br); >> spin_unlock_bh(>lock); >> -- > > So how about just like > > diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c > index d8ad73b..0198f62 100644 > --- a/net/bridge/br_stp_if.c > +++ b/net/bridge/br_stp_if.c > @@ -183,6 +183,7 @@ static void br_stp_start(struct net_bridge *br) > } else { > br->stp_enabled = BR_KERNEL_STP; > br_debug(br, "using kernel STP\n"); > + mod_timer(>hello_timer, jiffies + br->hello_time); > > /* To start timers on any ports left in blocking */ > br_port_state_selection(br); > @@ -202,7 +203,6 @@ static void br_stp_stop(struct net_bridge *br) > br_err(br, "failed to stop userspace STP (%d)\n", > err); > > /* To start timers on any ports left in blocking */ > - mod_timer(>hello_timer, jiffies + br->hello_time); > list_for_each_entry(p, >port_list, list) > mod_timer(>hold_timer, > round_jiffies(jiffies + BR_HOLD_TIME)); > @@ -211,6 +211,7 @@ static void br_stp_stop(struct net_bridge *br) > spin_unlock_bh(>lock); > } > > + del_timer_sync(>hello_timer); > br->stp_enabled = BR_NO_STP; > } > > Thanks > Hangbin
Re: [PATCH net-next v2] bridge: fix hello and hold timers starting/stopping
On 5/20/17 8:57 AM, Hangbin Liu wrote: On Fri, May 19, 2017 at 07:30:43PM +0200, Ivan Vecera wrote: Current bridge code incorrectly handles starting/stopping of hello and hold timers during STP enable/disable. 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP transition. The timers are already stopped in NO_STP state so this is confusing no-op. Hi Ivan, Shouldn't we start hello timer in br_stp_start when NO_STP -> BR_KERNEL_STP ? Please see Xin Long's recent -net patch that fixes exactly this issue. It will answer your questions below, too. https://patchwork.ozlabs.org/patch/764685/ 2. During USER_STP->NO_STP transition the timers are started. This does not make sense and is confusion because the timer should not be active in NO_STP state. Yes, but what about BR_KERNEL_STP -> NO_STP in function br_stp_stop() ? Cc: da...@davemloft.net Cc: sas...@cumulusnetworks.com Cc: step...@networkplumber.org Cc: bri...@lists.linux-foundation.org Cc: lucien@gmail.com Cc: niko...@cumulusnetworks.com Signed-off-by: Ivan Vecera <c...@cera.cz> --- net/bridge/br_stp_if.c | 11 --- 1 file changed, 11 deletions(-) diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index 08341d2aa9c9..a05027027513 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -150,7 +150,6 @@ static int br_stp_call_user(struct net_bridge *br, char *arg) static void br_stp_start(struct net_bridge *br) { - struct net_bridge_port *p; int err = -ENOENT; if (net_eq(dev_net(br->dev), _net)) @@ -169,11 +168,6 @@ static void br_stp_start(struct net_bridge *br) if (!err) { br->stp_enabled = BR_USER_STP; br_debug(br, "userspace STP started\n"); - - /* Stop hello and hold timers */ - del_timer(>hello_timer); - list_for_each_entry(p, >port_list, list) - del_timer(>hold_timer); I'm not sure if user space daemon will send bpdu or not? In comment 76b91c32dd86 ("bridge: stp: when using userspace stp stop kernel hello and hold timers"). Nikolay said we should not handle it with BR_USER_STP > } else { br->stp_enabled = BR_KERNEL_STP; br_debug(br, "using kernel STP\n"); @@ -187,7 +181,6 @@ static void br_stp_start(struct net_bridge *br) static void br_stp_stop(struct net_bridge *br) { - struct net_bridge_port *p; int err; if (br->stp_enabled == BR_USER_STP) { @@ -196,10 +189,6 @@ static void br_stp_stop(struct net_bridge *br) br_err(br, "failed to stop userspace STP (%d)\n", err); /* To start timers on any ports left in blocking */ - mod_timer(>hello_timer, jiffies + br->hello_time); - list_for_each_entry(p, >port_list, list) - mod_timer(>hold_timer, - round_jiffies(jiffies + BR_HOLD_TIME)); If we do not del hello_timer. after it expired in br_hello_timer_expired(), Our state is br->dev->flags & IFF_UP and br->stp_enabled == NO_STP, it will call mod_timer(>hello_timer, round_jiffies(jiffies + br->hello_time)) and we will keep sending bpdu message even after stp stoped. Again see Xin Long's recent -net patch. spin_lock_bh(>lock); br_port_state_selection(br); spin_unlock_bh(>lock); -- So how about just like diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index d8ad73b..0198f62 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -183,6 +183,7 @@ static void br_stp_start(struct net_bridge *br) } else { br->stp_enabled = BR_KERNEL_STP; br_debug(br, "using kernel STP\n"); + mod_timer(>hello_timer, jiffies + br->hello_time); /* To start timers on any ports left in blocking */ br_port_state_selection(br); @@ -202,7 +203,6 @@ static void br_stp_stop(struct net_bridge *br) br_err(br, "failed to stop userspace STP (%d)\n", err); /* To start timers on any ports left in blocking */ - mod_timer(>hello_timer, jiffies + br->hello_time); list_for_each_entry(p, >port_list, list) mod_timer(>hold_timer, round_jiffies(jiffies + BR_HOLD_TIME)); @@ -211,6 +211,7 @@ static void br_stp_stop(struct net_bridge *br) spin_unlock_bh(>lock); } + del_timer_sync(>hello_timer); br->stp_enabled = BR_NO_STP; } Thanks Hangbin
Re: [PATCH net-next v2] bridge: fix hello and hold timers starting/stopping
On Fri, May 19, 2017 at 07:30:43PM +0200, Ivan Vecera wrote: > Current bridge code incorrectly handles starting/stopping of hello and > hold timers during STP enable/disable. > > 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP >transition. The timers are already stopped in NO_STP state so >this is confusing no-op. Hi Ivan, Shouldn't we start hello timer in br_stp_start when NO_STP -> BR_KERNEL_STP ? > > 2. During USER_STP->NO_STP transition the timers are started. This >does not make sense and is confusion because the timer should not be >active in NO_STP state. Yes, but what about BR_KERNEL_STP -> NO_STP in function br_stp_stop() ? > > Cc: da...@davemloft.net > Cc: sas...@cumulusnetworks.com > Cc: step...@networkplumber.org > Cc: bri...@lists.linux-foundation.org > Cc: lucien@gmail.com > Cc: niko...@cumulusnetworks.com > Signed-off-by: Ivan Vecera <c...@cera.cz> > --- > net/bridge/br_stp_if.c | 11 --- > 1 file changed, 11 deletions(-) > > diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c > index 08341d2aa9c9..a05027027513 100644 > --- a/net/bridge/br_stp_if.c > +++ b/net/bridge/br_stp_if.c > @@ -150,7 +150,6 @@ static int br_stp_call_user(struct net_bridge *br, char > *arg) > > static void br_stp_start(struct net_bridge *br) > { > - struct net_bridge_port *p; > int err = -ENOENT; > > if (net_eq(dev_net(br->dev), _net)) > @@ -169,11 +168,6 @@ static void br_stp_start(struct net_bridge *br) > if (!err) { > br->stp_enabled = BR_USER_STP; > br_debug(br, "userspace STP started\n"); > - > - /* Stop hello and hold timers */ > - del_timer(>hello_timer); > - list_for_each_entry(p, >port_list, list) > - del_timer(>hold_timer); I'm not sure if user space daemon will send bpdu or not? In comment 76b91c32dd86 ("bridge: stp: when using userspace stp stop kernel hello and hold timers"). Nikolay said we should not handle it with BR_USER_STP. > } else { > br->stp_enabled = BR_KERNEL_STP; > br_debug(br, "using kernel STP\n"); > @@ -187,7 +181,6 @@ static void br_stp_start(struct net_bridge *br) > > static void br_stp_stop(struct net_bridge *br) > { > - struct net_bridge_port *p; > int err; > > if (br->stp_enabled == BR_USER_STP) { > @@ -196,10 +189,6 @@ static void br_stp_stop(struct net_bridge *br) > br_err(br, "failed to stop userspace STP (%d)\n", err); > > /* To start timers on any ports left in blocking */ > - mod_timer(>hello_timer, jiffies + br->hello_time); > - list_for_each_entry(p, >port_list, list) > - mod_timer(>hold_timer, > - round_jiffies(jiffies + BR_HOLD_TIME)); If we do not del hello_timer. after it expired in br_hello_timer_expired(), Our state is br->dev->flags & IFF_UP and br->stp_enabled == NO_STP, it will call mod_timer(>hello_timer, round_jiffies(jiffies + br->hello_time)) and we will keep sending bpdu message even after stp stoped. > spin_lock_bh(>lock); > br_port_state_selection(br); > spin_unlock_bh(>lock); > -- So how about just like diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index d8ad73b..0198f62 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -183,6 +183,7 @@ static void br_stp_start(struct net_bridge *br) } else { br->stp_enabled = BR_KERNEL_STP; br_debug(br, "using kernel STP\n"); + mod_timer(>hello_timer, jiffies + br->hello_time); /* To start timers on any ports left in blocking */ br_port_state_selection(br); @@ -202,7 +203,6 @@ static void br_stp_stop(struct net_bridge *br) br_err(br, "failed to stop userspace STP (%d)\n", err); /* To start timers on any ports left in blocking */ - mod_timer(>hello_timer, jiffies + br->hello_time); list_for_each_entry(p, >port_list, list) mod_timer(>hold_timer, round_jiffies(jiffies + BR_HOLD_TIME)); @@ -211,6 +211,7 @@ static void br_stp_stop(struct net_bridge *br) spin_unlock_bh(>lock); } + del_timer_sync(>hello_timer); br->stp_enabled = BR_NO_STP; } Thanks Hangbin
Re: [PATCH net-next v2] bridge: fix hello and hold timers starting/stopping
On 5/19/17 8:30 PM, Ivan Vecera wrote: Current bridge code incorrectly handles starting/stopping of hello and hold timers during STP enable/disable. 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP transition. The timers are already stopped in NO_STP state so this is confusing no-op. 2. During USER_STP->NO_STP transition the timers are started. This does not make sense and is confusion because the timer should not be active in NO_STP state. Cc: da...@davemloft.net Cc: sas...@cumulusnetworks.com Cc: step...@networkplumber.org Cc: bri...@lists.linux-foundation.org Cc: lucien@gmail.com Cc: niko...@cumulusnetworks.com Signed-off-by: Ivan Vecera <c...@cera.cz> --- net/bridge/br_stp_if.c | 11 --- 1 file changed, 11 deletions(-) LGTM, thanks! Acked-by: Nikolay Aleksandrov <niko...@cumulusnetworks.com>
Re: [PATCH net-next v2] bridge: fix hello and hold timers starting/stopping
On Sat, May 20, 2017 at 1:30 AM, Ivan Vecera <c...@cera.cz> wrote: > Current bridge code incorrectly handles starting/stopping of hello and > hold timers during STP enable/disable. > > 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP >transition. The timers are already stopped in NO_STP state so >this is confusing no-op. > > 2. During USER_STP->NO_STP transition the timers are started. This >does not make sense and is confusion because the timer should not be >active in NO_STP state. > > Cc: da...@davemloft.net > Cc: sas...@cumulusnetworks.com > Cc: step...@networkplumber.org > Cc: bri...@lists.linux-foundation.org > Cc: lucien@gmail.com > Cc: niko...@cumulusnetworks.com > Signed-off-by: Ivan Vecera <c...@cera.cz> Reviewed-by: Xin Long <lucien@gmail.com> > --- > net/bridge/br_stp_if.c | 11 --- > 1 file changed, 11 deletions(-) > > diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c > index 08341d2aa9c9..a05027027513 100644 > --- a/net/bridge/br_stp_if.c > +++ b/net/bridge/br_stp_if.c > @@ -150,7 +150,6 @@ static int br_stp_call_user(struct net_bridge *br, char > *arg) > > static void br_stp_start(struct net_bridge *br) > { > - struct net_bridge_port *p; > int err = -ENOENT; > > if (net_eq(dev_net(br->dev), _net)) > @@ -169,11 +168,6 @@ static void br_stp_start(struct net_bridge *br) > if (!err) { > br->stp_enabled = BR_USER_STP; > br_debug(br, "userspace STP started\n"); > - > - /* Stop hello and hold timers */ > - del_timer(>hello_timer); > - list_for_each_entry(p, >port_list, list) > - del_timer(>hold_timer); > } else { > br->stp_enabled = BR_KERNEL_STP; > br_debug(br, "using kernel STP\n"); > @@ -187,7 +181,6 @@ static void br_stp_start(struct net_bridge *br) > > static void br_stp_stop(struct net_bridge *br) > { > - struct net_bridge_port *p; > int err; > > if (br->stp_enabled == BR_USER_STP) { > @@ -196,10 +189,6 @@ static void br_stp_stop(struct net_bridge *br) > br_err(br, "failed to stop userspace STP (%d)\n", > err); > > /* To start timers on any ports left in blocking */ > - mod_timer(>hello_timer, jiffies + br->hello_time); > - list_for_each_entry(p, >port_list, list) > - mod_timer(>hold_timer, > - round_jiffies(jiffies + BR_HOLD_TIME)); > spin_lock_bh(>lock); > br_port_state_selection(br); > spin_unlock_bh(>lock); > -- > 2.13.0 >
[PATCH net-next v2] bridge: fix hello and hold timers starting/stopping
Current bridge code incorrectly handles starting/stopping of hello and hold timers during STP enable/disable. 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP transition. The timers are already stopped in NO_STP state so this is confusing no-op. 2. During USER_STP->NO_STP transition the timers are started. This does not make sense and is confusion because the timer should not be active in NO_STP state. Cc: da...@davemloft.net Cc: sas...@cumulusnetworks.com Cc: step...@networkplumber.org Cc: bri...@lists.linux-foundation.org Cc: lucien@gmail.com Cc: niko...@cumulusnetworks.com Signed-off-by: Ivan Vecera <c...@cera.cz> --- net/bridge/br_stp_if.c | 11 --- 1 file changed, 11 deletions(-) diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index 08341d2aa9c9..a05027027513 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -150,7 +150,6 @@ static int br_stp_call_user(struct net_bridge *br, char *arg) static void br_stp_start(struct net_bridge *br) { - struct net_bridge_port *p; int err = -ENOENT; if (net_eq(dev_net(br->dev), _net)) @@ -169,11 +168,6 @@ static void br_stp_start(struct net_bridge *br) if (!err) { br->stp_enabled = BR_USER_STP; br_debug(br, "userspace STP started\n"); - - /* Stop hello and hold timers */ - del_timer(>hello_timer); - list_for_each_entry(p, >port_list, list) - del_timer(>hold_timer); } else { br->stp_enabled = BR_KERNEL_STP; br_debug(br, "using kernel STP\n"); @@ -187,7 +181,6 @@ static void br_stp_start(struct net_bridge *br) static void br_stp_stop(struct net_bridge *br) { - struct net_bridge_port *p; int err; if (br->stp_enabled == BR_USER_STP) { @@ -196,10 +189,6 @@ static void br_stp_stop(struct net_bridge *br) br_err(br, "failed to stop userspace STP (%d)\n", err); /* To start timers on any ports left in blocking */ - mod_timer(>hello_timer, jiffies + br->hello_time); - list_for_each_entry(p, >port_list, list) - mod_timer(>hold_timer, - round_jiffies(jiffies + BR_HOLD_TIME)); spin_lock_bh(>lock); br_port_state_selection(br); spin_unlock_bh(>lock); -- 2.13.0
Re: [PATCH net] bridge: fix hello and hold timers starting/stopping
On Sat, May 20, 2017 at 12:25 AM, Ivan Vecera <c...@cera.cz> wrote: [...] > @@ -197,13 +191,14 @@ static void br_stp_stop(struct net_bridge *br) > br_err(br, "failed to stop userspace STP (%d)\n", > err); > > /* To start timers on any ports left in blocking */ > - mod_timer(>hello_timer, jiffies + br->hello_time); > - list_for_each_entry(p, >port_list, list) > - mod_timer(>hold_timer, > - round_jiffies(jiffies + BR_HOLD_TIME)); > spin_lock_bh(>lock); > br_port_state_selection(br); > spin_unlock_bh(>lock); > + } else { > + /* BR_KERNEL_STP - stop hello and hold timers */ > + del_timer(>hello_timer); > + list_for_each_entry(p, >port_list, list) > + del_timer(>hold_timer); > } > > br->stp_enabled = BR_NO_STP; I have a question here, br->stp_enabled is not atomic, and it is being changed without holding br->lock here, while it may be checked in br_hello_timer_expired, is it safe ? (sorry if I misunderstood or overthought about it) > -- > 2.13.0 >
Re: [PATCH net] bridge: fix hello and hold timers starting/stopping
2017-05-19 18:55 GMT+02:00 Nikolay Aleksandrov <niko...@cumulusnetworks.com>: > On 5/19/17 7:25 PM, Ivan Vecera wrote: >> >> Current bridge code incorrectly handles starting/stopping of hello and >> hold timers during STP enable/disable. >> >> 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP >> transition. This is not correct as the timers are stopped in NO_STP >> case. > > > This really is a noop, but ok. Yes, stopping of stopped timers are safe but confusing. >> 2. Timers are started in br_stp_stop() during USER_STP->NO_STP transition. >> This is not also correct as the timers should be stopped in NO_STP >> state. > > > Indeed, but the actual end result is almost as them being stopped because > in the timers there are specific checks if the STP == KERNEL_STP (see > br_transmit_config()) and the hold_timers will simply expire and not rearm > in any other mode. The only real problem is the hello_timer which continues > to rearm itself, but with Xin's earlier patch that is taken care of too. Yes, this is clean-up as well. The starting of timers are more confusing than dangerous but from a reader's point of view the starting of timers is non-sense when STP is going to be disabled. >> >> 3. Timers are NOT stopped in br_stp_stop() during KERNEL_STP->NO_STP >> transition. They should be stopped as they are running in KERNEL_STP >> state and should not run in NO_STP case. > > > Same comment as for point 2. This can be removed... and leave hello_timer handler to stop itself. >> The patch is a follow-up for "bridge: start hello_timer when enabling >> KERNEL_STP in br_stp_start" patch from Xin Long. >> > > I'd say this is more of a cleanup/improvement after Xin's patch and thus > would > suggest targeting net-next. The only real issue is fixed by his patch. Agree... will send resend against net-next. Thanks for comments, Ivan
Re: [PATCH net] bridge: fix hello and hold timers starting/stopping
On 5/19/17 7:25 PM, Ivan Vecera wrote: Current bridge code incorrectly handles starting/stopping of hello and hold timers during STP enable/disable. 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP transition. This is not correct as the timers are stopped in NO_STP case. This really is a noop, but ok. 2. Timers are started in br_stp_stop() during USER_STP->NO_STP transition. This is not also correct as the timers should be stopped in NO_STP state. Indeed, but the actual end result is almost as them being stopped because in the timers there are specific checks if the STP == KERNEL_STP (see br_transmit_config()) and the hold_timers will simply expire and not rearm in any other mode. The only real problem is the hello_timer which continues to rearm itself, but with Xin's earlier patch that is taken care of too. 3. Timers are NOT stopped in br_stp_stop() during KERNEL_STP->NO_STP transition. They should be stopped as they are running in KERNEL_STP state and should not run in NO_STP case. Same comment as for point 2. The patch is a follow-up for "bridge: start hello_timer when enabling KERNEL_STP in br_stp_start" patch from Xin Long. I'd say this is more of a cleanup/improvement after Xin's patch and thus would suggest targeting net-next. The only real issue is fixed by his patch. Cc: da...@davemloft.net Cc: sas...@cumulusnetworks.com Cc: step...@networkplumber.org Cc: bri...@lists.linux-foundation.org Cc: lucien@gmail.com Cc: niko...@cumulusnetworks.com Signed-off-by: Ivan Vecera <c...@cera.cz> --- net/bridge/br_stp_if.c | 15 +-- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index 0db8102995a5..f137ebf27755 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -150,7 +150,6 @@ static int br_stp_call_user(struct net_bridge *br, char *arg) static void br_stp_start(struct net_bridge *br) { - struct net_bridge_port *p; int err = -ENOENT; if (net_eq(dev_net(br->dev), _net)) @@ -169,11 +168,6 @@ static void br_stp_start(struct net_bridge *br) if (!err) { br->stp_enabled = BR_USER_STP; br_debug(br, "userspace STP started\n"); - - /* Stop hello and hold timers */ - del_timer(>hello_timer); - list_for_each_entry(p, >port_list, list) - del_timer(>hold_timer); } else { br->stp_enabled = BR_KERNEL_STP; br_debug(br, "using kernel STP\n"); @@ -197,13 +191,14 @@ static void br_stp_stop(struct net_bridge *br) br_err(br, "failed to stop userspace STP (%d)\n", err); /* To start timers on any ports left in blocking */ - mod_timer(>hello_timer, jiffies + br->hello_time); - list_for_each_entry(p, >port_list, list) - mod_timer(>hold_timer, - round_jiffies(jiffies + BR_HOLD_TIME)); spin_lock_bh(>lock); br_port_state_selection(br); spin_unlock_bh(>lock); + } else { + /* BR_KERNEL_STP - stop hello and hold timers */ + del_timer(>hello_timer); + list_for_each_entry(p, >port_list, list) + del_timer(>hold_timer); } br->stp_enabled = BR_NO_STP;
Re: [PATCH net] bridge: fix hello and hold timers starting/stopping
2017-05-19 18:51 GMT+02:00 Xin Long <lucien@gmail.com>: > On Sat, May 20, 2017 at 12:25 AM, Ivan Vecera <c...@cera.cz> wrote: >> Current bridge code incorrectly handles starting/stopping of hello and >> hold timers during STP enable/disable. >> >> 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP >>transition. This is not correct as the timers are stopped in NO_STP >>case. >> >> 2. Timers are started in br_stp_stop() during USER_STP->NO_STP transition. >>This is not also correct as the timers should be stopped in NO_STP >>state. >> >> 3. Timers are NOT stopped in br_stp_stop() during KERNEL_STP->NO_STP >>transition. They should be stopped as they are running in KERNEL_STP >>state and should not run in NO_STP case. >> >> The patch is a follow-up for "bridge: start hello_timer when enabling >> KERNEL_STP in br_stp_start" patch from Xin Long. >> >> Cc: da...@davemloft.net >> Cc: sas...@cumulusnetworks.com >> Cc: step...@networkplumber.org >> Cc: bri...@lists.linux-foundation.org >> Cc: lucien@gmail.com >> Cc: niko...@cumulusnetworks.com >> Signed-off-by: Ivan Vecera <c...@cera.cz> >> --- >> net/bridge/br_stp_if.c | 15 +-- >> 1 file changed, 5 insertions(+), 10 deletions(-) >> >> diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c >> index 0db8102995a5..f137ebf27755 100644 >> --- a/net/bridge/br_stp_if.c >> +++ b/net/bridge/br_stp_if.c >> @@ -150,7 +150,6 @@ static int br_stp_call_user(struct net_bridge *br, char >> *arg) >> >> static void br_stp_start(struct net_bridge *br) >> { >> - struct net_bridge_port *p; >> int err = -ENOENT; >> >> if (net_eq(dev_net(br->dev), _net)) >> @@ -169,11 +168,6 @@ static void br_stp_start(struct net_bridge *br) >> if (!err) { >> br->stp_enabled = BR_USER_STP; >> br_debug(br, "userspace STP started\n"); >> - >> - /* Stop hello and hold timers */ >> - del_timer(>hello_timer); >> - list_for_each_entry(p, >port_list, list) >> - del_timer(>hold_timer); >> } else { >> br->stp_enabled = BR_KERNEL_STP; >> br_debug(br, "using kernel STP\n"); >> @@ -197,13 +191,14 @@ static void br_stp_stop(struct net_bridge *br) >> br_err(br, "failed to stop userspace STP (%d)\n", >> err); >> >> /* To start timers on any ports left in blocking */ >> - mod_timer(>hello_timer, jiffies + br->hello_time); >> - list_for_each_entry(p, >port_list, list) >> - mod_timer(>hold_timer, >> - round_jiffies(jiffies + BR_HOLD_TIME)); >> spin_lock_bh(>lock); >> br_port_state_selection(br); >> spin_unlock_bh(>lock); >> + } else { >> + /* BR_KERNEL_STP - stop hello and hold timers */ >> + del_timer(>hello_timer); >> + list_for_each_entry(p, >port_list, list) >> + del_timer(>hold_timer); > I'm thinking, what if the timers are running when deleting them ? > del_timer may not be going to delete it, and still have to stop itself > next time when br->stp_enabled = BR_NO_STP. > > So do you think it's better to do nothing here and just leave it to be > stopped by itself when checking br->stp_enabled in > br_hello_timer_expired ? Yes, this kind of "lazy stopping" could be safer. I.
Re: [PATCH net] bridge: fix hello and hold timers starting/stopping
On Sat, May 20, 2017 at 12:25 AM, Ivan Vecera <c...@cera.cz> wrote: > Current bridge code incorrectly handles starting/stopping of hello and > hold timers during STP enable/disable. > > 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP >transition. This is not correct as the timers are stopped in NO_STP >case. > > 2. Timers are started in br_stp_stop() during USER_STP->NO_STP transition. >This is not also correct as the timers should be stopped in NO_STP >state. > > 3. Timers are NOT stopped in br_stp_stop() during KERNEL_STP->NO_STP >transition. They should be stopped as they are running in KERNEL_STP >state and should not run in NO_STP case. > > The patch is a follow-up for "bridge: start hello_timer when enabling > KERNEL_STP in br_stp_start" patch from Xin Long. > > Cc: da...@davemloft.net > Cc: sas...@cumulusnetworks.com > Cc: step...@networkplumber.org > Cc: bri...@lists.linux-foundation.org > Cc: lucien@gmail.com > Cc: niko...@cumulusnetworks.com > Signed-off-by: Ivan Vecera <c...@cera.cz> > --- > net/bridge/br_stp_if.c | 15 +-- > 1 file changed, 5 insertions(+), 10 deletions(-) > > diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c > index 0db8102995a5..f137ebf27755 100644 > --- a/net/bridge/br_stp_if.c > +++ b/net/bridge/br_stp_if.c > @@ -150,7 +150,6 @@ static int br_stp_call_user(struct net_bridge *br, char > *arg) > > static void br_stp_start(struct net_bridge *br) > { > - struct net_bridge_port *p; > int err = -ENOENT; > > if (net_eq(dev_net(br->dev), _net)) > @@ -169,11 +168,6 @@ static void br_stp_start(struct net_bridge *br) > if (!err) { > br->stp_enabled = BR_USER_STP; > br_debug(br, "userspace STP started\n"); > - > - /* Stop hello and hold timers */ > - del_timer(>hello_timer); > - list_for_each_entry(p, >port_list, list) > - del_timer(>hold_timer); > } else { > br->stp_enabled = BR_KERNEL_STP; > br_debug(br, "using kernel STP\n"); > @@ -197,13 +191,14 @@ static void br_stp_stop(struct net_bridge *br) > br_err(br, "failed to stop userspace STP (%d)\n", > err); > > /* To start timers on any ports left in blocking */ > - mod_timer(>hello_timer, jiffies + br->hello_time); > - list_for_each_entry(p, >port_list, list) > - mod_timer(>hold_timer, > - round_jiffies(jiffies + BR_HOLD_TIME)); > spin_lock_bh(>lock); > br_port_state_selection(br); > spin_unlock_bh(>lock); > + } else { > + /* BR_KERNEL_STP - stop hello and hold timers */ > + del_timer(>hello_timer); > + list_for_each_entry(p, >port_list, list) > + del_timer(>hold_timer); I'm thinking, what if the timers are running when deleting them ? del_timer may not be going to delete it, and still have to stop itself next time when br->stp_enabled = BR_NO_STP. So do you think it's better to do nothing here and just leave it to be stopped by itself when checking br->stp_enabled in br_hello_timer_expired ? > } > > br->stp_enabled = BR_NO_STP; > -- > 2.13.0 >
Re: [PATCH net] bridge: fix hello and hold timers starting/stopping
On Fri, 19 May 2017 18:25:43 +0200 Ivan Vecera <c...@cera.cz> wrote: > Current bridge code incorrectly handles starting/stopping of hello and > hold timers during STP enable/disable. > > 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP >transition. This is not correct as the timers are stopped in NO_STP >case. > > 2. Timers are started in br_stp_stop() during USER_STP->NO_STP transition. >This is not also correct as the timers should be stopped in NO_STP >state. > > 3. Timers are NOT stopped in br_stp_stop() during KERNEL_STP->NO_STP >transition. They should be stopped as they are running in KERNEL_STP >state and should not run in NO_STP case. > > The patch is a follow-up for "bridge: start hello_timer when enabling > KERNEL_STP in br_stp_start" patch from Xin Long. > > Cc: da...@davemloft.net > Cc: sas...@cumulusnetworks.com > Cc: step...@networkplumber.org > Cc: bri...@lists.linux-foundation.org > Cc: lucien@gmail.com > Cc: niko...@cumulusnetworks.com > Signed-off-by: Ivan Vecera <c...@cera.cz> Overall, this looks correct but the wording of commit message is too terse. It would be better to add a more complete description of the impact of this from a user's point of view. I am concerned that this might have other side effects. For example, what is the sequence of commands to validated this. What is the impact, should this go to stable?
[PATCH net] bridge: fix hello and hold timers starting/stopping
Current bridge code incorrectly handles starting/stopping of hello and hold timers during STP enable/disable. 1. Timers are stopped in br_stp_start() during NO_STP->USER_STP transition. This is not correct as the timers are stopped in NO_STP case. 2. Timers are started in br_stp_stop() during USER_STP->NO_STP transition. This is not also correct as the timers should be stopped in NO_STP state. 3. Timers are NOT stopped in br_stp_stop() during KERNEL_STP->NO_STP transition. They should be stopped as they are running in KERNEL_STP state and should not run in NO_STP case. The patch is a follow-up for "bridge: start hello_timer when enabling KERNEL_STP in br_stp_start" patch from Xin Long. Cc: da...@davemloft.net Cc: sas...@cumulusnetworks.com Cc: step...@networkplumber.org Cc: bri...@lists.linux-foundation.org Cc: lucien@gmail.com Cc: niko...@cumulusnetworks.com Signed-off-by: Ivan Vecera <c...@cera.cz> --- net/bridge/br_stp_if.c | 15 +-- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index 0db8102995a5..f137ebf27755 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -150,7 +150,6 @@ static int br_stp_call_user(struct net_bridge *br, char *arg) static void br_stp_start(struct net_bridge *br) { - struct net_bridge_port *p; int err = -ENOENT; if (net_eq(dev_net(br->dev), _net)) @@ -169,11 +168,6 @@ static void br_stp_start(struct net_bridge *br) if (!err) { br->stp_enabled = BR_USER_STP; br_debug(br, "userspace STP started\n"); - - /* Stop hello and hold timers */ - del_timer(>hello_timer); - list_for_each_entry(p, >port_list, list) - del_timer(>hold_timer); } else { br->stp_enabled = BR_KERNEL_STP; br_debug(br, "using kernel STP\n"); @@ -197,13 +191,14 @@ static void br_stp_stop(struct net_bridge *br) br_err(br, "failed to stop userspace STP (%d)\n", err); /* To start timers on any ports left in blocking */ - mod_timer(>hello_timer, jiffies + br->hello_time); - list_for_each_entry(p, >port_list, list) - mod_timer(>hold_timer, - round_jiffies(jiffies + BR_HOLD_TIME)); spin_lock_bh(>lock); br_port_state_selection(br); spin_unlock_bh(>lock); + } else { + /* BR_KERNEL_STP - stop hello and hold timers */ + del_timer(>hello_timer); + list_for_each_entry(p, >port_list, list) + del_timer(>hold_timer); } br->stp_enabled = BR_NO_STP; -- 2.13.0
HELLO!!!!!
HELLO! I am Mr Neil Trotter, the current winner of 108 Euro millions jackpot, if you have received this email then you are of the lucky fellows to benefit from me,so do get back to me for a better understanding. Here is the website for proof http://www.huffingtonpost.co.uk/2014/03/18/neil-trotter-euromillions-winner_n_4984234.html} Contact Email;(mr.neiltrotter...@outlook.com) THANKS, MR. NEIL TROTTER.
Re: Hello
-- Hello, I have something important to discuss with you as soon as you reply back. Regards. Miss.Rechel
hello dear
Hello nice to meet you my name is Terumi. Your profile really impressed me, send me a message through my private email address (terumibar...@gmail.com) so that i will tell you more about me and send my pictures to you . I'm looking forward to hear from you.
Hello
Hello Friend, Compliment of the day, I got your contact information from a reputable business/professional directory of your country which gives me assurance of your legibility as a person. I send you this brief letter to solicit your partnership to transfer ($22,500,000.00 USD) from Reserve Bank of India ( R.B.I) to your country. I shall furnish you with more info when I get a positive reply from you. Reply me Via E-mail if you are interested. Best Regards, Mr.Shri Gandhi
HELLO DEAR
Dear Friend, I assume that this message will reach you in good health. My name is Mrs. Aruna Sabbah,the foreign operation manager of the African Development Bank Burkina Faso (ADB) I have the opportunity of transferring the left over funds what of ($25.2Million Dollars) from the account of our bank's customer who died along with his entire family in a plane crash. However, it's just my urgent need for foreign partner that made me to contact you for this transaction. I assured you honesty and reliability to champion this business opportunity. I am contacting you for this business while the money will be shared between us in the ratio of 50/50,on the acceptance of my proposal, Further details of the transfer will be forwarded to you as soon as i receive your response. Hoping to hear from you as soon as possible. Regards Mrs. Aruna Sabbah
hello
hi
HELLO DEAR
Hello, nice to meet you , How are you doing today? My name is Fidelia. Please, I am sorry for intruding into your privacy because this letter may come to you as a surprising. I have an important matter which i want to discuss with you. I can also send my pictures to you as soon as i have receive your letter. Thanks, I will be waiting for your immediate answer. Fidelia
Hello Forgive My Intrusion From Silvia.
Hello Friend, I'm Silviana Olander and I'm Swede. I found your email contact while surfing the Internet. I don't think you have a clue but my reason for writing you is to seek your friendship! Just being adventurous and decided to use this letter as a resource tool to get your attention.As a matter of fact, I've been wanting to try this a while now to chat, to ask you things, to comment on trivial matters or even to talk a bit about each other. But I've been clueless on how to go about it. Maybe you find it strange that I'm using something as cold as this means to reach you. But this is the best I can do for now. In short: the purpose of this letter is just to ask you if you want to be my friend. And if you agree, just say yes and we can take it on from there. I look forward to hear hearing from you. Yours Silvia.
Hello Beautiful
How you doing today? I hope you are doing well. My name is Bentley, from the US. I'm in Syria right now fighting ISIS. I want to get to know you better, if I may be so bold. I consider myself an easy-going man, and I am currently looking for a relationship in which I feel loved. Please tell me more about yourself, if you don't mind. Hope to hear from you soon. Regards, Bentley.
Hello Beautiful
Hello beautiful, How you doing today? I hope you are doing well. My name is Bentley, from the US. I'm in Syria right now fighting ISIS. I want to get to know you better, if I may be so bold. I consider myself an easy-going man, and I am currently looking for a relationship in which I feel loved. Please tell me more about yourself, if you don't mind. Hope to hear from you soon. Regards, Bentley.
HELLO
Dear Friend, Greetings and hope this mail meets you well! I want you to be my partner in the transfer of the sum of $6.7 Million dollars discovered in my department in one of the leading Banks (EcoBank Plc) here in Burkina-Faso. I shall give you more information on this proposal when I get your reply, but rest assured that I will give you 40% of the total sum once the transfer is completed but you have to maintain secrecy of this business deal if you are ready to work with me. God bless you as I wait for your response. Dr. Kabore Wilfred
Re: [PATCH net-next 0/4] bridge: add support for PIM hello router ports
From: Nikolay Aleksandrov <niko...@cumulusnetworks.com> Date: Mon, 31 Oct 2016 13:21:01 +0100 > The first 3 patches of this set do minor cleanups and add some helpers to > the PIM header file. Patch 4 adds a way to detect mcast router ports via > PIM hello messages, they're marked as temporary and are not considered for > querier. There's more detailed information in patch 4's commit message. Looks pretty straight-forward and reasonable, series applied, thanks Nikolay.
[PATCH net-next 4/4] bridge: mcast: add router port on PIM hello message
When we receive a PIM Hello message on a port we can consider that it has a multicast router attached, thus it is correct to add it to the router list. The only catch is it shouldn't be considered for a querier. Using Daniel's description: leaf-11 leaf-12 leaf-13 \ |/ bridge-1 /\ host-11 host-12 - all ports in bridge-1 are in a single vlan aware bridge - leaf-11 is the IGMP querier - leaf-13 is the PIM DR - host-11 TXes packets to 226.10.10.10 - bridge-1 only forwards the 226.10.10.10 traffic out the port to leaf-11, it should also forward this traffic out the port to leaf-13 Suggested-by: Daniel Walton <dwal...@cumulusnetworks.com> Signed-off-by: Nikolay Aleksandrov <niko...@cumulusnetworks.com> --- net/bridge/br_multicast.c | 22 +- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 2136e45f5277..073d54afa056 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #if IS_ENABLED(CONFIG_IPV6) #include @@ -1638,6 +1639,21 @@ static void br_multicast_err_count(const struct net_bridge *br, u64_stats_update_end(>syncp); } +static void br_multicast_pim(struct net_bridge *br, +struct net_bridge_port *port, +const struct sk_buff *skb) +{ + unsigned int offset = skb_transport_offset(skb); + struct pimhdr *pimhdr, _pimhdr; + + pimhdr = skb_header_pointer(skb, offset, sizeof(_pimhdr), &_pimhdr); + if (!pimhdr || pim_hdr_version(pimhdr) != PIM_VERSION || + pim_hdr_type(pimhdr) != PIM_TYPE_HELLO) + return; + + br_multicast_mark_router(br, port); +} + static int br_multicast_ipv4_rcv(struct net_bridge *br, struct net_bridge_port *port, struct sk_buff *skb, @@ -1650,8 +1666,12 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br, err = ip_mc_check_igmp(skb, _trimmed); if (err == -ENOMSG) { - if (!ipv4_is_local_multicast(ip_hdr(skb)->daddr)) + if (!ipv4_is_local_multicast(ip_hdr(skb)->daddr)) { BR_INPUT_SKB_CB(skb)->mrouters_only = 1; + } else if (pim_ipv4_all_pim_routers(ip_hdr(skb)->daddr)) { + if (ip_hdr(skb)->protocol == IPPROTO_PIM) + br_multicast_pim(br, port, skb); + } return 0; } else if (err < 0) { br_multicast_err_count(br, port, skb->protocol); -- 2.1.4
[PATCH net-next 0/4] bridge: add support for PIM hello router ports
Hi, The first 3 patches of this set do minor cleanups and add some helpers to the PIM header file. Patch 4 adds a way to detect mcast router ports via PIM hello messages, they're marked as temporary and are not considered for querier. There's more detailed information in patch 4's commit message. Thanks, Nik Nikolay Aleksandrov (4): net: pim: add common pimhdr struct and helpers net: pim: add a helper to check for IPv4 all pim routers address net: pim: add all RFC7761 message types bridge: mcast: add router port on PIM hello message include/linux/pim.h | 81 +-- net/bridge/br_multicast.c | 22 - net/ipv4/ipmr.c | 2 +- net/ipv6/ip6mr.c | 2 +- 4 files changed, 95 insertions(+), 12 deletions(-) -- 2.1.4
Re: Hello
On Fri, Oct 14, 2016 at 05:17:36PM +0800, yuehaibing wrote: > subscribe linux-kernel > Try sending subscribe linux-kernel to majord...@vger.kernel.org
Re: hello
On Fri, Oct 14, 2016 at 05:18:10PM +0800, maowenan wrote: > i want to subscribe this mail, thank you very much. > Try sending subscribe netdev to majord...@vger.kernel.org
hello
i want to subscribe this mail, thank you very much.
Hello
subscribe linux-kernel
Hello !
We have seen your message and are glad to know you :) We love your work and hope to hear from you soon <3 Xx
Hello
Dear Friend, Your contact details came to me by recommendation, I am interested in investing in your country and I believe you have the capabilities of providing the needed assistance, solutions and advise in actualizing this, Let me know if you are willing to understake this task for me so we can discuss more. I hope to hear from you soon. Regards, Hasher Al Maktoum Chairman/Chief Executive Officer Dubai International Holding Company.
Hello
Hello, I am Amira, 24 years young female. Please i will like to discuss something important with you. Please Reply
Hello Beautiful,
Good day dear, i hope this mail meets you well? my name is Jack, from the U.S. I know this may seem inappropriate so i ask for your forgiveness but i wish to get to know you better, if I may be so bold. I consider myself an easy-going man, adventurous, honest and fun loving person but I am currently looking for a relationship in which I will feel loved. I promise to answer any question that you may want to ask me...all i need is just your attention and the chance to know you more. Please tell me more about yourself, if you do not mind. Hope to hear back from you soon. Jack.
hello
Hello, My name is jennifer I saw your profile today on solidot.org and get interested to know you, because you look very nice in your profile, here is my email address (jenniferdogo...@hotmail.com) please send me an email so that i will send you my photos. and tell you more about my self. mail me at (jenniferdogo...@hotmail.com) Remember distance, color, religion or tribe does not matter but love matters a lot. kiss my dear love jennifer
hello
Our Company Yokohama Rubber Company is interested in your services as collection representative in your country, you will be on 10% commission for all payment received on behalf of our company, if interested get back to me for details Email: chen.kumik...@outlook.com Thank you. Chen Kumiko
Hello
Hi, I am Kristi and i saw your contact through google page of your country which impress me and i feel we can be friends to share ideals and reason together for good,if not bad then let us know more about each other and i hope there will be no problem for us to be friend with no bad intention.You can also reply me through email(cplkristiba...@outlook.com) so that i can share details about myself, i will be waiting to hear from you soon.
∝ Hello
welcome to our electronics shop tv,camera,laptop,bike,dj,iphone,samsung product.50% discount for all of our product www. slooone .com
HELLO DEAR
Hello Dear, how are you doing hope fine, I am (Melissa Robert) by name. i will like to know more about you believing that friendship is a free gift of nature. Please get back to me as soon as possible through this my private Email. (mr4785...@gmail.com) thank you.
Hello DEAR
Hi my name is Mitchell H Peacock. I'm an American soldier currently in Syria fighting IS. This might be a little strange for you but Its very lonely out here. I miss normal human interaction and being loved by someone so I would love to get to know you and keep in touch with you. I'm loving, Funny and have a lot to offer emotionally.Tell me about you?hope to hear back from you soon Mitchell
Hello....!!
PEASE URGENT RESPONSE, I am Dr Paul Lukas,the Audit and Account Manager (A.D.B)Bank in Ouagadougou Burkina Faso,west africa I have a business transaction for you.In my department i discovered an abandoned Sum of US$10.2 Million Dollars.In an account that belongs to one of our late foreign customer who died on Air crash with his family member. ever Since he died,Nobody to claim the left over balance in the account. It is therefore upon this discovery that I decided to seek your assistance to present you as his business associate for my bank to transfer the funds to your account. If you accept i would give you the guide lines of how we can achieve this transfer of the balance $10.2 Million Dollars to your account. the fund will be share 50-50%. by both of us if you are capable to handle this transaction please furnish me the following information for more details. Full names:... Country:.. Your pravite phone number:... Your Age/Sex:.. Regards, Dr Paul Lukas.
Hello
Hello Good news for you laptop, camera, iPhone, TV, bicycle, gultar, watching Shipping is free iphone6s, 368euro www . elecdigitalvip .com if you do not want to receive our email. please reply to us, we will never send email to you
Hello There
I am Ms.Ella Golan, I am the Executive Vice President Banking Division with FIRST INTERNATIONAL BANK OF ISRAEL LTD (FIBI). I am getting in touch with you regarding an extremely important and urgent matter. If you would oblige me the opportunity, I shall provide you with details upon your response. Faithfully, Ms.Ella Golan
Hello There
I am Ms.Ella Golan, I am the Executive Vice President Banking Division with FIRST INTERNATIONAL BANK OF ISRAEL LTD (FIBI). I am getting in touch with you regarding an extremely important and urgent matter. If you would oblige me the opportunity, I shall provide you with details upon your response. Faithfully, Ms.Ella Golan
Hello There
I am Ms.Ella Golan, I am the Executive Vice President Banking Division with FIRST INTERNATIONAL BANK OF ISRAEL LTD (FIBI). I am getting in touch with you regarding an extremely important and urgent matter. If you would oblige me the opportunity, I shall provide you with details upon your response. Faithfully, Ms.Ella Golan
Hello There
I am Ms.Ella Golan, I am the Executive Vice President Banking Division with FIRST INTERNATIONAL BANK OF ISRAEL LTD (FIBI). I am getting in touch with you regarding an extremely important and urgent matter. If you would oblige me the opportunity, I shall provide you with details upon your response. Faithfully, Ms.Ella Golan
Hello There
I am Ms.Ella Golan, I am the Executive Vice President Banking Division with FIRST INTERNATIONAL BANK OF ISRAEL LTD (FIBI). I am getting in touch with you regarding an extremely important and urgent matter. If you would oblige me the opportunity, I shall provide you with details upon your response. Faithfully, Ms.Ella Golan
Hello
The prestigious Microsoft and AOL has set out and successfully organized a Sweepstakes. Your email address has subsequently won you 2,000,000.00 GBP(Two Million Great Britain Pound Sterling) as one of the jackpot winner in this draw. To file for your claim Please Contact your fiduciary agent. Here below are the details of your Fiduciary agent. You are to contact him via email Megan Burkhart Microsoft Promotion Award Team Head Sweepstakes Organizing Committee. Email: claims-des...@safe-mail.net Microsoft Team. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH net v2] bridge: stp: when using userspace stp stop kernel hello and hold timers
From: Nikolay Aleksandrov niko...@cumulusnetworks.com Date: Thu, 23 Jul 2015 11:01:05 -0700 From: Nikolay Aleksandrov ra...@blackwall.org These should be handled only by the respective STP which is in control. They become problematic for devices with limited resources with many ports because the hold_timer is per port and fires each second and the hello timer fires each 2 seconds even though it's global. While in user-space STP mode these timers are completely unnecessary so it's better to keep them off. Also ensure that when the bridge is up these timers are started only when running with kernel STP. Signed-off-by: Satish Ashok sas...@cumulusnetworks.com Signed-off-by: Nikolay Aleksandrov niko...@cumulusnetworks.com Applied, thanks. -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH net] bridge: stp: when using userspace stp stop kernel hello and hold timers
From: Satish Ashok sas...@cumulusnetworks.com Stop the kernel STP hello and hold timers when user-space STP is being used to stop generating both packets. These should be handled only by the respective STP which is in control. Also ensure that when the bridge is up these timers are started only when running with kernel STP. The kernel STP should function as before. Test done using user-space RSTP. Before patch: 14:55:35.043194 52:54:00:28:9d:4c 01:80:c2:00:00:00, 802.3, length 52: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1d, Config, Flags [none], bridge-id 8000.52:54:00:28:9d:4c.8001, length 35 message-age 0.00s, max-age 20.00s, hello-time 2.00s, forwarding-delay 15.00s root-id 8000.52:54:00:28:9d:4c, root-pathcost 0 ^^^ Kernel STP. 14:55:35.333807 52:54:00:28:9d:4c 01:80:c2:00:00:00, 802.3, length 53: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1w, Rapid STP, Flags [Learn, Forward], bridge-id 8000.52:54:00:28:9d:4c.8001, length 36 message-age 0.00s, max-age 20.00s, hello-time 3.00s, forwarding-delay 15.00s root-id 8000.52:54:00:28:9d:4c, root-pathcost 0, port-role Designated ^^^ User-space STP (rstpd, configured with 3s hello-time) After patch: 15:02:31.821511 52:54:00:28:9d:4c 01:80:c2:00:00:00, 802.3, length 52: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1d, Config, Flags [Topology change], bridge-id 8000.52:54:00:28:9d:4c.8002, length 35 message-age 0.00s, max-age 20.00s, hello-time 3.00s, forwarding-delay 15.00s root-id 8000.52:54:00:28:9d:4c, root-pathcost 0 15:02:34.821819 52:54:00:28:9d:4c 01:80:c2:00:00:00, 802.3, length 52: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1d, Config, Flags [Topology change], bridge-id 8000.52:54:00:28:9d:4c.8002, length 35 message-age 0.00s, max-age 20.00s, hello-time 3.00s, forwarding-delay 15.00s root-id 8000.52:54:00:28:9d:4c, root-pathcost 0 ^ Only user-space STP. Signed-off-by: Satish Ashok sas...@cumulusnetworks.com Signed-off-by: Nikolay Aleksandrov niko...@cumulusnetworks.com --- net/bridge/br_stp.c | 5 +++-- net/bridge/br_stp_if.c| 15 ++- net/bridge/br_stp_timer.c | 4 +++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c index b4b6dab9c285..ed74ffaa851f 100644 --- a/net/bridge/br_stp.c +++ b/net/bridge/br_stp.c @@ -209,8 +209,9 @@ void br_transmit_config(struct net_bridge_port *p) br_send_config_bpdu(p, bpdu); p-topology_change_ack = 0; p-config_pending = 0; - mod_timer(p-hold_timer, - round_jiffies(jiffies + BR_HOLD_TIME)); + if (p-br-stp_enabled == BR_KERNEL_STP) + mod_timer(p-hold_timer, + round_jiffies(jiffies + BR_HOLD_TIME)); } } diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index a2730e7196cd..962a149b117a 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -48,7 +48,8 @@ void br_stp_enable_bridge(struct net_bridge *br) struct net_bridge_port *p; spin_lock_bh(br-lock); - mod_timer(br-hello_timer, jiffies + br-hello_time); + if (br-stp_enabled == BR_KERNEL_STP) + mod_timer(br-hello_timer, jiffies + br-hello_time); mod_timer(br-gc_timer, jiffies + HZ/10); br_config_bpdu_generation(br); @@ -127,6 +128,7 @@ static void br_stp_start(struct net_bridge *br) int r; char *argv[] = { BR_STP_PROG, br-dev-name, start, NULL }; char *envp[] = { NULL }; + struct net_bridge_port *p; r = call_usermodehelper(BR_STP_PROG, argv, envp, UMH_WAIT_PROC); @@ -140,6 +142,12 @@ static void br_stp_start(struct net_bridge *br) if (r == 0) { br-stp_enabled = BR_USER_STP; br_debug(br, userspace STP started\n); + /* Stop hello and hold timer */ + spin_lock_bh(br-lock); + del_timer(br-hello_timer); + list_for_each_entry(p, br-port_list, list) + del_timer(p-hold_timer); + spin_unlock_bh(br-lock); } else { br-stp_enabled = BR_KERNEL_STP; br_debug(br, using kernel STP\n); @@ -156,12 +164,17 @@ static void br_stp_stop(struct net_bridge *br) int r; char *argv[] = { BR_STP_PROG, br-dev-name, stop, NULL }; char *envp[] = { NULL }; + struct net_bridge_port *p; if (br-stp_enabled == BR_USER_STP) { r = call_usermodehelper(BR_STP_PROG, argv, envp, UMH_WAIT_PROC); br_info(br, userspace STP stopped, return code %d\n, r); /* To start timers on any ports left in blocking */ + mod_timer(br-hello_timer, jiffies + br-hello_time
Re: [PATCH net] bridge: stp: when using userspace stp stop kernel hello and hold timers
On Thu, 23 Jul 2015 09:07:37 -0700 Nikolay Aleksandrov niko...@cumulusnetworks.com wrote: + /* Stop hello and hold timer */ + spin_lock_bh(br-lock); + del_timer(br-hello_timer); + list_for_each_entry(p, br-port_list, list) + del_timer(p-hold_timer); + spin_unlock_bh(br-lock); Wouldn't it be easier to use del_timer_sync here? -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH net] bridge: stp: when using userspace stp stop kernel hello and hold timers
On Thu, 23 Jul 2015 19:05:56 +0200 Nikolay Aleksandrov niko...@cumulusnetworks.com wrote: On 07/23/2015 06:59 PM, Stephen Hemminger wrote: On Thu, 23 Jul 2015 09:07:37 -0700 Nikolay Aleksandrov niko...@cumulusnetworks.com wrote: + /* Stop hello and hold timer */ + spin_lock_bh(br-lock); + del_timer(br-hello_timer); + list_for_each_entry(p, br-port_list, list) + del_timer(p-hold_timer); + spin_unlock_bh(br-lock); Wouldn't it be easier to use del_timer_sync here? I think it should work. Also I have an error in the commit message about the kernel BPDU sending which I need to correct. I'll prepare a v2 with your suggestion and fixed commit message. The one thing to watch out for with del_timer_sync is that the timer routine and the caller can't be using the same lock otherwise timer will be spinning waiting to get lock that is held by caller who is waiting for timer. -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH net] bridge: stp: when using userspace stp stop kernel hello and hold timers
On 07/23/2015 07:13 PM, Stephen Hemminger wrote: On Thu, 23 Jul 2015 19:05:56 +0200 Nikolay Aleksandrov niko...@cumulusnetworks.com wrote: On 07/23/2015 06:59 PM, Stephen Hemminger wrote: On Thu, 23 Jul 2015 09:07:37 -0700 Nikolay Aleksandrov niko...@cumulusnetworks.com wrote: + /* Stop hello and hold timer */ + spin_lock_bh(br-lock); + del_timer(br-hello_timer); + list_for_each_entry(p, br-port_list, list) + del_timer(p-hold_timer); + spin_unlock_bh(br-lock); Wouldn't it be easier to use del_timer_sync here? I think it should work. Also I have an error in the commit message about the kernel BPDU sending which I need to correct. I'll prepare a v2 with your suggestion and fixed commit message. The one thing to watch out for with del_timer_sync is that the timer routine and the caller can't be using the same lock otherwise timer will be spinning waiting to get lock that is held by caller who is waiting for timer. Actually I just noticed the locking was wrong in the patch, also we should use del_timer() only because a spin_lock is acquired before that and cannot use the blocking del_timer_sync() inside. I'll fix it all up in the second version. -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH net v2] bridge: stp: when using userspace stp stop kernel hello and hold timers
From: Nikolay Aleksandrov ra...@blackwall.org These should be handled only by the respective STP which is in control. They become problematic for devices with limited resources with many ports because the hold_timer is per port and fires each second and the hello timer fires each 2 seconds even though it's global. While in user-space STP mode these timers are completely unnecessary so it's better to keep them off. Also ensure that when the bridge is up these timers are started only when running with kernel STP. Signed-off-by: Satish Ashok sas...@cumulusnetworks.com Signed-off-by: Nikolay Aleksandrov niko...@cumulusnetworks.com --- v2: fixed a locking issue and the commit message which was wrong Stephen: I didn't use the del_timer_sync() because br-lock is acquired in br_stp_start() and we shouldn't block. net/bridge/br_stp.c | 5 +++-- net/bridge/br_stp_if.c| 13 - net/bridge/br_stp_timer.c | 4 +++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c index b4b6dab9c285..ed74ffaa851f 100644 --- a/net/bridge/br_stp.c +++ b/net/bridge/br_stp.c @@ -209,8 +209,9 @@ void br_transmit_config(struct net_bridge_port *p) br_send_config_bpdu(p, bpdu); p-topology_change_ack = 0; p-config_pending = 0; - mod_timer(p-hold_timer, - round_jiffies(jiffies + BR_HOLD_TIME)); + if (p-br-stp_enabled == BR_KERNEL_STP) + mod_timer(p-hold_timer, + round_jiffies(jiffies + BR_HOLD_TIME)); } } diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index a2730e7196cd..4ca449a16132 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -48,7 +48,8 @@ void br_stp_enable_bridge(struct net_bridge *br) struct net_bridge_port *p; spin_lock_bh(br-lock); - mod_timer(br-hello_timer, jiffies + br-hello_time); + if (br-stp_enabled == BR_KERNEL_STP) + mod_timer(br-hello_timer, jiffies + br-hello_time); mod_timer(br-gc_timer, jiffies + HZ/10); br_config_bpdu_generation(br); @@ -127,6 +128,7 @@ static void br_stp_start(struct net_bridge *br) int r; char *argv[] = { BR_STP_PROG, br-dev-name, start, NULL }; char *envp[] = { NULL }; + struct net_bridge_port *p; r = call_usermodehelper(BR_STP_PROG, argv, envp, UMH_WAIT_PROC); @@ -140,6 +142,10 @@ static void br_stp_start(struct net_bridge *br) if (r == 0) { br-stp_enabled = BR_USER_STP; br_debug(br, userspace STP started\n); + /* Stop hello and hold timers */ + del_timer(br-hello_timer); + list_for_each_entry(p, br-port_list, list) + del_timer(p-hold_timer); } else { br-stp_enabled = BR_KERNEL_STP; br_debug(br, using kernel STP\n); @@ -156,12 +162,17 @@ static void br_stp_stop(struct net_bridge *br) int r; char *argv[] = { BR_STP_PROG, br-dev-name, stop, NULL }; char *envp[] = { NULL }; + struct net_bridge_port *p; if (br-stp_enabled == BR_USER_STP) { r = call_usermodehelper(BR_STP_PROG, argv, envp, UMH_WAIT_PROC); br_info(br, userspace STP stopped, return code %d\n, r); /* To start timers on any ports left in blocking */ + mod_timer(br-hello_timer, jiffies + br-hello_time); + list_for_each_entry(p, br-port_list, list) + mod_timer(p-hold_timer, + round_jiffies(jiffies + BR_HOLD_TIME)); spin_lock_bh(br-lock); br_port_state_selection(br); spin_unlock_bh(br-lock); diff --git a/net/bridge/br_stp_timer.c b/net/bridge/br_stp_timer.c index 7caf7fae2d5b..5f0f5af0ec35 100644 --- a/net/bridge/br_stp_timer.c +++ b/net/bridge/br_stp_timer.c @@ -40,7 +40,9 @@ static void br_hello_timer_expired(unsigned long arg) if (br-dev-flags IFF_UP) { br_config_bpdu_generation(br); - mod_timer(br-hello_timer, round_jiffies(jiffies + br-hello_time)); + if (br-stp_enabled != BR_USER_STP) + mod_timer(br-hello_timer, + round_jiffies(jiffies + br-hello_time)); } spin_unlock(br-lock); } -- 2.4.3 -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html