It is sad that Net-SNMP only has command line tools, but they are really powerful and easy to use. Do we need similar tools in #SNMP Suite? Why not? But how?
I really hate to write command line tools because it is always hard to parse the arguments. However, Miguel (Mono lead) posted something wonderful here which attracted my attention. It is a discussion about command line parser so I soon decided to give Mono.Options a try.
And it works perfect! So I have just checked in the latest TestGet sample, who works similar to Net-SNMP snmpget. However, the command line syntax is slightly different.
For example,
Net-SNMP: snmpget -c public -V v2c 127.0.0.1 1.3.6.1.2.1.1.1.0
#SNMP : snmpget -c=public -V=v2 127.0.0.1 1.3.6.1.2.1.1.1.0
Well, in fact #SNMP accepts more types of command line input because of Mono.Options, so please play with it and leave me your comments.
Next step I am going to update other samples. Stay tuned.
My name is Lex Li. I love pop music and badminton. Now I live in Shanghai, P.R. China.
Disclaimer
This is a personal web page. The views expressed on this blog are mine and do not necessarily reflect the views of my current employer.
I am currently employed by Morgan Stanley.
I am currently employed by Morgan Stanley.
February 28, 2009
Product Review: Chrome-Look Firefox
Well, it is sad that Google Chrome does not yet support Windows 7 Beta. So I fall back to Firefox and install Total ReChrome add-on to achieve a Chrome look.
The steps are simple,
The final look is like this.
(Update: This trick does not yet work for FF 3.1 Beta 3. So I fall back to Chrome, but this time I use the dev channel so it works fine on Win7.)
The steps are simple,
- Install Chromifox Basic skin from https://addons.mozilla.org/en-US/firefox/addon/8782
- Install Total ReChrome from https://addons.mozilla.org/en-US/firefox/addon/9322
- Install Personal Menu from https://addons.mozilla.org/en-US/firefox/addon/3895
The final look is like this.
(Update: This trick does not yet work for FF 3.1 Beta 3. So I fall back to Chrome, but this time I use the dev channel so it works fine on Win7.)
Labels:
Firefox,
Google,
Open Source
February 22, 2009
#SNMP Design: Now We GET BULK
GET BULK is an enhanced GET NEXT, which can boost performance significantly.. So how to understand that? You can ask the agent to return you ten objects after the seed OID you send in the request message. So in this case one GET BULK operation replaces 10 GET NEXT operations.
So now we have GET BULK automatically involved if you play with Manager.GetTable in SNMP v2c. Please check our the latest source code in the repository to see the changes. Well, we cannot yet handle sparse tables and multi-index tables at this moment. But you can expect continuous improvement all along the way.
Stay tuned.
So now we have GET BULK automatically involved if you play with Manager.GetTable in SNMP v2c. Please check our the latest source code in the repository to see the changes. Well, we cannot yet handle sparse tables and multi-index tables at this moment. But you can expect continuous improvement all along the way.
Stay tuned.
Labels:
#SNMP,
.NET,
Open Source
#SNMP Design: Month Update
TwinTower was released about a month ago, so here is a month update from the team.
People
We have three new members on board this month. Two of them are from New Zealand, while one from France. Robert and Patrick still works on the compiler specifications, so lately you won't see much news from them. But Chris, our dear "floodman", did a lot of contribution these days. Well, as a result, a lot of changes were checked in and we already broke a lot of old interfaces to reach a higher level.
CrossRoad Beta 1
I had tried to keep compatibility to a certain degree, but failed at last. I realized this clearly this morning so the original plan to ship a TwinTower Refresh is going to be cancelled. Instead, I published the very first beta of CrossRoad here. This Beta 1 is based on Change Set 18569.
Accumulated changes are,
Remaining
If we take a look at the original plan listed here for 2.0 release, you may notice that only a few small pieces are missing besides 3708. So we are now close to a new release.
Well, before the final release we still have a lot of code to test, refactor, and tune. So please kindly advise and report issues. Stay tuned.
People
We have three new members on board this month. Two of them are from New Zealand, while one from France. Robert and Patrick still works on the compiler specifications, so lately you won't see much news from them. But Chris, our dear "floodman", did a lot of contribution these days. Well, as a result, a lot of changes were checked in and we already broke a lot of old interfaces to reach a higher level.
CrossRoad Beta 1
I had tried to keep compatibility to a certain degree, but failed at last. I realized this clearly this morning so the original plan to ship a TwinTower Refresh is going to be cancelled. Instead, I published the very first beta of CrossRoad here. This Beta 1 is based on Change Set 18569.
Accumulated changes are,
- RFC definition of Request ID in message body is honoured. Related constructors and methods are heavily updated. (Note that this is a breaking change.)
- Chris' version of Listener and related patches integrated. This should significantly improve performance. Please stop using obsolete classes such as TrapListener.
- The first version of #SNMP MIB Compiler is further enhanced. The GUI is now feature complete.
- The second version of #SNMP MIB Browser now has less features but integrates with the compiler.
- Many bug fixes and small changes.
Remaining
If we take a look at the original plan listed here for 2.0 release, you may notice that only a few small pieces are missing besides 3708. So we are now close to a new release.
Well, before the final release we still have a lot of code to test, refactor, and tune. So please kindly advise and report issues. Stay tuned.
Labels:
#SNMP,
.NET,
Open Source
February 15, 2009
#SNMP Design: Hints about Future
Because of our latest contributors, this project has a chance to improve in the following areas,
1. Performance. Currently Chris already provides a lot of patches to boost performance. We shall see more patches coming.
2. Compiler. I think I can help enhance the GUI, but the key point is the underlying compiler engine. So Patrick and Robert will work on that.
3. Browser. Steve and I will continue to work on the Browser. Hope that we can finish the remaining items such as the notification panel and load/unload.
Stay tuned.
1. Performance. Currently Chris already provides a lot of patches to boost performance. We shall see more patches coming.
2. Compiler. I think I can help enhance the GUI, but the key point is the underlying compiler engine. So Patrick and Robert will work on that.
3. Browser. Steve and I will continue to work on the Browser. Hope that we can finish the remaining items such as the notification panel and load/unload.
Stay tuned.
Labels:
#SNMP,
.NET,
Open Source
MonoDevelop on Windows Progress
I just could not help dreaming of testing #SNMP inside MD some day on Windows 7.
Well, it should come some day soon.
Well, it should come some day soon.
February 14, 2009
#SNMP Design: Meet Our Compiler Guys
I should say it is nice to hear from Patrick and Robert this morning. It makes today really special.Patrick and Robert have experience on compiler/parser in the past, so that when they played with my poor MIB compiler design soon problems arise. So that they plan to write a new compiler with a classic approach, BNF.
It is interesting to know BNF can be used to write compilers because I only hear about YACC (Malcolm's MIB compiler was based on YACC, but I could not maintain that complex project).
I believe that when most of us were that young, we dreamt of writing our own C/C++ compilers. Well, not all of us achieve that ultimate goal, but Patrick and Robert decided to help on #SNMP and contribute a new MIB compiler.
Right now, these guys are working hard on the specifications, so let's be patient. :) I will keep you updated with the latest news. Stay tuned.
Labels:
#SNMP,
.NET,
Open Source
#SNMP Design: Push Me Hard, Chris
This post is dedicated to Chris, who pushed me really hard this week.Well, it is our luck to have Chris on board. He started to send me his ideas about #SNMP earlier this week via emails and kind of flooded my mail box. :) Therefore, I decided to publish some key points with you now so that you can begin your imagination.
Socket sharing
If you still have old versions of #SNMP at hand, you will notice that ISnmpMessage derived classes are also IDisposable. Why? Socket objects were shared at object level, so if you sent such a message several times, no new socket objects were created.
I removed such sharing later when I decided to get rid of IDisposable. But what I did not realize is that this removal of shared sockets hurts performance significantly.
Now Chris points out that and tests on a prototyped implementation. His test results reveal that if we can share a socket object during a normal WALK operation (which consists of several GET NEXT operation under the hood), we improve the performance a lot.
We shall work on this topic immediately in order to work out a convenient implementation in the library. But I really want to make this as transparent as possible. It would be perfect if we can avoid API changes.
Obsolete Items
Sure that we have a lot of obsolete items at hand. Chris suggests that we remove some of them at a certain time. Now my plan is to remove most obsolete items after TwinTower Refresh.
However, there are still items that hard to remove, such as ToBytes in low levels and some obsolete constructors only used in unit tests. We should leave them along for a longer term.
Late Initialization and Deferred Calculation
There are a few methods in #SNMP generating the same bytes for every calls. There are also a few constructors that store raw bytes from incoming packets where this bytes were never used again in the following process.
Such overheads hurt performance a lot because they consume extra resources but offer nothing worth that while.
We are going to improve in this area, as Chris already has his local versions running well.
Release Build or Debug Build
I believe that most of you feel puzzled that when I release this library, a pdb file is aside. So is this a Debug build?
Chris provides some evidence lately, so I will do a research on that later. I know that I use Release build in the project settings but ask to generate a pdb file aside, but how it turn out to have some debugging specific attributes is surely a question.
ObjectIdentifier Related
Well, we need to add a lot of helpers for this class.
Others
Asynchronous methods.
Exceptions.
A new Listener implementation.
Regionerate.http://www.rauchy.net/
I tried my best to answer Chris' questions, but I believe our discussion scheduled today should be very interesting. Looking forward to that.
After writing the first few paragraphs, I had a chance to chat with Patrick, another new team mate, for a few minutes. The next post will provide you more information. Stay tuned.
Labels:
#SNMP,
.NET,
Open Source
February 08, 2009
#SNMP Design: An Extra Refresh for TwinTower
We did a Refresh for UnicornHorn last year and now a similar Refresh for TwinTower is on its way. Note that I am talking about the Library. The Browser and Compiler will be a separate story.
Big changes are,
Big changes are,
- More obsolete elements. This points out what we are going to change in CrossRoad. So you should really consider migration from time to time.
- Inheritance changes. ISnmpMessage is no longer derived from ISnmpPdu or ISnmpData. Many functions are pushed down or pulled up.
- MIB files are removed from resources. So the library is only around 140-KB at this moment (it was 2.2MB in UnicornHorn Refresh). *.module files are included instead.
- Table OID validation becomes stricter.
Labels:
#SNMP,
.NET,
Open Source
February 07, 2009
Product Review: Innovation from Stardock Again, Fences
You never know what the Stardock guys are planning for the next month. And this time Fences hits me a lot. I know that I cannot explain its coolness well, so suggest you pay a visit to this page. You will regret if you don't do that just now :)
However, I have problems downloading the installer from that page. So I simply launch Impulse and install Fences from within. It is lightening fast. Awesome.
However, I have problems downloading the installer from that page. So I simply launch Impulse and install Fences from within. It is lightening fast. Awesome.
Labels:
Others
#SNMP Design: REPORT status
Finally I know REPORT is only implemented in SNMP v3 (but some agents support it in v2). Therefore, I will spend more time on it for Trident.
Here is a nice post about SUN's agent and its support on REPORT.
http://blogs.sun.com/adikhit/entry/snmp_exceptions_in_sunmc_agent
Here is a nice post about SUN's agent and its support on REPORT.
http://blogs.sun.com/adikhit/entry/snmp_exceptions_in_sunmc_agent
Labels:
#SNMP,
Open Source
February 01, 2009
CD/DVD Emulation Tool for Windows 7
I have been testing Windows 7 Public Beta for about a week. It runs really smooth except that Daemon Tools cannot be installed correctly. Windows 7 actually displays a notification when I try to install such software, so I can know it is not yet compatible with this Beta build.
However, I am in bad need of a tool like Daemon Tools to install some products from CD/DVD image files. Then I turn to Virtual CloneDrive. You may wonder if this tool works fine. Yup, it works perfectly, but only one problem may stop you. What is that? Its installer will tell you Windows 7 is not supported, so it refuses to start installation.
Then how did I install that? You have to cheat the installer by opening its properties dialog from Windows Explorer. Then in Compatibility tab tell it to run in Vista mode (or XP mode). Now let's run it again. OK, I hope you find this tip useful.
However, I am in bad need of a tool like Daemon Tools to install some products from CD/DVD image files. Then I turn to Virtual CloneDrive. You may wonder if this tool works fine. Yup, it works perfectly, but only one problem may stop you. What is that? Its installer will tell you Windows 7 is not supported, so it refuses to start installation.
Then how did I install that? You have to cheat the installer by opening its properties dialog from Windows Explorer. Then in Compatibility tab tell it to run in Vista mode (or XP mode). Now let's run it again. OK, I hope you find this tip useful.
Labels:
Microsoft
How to Force Eclipse/XMind to Run in English
It is quite convenient that more and more software vendors provide multi-lingual products. However, I don't think all of them hire good translators. Therefore, in order to understand how to use the tools smartly, I have to pick up English from some configuration dialog.
But you may notice Eclipse based products such as XMind do not provide such a dialog. So how to force it to display English? I did not realize this trick until I read this IBM article. Right, it is tricky to modify some INI file.
In my case, I opened up xmind.ini in XMind installation folder, and appended the following lines to its end,
But you may notice Eclipse based products such as XMind do not provide such a dialog. So how to force it to display English? I did not realize this trick until I read this IBM article. Right, it is tricky to modify some INI file.
In my case, I opened up xmind.ini in XMind installation folder, and appended the following lines to its end,
-Duser.language=enSaved it and launched XMind again. Oh, it works as expected. Nice.
-Duser.country=US
Labels:
Eclipse,
Open Source
Subscribe to:
Posts (Atom)
