Thanks for the review!

Garrett D'Amore wrote:
On the removal of mipagent, do you need to do anything to update SMF? I'm not sure how legacy_run services are handled... do they have database entries in SMF? Please make sure you test a real upgrade to make sure it all "Just Works" :-) (Says the man who's been bitten by SMF in the past....)

AFAIK, nothing is needed other than removing the legacy init.d script. I'll triple check just in case.

I notice that ire_create,ire_create_mp have a _lot_ of arguments. This has got to play murder on the register set. But at least it is one less now. (And in a few other places too.) Someday it would be nice to try to figure out how to simplify it even further....

Indeed.  Feel free to file a bug. :-)

There are a lot of branches you removed. Several on hot code paths. Yay! I also wonder, have you tested with route flap tests? Or with just a general routing performance test? A lot of these changes are going to help that performance.

I'd be glad to do so if someone can point me at a rig and/or an easy to use test.

If I understand these changes, interface routes once existed, but are now no longer supported.

What was removed is the Mobile IP per-ill routing table which was a special routing table on Mobile IP foreign agents. For each mobile node in the foreign agent's link, an IP tunnel was created to the home agent. Each IP tunnel ill had one of these special routing tables that was only used when forwarding packets from such an ill to the local link.

The Mobile IP reverse tunnel table was also removed. It was a forwarding table in which routes were matched by source address. This could somehow be massaged into general applicability, but it utterly broken as implemented (6511070). It was also specific to reverse tunnels, and a bit of engineering would need to be applied to make this a more general thing.

I guess that's a good thing. But did they maybe have other (potential) uses than just mobile IP?

As designed and implemented, I don't see an immediate use for either of these tables other than for the removed Mobile IP implementation.

In ipsec_info.h:203, you've deleted a bit. Would it have been safer to create a reserved bit? Is this message ever exposed to other modules? (e.g. can a 3rd party streams module see it?) I'm thinking about binary compatibility here.

ipsec_out_t is strictly an ip module implementation detail. No potential for binary compatibility issues.

Likewise, it might be a good idea to reserve the IFF_MIPRUNNING value in if.h, indicate that it used to mean something. There could be some old 3rd party code that looked at it. (Yeah, I know its unlikely.)

There is a comment where the constant was previously stating:

        /* 0x0004000000 was IFF_MIPRUNNING */

To make it evident that the value is currently unused. I don't see a reason why someone couldn't come along and re-use that value down the road since mipagent was the only application known to have a use for it.

Ditto for RTA_SRCIFP, although I kind think this one was never visible to 3rd party code.

The header file may have been included by 3rd party code, but this particular routing socket address type couldn't have been of any use except by mipagent and on systems running mipagent (which we're fairly certain there are none out there). Do you really feel that reserving this value will do anything?

I only looked at the *sdiffs*, I didn't go through and check to see if you have located all the occurrences. (I think someone else already commented on that.) But otherwise, as far as I can tell, the diffs look good.

Thanks. Yes, Meem has found a bunch of places where comments and forward declarations needed removal.


I'm looking forward the simplified code paths in IP.

Glad to be of help. :-)

It may be worthwhile at some point to look at other changes that can simplify the code, and see if there might be some "larger" scale simplifications can be made by removal of the need for these extra checks. But that's a bigger task.... IP datapath refactoring anyone? :-)

Right, there is a greater need to simplify the ip module. This is only a tiny fraction of what's needed.

Thanks again,
-Seb
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to