kohler / click

The Click modular router: fast modular packet processing and analysis
Other
740 stars 321 forks source link

Error in making click modular router in linux kernel #403

Open ammarbajwa opened 6 years ago

ammarbajwa commented 6 years ago

I am installing click modular router with linux module enabled in linux kernel 3.13.0-117-generic on ubuntu 12.04. I am facing the following error while making the files : CXX [M] fromdevice.o /users/alina13/project/click/linuxmodule/../elements/linuxmodule/fromdevice.cc: In function ‘rx_handler_result_t click_fromdevice_rx_handler(sk_buff)’: /users/alina13/project/click/linuxmodule/../elements/linuxmodule/fromdevice.cc:319:9: error: ‘raw_cpu_read_8’ was not declared in this scope make[3]: [/users/alina13/project/click/linuxmodule/fromdevice.o] Error 1 make[2]: [module/users/alina13/project/click/linuxmodule] Error 2 make[2]: Leaving directory /usr/src/linux-headers-3.13.0-117-generic' make[1]: *** [all] Error 2 make[1]: Leaving directory/users/alina13/project/click/linuxmodule' make: * [linuxmodule] Error 2

The following is said to be undefined ‘raw_cpu_read_8’ in the function ‘rx_handler_result_t click_fromdevice_rx_handler(sk_buff)’**.

Can you please help me with what is this problem, is it due to a restraint with my kernel or a problem in the code which can be fixed. Your help will be greatly appreciated.

tbarbette commented 6 years ago

anydevice.hh line 73 to 79 should be enclosed by a "if kernel version >= 3.15". Else, do like before that commit : https://github.com/kohler/click/commit/274beba4cf34de7359501e6bca28cdfa190c3bef

ammarbajwa commented 6 years ago

Okay sir. Thankyou very much for the help. :)

Get Outlook for Androidhttps://aka.ms/ghei36


From: Tom Barbette notifications@github.com Sent: Thursday, June 28, 2018 6:34:25 PM To: kohler/click Cc: Muhammad Ammar; Author Subject: Re: [kohler/click] Error in making click modular router in linux kernel (#403)

anydevice.hh line 73 to 79 should be enclosed by a "if kernel version >= 3.15". Else, do like before that commit : 274bebahttps://github.com/kohler/click/commit/274beba4cf34de7359501e6bca28cdfa190c3bef

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/kohler/click/issues/403#issuecomment-401036388, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Abhvb0jHh-hT3SjKMX2FbK4ux5CW3gWTks5uBNthgaJpZM4U7Qko.

ammarbajwa commented 6 years ago

Sir,

I was able to install the configuration file using click-install. And the verbose version of click-install did show that the file has been installed. However is their a test file which could be run to check if the click modular router is working correctly other like in the userlevel. Secondly, should i send a pull request for the in which i have included the guards which you told me to add? Additionally, I was also trying to make click modular router in kernel version 4.4.0-128-generic. There I got the following error: _/home/molvi97/Desktop/click/linuxmodule/../elements/linuxmodule/fromhost.cc:143:50: error: macro "alloc_netdev" requires 4 arguments, but only 3 given net_device dev = alloc_netdev(0, name, setup); ^ /home/molvi97/Desktop/click/linuxmodule/../elements/linuxmodule/fromhost.cc: In member function ‘net_device FromHost::new_device(const char)’: /home/molvi97/Desktop/click/linuxmodule/../elements/linuxmodule/fromhost.cc:143:23: error: ‘alloc_netdev’ was not declared in this scope net_device dev = alloc_netdev(0, name, setup);_

I checked that alloc_netdev function had 3 parameters in and before kernel version 3.17 but was changed to have 4 parameters in kernels after that. Could you please tell me a fix to make the click modular router in kernel version 4.4.

tbarbette commented 6 years ago

I think it simply hasn't been ported to 4.4 yet. Basically you found the trick : find from which version the arguments change, then enclose the two versions under a if KERNEL_VERSION >= ... Do not hesitate to make a pull request when it's fixed.

ammarbajwa commented 6 years ago

Got it sir. Thankyou very much!