Lines Matching refs:pkt

48 				      struct vmci_transport_packet *pkt);
52 struct vmci_transport_packet *pkt);
55 struct vmci_transport_packet *pkt);
58 struct vmci_transport_packet *pkt);
61 struct vmci_transport_packet *pkt);
63 struct vmci_transport_packet *pkt);
72 struct vmci_transport_packet pkt; member
126 vmci_transport_packet_init(struct vmci_transport_packet *pkt, in vmci_transport_packet_init() argument
139 pkt->dg.src = vmci_make_handle(VMADDR_CID_ANY, in vmci_transport_packet_init()
141 pkt->dg.dst = vmci_make_handle(dst->svm_cid, in vmci_transport_packet_init()
143 pkt->dg.payload_size = sizeof(*pkt) - sizeof(pkt->dg); in vmci_transport_packet_init()
144 pkt->version = VMCI_TRANSPORT_PACKET_VERSION; in vmci_transport_packet_init()
145 pkt->type = type; in vmci_transport_packet_init()
146 pkt->src_port = src->svm_port; in vmci_transport_packet_init()
147 pkt->dst_port = dst->svm_port; in vmci_transport_packet_init()
148 memset(&pkt->proto, 0, sizeof(pkt->proto)); in vmci_transport_packet_init()
149 memset(&pkt->_reserved2, 0, sizeof(pkt->_reserved2)); in vmci_transport_packet_init()
151 switch (pkt->type) { in vmci_transport_packet_init()
153 pkt->u.size = 0; in vmci_transport_packet_init()
158 pkt->u.size = size; in vmci_transport_packet_init()
163 pkt->u.handle = handle; in vmci_transport_packet_init()
169 pkt->u.size = 0; in vmci_transport_packet_init()
173 pkt->u.mode = mode; in vmci_transport_packet_init()
178 memcpy(&pkt->u.wait, wait, sizeof(pkt->u.wait)); in vmci_transport_packet_init()
183 pkt->u.size = size; in vmci_transport_packet_init()
184 pkt->proto = proto; in vmci_transport_packet_init()
190 vmci_transport_packet_get_addresses(struct vmci_transport_packet *pkt, in vmci_transport_packet_get_addresses() argument
194 vsock_addr_init(local, pkt->dg.dst.context, pkt->dst_port); in vmci_transport_packet_get_addresses()
195 vsock_addr_init(remote, pkt->dg.src.context, pkt->src_port); in vmci_transport_packet_get_addresses()
199 __vmci_transport_send_control_pkt(struct vmci_transport_packet *pkt, in __vmci_transport_send_control_pkt() argument
212 vmci_transport_packet_init(pkt, src, dst, type, size, mode, wait, in __vmci_transport_send_control_pkt()
214 err = vmci_datagram_send(&pkt->dg); in __vmci_transport_send_control_pkt()
222 vmci_transport_reply_control_pkt_fast(struct vmci_transport_packet *pkt, in vmci_transport_reply_control_pkt_fast() argument
232 if (pkt->type == VMCI_TRANSPORT_PACKET_TYPE_RST) { in vmci_transport_reply_control_pkt_fast()
235 vmci_transport_packet_get_addresses(pkt, &src, &dst); in vmci_transport_reply_control_pkt_fast()
258 static struct vmci_transport_packet pkt; in vmci_transport_send_control_pkt_bh() local
260 return __vmci_transport_send_control_pkt(&pkt, src, dst, type, in vmci_transport_send_control_pkt_bh()
275 struct vmci_transport_packet *pkt; in vmci_transport_send_control_pkt() local
287 pkt = kmalloc(sizeof(*pkt), GFP_KERNEL); in vmci_transport_send_control_pkt()
288 if (!pkt) in vmci_transport_send_control_pkt()
291 err = __vmci_transport_send_control_pkt(pkt, &vsk->local_addr, in vmci_transport_send_control_pkt()
295 kfree(pkt); in vmci_transport_send_control_pkt()
302 struct vmci_transport_packet *pkt) in vmci_transport_send_reset_bh() argument
304 if (pkt->type == VMCI_TRANSPORT_PACKET_TYPE_RST) in vmci_transport_send_reset_bh()
313 struct vmci_transport_packet *pkt) in vmci_transport_send_reset() argument
315 if (pkt->type == VMCI_TRANSPORT_PACKET_TYPE_RST) in vmci_transport_send_reset()
361 static int vmci_transport_reply_reset(struct vmci_transport_packet *pkt) in vmci_transport_reply_reset() argument
364 pkt, in vmci_transport_reply_reset()
461 struct vmci_transport_packet *pkt) in vmci_transport_get_pending() argument
468 vsock_addr_init(&src, pkt->dg.src.context, pkt->src_port); in vmci_transport_get_pending()
475 pkt->dst_port == vpending->local_addr.svm_port) { in vmci_transport_get_pending()
658 struct vmci_transport_packet *pkt; in vmci_transport_recv_stream_cb() local
675 if (VMCI_DG_SIZE(dg) < sizeof(*pkt)) in vmci_transport_recv_stream_cb()
679 pkt = (struct vmci_transport_packet *)dg; in vmci_transport_recv_stream_cb()
685 vsock_addr_init(&src, pkt->dg.src.context, pkt->src_port); in vmci_transport_recv_stream_cb()
686 vsock_addr_init(&dst, pkt->dg.dst.context, pkt->dst_port); in vmci_transport_recv_stream_cb()
701 if (vmci_transport_send_reset_bh(&dst, &src, pkt) < 0) in vmci_transport_recv_stream_cb()
713 if (pkt->type >= VMCI_TRANSPORT_PACKET_TYPE_MAX) { in vmci_transport_recv_stream_cb()
729 if (!vmci_transport_allow_dgram(vsk, pkt->dg.src.context)) { in vmci_transport_recv_stream_cb()
747 sk, pkt, true, &dst, &src, in vmci_transport_recv_stream_cb()
758 if (vmci_transport_send_reset_bh(&dst, &src, pkt) < 0) in vmci_transport_recv_stream_cb()
766 memcpy(&recv_pkt_info->pkt, pkt, sizeof(recv_pkt_info->pkt)); in vmci_transport_recv_stream_cb()
875 struct vmci_transport_packet *pkt; in vmci_transport_recv_pkt_work() local
881 pkt = &recv_pkt_info->pkt; in vmci_transport_recv_pkt_work()
886 vsock_sk(sk)->local_addr.svm_cid = pkt->dg.dst.context; in vmci_transport_recv_pkt_work()
890 vmci_transport_recv_listen(sk, pkt); in vmci_transport_recv_pkt_work()
897 vmci_transport_recv_connecting_client(sk, pkt); in vmci_transport_recv_pkt_work()
900 vmci_transport_recv_connected(sk, pkt); in vmci_transport_recv_pkt_work()
909 vmci_transport_send_reset(sk, pkt); in vmci_transport_recv_pkt_work()
922 struct vmci_transport_packet *pkt) in vmci_transport_recv_listen() argument
940 pending = vmci_transport_get_pending(sk, pkt); in vmci_transport_recv_listen()
945 vsock_sk(pending)->local_addr.svm_cid = pkt->dg.dst.context; in vmci_transport_recv_listen()
951 pkt); in vmci_transport_recv_listen()
954 vmci_transport_send_reset(pending, pkt); in vmci_transport_recv_listen()
971 if (!(pkt->type == VMCI_TRANSPORT_PACKET_TYPE_REQUEST || in vmci_transport_recv_listen()
972 pkt->type == VMCI_TRANSPORT_PACKET_TYPE_REQUEST2)) { in vmci_transport_recv_listen()
973 vmci_transport_reply_reset(pkt); in vmci_transport_recv_listen()
977 if (pkt->u.size == 0) { in vmci_transport_recv_listen()
978 vmci_transport_reply_reset(pkt); in vmci_transport_recv_listen()
987 vmci_transport_reply_reset(pkt); in vmci_transport_recv_listen()
994 vmci_transport_send_reset(sk, pkt); in vmci_transport_recv_listen()
1000 vsock_addr_init(&vpending->local_addr, pkt->dg.dst.context, in vmci_transport_recv_listen()
1001 pkt->dst_port); in vmci_transport_recv_listen()
1002 vsock_addr_init(&vpending->remote_addr, pkt->dg.src.context, in vmci_transport_recv_listen()
1003 pkt->src_port); in vmci_transport_recv_listen()
1008 if (pkt->u.size >= vmci_trans(vpending)->queue_pair_min_size && in vmci_transport_recv_listen()
1009 pkt->u.size <= vmci_trans(vpending)->queue_pair_max_size) { in vmci_transport_recv_listen()
1010 qp_size = pkt->u.size; in vmci_transport_recv_listen()
1021 if (pkt->type == VMCI_TRANSPORT_PACKET_TYPE_REQUEST) in vmci_transport_recv_listen()
1023 else if (pkt->type == VMCI_TRANSPORT_PACKET_TYPE_REQUEST2) in vmci_transport_recv_listen()
1039 int proto_int = pkt->proto; in vmci_transport_recv_listen()
1069 vmci_transport_send_reset(sk, pkt); in vmci_transport_recv_listen()
1106 struct vmci_transport_packet *pkt) in vmci_transport_recv_connecting_server() argument
1120 switch (pkt->type) { in vmci_transport_recv_connecting_server()
1122 if (vmci_handle_is_invalid(pkt->u.handle)) { in vmci_transport_recv_connecting_server()
1123 vmci_transport_send_reset(pending, pkt); in vmci_transport_recv_connecting_server()
1131 vmci_transport_send_reset(pending, pkt); in vmci_transport_recv_connecting_server()
1133 err = pkt->type == VMCI_TRANSPORT_PACKET_TYPE_RST ? 0 : -EINVAL; in vmci_transport_recv_connecting_server()
1152 vmci_transport_send_reset(pending, pkt); in vmci_transport_recv_connecting_server()
1161 handle = pkt->u.handle; in vmci_transport_recv_connecting_server()
1176 pkt->dg.src.context, in vmci_transport_recv_connecting_server()
1182 vmci_transport_send_reset(pending, pkt); in vmci_transport_recv_connecting_server()
1215 vmci_transport_send_reset(pending, pkt); in vmci_transport_recv_connecting_server()
1252 struct vmci_transport_packet *pkt) in vmci_transport_recv_connecting_client() argument
1260 switch (pkt->type) { in vmci_transport_recv_connecting_client()
1262 if (vmci_handle_is_invalid(pkt->u.handle) || in vmci_transport_recv_connecting_client()
1263 !vmci_handle_is_equal(pkt->u.handle, in vmci_transport_recv_connecting_client()
1283 if (pkt->u.size == 0 in vmci_transport_recv_connecting_client()
1284 || pkt->dg.src.context != vsk->remote_addr.svm_cid in vmci_transport_recv_connecting_client()
1285 || pkt->src_port != vsk->remote_addr.svm_port in vmci_transport_recv_connecting_client()
1297 err = vmci_transport_recv_connecting_client_negotiate(sk, pkt); in vmci_transport_recv_connecting_client()
1305 err = vmci_transport_recv_connecting_client_invalid(sk, pkt); in vmci_transport_recv_connecting_client()
1341 vmci_transport_send_reset(sk, pkt); in vmci_transport_recv_connecting_client()
1351 struct vmci_transport_packet *pkt) in vmci_transport_recv_connecting_client_negotiate() argument
1375 if (pkt->u.size < vmci_trans(vsk)->queue_pair_min_size || in vmci_transport_recv_connecting_client_negotiate()
1376 pkt->u.size > vmci_trans(vsk)->queue_pair_max_size) { in vmci_transport_recv_connecting_client_negotiate()
1384 vsk->local_addr.svm_cid = pkt->dg.dst.context; in vmci_transport_recv_connecting_client_negotiate()
1393 if (pkt->type == VMCI_TRANSPORT_PACKET_TYPE_NEGOTIATE) in vmci_transport_recv_connecting_client_negotiate()
1395 else if (pkt->type == VMCI_TRANSPORT_PACKET_TYPE_NEGOTIATE2) in vmci_transport_recv_connecting_client_negotiate()
1403 version = pkt->proto; in vmci_transport_recv_connecting_client_negotiate()
1431 pkt->u.size, in vmci_transport_recv_connecting_client_negotiate()
1432 pkt->u.size, in vmci_transport_recv_connecting_client_negotiate()
1452 pkt->u.size; in vmci_transport_recv_connecting_client_negotiate()
1472 struct vmci_transport_packet *pkt) in vmci_transport_recv_connecting_client_invalid() argument
1494 struct vmci_transport_packet *pkt) in vmci_transport_recv_connected() argument
1507 switch (pkt->type) { in vmci_transport_recv_connected()
1509 if (pkt->u.mode) { in vmci_transport_recv_connected()
1512 vsk->peer_shutdown |= pkt->u.mode; in vmci_transport_recv_connected()
1539 sk, pkt, false, NULL, NULL, in vmci_transport_recv_connected()