Lines Matching defs:xfrm_sock

926 static int xfrm_state_add(int xfrm_sock, uint32_t seq, uint32_t spi,
969 if (send(xfrm_sock, &req, req.nh.nlmsg_len, 0) < 0) {
974 return netlink_check_answer(xfrm_sock);
1015 static int xfrm_state_check(int xfrm_sock, uint32_t seq, uint32_t spi,
1052 if (send(xfrm_sock, &req, req.nh.nlmsg_len, 0) < 0) {
1058 if (recv(xfrm_sock, &answer, sizeof(answer), 0) < 0) {
1078 static int xfrm_set(int xfrm_sock, uint32_t *seq,
1085 err = xfrm_state_add(xfrm_sock, (*seq)++, gen_spi(src), src, dst, desc);
1091 err = xfrm_state_add(xfrm_sock, (*seq)++, gen_spi(src), dst, src, desc);
1098 err = xfrm_state_check(xfrm_sock, (*seq)++, gen_spi(src), src, dst, desc);
1099 err |= xfrm_state_check(xfrm_sock, (*seq)++, gen_spi(src), dst, src, desc);
1108 static int xfrm_policy_add(int xfrm_sock, uint32_t seq, uint32_t spi,
1156 if (send(xfrm_sock, &req, req.nh.nlmsg_len, 0) < 0) {
1161 return netlink_check_answer(xfrm_sock);
1164 static int xfrm_prepare(int xfrm_sock, uint32_t *seq,
1168 if (xfrm_policy_add(xfrm_sock, (*seq)++, gen_spi(src), src, dst,
1174 if (xfrm_policy_add(xfrm_sock, (*seq)++, gen_spi(src), dst, src,
1183 static int xfrm_policy_del(int xfrm_sock, uint32_t seq,
1207 if (send(xfrm_sock, &req, req.nh.nlmsg_len, 0) < 0) {
1212 return netlink_check_answer(xfrm_sock);
1215 static int xfrm_cleanup(int xfrm_sock, uint32_t *seq,
1219 if (xfrm_policy_del(xfrm_sock, (*seq)++, src, dst,
1225 if (xfrm_policy_del(xfrm_sock, (*seq)++, dst, src,
1234 static int xfrm_state_del(int xfrm_sock, uint32_t seq, uint32_t spi,
1260 if (send(xfrm_sock, &req, req.nh.nlmsg_len, 0) < 0) {
1265 return netlink_check_answer(xfrm_sock);
1268 static int xfrm_delete(int xfrm_sock, uint32_t *seq,
1272 if (xfrm_state_del(xfrm_sock, (*seq)++, gen_spi(src), src, dst, proto)) {
1277 if (xfrm_state_del(xfrm_sock, (*seq)++, gen_spi(src), dst, src, proto)) {
1285 static int xfrm_state_allocspi(int xfrm_sock, uint32_t *seq,
1311 if (send(xfrm_sock, &req, req.nh.nlmsg_len, 0) < 0) {
1316 if (recv(xfrm_sock, &answer, sizeof(answer), 0) < 0) {
1376 static int xfrm_monitor_acquire(int xfrm_sock, uint32_t *seq, unsigned int nr)
1409 if (send(xfrm_sock, &req, req.nh.nlmsg_len, 0) < 0) {
1414 if (recv(xfrm_sock, &req, sizeof(req), 0) < 0) {
1446 static int xfrm_expire_state(int xfrm_sock, uint32_t *seq,
1463 if (xfrm_state_add(xfrm_sock, (*seq)++, gen_spi(src), src, dst, desc)) {
1483 if (send(xfrm_sock, &req, req.nh.nlmsg_len, 0) < 0) {
1488 if (recv(xfrm_sock, &req, sizeof(req), 0) < 0) {
1518 static int xfrm_expire_policy(int xfrm_sock, uint32_t *seq,
1537 if (xfrm_policy_add(xfrm_sock, (*seq)++, gen_spi(src), src, dst,
1561 if (send(xfrm_sock, &req, req.nh.nlmsg_len, 0) < 0) {
1566 if (recv(xfrm_sock, &req, sizeof(req), 0) < 0) {
1596 static int child_serv(int xfrm_sock, uint32_t *seq,
1619 if (xfrm_prepare(xfrm_sock, seq, src, dst, tunsrc, tundst, desc->proto)) {
1628 if (xfrm_set(xfrm_sock, seq, src, dst, tunsrc, tundst, desc)) {
1648 if (xfrm_delete(xfrm_sock, seq, src, dst, tunsrc, tundst, desc->proto)) {
1658 if (xfrm_cleanup(xfrm_sock, seq, src, dst, tunsrc, tundst)) {
1669 int xfrm_sock = -1;
1675 if (netlink_sock(&xfrm_sock, &seq, NETLINK_XFRM)) {
1704 ret = child_serv(xfrm_sock, &seq, nr,
1708 ret = xfrm_state_allocspi(xfrm_sock, &seq,
1712 ret = xfrm_monitor_acquire(xfrm_sock, &seq, nr);
1715 ret = xfrm_expire_state(xfrm_sock, &seq, nr, &desc);
1718 ret = xfrm_expire_policy(xfrm_sock, &seq, nr, &desc);
1727 close(xfrm_sock);
1735 struct test_desc *msg, int xfrm_sock, uint32_t *seq)
1762 if (xfrm_prepare(xfrm_sock, seq, src, dst, tunsrc, tundst,
1764 xfrm_cleanup(xfrm_sock, seq, src, dst, tunsrc, tundst);
1769 if (xfrm_set(xfrm_sock, seq, src, dst, tunsrc, tundst, desc)) {
1770 xfrm_cleanup(xfrm_sock, seq, src, dst, tunsrc, tundst);
1775 if (xfrm_delete(xfrm_sock, seq, src, dst, tunsrc, tundst,
1777 xfrm_cleanup(xfrm_sock, seq, src, dst, tunsrc, tundst);
1782 if (xfrm_cleanup(xfrm_sock, seq, src, dst, tunsrc, tundst)) {
1794 int xfrm_sock = -1;
1800 if (netlink_sock(&xfrm_sock, &seq, NETLINK_XFRM)) {
1807 grand_child_serv(nr, cmd_fd, buf, &msg, xfrm_sock, &seq);
1810 close(xfrm_sock);