cancel
Showing results for 
Search instead for 
Did you mean: 

I have an STM32H743. I am trying to configure a Layer 4 inverse filter on destination port . My intention is to allow all broadcast traffic except for one that has a particular destination port.

ABuce.1
Associate

I am configuring the following control registers.

 heth->Instance->MACCR |= ETH_MACCR_IPC;

 // INVERSE MATCHING

 heth->Instance->MACPFR |= ETH_MACPFR_IPFE;

 heth->Instance->MACL3L4C0R |= 1<<21;//ETH_MACL3L4C0R_L4DPIM0;

 heth->Instance->MACL3L4C0R |= 1<<20;//ETH_MACL3L4C0R_L4DPM0;

 heth->Instance->MACL3L4C0R |= 1<<16;//ETH_MACL3L4C0R_L4PEN0;

This does not seem to be doing anything at all, since I am still getting packets from this source into application space.

Does anyone have any ideas as to how to configure a filter to do this task?

Thanks in advance.

1 REPLY 1
ABuce.1
Associate

I want to amend my question further.

I am trying to block out a broadcast on port 5077. I tried both inverse filter using the above register values.

I specified the port as

heth->Instance->MACL4A0R |= (0xD5130000);

From what I understand from the documentation, the port number has to be given in big-endian. (5077 = 0x13D5).

I further tried the perfect filter (as opposed to the inverse filter). None of these appear to be doing anything to the broadcast stream.

I have also tried doing the source port filtering on Layer 4.

None of these filters appear to be doing anything to the communication. Is there an enable bit or something like that I am missing?