1024];
        struct rtattr *rta, *nest;
        struct nlmsghdr *nh;
+       u_int32_t token = 0;
        int nest_start;
        u_int8_t id;
        int off = 0;
                            MPTCP_PM_VER);
 
        /* the only argument is the address id */
-       if (argc != 3)
+       if (argc != 3 && argc != 5)
                syntax(argv);
 
        id = atoi(argv[2]);
+       if (argc == 5 && !strcmp(argv[3], "token"))
+               token = strtoul(argv[4], NULL, 10);
 
        nest_start = off;
        nest = (void *)(data + off);
        off += NLMSG_ALIGN(rta->rta_len);
        nest->rta_len = off - nest_start;
 
+       /* token */
+       if (token) {
+               rta = (void *)(data + off);
+               rta->rta_type = MPTCP_PM_ATTR_TOKEN;
+               rta->rta_len = RTA_LENGTH(4);
+               memcpy(RTA_DATA(rta), &token, 4);
+               off += NLMSG_ALIGN(rta->rta_len);
+       }
+
        print_addrs(nh, pm_family, do_nl_req(fd, nh, off, sizeof(data)));
        return 0;
 }