Add support for setting SO_MARK socket option on outgoing ICMP packets #36
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The standard ping utility in linux has a flag that can be used to set a mark on outgoing packets which is used in tandem with linux policy routing.
Setting a mark can be achieved in linux by setting the
SO_MARK
socket option:This PR attempts to adds support for this feature. Given a socket has to first exist before we can set the mark we add a
SetMark()
andMark()
options to set and read the intended mark to be set once the icmp conn exists. In addition to this we add aSetMark()
method to the packetconn interface to actually set the socket option after the conn is created. This PR only attempts to set this option under linux. Other environments (windows, etc.) will throw an error if attempting to set a mark on the socket. I'm not sure if this is supported outside of linux or not.