[guy@sirius-cybernetics-corporation.com: IPMT specen.]

Hi there all you internet people! I hope your all well, I emailed this to everyone yesterday and was dismayed when nobody commented on it. Only this morning did I notice that I mailed it to lir-wg@sirius-cybernetics-corporation.com rather than lir-wg@ripe.net by mistake )-: Hmm. Please enjoy your reading this mail. Thaaaank youuuuu. So here is my considered and very close to final draft of the top down specs for the IMPT program. You are all invited to tear it to peaces in the purpose of constructive whatsit. I would ask, if you are going to point out a problem, at least also point out a solution. ________________________________________________________________________ Questions: 1. Which platforms are we looking to support? I think that UNIX platforms would be easier for development, and would cover the needs of the majority of users. Also, ala Perl. A gui provides windows users with an opportunity to use the sotware too. The same could be achieved on a win32 platform under visual basic, but this would strain the GNU lisence considerable, as well as denying use by the UNIX users amongst us. Miscrosoft have a web platform and we could theortically write the whole thing in ASP. MS's web server is NOT free however, and ASP, in my opinion is less open than Perl. An apache web server is free, and I believe that they even have a windows version. Perl exists for windows. I don't recommend this setup, but I believe that it's better than ASP under a MS web server. Equally, the majority of people would find Perl easy and familiar. Many excellent, free, IP libraries already exist. They are also exstensible. 2. What's up with this IPv6 thing? Since, AFAICT, IPv6 still isn't _finished_ finished, let's leave room for it, but not impliment it yet. When the time comes, and it is polished and ready, we can slot in IPv6 support.
General functionality:
IPMT should provide the LIRHostmasters with list, create, update, and delete access to information regarding their LIR's IPV4 allocations. These actions must be undoable where necessary. Basic validity checks will be performed on all input.
IPMT should provide the LIRHostmasters with list, create, update, and delete access to information regarding their LIR's IPV4 assignments. These actions must be undoable where necessary. Basic validity checks will be performed on all input.
Questions: 1. How do we store this information? How about a back end database capable of being acccessed by the DBI for the following reasons: a. If you don't want to run a database, the DBI can be used with a CSV filei. (Beware multiple users about data integrity). b. SQL shouldn't change too much from one DBMS to another, and the DBI code stays the same. c. It's free (the DBI) and talks to free DBMS's like mysql and postgreSQL. 2. In which case, how will data modifications be achieved? We're just talking 'bout plain old SQL here. 3. How will we make updates undoable? a. So, you changed the wrong customer's address by accident and now you need to change it back, but you can't find the original scrap of paper. How do you reverse the change? We're are talking about keeping logs, here, right? It would be simple if every DBMS was the same, but since we cannot rely on that, we need a database independent solution. I recommend a table containing this information, accessible in the same way by the DBI. b. We can embed enough information in the tables store a chronological history of what has happened to a particular and restore previous incarnations. 4. How will be make the software multi user proof? I haven't figured this one out yet. There is a really easy way with MySQL, but that doesn't scale to other DBMS systems. 5. Which checks need be done? I believe the following are crucial: o IP Address Space ranges must not overlap each other. o IP ranges must be entered correctly, or else give error messages. o Non IP information, such as customer names and addresses should be unique. o IP addresses should not be on illegal bit boundaries. o Assignment windows should not be exceeded for any given customer. 6. How should IP ranges be inserted? By this I am asking about the mechanisms for choosing how to assign out of one's allocation. I recommend an auto-manual solution wherby the computer is able to work out exactly which IP ranges matching your criteria are free and assignable, and allign them all nicely along the bit boundaries. The human can then choose out of a list which IP range to assign. The advantages are that you don't have to do too much math yourself, but neither are you stuch when it comes to migrating existing allocations into the program. 7. How much non IP info should be stored in the database, such as customer address, names, contact...? My view is that enough should be stored to be able to autogenerate an intenum object. Remaining problems: 1. With regard to storing both allocation information assignment information, perhaps also, customer information: What kind of data structure will we use? What about people with multiple registries? 2. We still need to tackle the mutli user problem. 3. If assigning something would exceed the window, we need to have some process. Autogenerate a 141? Maybe. If we did, how do we tell the software that the assignment has been approved? Have a toggle? Perhaps, but this need furthere discussion.
IPMT should allow the LIRHostmasters to receive requests for IPV4 assignments from the customers of their LIR and allow them to process them.
Questions: 1. What does this mean? It is very general. (I should have spotted this during the reqs stage and primpted for more clarity. My bad.) Does the IMPT program sit on the end of an email address and parse 141 forms? My belief is that IMPT needs to be simple. By all means, have an inetnum autogenerator built into the program as that's easy. As for "allowing the LIRHostmasters to receive requests", I think that this means "Not getting in the way". All companies and organisations have their own policies and protocols for dealing with customers. We need an easy GUI for entering cust info and making assignments. Automise what we can and simplify what we can't. Clearly this needs further discussion WRT details! 2. Process them: ie integrate them into their DB? Do we save customer information accross multiple assignments, or keep a separate customer record for each assignment? I strongly opt for the former. This suggests that a customer object/table in the database would be a GOOD THING (tm).
IPMT should allow LIRHostmasters to send well-formatted email requests for new IPv4 assignments to the RIPE NCC and allow the LIRHostmasters to receive and process responses from the RIPE NCC.
IPMT should allow LIRHostmasters to send well-formatted email requests for new IPv4 allocations to the RIPE NCC and allow the LIRHostmasters to receive and process responses from the RIPE NCC.
Questions: 1. Which requests should be sent? For assignments, I believe that the following are non negotiable: a. inetnum objects, (whether or not the customer already has a person object- thats's what auto-1 is for.) So how do we tell IMPT when RIPE assigns the person object to a customer? How about hourly reminders so that the human is reminded to reguraly check his/her email and add the contact info when it is ready? b. 141 forms. These can be a right illigitimate child. Cull information from the DB and automate it as much as possible. I believe that any required use of the RIPE Whois is an example of a defincieny in the scope of data stored by the backend DBMS. For allocations, I believe these _are_ negotiable: Requests for more space. It's nice having this automated. However, how easy would it be to program? I've a feeling, letting the hostmaster know that NOW is a good time to get new space might have to do. And most hostsmasters are bright enough to know this themselves. Problems: 1. Basicaly, this needs low level refining. What and how. 2. To what extent do we need to deal with replies from RIPE NCC? Should we attempt to flag the users attention or parse the email itself? Should we extract any ticket numbers? What do we do with them?
User Interface:
LIRHostmasters should be able to conveniently access IPMT functions from a wide range of Desktop Operating Systems, possibly including non-modern, non-Unix-like ones. A GUI interface is the minimal acceptable convenience level.
A less-convenient interface to IPMT for more complex functions and administration is acceptable.
I think I discussed most of this at the top. Questions remaining: 1. Java script enabled? My choice would be a cautious yes... Maybe an old Javascript just for keeping state and sanatizing input (performing above checks?), so that most browsers won't choke. 2. Fancy shmancy HTML? I'm no web designer. Not sure how thos would be too much a problem as long as its multi broswer compliant. 3. Cookies? Not, should we use them, but, do we need them? 4. Keeping state otherwise? See, I think we need to get this far. 5. Who will design it so it looks pretty? Who among you does designs thinsg to be easy to use, and to look purdy? ________________________________________________________________________ So, hows about letting me know what y'all think? Thanks, Guy -- Guy Vegoda \ guy@vegoda.org *Please do not send html* NIC: GUY-RIPE \ guy@cryptography.org.uk *attachments* Unix, Linux Hobbyist \ +44(0)20 7961 8318 (work) www.thenakedfrenchman.com \ +44(0)958 469 532 (cell)

On Thu, Apr 19, 2001 at 11:48:29AM +0100, Guy Vegoda wrote: I would like PHP as a platform rather than perl. Reasons: 1. It's quite likely to be faster than Perl. 2. It enables people with mod_php but not mod_perl to install IMPT :) 3. It's likely to be easier to do the front-end bits in PHP because of it's built in primitives. Niall
Guy Vegoda \ guy@vegoda.org *Please do not send html* NIC: GUY-RIPE \ guy@cryptography.org.uk *attachments* Unix, Linux Hobbyist \ +44(0)20 7961 8318 (work) www.thenakedfrenchman.com \ +44(0)958 469 532 (cell)
-- Enigma Consulting Limited: Security, UNIX and telecommunications consultants. Address: Floor 2, 45 Dawson Street, Dublin 2, Ireland. http://www.enigma.ie/

I would like PHP as a platform rather than perl.
Reasons: 1. It's quite likely to be faster than Perl.
Will speed be such an issue? Will the back end DBMS not limit the speed quite a lot, too?
2. It enables people with mod_php but not mod_perl to install IMPT :)
I'd not have thought that mod_perl is such a hassle to install. Anyhow, even without it, apache can still run perl programs, and most people already do run it. I think you will find the majority of the users being familiar with Perl already.
3. It's likely to be easier to do the front-end bits in PHP because of it's built in primitives.
For the front end stuff, we can still use PHP or JavaScript if people are desperate to do so. Easier? No. Faster, prettier, better? Yes, you're right on that score. Front-end aside, It might be be a smart idea to use Perl for the back end, unless you propose an alternative to the DBI. I think it would be interesting to take a straw pole on this issue, anyhow. ATB, Thanks for your comments, Guy -- Guy Vegoda \ guy@vegoda.org *Please do not send html* NIC: GUY-RIPE \ guy@cryptography.org.uk *attachments* Unix, Linux Hobbyist \ +44(0)20 7961 8318 (work) www.thenakedfrenchman.com \ +44(0)958 469 532 (cell)

On Thu, Apr 19, 2001 at 01:06:20PM +0100, Guy Vegoda wrote: Hey Guy,
Will the back end DBMS not limit the speed quite a lot, too?
Surely not, especially if a database with a native IP type (for example, Postgres) is used, or an equivalent kludge.
I think you will find the majority of the users being familiar with Perl already.
Yes, as you suggest, some perl is necessary. The question is how much.
Easier? No. Faster, prettier, better? Yes, you're right on that score.
I have worked on a similar program in the past, and the hardest bit of it was getting the front-end code in a manageable and easily extendable/ modifyable state. Even with CPAN libraries the code is quite complex. PHP has the potential to make that a lot easier.
I think it would be interesting to take a straw pole on this issue, anyhow.
Well, I think I can be pretty sure that Perl will win, but that doesn't mean we couldn't save ourselves a lot of effort by being clever. Niall -- Enigma Consulting Limited: Security, UNIX and telecommunications consultants. Address: Floor 2, 45 Dawson Street, Dublin 2, Ireland. http://www.enigma.ie/

Hiya, This should be moved away from lir-wg as I suspect this topic is getting spammy and off-topic for most readers (it's nothing to do with setting LIR/RIR policy). Guy, can you set up a small mailing list to deal with IPMT and request subscribers ? With regards the mail thread, I've written quite a few HTML/WWW front ends using CGI.pm/PERL, and they are even modular - subject to the limitations of the perl module/package structure. See http://dcf.djp.net/141/ and http://dcf.djp.net/141/source/ The important thing is that the front end must be simple. We require forms and tables, a little javascript (submit on change and the like) nothing fancy. That is very simple using the CGI.pm perl module and the advantage of using perl throughout is a pretty big one. Cheers Dave On Thu, 19 Apr 2001, Niall Richard Murphy wrote: ->On Thu, Apr 19, 2001 at 01:06:20PM +0100, Guy Vegoda wrote: -> ->Hey Guy, -> ->> Will the back end DBMS not limit the speed quite a lot, ->> too? -> ->Surely not, especially if a database with a native IP type ->(for example, Postgres) is used, or an equivalent kludge. -> ->> I think you will find the majority of the users being ->> familiar with Perl already. -> ->Yes, as you suggest, some perl is necessary. The question is how much. -> ->> Easier? No. Faster, prettier, better? Yes, you're ->> right on that score. -> ->I have worked on a similar program in the past, and the hardest bit of ->it was getting the front-end code in a manageable and easily extendable/ ->modifyable state. Even with CPAN libraries the code is quite complex. ->PHP has the potential to make that a lot easier. -> ->> I think it would be interesting to take a straw pole ->> on this issue, anyhow. -> ->Well, I think I can be pretty sure that Perl will win, but that doesn't ->mean we couldn't save ourselves a lot of effort by being clever. -> ->Niall -> ->-- ->Enigma Consulting Limited: Security, UNIX and telecommunications consultants. ->Address: Floor 2, 45 Dawson Street, Dublin 2, Ireland. ->http://www.enigma.ie/ ->

Well, I think I can be pretty sure that Perl will win, but that doesn't mean we couldn't save ourselves a lot of effort by being clever.
Niall
Probably you are right vis a vis front end. However, JavaScript might be equally worth considering. All I'd say - and this is just a suggestion - is that I feel the choice of language will affect who volunteers to help code. I believe that fewer people know PHP, and a smaller developer base might not necessarily be a good thing. Dave Pratt mentioned that he also had some experience with this. That means that both of you have more experience than me because the only front end I have written is based on the standard CGI module, is server based and is about as pretty as a land fill site. I recommend that the two of you hammer away at this together. BTW, please keep the discussions on the lir-wg list; Maldwyn had this to say:
Ps, Dave Pratt's point is a valid one - do you think it will be worth creating a separate majordomo-list for the developers of IPMT?
I suggest Manuel brings this up in the Tools WG at RIPE 39. I think a developers list should indeed be set up, but that we should not be afraid to post to lir-wg anything that might benefit from a wider audience than the people specifically signed up to be a developer. Specifically, I think the discussions at the current level ( spec ) belong on lir-wg. ATB, Guy -- Guy Vegoda \ guy@vegoda.org *Please do not send html* NIC: GUY-RIPE \ guy@cryptography.org.uk *attachments* Unix, Linux Hobbyist \ +44(0)20 7961 8318 (work) www.thenakedfrenchman.com \ +44(0)958 469 532 (cell)

On Thu, 19 Apr 2001, Niall Richard Murphy wrote: NRM> I would like PHP as a platform rather than perl. NRM> NRM> Reasons: NRM> 1. It's quite likely to be faster than Perl. NRM> 2. It enables people with mod_php but not mod_perl to install IMPT :) NRM> 3. It's likely to be easier to do the front-end bits in PHP because of it's NRM> built in primitives. I'm afraid I vote against PHP. Reasons: - most of current UNIX OSes have Perl5 built-in in default installation; PHP, on the other hand, is additional package - PHP under Win32 as far as I know is significally less stable than Perl - there is no need to install mod_perl to get IMPT workable -- you need mod_perl only for performance improvement under really huge load Sincerely, D.Marck [DM5020, DM268-RIPE, DM3-RIPN] ------------------------------------------------------------------------ *** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck@rinet.ru *** ------------------------------------------------------------------------

On Thu, 19 Apr 2001, Guy Vegoda wrote:
Hi there all you internet people!
Hello.
Questions:
1. Which platforms are we looking to support?
I think that UNIX platforms would be easier for development, and would cover the needs of the majority of users. Also, ala Perl.
A gui provides windows users with an opportunity to use the sotware too.
The same could be achieved on a win32 platform under visual basic, but this would strain the GNU lisence considerable, as well as denying use by the UNIX users amongst us.
FWIW Perl with the TK toolkit/widget set runs under both *nix and Windows. I still would prefer a web based solution. WRT people's comments about php vs. perl - php is very easy to learn, and it's very easy with perl to write code in such a way as to render it incomprehensible to anyone else (or to anyone who dosn't understand you particular dialect of perl). also doing compilcated datastructures in perl is a pain. you can't (afaik) do non web based gui's in php tho. -- Internet Vision Internet Consultancy Tel: 020 7589 4500 60 Albert Court & Web development Fax: 020 7589 4522 Prince Consort Road vision@ivision.co.uk London SW7 2BE http://www.ivision.co.uk/

-On [20010419 18:09], Jasper Wallace (jasper@ivision.co.uk) wrote:
On Thu, 19 Apr 2001, Guy Vegoda wrote:
Hi there all you internet people!
Hello.
Questions:
1. Which platforms are we looking to support?
I think that UNIX platforms would be easier for development, and would cover the needs of the majority of users. Also, ala Perl.
A gui provides windows users with an opportunity to use the sotware too.
The same could be achieved on a win32 platform under visual basic, but this would strain the GNU lisence considerable, as well as denying use by the UNIX users amongst us.
FWIW Perl with the TK toolkit/widget set runs under both *nix and Windows.
I still would prefer a web based solution.
WRT people's comments about php vs. perl - php is very easy to learn, and it's very easy with perl to write code in such a way as to render it incomprehensible to anyone else (or to anyone who dosn't understand you particular dialect of perl).
also doing compilcated datastructures in perl is a pain.
you can't (afaik) do non web based gui's in php tho.
Actually you can make cross platform non web based gui's in php using php-gtk (you obviously have to use the php binary and not the apache module!) I like php for frontend's (never tried php-gtk tho :), but perl has all these modules on cpan....
-- Internet Vision Internet Consultancy Tel: 020 7589 4500 60 Albert Court & Web development Fax: 020 7589 4522 Prince Consort Road vision@ivision.co.uk London SW7 2BE http://www.ivision.co.uk/
Grts, -- Guillaume Fontaine VIA NET.WORKS Nederland

Hi, Dave wrote:
This should be moved away from lir-wg as I suspect this topic is getting spammy and off-topic for most readers (it's nothing to do with setting LIR/RIR policy).
We are preparing Specifications for IPMT and will send them to lir-wg next week. We would like input on them from the potential users of such I tool, and I think lir-wg is largely composed of such users, so I think the discussion of the Specifications belongs on lir-wg. I think the potential implementors of IPMT can then go somewhere else to discuss choice of programming language, database, UI, etc. Cheers, Maldwyn Morris Software Manager RIPE NCC
participants (7)
-
Dave Pratt
-
Dmitry Morozovsky
-
Guillaume Fontaine
-
Guy Vegoda
-
Jasper Wallace
-
Maldwyn Morris
-
Niall Richard Murphy