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

There are 23 replies in this Thread which was already clicked 26,530 times. The last Post () by CapNCooK.

  • Please note that this tutorial is now out of date for the upto date version please go http://linuxsat-support.com/showthread.php?t=84347


    Thx By CapNCooK



    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 1412EAF0 c USER_A (0100&00006A/5212/64:4A32): cache1 (4 ms) by READER1 (13 of 26) - RTL7 HD
    2012/03/12 1412EAF0 c USER_B (0100&00006A/51BD/64:0C7D): cache2 (22 ms) by READER2 (14 of 26) - Sport1 Tennis
    2012/03/12 140E5170 c USER_C (0100&00006A/17CC/64:6172): cache2 (133 ms) by READER3 (14 of 26) - EredivisieLive1 HD
    2012/03/12 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:



    oscam.user on OSCAM-B:


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


    oscam.reader on OSCAM-B:



    oscam.user on OSCAM-A:


    Code
    [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 friends.

    Pardon my language
    I love OSCam build by lareq78

  • this fontion working only oscam 1.20 not oscam 1.10 ????


    If you read the thread you will find the question has already been answered


    anything before svn6044:11/27/2011 (which is 1.20 unstable) does not have the function.

    If I take a while to respond, you can see why.....


    :red:

  • Congratulations, great tutorial!! (since i wrote it MYSELF on another board!)


    Edit:


    Didn't see the credits.. sorry for that!
    Disregard this post..


    thx

  • And on the other board, is your username 'CapNCooK' ? if so, then credit is given.


    Yeah its me, but i was already registered under thejack.
    Since i have 0 serious posts here, i would like to swap that btw.. :)


    But i didn't notice the credits.. Sorry for that.
    All fine, happy oscam-ming :P

  • just a query on this , in oscam.conf you can configure :


    cacheexwaittime = delay


    maximum wait time for a cache entry in milli seconds, default:50


    Isnt 50ms very low for default? ., does this mean that after 50ms the request is sent to a card? surly it should be higher, anyone have any experience or thoughts???????

  • My setup is oscam & cccam 2.1.3 with nline 256 trick. Would it work on my system? R is it pure oscam?

  • I'm trying to get this setup correctly, and coud do with a little advise.


    Here's my setup.


    2 oscam servers at different locations.


    Local OScam Reader Setup
    ---------------------------------


    Local card with package A & B - oscam group 1
    Remote card with package A & C - oscam group 2
    oscam cache-ex - oscam group ??


    Both local and remote servers have package A.
    Server 1 shares package B and Server 2 shares package C (oscam-oscam newcamd connection)


    Should the cache-ex be the first interrogated group. ?


    for example.
    cache-ex - group 1
    local card - group 2
    remote card - group 3


    thanks.

  • yes mate will work fine! , oscam is your reader to serve cccam , all it means is your server will share cached ecms with other peoples oscams connected to yours to reduce card requests from the physical card!


    Please provide working config - server - & user to work with oscam as reader to cccam server to use cache ex
    Many thanks
    Foz

OSCam Support Forum

Configs, discussion, downloads and guides for OSCam Softcam.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!