Я нашел параметр сокета SO_MARK
в справочной странице socket (7):
SO_MARK (since Linux 2.6.25)
Set the mark for each packet sent through this socket (similar
to the netfilter MARK target but socket-based). Changing the
mark can be used for mark-based routing without netfilter or
for packet filtering. Setting this option requires the
CAP_NET_ADMIN capability.
Это не для пакета, как я изначально просил, соответствует моей цели.Вы можете установить его с помощью setsockopt()
:
int fwmark;
//fwmark = <some value>;
if(-1 == setsockopt(sockfd, SOL_SOCKET, SO_MARK, &fwmark, sizeof fwmark)) {
perror("failed setting mark for socket packets");
}