Fwd: Child is hung (max_request)

Alan DeKok aland at deployingradius.com
Sat Nov 22 18:06:11 CET 2014


srithar jeevadurai wrote:
> If I understand your reply correctly. Our current implementation is like
> radius worker thread calls our customized module of Radius (rlm_raddia)
> to send request to diameter client (dia client will send the request to
> IN and reponse will be sent back to radius thread from dia client). It
> is a blocking call of Radius worker thread. 

  That design is wrong.  The server should *never* block when it proxies
packets.  When you make the thread block, you are *guaranteeing* that
the entire server will stop working.

  The server core implements proxying as an asynchronous operation.  Any
proxying *must* be asynchronous.

> If we implement, radius server as proxy then it will take request from
> NAS and send it to dia client (without waiting for response from dia
> client) which is non blocking call of radius worker thread. Dia client
> has to send response to radius server and radius server to send the
> repsonse to NAS. The only change here is rad-worker thread is no need to
> wait after sending request to dia client. Sending request and processing
> respose from dia client will happen idependedlly by FreeRad. 

  Or, you could just add native Diameter support to the server.

> If my above understanding is correct, Can we get a sample module code to
> send radius request to external process (here it is dia client) and
> process response from external process (idependedlly without waiting
> req-res). I hope that we would have used any IPC like TCP/IP or message
> queue etc.

  Doing that requires major changes to the server core.

> I need to know how to start with proxy radius server impementation for
> radius-diameter converter. It would be great if you can give me a
> document link on the same please.

  There are no such implementation guides on the net.  For a reason.
The various software products are either commercial, or open source.
For the open source products, you can just read the source code.  For
commercial ones... the product is their property, and they don't tell
you how to write a competing product.

  You will need to figure this out on your own.

  Alan DeKok.


More information about the Freeradius-Users mailing list