igmp

Prev Next

Provides general purpose scriptable way to update IGMP multicast joins running on the FMADIO capture ports.


/api/v1/capture/igmp/get

Returns the current IGMP settings in LUA format.

Address

/api/v1/capture/igmp/get

Verb

GET

Notes

Arguments

Parameter

Description

no parameters

Example

In this case the IGMP subscribe list is to some EUREX feeds.

fmadio@fmadio100v2-228U:/opt/fmadio/analytics$ curl -k -u fmadio:**** https://127.0.0.1/api/v1/capture/igmp/get
local Port0 = {}

-- eurex
table.insert(Port0, { Group = "223.0.50.0",  Port = 17100, VLAN = nil  })      --  "eurex",
table.insert(Port0, { Group = "223.0.114.1", Port = 17101, VLAN = nil, VLANIP = "192.168.124.1"} )     --  "eurex",
table.insert(Port0, { Group = "223.0.114.2", Port = 17102, VLAN = nil, VLANIP = "192.168.124.1"} )     --  "eurex",
table.insert(Port0, { Group = "223.0.114.3", Port = 17103, VLAN = nil, VLANIP = "192.168.124.1"} )     --  "eurex",

local Port1 = {}

return { Port0, Port1, Interval = 30e9, }
fmadio@fmadio100v2-228U:/opt/fmadio/analytics$

/api/v1/capture/igmp/put

Updates the current IGMP join Lua configuration file on the system.

Address

/api/v1/capture/igmp/put

Verb

POST

Notes

There is a maximum of 1MB upload file size.

Arguments

Parameter

Description

(none)

This endpoint takes POST content of the application/json content type, and expects a schema exemplified below:

{
    "Interval": 30000000000, // number
    "Port0": [
        // zero or more objects
        {
            "Enable": true, // boolean or null (null implies `false`)
            "Comment": "hello world", // string or null (only for human documentation)
            "Group": "224.0.50.0", // string or null
            "Port": 17107, // number or null
            "VLAN": 11, // number or null
            "VLANIP": null // string or null
        }
    ], // array or null
    "Port1": [
        // zero or more objects      
    ] // array or null
}

Example

fmadio@fmadio100v2-228U:~$ curl -s -k \
  -u fmadio:***** -X POST \
  -H "Content-Type: application/json" \
  -d "$(cat my_igmp_file.json)" \
  https://127.0.0.1/api/v1/capture/igmp/put
{
  "Status": true,
  "Port0_TotalGroup": 2,
  "Port1_TotalGroup": 1
}
fmadio@fmadio100v2-228U:~$ curl -s -k -u fmadio:***** -X POST  https://127.0.0.1/api/v1/capture/igmp/put   -H "Content-Type: multipart/form-data" -F "data=@igmp" | jq
{
  "Status": true,
  "Port0_TotalGroup": 2,
  "Port1_TotalGroup": 1
}

/api/v1/capture/igmp/reset

Resets the IGMP join lua configuration to blank default state

Address

/api/v1/capture/igmp/reset

Verb

GET

Notes

Arguments

Parameter

Description

(none)

Example

fmadio@fmadio100v2-228U:~$ curl -s -k -u fmadio:***** https://127.0.0.1/api/v1/capture/igmp/reset | jq
{
 "Status": true,
  "Desc": "IGMP join file reset"
}

FMADIO Packet Capture systems