Page 1 of 2 12 LastLast
Results 1 to 10 of 11

Thread: How to setup OSCAM's CACHE-EX Feature with a peer

  1. #1
    Moderator CapNCooK's Avatar
    Join Date
    10-03-2012
    Location
    Earth
    Posts
    317
    Uploads
    4

    Post How to setup OSCAM's CACHE-EX Feature with a peer


    This tutorial is obsolete, the updated version can be found here:
    http://www.satsupreme.com/showthread...-CACHE-EX-v2-0


    ------------------------------------------------------------------------------------------------------------


    OSCAM Cache-EX Tutorial

    I was asked to write a little tutorial on howto setup Oscam's CACHE-EX Feature...

    What is Cache-EX ?
    The Cache-EX feature makes it possible to exchange Oscam's caches from server to server.


    Why is Cache useful in general ?
    Quite simple. Even without Cache-EX enabled, Oscam builds a cache by default. Every requested ECM by a client is forwarded to an available card or proxy reader. This ECM will stay in Oscam's memory (cache), until its validity expire. On a busy server, you can imagine that there are quite a lot of valid ECM's in memory.

    When a second client requests an ECM for the same channel, it will automatically forward the available ECM from local cache, without requesting a reader or proxy, resulting on less load on your cards. Obviously, when its not available from local cache, the request is forwarded to a proxy or card.

    You can see answers from Oscam's local cache in your logs.
    The reader-name mentioned, is the reader where the ECM originally came from.


    2012/03/12 13:06:18 1412EAF0 c USER_A (0100&00006A/5212/64:4A32): cache1 (4 ms) by READER1 (13 of 26) - RTL7 HD
    2012/03/12 13:08:50 1412EAF0 c USER_B (0100&00006A/51BD/64:0C7D): cache2 (22 ms) by READER2 (14 of 26) - Sport1 Tennis
    2012/03/12 13:08:51 140E5170 c USER_C (0100&00006A/17CC/64:6172): cache2 (133 ms) by READER3 (14 of 26) - EredivisieLive1 HD
    2012/03/12 13:08:52 141226A0 c USER_D (0100&00006A/17CC/64:6172): cache2 (190 ms) by READER3 (14 of 26) - EredivisieLive1 HD



    OK, so why use Cache-EX on top of the normal cache ?
    Cache-EX can be enabled by adding a special user to the server, and a special reader to the client with corresponding Cache-EX parameters. This reader and user is only capable of transporting cached-ecm's. When no valid cached-ecm is found on the server, the request is 'rejected'.

    The benefit of this method, is that every ECM request on your server will be tried against the cache of your Cache-EX-enabled readers first. The answer on such requests is given very fast, since a server is able to check this in no-time. When no Cache-EX-enabled reader is able to answer the ECM request, the request is forwarded to- and answered by a 'normal' reader.


    How-To setup CACHE-EX
    Like stated above, Cache-EX can be configured with the 'cacheex' parameter on your user or reader.
    To use it, Oscam has to be compiled with CACHE-EX support set to ON.

    The Cache-EX-user must have always the same mode configured as the connecting Cache-EX-reader.

    --

    There are 4 modes you can setup:

    cacheex = 1 - cachepull

    OSCam A reader1 has cacheex = 1
    OSCam B account1 has cacheex = 1

    OSCam A gets a ECM request, reader1 send this request to OSCam B,
    OSCam B checks his cache:

    Not found in cache: return NOK (shows as 'rejected' in logs)
    Found in cache: return OK+CW
    Not found in cache, but found pending request: wait cacheexwaittime in oscam.conf [global] and check again.

    OSCam B never requests new ECMs.
    CW-flow = B ---> A



    cacheex = 2 - cachepush


    OSCam A reader1 has cacheex = 2
    OSCam B account1 hastcacheex = 2

    If OSCam B gets a CW, its pushed to OSCam A, reader has normal functionality and can request ECMs.

    Problem: OSCAM can only push CW's if OSCam A is connected
    Problem or feature?: OSCam A reader can request ECMs from OSCam B
    CW-flow = B ---> A



    cacheex = 3 - reversecachepush

    OSCam A reader 1 has cacheex = 3

    If OSCam A gets a CW, its pushed to OSCam B. OSCam A never requests new ECMs.
    CW-flow = A ---> B


    To make a long story short, i tested all modes extensively, and found out that mode 1 is working best.


    Example of Mode1 Cache-EX(change) in two directions.

    This example creates a bi-directional transport of cache between two servers, with mode 1.


    oscam.reader on OSCAM-A:

    [reader]
    label = OSCAM-B-CACHE
    protocol = cccam
    device = oscamserverB.com,12000
    user = OSCAM-A-CACHE
    password = password
    inactivitytimeout = 0
    cacheex = 1
    group = 1
    dropbadcws = 1
    cccversion = 2.3.0
    ccckeepalive = 1
    cccreshare = 3



    oscam.user on OSCAM-B:

    [account]
    user = OSCAM-A-CACHE
    pwd = password
    group = 1
    cacheex = 1
    cccmaxhops = 10
    cccreshare = 1



    oscam.reader on OSCAM-B:

    [reader]
    label = OSCAM-A-CACHE
    protocol = cccam
    device = oscamserverA.com,12000
    user = OSCAM-B-CACHE
    password = password
    inactivitytimeout = 0
    cacheex = 1
    group = 1
    dropbadcws = 1
    cccversion = 2.3.0
    ccckeepalive = 1
    cccreshare = 3



    oscam.user on OSCAM-A:

    [account]
    user = OSCAM-B-CACHE
    pwd = password
    group = 1
    cacheex = 1
    cccmaxhops = 10
    cccreshare = 1



    Logging and monitoring
    You can see traffic flowing from Oscam's log.

    For example:

    When a cache-ex-request is NOT found in cache, or an invalid SID is requested:
    2012/03/12 13:51:13 1412EAF0 c OSCAM-A-CACHE (0100&00006A/51E0/64:C1C8): rejected peer (55 ms) (13 of 25) - Sport1 HD


    When a cache-ex-request IS found in cache:
    2012/03/12 13:51:07 144716B0 c OSCAM-A-CACHE (0100&00006A/17CC/64:B81C): found (32 ms) by OSCAM-B-CACHE (7 of 16) - EredivisieLive1 HD

    Also, you can check an overview of the cache thru the WEB GUI -> http://<oscamserverURL>/cacheex.html

    The efficiency of your cache can be measured with the totals displayed on the bottom of Oscam's Users page in the GUI.

    My server currently reports:
    Total
    Disabled Expired Active Connected Online OK NOK
    IGN TOUT
    CACHE
    TUN
    Action
    50
    1 0 46
    36
    11 29513 0
    186905 3741
    24140 0


    Meaning.. almost almost 50% of all my request are flowing from cache.

    If you have any questions, don't hesitate to ask. Also, i am always searching low-latency cache peers.

  2. #2

    Re: How to setup OSCAM's CACHE-EX Feature with a peer

    Hereby a little tutorial extra only for cacheex = 3 - reversecachepush

    I still notice that a lot of people don't understand the way of working with cacheex =3

    Specially with the group assign

    Hoping I can make it clear with some examples.
    Most people make the mistake to use the same setting as they are normal using with sharing

    OSCam A reader 1 has local card 1 and is in group 1
    OSCam A reader 2 has local card 2 and is in group 2
    OSCam Areader 3 has local card 3 and is in group 3
    OSCam A reader 4 is a share and is in group 4
    OSCam A reader 5 is a share and is in group 4
    OSCam A reader 6 has cacheex = 3 --> in which group he is depends on which cache you want to exchange see examples

    OSCam A user 1 has cacheex = 3 --> in which group he is depends on which cache you want to exchange see examples

    OSCam B reader 1 has local card 1 and is in group 10
    OSCam B reader 2 has local card 2 and is in group 20
    OSCam B reader 3 has local card 3 and is in group 30
    OSCam B reader 4 is a share and is in group 40
    OSCam B reader 5 is a share and is in group 40
    OSCam B reader 6 has cacheex = 3 --> in which group he is depends on which cache you want to exchange see examples

    OSCam B user 1 has cacheex = 3 --> in which group he is depends on which cache you want to exchange see examples

    Example 1:

    OSCam A
    reader 6 has cacheex = 3 and will connect with OSCam B on user 1: user 1 = group 40,50 and has cacheex = 3
    So the cache pushing can begin

    If server Oscam A only wants to exchange his cache from his local cards than the group settings should be

    OSCam A
    reader 6 group 1,2,3 ---> now OSCam B will recieves only cache from the local cards and shares this to users that are in group 40,50

    Reverse cache
    So the cache will flow from OSCam A ---> OSCam B


    Example 2

    OSCam A reader 6 has cacheex = 3 and will connect with OSCam B on user 1: user 1 = group 20,40,50 and has cacheex = 3
    So the cache pushing can begin

    If server Oscam A wants to exchange his cache from his whole server than the group settings should be

    OSCam A
    reader 6 group 1,2,3,4 ---> now OSCam B will recieves all cache and shares this to users that are in group 20,40,50
    So on server OSCam B all user that are in groups 20,40,50 are able to use the recieved cache

    Reverse cache
    So the cache will flow from OSCam A ---> OSCam B

    Example 3

    If OSCam B wants to exchange his own cache and the cache he recieves from other Oscam servers (Oscam A see example 2)
    OSCam B made a group only for cacheex this is group 50 (see example 2)

    OSCam B reader 6 has cacheex = 3 and will connect with OSCam C on user 1: user 1 = group 15 and has cacheex = 3
    So the cache pushing can begin

    If server OSCam B wants to exchange his cache from his whole server, than the group settings should be

    OSCam B
    reader 6 group 10,20,30,40,50 ---> now OSCam C will recieves all cache and shares this to users that are in group 15
    So on server OSCam C all user that are in groups 15 are able to use the recieved cache also readers on OSCam C with cacheex 3 will be able to use the recieved cache and can push this forward

    So the cache will flow from OSCam A ---> OSCam B ---> OSCam C



  3. #3
    Moderator CapNCooK's Avatar
    Join Date
    10-03-2012
    Location
    Earth
    Posts
    317
    Uploads
    4

    Re: How to setup OSCAM's CACHE-EX Feature with a peer

    For people who are using mode 1, you have probably noticed the endless logging of the retries and rejects.
    This is filling up your logfile quite quickly, and cannot be disabled by default.

    For all of you who want to eliminate this logging, here's a source patch (tested with 658x/659x):
    (You need to recompile OSCAM to take this into effect)

    Change codeblock in file:

    [oscam.c]
    Code:
     if (er->reader_avail == 1) {
                    cs_log("%s (%04X&%06X/%04X/%04X/%02X:%04X): %s (%d ms)%s %s%s",
                            uname, er->caid, er->prid, er->pid, er->srvid, er->l, htons(er->checksum),
                            er->rcEx?erEx:stxt[er->rc], client->cwlastresptime, sby, schaninfo, sreason);
            } else {
                    cs_log("%s (%04X&%06X/%04X/%04X/%02X:%04X): %s (%d ms)%s (%d of %d)%s%s",
                            uname, er->caid, er->prid, er->pid, er->srvid, er->l, htons(er->checksum),
                            er->rcEx?erEx:stxt[er->rc], client->cwlastresptime, sby, er->reader_count, er->reader_avail, schaninfo, sreason);
            }
    into:

    Code:
     if (er->reader_avail == 1) {
                    cs_log("%s (%04X&%06X/%04X/%04X/%02X:%04X): %s (%d ms)%s %s%s",
                            uname, er->caid, er->prid, er->pid, er->srvid, er->l, htons(er->checksum),
                            er->rcEx?erEx:stxt[er->rc], client->cwlastresptime, sby, schaninfo, sreason);
            } else if (!er->rcEx) {
                    cs_log("%s (%04X&%06X/%04X/%04X/%02X:%04X): %s (%d ms)%s (%d of %d)%s%s",
                            uname, er->caid, er->prid, er->pid, er->srvid, er->l, htons(er->checksum),
                            er->rcEx?erEx:stxt[er->rc], client->cwlastresptime, sby, er->reader_count, er->reader_avail, schaninfo, sreason);
            }

    This will skip logging the rejects/retries in mode1 :)

  4. #4
    Junior Member
    Join Date
    23-06-2012
    Posts
    11
    Uploads
    0

    Re: How to setup OSCAM's CACHE-EX Feature with a peer

    i have cacheex REVERSE CACHE PUSH

    hit is zero never change

  5. #5

    Re: How to setup OSCAM's CACHE-EX Feature with a peer

    I stumbled upon this tutorial. I think that it is correct...
    Attached Files Attached Files

  6. #6

    Re: How to setup OSCAM's CACHE-EX Feature with a peer

    Been doing some testing on mode 3 and it looks like the loopback as been fixed, well if you use cccam it looks like there is no loopback
    I put 2 cacheex mode 3 in 1 group on there own no other groups both readers and users in group 50 just to test
    looking at the got and sent there was no loopback

  7. #7
    Moderator CapNCooK's Avatar
    Join Date
    10-03-2012
    Location
    Earth
    Posts
    317
    Uploads
    4

    Re: How to setup OSCAM's CACHE-EX Feature with a peer

    Quote Originally Posted by CyberCrime View Post
    Been doing some testing on mode 3 and it looks like the loopback as been fixed, well if you use cccam it looks like there is no loopback
    I put 2 cacheex mode 3 in 1 group on there own no other groups both readers and users in group 50 just to test
    looking at the got and sent there was no loopback
    Mode 3 is loopback/duplicate aware. Especially with CCcam, it filters on NODEID...

  8. #8
    Junior Member
    Join Date
    23-06-2012
    Posts
    11
    Uploads
    0

    Re: How to setup OSCAM's CACHE-EX Feature with a peer

    Quote Originally Posted by PlatoonRTV View Post
    I stumbled upon this tutorial. I think that it is correct...
    i did fallow this setups i can see chacheex working get and push but no hit help please

  9. #9

    Re: How to setup OSCAM's CACHE-EX Feature with a peer

    Did you add groups from cache-ex accounts to other accounts which are not cache-ex but are your cccam/mgcamd/newcamd/... clients?

  10. #10
    Moderator CapNCooK's Avatar
    Join Date
    10-03-2012
    Location
    Earth
    Posts
    317
    Uploads
    4

    Re: How to setup OSCAM's CACHE-EX Feature with a peer

    Quote Originally Posted by PlatoonRTV View Post
    Did you add groups from cache-ex accounts to other accounts which are not cache-ex but are your cccam/mgcamd/newcamd/... clients?
    Make sure that every configured normal user has (at least) the same group assigned as the configured cache-ex reader/users.
    They must match, otherwise the cache cannot be reached.

Page 1 of 2 12 LastLast

Similar Threads

  1. Dreambox qui joue à cache cache?
    By chrisfr57 in forum French / Français
    Replies: 3
    Last Post: 17-05-2011, 20:43:53
  2. TF1 to feature on Samsung Connected TV
    By sofien72tu in forum Daily Satellite TV News
    Replies: 0
    Last Post: 11-12-2009, 13:34:56
  3. Info Most of the recent talk about peer-to-peer (P2P) file sharing
    By <<Supervisor™>> in forum Daily Satellite TV News
    Replies: 0
    Last Post: 29-09-2009, 10:52:37
  4. chat : Sid.cache
    By acota_love in forum DVB Plugins
    Replies: 24
    Last Post: 12-06-2006, 14:12:40

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •