Home | History | Annotate | Download | only in ipv6proxy

Lines Matching refs:Request

26 template<class Request>
27 static void addRouterAttribute(Request& r,
34 // Request struct.(which is undefined because of aliasing)
35 size_t offset = NLMSG_ALIGN(r.hdr.nlmsg_len) - offsetof(Request, buf);
57 struct Request {
61 } request;
63 memset(&request, 0, sizeof(request));
65 unsigned short msgLen = NLMSG_LENGTH(sizeof(request.msg));
66 // Set up a request to create a new neighbor
67 request.hdr.nlmsg_len = msgLen;
68 request.hdr.nlmsg_type = RTM_NEWNEIGH;
69 request.hdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_CREATE;
72 request.msg.ndm_family = AF_INET6;
73 request.msg.ndm_state = NUD_PERMANENT;
74 request.msg.ndm_flags = NTF_PROXY;
75 request.msg.ndm_ifindex = interfaceIndex;
77 addRouterAttribute(request, NDA_DST, &address, sizeof(address));
79 return sendNetlinkMessage(&request, request.hdr.nlmsg_len);
85 struct Request {
89 } request;
91 memset(&request, 0, sizeof(request));
93 // Set up a request to create a new route
94 request.hdr.nlmsg_len = NLMSG_LENGTH(sizeof(request.msg));
95 request.hdr.nlmsg_type = RTM_NEWROUTE;
96 request.hdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_CREATE;
98 request.msg.rtm_family = AF_INET6;
99 request.msg.rtm_dst_len = bits;
100 request.msg.rtm_table = RT_TABLE_MAIN;
101 request.msg.rtm_protocol = RTPROT_RA;
102 request.msg.rtm_scope = RT_SCOPE_UNIVERSE;
103 request.msg.rtm_type = RTN_UNICAST;
105 addRouterAttribute(request, RTA_DST, &address, sizeof(address));
106 addRouterAttribute(request, RTA_OIF, &ifaceIndex, sizeof(ifaceIndex));
108 return sendNetlinkMessage(&request, request.hdr.nlmsg_len);
113 struct Request {
117 } request;
119 memset(&request, 0, sizeof(request));
121 // Set up a request to create a new route
122 request.hdr.nlmsg_len = NLMSG_LENGTH(sizeof(request.msg));
123 request.hdr.nlmsg_type = RTM_NEWROUTE;
124 request.hdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_CREATE;
126 request.msg.rtm_family = AF_INET6;
127 request.msg.rtm_dst_len = 0;
128 request.msg.rtm_src_len = 0;
129 request.msg.rtm_table = RT_TABLE_MAIN;
130 request.msg.rtm_protocol = RTPROT_RA;
131 request.msg.rtm_scope = RT_SCOPE_UNIVERSE;
132 request.msg.rtm_type = RTN_UNICAST;
136 addRouterAttribute(request, RTA_GATEWAY, &address, sizeof(address));
137 addRouterAttribute(request, RTA_OIF, &ifaceIndex, sizeof(ifaceIndex));
138 addRouterAttribute(request, RTA_SRC, &anyAddress, sizeof(anyAddress));
140 return sendNetlinkMessage(&request, request.hdr.nlmsg_len);