Lines Matching refs:info

58 static struct l2tp_session *l2tp_nl_session_find(struct genl_info *info)  in l2tp_nl_session_find()  argument
65 struct net *net = genl_info_net(info); in l2tp_nl_session_find()
67 if (info->attrs[L2TP_ATTR_IFNAME]) { in l2tp_nl_session_find()
68 ifname = nla_data(info->attrs[L2TP_ATTR_IFNAME]); in l2tp_nl_session_find()
70 } else if ((info->attrs[L2TP_ATTR_SESSION_ID]) && in l2tp_nl_session_find()
71 (info->attrs[L2TP_ATTR_CONN_ID])) { in l2tp_nl_session_find()
72 tunnel_id = nla_get_u32(info->attrs[L2TP_ATTR_CONN_ID]); in l2tp_nl_session_find()
73 session_id = nla_get_u32(info->attrs[L2TP_ATTR_SESSION_ID]); in l2tp_nl_session_find()
82 static int l2tp_nl_cmd_noop(struct sk_buff *skb, struct genl_info *info) in l2tp_nl_cmd_noop() argument
94 hdr = genlmsg_put(msg, info->snd_portid, info->snd_seq, in l2tp_nl_cmd_noop()
103 return genlmsg_unicast(genl_info_net(info), msg, info->snd_portid); in l2tp_nl_cmd_noop()
113 struct genl_info *info, in l2tp_tunnel_notify() argument
124 ret = l2tp_nl_tunnel_send(msg, info->snd_portid, info->snd_seq, in l2tp_tunnel_notify()
141 struct genl_info *info, in l2tp_session_notify() argument
152 ret = l2tp_nl_session_send(msg, info->snd_portid, info->snd_seq, in l2tp_session_notify()
168 static int l2tp_nl_cmd_tunnel_create(struct sk_buff *skb, struct genl_info *info) in l2tp_nl_cmd_tunnel_create() argument
177 struct net *net = genl_info_net(info); in l2tp_nl_cmd_tunnel_create()
179 if (!info->attrs[L2TP_ATTR_CONN_ID]) { in l2tp_nl_cmd_tunnel_create()
183 tunnel_id = nla_get_u32(info->attrs[L2TP_ATTR_CONN_ID]); in l2tp_nl_cmd_tunnel_create()
185 if (!info->attrs[L2TP_ATTR_PEER_CONN_ID]) { in l2tp_nl_cmd_tunnel_create()
189 peer_tunnel_id = nla_get_u32(info->attrs[L2TP_ATTR_PEER_CONN_ID]); in l2tp_nl_cmd_tunnel_create()
191 if (!info->attrs[L2TP_ATTR_PROTO_VERSION]) { in l2tp_nl_cmd_tunnel_create()
195 proto_version = nla_get_u8(info->attrs[L2TP_ATTR_PROTO_VERSION]); in l2tp_nl_cmd_tunnel_create()
197 if (!info->attrs[L2TP_ATTR_ENCAP_TYPE]) { in l2tp_nl_cmd_tunnel_create()
201 cfg.encap = nla_get_u16(info->attrs[L2TP_ATTR_ENCAP_TYPE]); in l2tp_nl_cmd_tunnel_create()
204 if (info->attrs[L2TP_ATTR_FD]) { in l2tp_nl_cmd_tunnel_create()
205 fd = nla_get_u32(info->attrs[L2TP_ATTR_FD]); in l2tp_nl_cmd_tunnel_create()
208 if (info->attrs[L2TP_ATTR_IP6_SADDR] && in l2tp_nl_cmd_tunnel_create()
209 info->attrs[L2TP_ATTR_IP6_DADDR]) { in l2tp_nl_cmd_tunnel_create()
211 info->attrs[L2TP_ATTR_IP6_SADDR]); in l2tp_nl_cmd_tunnel_create()
213 info->attrs[L2TP_ATTR_IP6_DADDR]); in l2tp_nl_cmd_tunnel_create()
216 if (info->attrs[L2TP_ATTR_IP_SADDR] && in l2tp_nl_cmd_tunnel_create()
217 info->attrs[L2TP_ATTR_IP_DADDR]) { in l2tp_nl_cmd_tunnel_create()
219 info->attrs[L2TP_ATTR_IP_SADDR]); in l2tp_nl_cmd_tunnel_create()
221 info->attrs[L2TP_ATTR_IP_DADDR]); in l2tp_nl_cmd_tunnel_create()
226 if (info->attrs[L2TP_ATTR_UDP_SPORT]) in l2tp_nl_cmd_tunnel_create()
227 cfg.local_udp_port = nla_get_u16(info->attrs[L2TP_ATTR_UDP_SPORT]); in l2tp_nl_cmd_tunnel_create()
228 if (info->attrs[L2TP_ATTR_UDP_DPORT]) in l2tp_nl_cmd_tunnel_create()
229 cfg.peer_udp_port = nla_get_u16(info->attrs[L2TP_ATTR_UDP_DPORT]); in l2tp_nl_cmd_tunnel_create()
230 if (info->attrs[L2TP_ATTR_UDP_CSUM]) in l2tp_nl_cmd_tunnel_create()
231 cfg.use_udp_checksums = nla_get_flag(info->attrs[L2TP_ATTR_UDP_CSUM]); in l2tp_nl_cmd_tunnel_create()
234 if (info->attrs[L2TP_ATTR_UDP_ZERO_CSUM6_TX]) in l2tp_nl_cmd_tunnel_create()
235 cfg.udp6_zero_tx_checksums = nla_get_flag(info->attrs[L2TP_ATTR_UDP_ZERO_CSUM6_TX]); in l2tp_nl_cmd_tunnel_create()
236 if (info->attrs[L2TP_ATTR_UDP_ZERO_CSUM6_RX]) in l2tp_nl_cmd_tunnel_create()
237 cfg.udp6_zero_rx_checksums = nla_get_flag(info->attrs[L2TP_ATTR_UDP_ZERO_CSUM6_RX]); in l2tp_nl_cmd_tunnel_create()
241 if (info->attrs[L2TP_ATTR_DEBUG]) in l2tp_nl_cmd_tunnel_create()
242 cfg.debug = nla_get_u32(info->attrs[L2TP_ATTR_DEBUG]); in l2tp_nl_cmd_tunnel_create()
260 ret = l2tp_tunnel_notify(&l2tp_nl_family, info, in l2tp_nl_cmd_tunnel_create()
266 static int l2tp_nl_cmd_tunnel_delete(struct sk_buff *skb, struct genl_info *info) in l2tp_nl_cmd_tunnel_delete() argument
271 struct net *net = genl_info_net(info); in l2tp_nl_cmd_tunnel_delete()
273 if (!info->attrs[L2TP_ATTR_CONN_ID]) { in l2tp_nl_cmd_tunnel_delete()
277 tunnel_id = nla_get_u32(info->attrs[L2TP_ATTR_CONN_ID]); in l2tp_nl_cmd_tunnel_delete()
285 l2tp_tunnel_notify(&l2tp_nl_family, info, in l2tp_nl_cmd_tunnel_delete()
294 static int l2tp_nl_cmd_tunnel_modify(struct sk_buff *skb, struct genl_info *info) in l2tp_nl_cmd_tunnel_modify() argument
299 struct net *net = genl_info_net(info); in l2tp_nl_cmd_tunnel_modify()
301 if (!info->attrs[L2TP_ATTR_CONN_ID]) { in l2tp_nl_cmd_tunnel_modify()
305 tunnel_id = nla_get_u32(info->attrs[L2TP_ATTR_CONN_ID]); in l2tp_nl_cmd_tunnel_modify()
313 if (info->attrs[L2TP_ATTR_DEBUG]) in l2tp_nl_cmd_tunnel_modify()
314 tunnel->debug = nla_get_u32(info->attrs[L2TP_ATTR_DEBUG]); in l2tp_nl_cmd_tunnel_modify()
316 ret = l2tp_tunnel_notify(&l2tp_nl_family, info, in l2tp_nl_cmd_tunnel_modify()
413 static int l2tp_nl_cmd_tunnel_get(struct sk_buff *skb, struct genl_info *info) in l2tp_nl_cmd_tunnel_get() argument
419 struct net *net = genl_info_net(info); in l2tp_nl_cmd_tunnel_get()
421 if (!info->attrs[L2TP_ATTR_CONN_ID]) { in l2tp_nl_cmd_tunnel_get()
426 tunnel_id = nla_get_u32(info->attrs[L2TP_ATTR_CONN_ID]); in l2tp_nl_cmd_tunnel_get()
440 ret = l2tp_nl_tunnel_send(msg, info->snd_portid, info->snd_seq, in l2tp_nl_cmd_tunnel_get()
445 return genlmsg_unicast(net, msg, info->snd_portid); in l2tp_nl_cmd_tunnel_get()
479 static int l2tp_nl_cmd_session_create(struct sk_buff *skb, struct genl_info *info) in l2tp_nl_cmd_session_create() argument
488 struct net *net = genl_info_net(info); in l2tp_nl_cmd_session_create()
490 if (!info->attrs[L2TP_ATTR_CONN_ID]) { in l2tp_nl_cmd_session_create()
494 tunnel_id = nla_get_u32(info->attrs[L2TP_ATTR_CONN_ID]); in l2tp_nl_cmd_session_create()
501 if (!info->attrs[L2TP_ATTR_SESSION_ID]) { in l2tp_nl_cmd_session_create()
505 session_id = nla_get_u32(info->attrs[L2TP_ATTR_SESSION_ID]); in l2tp_nl_cmd_session_create()
512 if (!info->attrs[L2TP_ATTR_PEER_SESSION_ID]) { in l2tp_nl_cmd_session_create()
516 peer_session_id = nla_get_u32(info->attrs[L2TP_ATTR_PEER_SESSION_ID]); in l2tp_nl_cmd_session_create()
518 if (!info->attrs[L2TP_ATTR_PW_TYPE]) { in l2tp_nl_cmd_session_create()
522 cfg.pw_type = nla_get_u16(info->attrs[L2TP_ATTR_PW_TYPE]); in l2tp_nl_cmd_session_create()
529 if (info->attrs[L2TP_ATTR_OFFSET]) in l2tp_nl_cmd_session_create()
530 cfg.offset = nla_get_u16(info->attrs[L2TP_ATTR_OFFSET]); in l2tp_nl_cmd_session_create()
532 if (info->attrs[L2TP_ATTR_DATA_SEQ]) in l2tp_nl_cmd_session_create()
533 cfg.data_seq = nla_get_u8(info->attrs[L2TP_ATTR_DATA_SEQ]); in l2tp_nl_cmd_session_create()
536 if (info->attrs[L2TP_ATTR_L2SPEC_TYPE]) in l2tp_nl_cmd_session_create()
537 cfg.l2specific_type = nla_get_u8(info->attrs[L2TP_ATTR_L2SPEC_TYPE]); in l2tp_nl_cmd_session_create()
540 if (info->attrs[L2TP_ATTR_L2SPEC_LEN]) in l2tp_nl_cmd_session_create()
541 cfg.l2specific_len = nla_get_u8(info->attrs[L2TP_ATTR_L2SPEC_LEN]); in l2tp_nl_cmd_session_create()
543 if (info->attrs[L2TP_ATTR_COOKIE]) { in l2tp_nl_cmd_session_create()
544 u16 len = nla_len(info->attrs[L2TP_ATTR_COOKIE]); in l2tp_nl_cmd_session_create()
550 memcpy(&cfg.cookie[0], nla_data(info->attrs[L2TP_ATTR_COOKIE]), len); in l2tp_nl_cmd_session_create()
552 if (info->attrs[L2TP_ATTR_PEER_COOKIE]) { in l2tp_nl_cmd_session_create()
553 u16 len = nla_len(info->attrs[L2TP_ATTR_PEER_COOKIE]); in l2tp_nl_cmd_session_create()
559 memcpy(&cfg.peer_cookie[0], nla_data(info->attrs[L2TP_ATTR_PEER_COOKIE]), len); in l2tp_nl_cmd_session_create()
561 if (info->attrs[L2TP_ATTR_IFNAME]) in l2tp_nl_cmd_session_create()
562 cfg.ifname = nla_data(info->attrs[L2TP_ATTR_IFNAME]); in l2tp_nl_cmd_session_create()
564 if (info->attrs[L2TP_ATTR_VLAN_ID]) in l2tp_nl_cmd_session_create()
565 cfg.vlan_id = nla_get_u16(info->attrs[L2TP_ATTR_VLAN_ID]); in l2tp_nl_cmd_session_create()
568 if (info->attrs[L2TP_ATTR_DEBUG]) in l2tp_nl_cmd_session_create()
569 cfg.debug = nla_get_u32(info->attrs[L2TP_ATTR_DEBUG]); in l2tp_nl_cmd_session_create()
571 if (info->attrs[L2TP_ATTR_RECV_SEQ]) in l2tp_nl_cmd_session_create()
572 cfg.recv_seq = nla_get_u8(info->attrs[L2TP_ATTR_RECV_SEQ]); in l2tp_nl_cmd_session_create()
574 if (info->attrs[L2TP_ATTR_SEND_SEQ]) in l2tp_nl_cmd_session_create()
575 cfg.send_seq = nla_get_u8(info->attrs[L2TP_ATTR_SEND_SEQ]); in l2tp_nl_cmd_session_create()
577 if (info->attrs[L2TP_ATTR_LNS_MODE]) in l2tp_nl_cmd_session_create()
578 cfg.lns_mode = nla_get_u8(info->attrs[L2TP_ATTR_LNS_MODE]); in l2tp_nl_cmd_session_create()
580 if (info->attrs[L2TP_ATTR_RECV_TIMEOUT]) in l2tp_nl_cmd_session_create()
581 cfg.reorder_timeout = nla_get_msecs(info->attrs[L2TP_ATTR_RECV_TIMEOUT]); in l2tp_nl_cmd_session_create()
583 if (info->attrs[L2TP_ATTR_MTU]) in l2tp_nl_cmd_session_create()
584 cfg.mtu = nla_get_u16(info->attrs[L2TP_ATTR_MTU]); in l2tp_nl_cmd_session_create()
586 if (info->attrs[L2TP_ATTR_MRU]) in l2tp_nl_cmd_session_create()
587 cfg.mru = nla_get_u16(info->attrs[L2TP_ATTR_MRU]); in l2tp_nl_cmd_session_create()
607 if (!info->attrs[L2TP_ATTR_VLAN_ID]) { in l2tp_nl_cmd_session_create()
631 ret = l2tp_session_notify(&l2tp_nl_family, info, session, in l2tp_nl_cmd_session_create()
639 static int l2tp_nl_cmd_session_delete(struct sk_buff *skb, struct genl_info *info) in l2tp_nl_cmd_session_delete() argument
645 session = l2tp_nl_session_find(info); in l2tp_nl_cmd_session_delete()
651 l2tp_session_notify(&l2tp_nl_family, info, in l2tp_nl_cmd_session_delete()
663 static int l2tp_nl_cmd_session_modify(struct sk_buff *skb, struct genl_info *info) in l2tp_nl_cmd_session_modify() argument
668 session = l2tp_nl_session_find(info); in l2tp_nl_cmd_session_modify()
674 if (info->attrs[L2TP_ATTR_DEBUG]) in l2tp_nl_cmd_session_modify()
675 session->debug = nla_get_u32(info->attrs[L2TP_ATTR_DEBUG]); in l2tp_nl_cmd_session_modify()
677 if (info->attrs[L2TP_ATTR_DATA_SEQ]) in l2tp_nl_cmd_session_modify()
678 session->data_seq = nla_get_u8(info->attrs[L2TP_ATTR_DATA_SEQ]); in l2tp_nl_cmd_session_modify()
680 if (info->attrs[L2TP_ATTR_RECV_SEQ]) in l2tp_nl_cmd_session_modify()
681 session->recv_seq = nla_get_u8(info->attrs[L2TP_ATTR_RECV_SEQ]); in l2tp_nl_cmd_session_modify()
683 if (info->attrs[L2TP_ATTR_SEND_SEQ]) { in l2tp_nl_cmd_session_modify()
684 session->send_seq = nla_get_u8(info->attrs[L2TP_ATTR_SEND_SEQ]); in l2tp_nl_cmd_session_modify()
688 if (info->attrs[L2TP_ATTR_LNS_MODE]) in l2tp_nl_cmd_session_modify()
689 session->lns_mode = nla_get_u8(info->attrs[L2TP_ATTR_LNS_MODE]); in l2tp_nl_cmd_session_modify()
691 if (info->attrs[L2TP_ATTR_RECV_TIMEOUT]) in l2tp_nl_cmd_session_modify()
692 session->reorder_timeout = nla_get_msecs(info->attrs[L2TP_ATTR_RECV_TIMEOUT]); in l2tp_nl_cmd_session_modify()
694 if (info->attrs[L2TP_ATTR_MTU]) in l2tp_nl_cmd_session_modify()
695 session->mtu = nla_get_u16(info->attrs[L2TP_ATTR_MTU]); in l2tp_nl_cmd_session_modify()
697 if (info->attrs[L2TP_ATTR_MRU]) in l2tp_nl_cmd_session_modify()
698 session->mru = nla_get_u16(info->attrs[L2TP_ATTR_MRU]); in l2tp_nl_cmd_session_modify()
700 ret = l2tp_session_notify(&l2tp_nl_family, info, in l2tp_nl_cmd_session_modify()
783 static int l2tp_nl_cmd_session_get(struct sk_buff *skb, struct genl_info *info) in l2tp_nl_cmd_session_get() argument
789 session = l2tp_nl_session_find(info); in l2tp_nl_cmd_session_get()
801 ret = l2tp_nl_session_send(msg, info->snd_portid, info->snd_seq, in l2tp_nl_cmd_session_get()
806 return genlmsg_unicast(genl_info_net(info), msg, info->snd_portid); in l2tp_nl_cmd_session_get()