In my case, I wish to mask out the SEND_OK field of Sn_IR of all my sockets so that SEND_OK will not interrupt me.
So I write 0b00001111 to Sn_IMR for all my sockets. After writing, I simply read the Sn_IMR register and it is the same as what I have written in which proves that my writing to Sn_IMR is valid.
But later on, when I am transferring data with external clients, when I read the Sn_IR, the SEND_OK interrupt field still turns 1, which (as I wish) should have been masked out.
Am I doing it wrong? or my chip is broken? Any advises are appreciated.