# multicast [risolto]

## masterbrian

Ciao ragazzi,

ho un problema semplice, che mi sta facendo impazzire, forse qualcuno di voi, con approccio e mente fresca (se possibile d'estate!  :Smile: ) potrebbe aiutarmi.

Sto cercando di ricevere un flusso multicast da una sk dvb.

Ho configurato la scheda di rete dvb e l'ho messa in PROMISC UP con un ip a caso

dopo aver cancellato tutte le regole di routing riguardanti il multicast ho dato il comando:

```
route add -net 224.0.0.0/4 dev dvb0_0
```

ora l'output di route -n mi restituisce:

```
# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 dvb0_0

127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo

224.0.0.0       0.0.0.0         240.0.0.0       U     0      0        0 dvb0_0

```

se faccio un tcpdump di dvb0_0 vedo i pacchetti dello stream che mi interessano.

A questo punto provo ad aprirli con mplayer o con vlc ma ottengo sempre lo stesso risultato

```
$ mplayer udp://239.13.13.2:4006

MPlayer dev-SVN-rUNKNOWN-4.1.1 (C) 2000-2007 MPlayer Team

CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz (Family: 15, Model: 2, Stepping: 9)

CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1

Compilato con riconoscimento CPU in esecuzione.

mplayer: could not connect to socket

mplayer: No such file or directory

Apertura del supporto per LIRC fallita. Non potrai usare il tuo telecomando.

Riproduco udp://239.13.13.2:4006.

STREAM_UDP, URL: udp://239.13.13.2:4006

Timeout! No data from host 239.13.13.2

udp_streaming_start failed

No stream found to handle url udp://239.12.147.22:4106

In uscita... (Fine del file)
```

Come se non gli arrivassero dati.

per sicurezza ho tolto le regole di firewall:

```
# iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination
```

Qualche idea?

Grazie

----------

## IlGab

Che scheda è   :Question: 

A... per aprire i flussi multicast io uso

```
mplayer -vo gl udp://@239.192.251.136:49408.
```

 Magari ti manca solo la @

----------

## masterbrian

Ciao,

ho provato anche con mplayer -vo gl udp://@ip:port ma il risultato non cambia  :Sad: 

la mia scheda e' una avermedia.

Ciao

----------

## gutter

Hai abilitato la USE dvb?

In caso di risposta affermativa hai provato con qualcosa del tipo:

```
mplayer dvb://ip:port
```

----------

## masterbrian

Si la flag dvb e' abilitata, il problema, e' che mplayer non riceve proprio lo stream

Anche se lo vedo sull'interfaccia gia' messa in promiscuo  :Sad: 

----------

## gutter

Suppongo che questa opzione del kernel sia abilitata:

```
CONFIG_IP_MULTICAST=y
```

----------

## masterbrian

Si è abilitata. Considera che uso regolarmente il multicast per applicazioni di streaming, e in genere funziona tutto...  :Sad: 

----------

## gutter

 *masterbrian wrote:*   

> Si è abilitata. Considera che uso regolarmente il multicast per applicazioni di streaming, e in genere funziona tutto... 

 

Ma il flusso è RTP? In questo caso hai abilitato la flag live:

```
gutter@giskard ~ $ euse -i live

global use flags (searching: live)

************************************************************

no matching entries found

local use flags (searching: live)

************************************************************

[+ C  ] live (media-video/mplayer):

Enables live.com streaming media support

[+ C  ] live (media-video/vlc):

Enables LIVE.com support.

```

 :Question: 

----------

## masterbrian

Ho trovato la soluzione!!!

```
for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $i ; done
```

Il filtro del kernel per la sorgente dei pacchetti rp_filter blocca a livello di kernel i pacchetti lo ho impostato a zero e ora tutto funziona correttamente  :Smile: 

----------

