howto setup a route by netlink socket
Hi list,
I want to set a route by netlink socket but I've no idea how to do it clearly.
Here I've make up a virtual interface that is ppp0 by ioctl, we want to it could communicate with peer side. We need just a route, right? Netlink can do this. As there are many attributes , we need tell kernel what's our route. But I'm not sure what we should build as attributes that we will send to kernel.
Now I get a simple talk, it contains 2 attrs follow 'rtmsg' structure.
RTA_DST, 192.168.1.1 -- the peer IP
RTA_SRC, 192.168.1.2 -- our local IP
And it cannot work, kernel return [No such Device] error.
I think there are something I lost, pls help me and point out the errors.
Reg
--
c.j
You could look at the ip(8) command source to find out how it is done, /sbin/ip or /bin/ip is part of the iproute package on Red Hat and Debian based Linux distributions.
Latest version of pptp has a hack that uses system(3) to execute ip(8). If you can figure a way to do this without using system(3) then I'm quite interested.
Signature · 3 lines
James Cameron http://quozl.netrek.org/ HP Open Source, Volunteer http://opensource.hp.com/ PPTP Client Project, Release Engineer http://pptpclient.sourceforge.net/
Quoted 3 lines · James Cameron
You could look at the ip(8) command source to find out how it is done,
/sbin/ipor/bin/ipis part of the iproute package on Red Hat and Debian based Linux distributions.
The ip command uses libnetlink, but there's a new netlink library that is much easier to use. It's called libnl, at
http://people.suug.ch/~tgr/libnl/. It includes simple apps that do common things like add routes. Binary packages are available for modern distros.
Quoted 3 lines
Latest version of pptp has a hack that uses system(3) to execute ip(8). If you can figure a way to do this without using system(3) then I'm quite interested.
Signature · 4 lines
James Chapman Katalix Systems Ltd http://www.katalix.com Catalysts for your Embedded Linux software development
Hi James Chapman
Quoted 6 lines
Quoted 1 line
Quoted 3 lines · James Cameron
You could look at the ip(8) command source to find out how it is done,
/sbin/ipor/bin/ipis part of the iproute package on Red Hat and Debian based Linux distributions.
Quoted 9 lines
The ip command uses libnetlink, but there's a new netlink library that is much easier to use. It's called libnl, at
http://people.suug.ch/~tgr/libnl/. It includes simple apps that do common things like add routes. Binary packages are available for modern distros.Quoted 3 lines
Latest version of pptp has a hack that uses system(3) to execute ip(8). If you can figure a way to do this without using system(3) then I'm quite interested.
Thanks a lot, I'll try.
Reg
--
c.j