as i understand, kernel relinking currently used object file and installs new kernel. what i do not understand is how could it 'rollback' kernel changes done during compilation, if it using current object files which arre built during compilation.
Just one note, i not yet rebooted after re-linking done, because of created domains are working (the traffic on them), just userland does not, and im afraid they will fail to create after reboot and i should repeat userland rebuild again. вт, 19 мая 2020 г. в 11:21, Bars Bars <[email protected]>: > it seems i figured out why userland was 'broken' on recompiled kernel > with changed RT_TABLEID_MAX. > I dont think things are really broken, may be i dont them right way, > please advice. > > I could reproduce the issue (all steps are done exactly as in openbsd.org > faq). > I changed RT_TABLEID_MAX, recompiled the kernel, booted from it, and > change didnt work on userland. > Then i rebuilt userland, rebooted, all works now. > Now if i apply some patch from errata, there is kernel re-linking done, > and just after that kernel change doesnt work. > Is it expected behavior? How can i fix it? syspacth -r doesnt help. > > > > пн, 18 мая 2020 г. в 13:31, Bars Bars <[email protected]>: > >> To be more convinient, when i said about that its limit became shorter >> its relevant to sys/net/rtable.c struct dommp. >> struct dommp { >> unsigned int limit; >> /* >> * Array to get the routing domain and loopback interface related >> to >> * a routing table. Format: >> * >> * 8 unused bits | 16 bits for loopback index | 8 bits for rdomain >> */ >> unsigned int *value; >> }; >> >> In past the maxumum value was limited to u_int16_t in some deep places, >> but nowadays there is only 8 bits allocated to it based on the struct + 8 >> unused bits which i hop i can safely add to allocation. >> I worried these unused bits are not guaranteed to users, so actually the >> limit is 8 bits instead of 16 in earlier releases. >> >> >> >> пн, 18 мая 2020 г. в 11:51, Bars Bars <[email protected]>: >> >>> Hi, Claudio >>> >>> I mean these in sys/socket.h >>> /* >>> * Maximum number of alternate routing tables >>> */ >>> #define RT_TABLEID_MAX 8000 >>> #define RT_TABLEID_BITS 16 >>> #define RT_TABLEID_MASK 0xffff >>> >>> >>> пн, 18 мая 2020 г. в 10:18, Claudio Jeker <[email protected]>: >>> >>>> On Sun, May 17, 2020 at 10:16:28PM +0300, Bars Bars wrote: >>>> > it seems the things work just when i rebuild userland completely (im >>>> pretty >>>> > sure i did it only with compiling kernel in past, correct me if i >>>> wrong?). >>>> > >>>> > btw, questions for the Devs. >>>> > Looking at the cvs history, i really worried that you do not expand >>>> > rt_tableid_max limit for the years, moreover now its actually 8 bits >>>> > shorter than it was before loopback to rdomain map. There are many >>>> people >>>> > with more than such a number of vpns, for example if they setup >>>> centralized >>>> > vpns setup, or border inter AS router role on the box. >>>> >>>> Sorry your mail is incredibly inprecise and unclear. There is no >>>> rt_tableid_max in OpenBSD at least not in my tree (grep -r >>>> rt_tableid_max >>>> returned nothing). So I have no idea what you are talking about and am >>>> therefor not able to give you a better answer. >>>> >>>> > вс, 17 мая 2020 г., 10:25 Bars Bars <[email protected]>: >>>> > >>>> > > Hey, guys. >>>> > > >>>> > > I always used the rt_tableid_max expanded to 16 bit range in past >>>> releases >>>> > > 5.x and after rebuilding the kernel it worked immediately. >>>> > > But now I installed 6.6 on the new system, and after changing >>>> > > rt_tableid_max (and new rt_tableid_mask and bits values too), my >>>> whole >>>> > > userland throw an rtable / rdomain too large error. >>>> > > Is there behaviour change? >>>> > > The only thing changed (as i know) it is news net/trable.c struct >>>> to map >>>> > > loopback to domain, where there is only 8 unused bits to which i >>>> can expand >>>> > > tableid value. >>>> > > >>>> > > >>>> >>>> -- >>>> :wq Claudio >>>> >>>

