Search code examples
xmlsctp

Seagull testing with SCTP


I'm having an issue with SCTP requests in Seagull. Here's the important part:

  <define entity="transport"
    name="sctp-trans-layer"
    file="libtrans_extsctp.so"
    init-args="type=tcp">
  </define>

  <define entity="channel"
    name="channel-1"
    protocol="diameter-v1"
    transport="sctp-trans-layer"
    open-args="mode=client;dest=127.0.0.1:3868;source=172.17.0.1:5005">
  </define>

I tried couple of different things (including changing the "type=sctp", file="libtrans_ip.so"). I get the following error: ERROR: Kernel SCTP seems to be available! You cannout use sctplib and kernel SCTP simultaneously! I tried to find sctplib in my packages to remove it but the only thing I found was libsctp-dev and libsctp1. Removing them didn't change a thing.

Any suggestions?


Solution

  • that error means that you are trying to use the SCTP library but the SCTP is been used by the linux kernel, so you need to disable the kernel to use the SCTP. For that you need to create a .conf file in the folder /etc/modprobe.d/.

    Here an example in /etc/modprobe.d/firewalld-sysctls.conf:

    # Disable kernel sctp to allow Seagull SCTP
    install sctp /bin/false
    blacklist sctp
    

    Then you need to reboot your machine to apply these changes. After that you can run the following command to validate if the kernel is still using or not the SCTP.

    cat /proc/modules | grep sctp
    

    If the output is empty that means the kernel is not longer using the SCTP and now you can use it with the Seagull.

    Now about the SCTP configuration I have used the following one:

      <define entity="transport"
        name="trans-1"
        file="libtrans_extsctp.so"
        create_function="create_cipsctpio_instance"
        delete_function="delete_cipsctpio_instance"
        init-args="type=tcp">
      </define>
    
      <define entity="channel"
        name="channel-1"
        protocol="diameter-v1"
        transport="trans-1"
        open-args="mode=client;source=10.116.53.24;dest=10.113.6.2:3868;">
      </define>
    

    Hope this helps,