Results 1 to 3 of 3

Thread: Tutorial: CACHE EX v2.0

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

    Post Tutorial: CACHE EX v2.0

    OSCAM Cache-EX Tutorial v2.0
    Tutorial is courtasy of satsupreme.com, and may not be copied to other sites, forums etc.

    This is the updated version to the previous cache-ex tutorial, which has now become obsolete.



    What is Cache-EX ?
    "Cache" - as used in the cardsharing scene, is simply a collection of already used, valid ECM's, collected by your card- and proxy- readers.
    The "Cache-EX" feature in Oscam makes it possible to exchange and merge local collected cache with other Oscam servers.


    Why is Cache useful in general ?
    Quite simple. Even without Cache-EX enabled, Oscam builds a cache by default. Every ECM request done by a client is forwarded to a card or proxy reader.
    All answered ECM's will stay in Oscam's memory for a certain period of time, and will be removed when its TTL (Time to Live) expires.
    On a busy server, you can imagine that there are quite a bunch of valid ECM's stored in memory. All together they are called "Cache".

    When another user requests an ECM for the same channel at the same time, Oscam will automatically return the copied/stored/cached ECM from its local cache, without requesting any reader.
    Every ECM requested is always checked against the available cache first, so the result is a 50% save on your card, based on the 2 users requesting the same ECM.
    OK! I understand the above. Why use Cache-EX on top of the local cache ?

    Cache-EX stands for 'Cache Exchange', and is simply a method to transfer cache from, or to another Oscam server.
    This way, a second server receives and stores the collected cached ECM's into its own memory, and clients can request and use them the same way as described above.

    Also the total cache on the second server (its own + received from 1st server) can be forwarded to a third server)
    When many busy servers merge all cached ECM's, a huge cache will be available saving card-requests
    on all connected servers.



    How-To setup CACHE-EX
    To start with, Oscam has to be compiled with CACHE-EX support set to ON.

    The protocols that are able, and commonly used to transfer cache with Oscam are: CC-Cam, CAMD35 and Newcamd.
    Cache-EX can be enabled on a protocol with the cacheex=1/2/3 parameter on both users and readers config.

    A connection between a user and a
    reader is always one way.

    For setting up bidirectional cache transfers between two servers, both servers have to setup a reader and a user, and connect them to each other the same way as with normal CC-Cam, CAMD35 or NewCAMD peers.


    The 3 Cache-EX modes

    Every mode has its own behaviour and interacts different with the connecting server.
    In every configuration, both user and (connecting) remote reader must use the same mode.

    --

    Mode 1
    cacheex = 1 (cachepull)

    In mode 1 OscamA can make use of OscamB's local cache. Every single ECM requested on OscamA will be actively requested (and if available Pulled) from the local cache on OscamB.

    Only cached (none from card/proxy) ECM's can be requested when cacheEX mode 1 is configured on every protocol.

    Request workflow in mode 1:

    OSCam A reader1 has set cacheex = 1
    OSCam B user1 has set cacheex = 1


    OSCam A processes an ECM request from a User.
    => Reader1 checks the local cache,
    => if available => Return local cached ECM.
    => if not available => request is forwarded to OSCam B

    => OSCam B - User1 receives the request
    => User1 Checks the local cache
    => If available => Return local cached ECM to Reader1 (on OSCam A)
    => If not available => Return NOK or Rejected to Reader1 (on OSCam A)

    => OSCam A receives 'Reject' from OSCam
    => Checks local cardreaders and/or proxies
    => etc.

    Cache flow = B ---> A


    --

    Mode 2

    cacheex = 2 (cachepush)

    In mode 2 OscamA actively pushes cache into the local cache of oscamB.
    (local cache + received cache from remote servers)


    The method is clear, but this mode has one hidden 'feature'..

    You can also request normal ECM's (from card/proxy) from the remote server.
    So besides the cache transfers, a cache-ex enabled user can be used to share cards and proxies.

    Nevertheless, I would not advise to use mode 2, because you will run into a grouping problem.
    => Rather use mode-3 and setup a seperate reader/user connection for normal sharing!

    Also the mode-2 sourcecode is less mature as the mode-3 code as i may believe from Oscam experts.

    OSCam A reader1 has set cacheex = 2
    OSCam B user1 has set cacheex = 2


    Cache flow = B ---> A


    --

    Mode3

    cacheex = 3 (reversed-cachepush)

    Same as mode 2, but flow is reversed. The reader sends, the user receives.

    OSCam A reader1 has set cacheex = 3
    OSCam B user1 has set cacheex = 3


    CW-flow = A ---> B




    Which is 'best' ?

    From experience, mode 1 and mode 3 are working good.


    Mode 1

    Pull (from local reader to remote user)



    • Will work in all kind of setups, but puts extensive logging into the (default-loglevel) oscam.log file.
      Each requested ECM is actively requested (and often denied) by the remote server's cache, which will create (a lot!) time-out and reject events in the log.
    • Therefore on busy servers i would not recommend to use mode 1.
    • Because of the fact that no cache is actively pushed, and/or received other than the ones requested, your total cache-size will stay low.
    • If you want to 'build' a cache to transfer/push to remote peers, use mode 3 instead. If you only want to use incoming cache as backup for your receiver, you can use mode-1
    • No real ECM's (no card/proxy, only cache) can be transferred with cachex=1 enabled.



    Mode 2
    Push (from local user to remote reader)


    • Can be used to build cache, ecm's are actively pushed to a second server
    • Will also access proxies and card-readers, besides cache-transfer
    • Rumor that it contains bugs / less mature code than other modes



    Mode 3
    Reverse - Push (from local reader to remote user)


    • Can be used to build cache, ecm's are actively pushed to a second server
    • Reverses the stream between reader and user.
    • Also group and other parameters have to be applied accordingly
    • Commonly used in cardsharing scene




    Typical Setup
    Here's a typical simple configuration to connect two servers with cacheEX thru CC-CAM, BI-directional.

    oscam.reader on OSCAM-A:
    [reader]
    label = OSCAM-B-CACHE
    protocol = cccam
    device = oscamserverB.com,12000
    user = OSCAM-A-CACHE
    password = password
    cacheex = 1 # or 2/3
    group = 1

    oscam.user on OSCAM-B:

    [account]
    user = OSCAM-A-CACHE
    pwd = password
    group = 1
    cacheex = 1 # or 2/3
    cccmaxhops = -1

    oscam.reader on OSCAM-B:

    [reader]
    label = OSCAM-A-CACHE
    protocol = cccam
    device = oscamserverA.com,12000
    user = OSCAM-B-CACHE
    password = password
    cacheex = 1 # or 2/3
    group = 1

    oscam.user on OSCAM-A:

    [account]
    user = OSCAM-B-CACHE
    pwd = password
    group = 1
    cacheex = 1
    # or 2/3
    cccmaxhops = -1



    Groups and filtering
    Cache streams can be filtered on all parameters that are normally used for normal sharing.
    Entering a specific CAID or IDENT into a user or reader config will filter the transfer / reception of the cache.

    Also groups can be used, but since cache is 'free', i would recommend putting all utilized groups in all cacheEX users and readers.


    Frequently asked questions


    • I have configured a cacheEX connection with cc-cam protocol, but see "NEEDINIT (0 of 0 cards)" in the status screen.
      This is normal / secure behaviour, since you set 'cccmaxhops = -1' in the userconfig to hide your cards. Ignore this warning, and check your CACHE-EX tab for status on incoming/transmitted cache.


    Logging and monitoring

    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
    0 0
    24140 0


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

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

  2. #2
    New Member
    Join Date
    07-12-2010
    Posts
    6
    Uploads
    0

    Re: Tutorial: CACHE EX v2.0

    Excellent post - But I am having issues - Hoping someone can help. Here goes...

    I have 2 PC's each with a local 0963 card (they were loadbalanced on 1 machine but I wanted to play with the cache exchange function of oscam so I moved my second card to a new machine).

    Each machine has 1 card connected via a smargo card reader. I have the Oscam #7829 sharing the card to CCcam v2.0.9. No issues with the sharing all good except I cannot figure out how to setup the cache-ex part.

    Here are some questions if you don't mind... Bear in mind I'm sharing across a local network (at the moment)

    1) The device parameter under the oscam.reader - Can I use my local IP address rather than my xxx.dns address? Does the port matter - can it be any arbitrary number or the same as my CCcam port? Will this port have to be forwarded in my router when I wish to share this?
    2) Under the oscamserver:8888/status.html Both my OSCAM-B-CACHE and OSCAM-A-CACHE are registering as 'OFF' not Needinit. (I don't know why)
    3) I've read somewhere that entering a CSP value of 150 ish is required but not stated above.

    Thanks for taking the time to read this and offering any advice.

  3. #3
    New Member
    Join Date
    21-10-2014
    Posts
    2
    Uploads
    0

    Re: Tutorial: CACHE EX v2.0

    Typical Setup
    Here's a typical simple configuration to connect two servers with cacheEX thru CC-CAM, BI-directional.

    oscam.reader on OSCAM-A:
    [reader]
    label = OSCAM-B-CACHE
    protocol = cccam
    device = oscamserverB.com,12000
    user = OSCAM-A-CACHE
    password = password
    cacheex = 1 # or 2/3
    group = 1

    oscam.user on OSCAM-B:

    [account]
    user = OSCAM-A-CACHE
    pwd = password
    group = 1
    cacheex = 1 # or 2/3
    cccmaxhops = -1

    oscam.reader on OSCAM-B:

    [reader]
    label = OSCAM-A-CACHE
    protocol = cccam
    device = oscamserverA.com,12000
    user = OSCAM-B-CACHE
    password = password
    cacheex = 1 # or 2/3
    group = 1

    oscam.user on OSCAM-A:

    [account]
    user = OSCAM-B-CACHE
    pwd = password
    group = 1
    cacheex = 1
    # or 2/3
    cccmaxhops = -1

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

    how i made that?
    i have to create a oscam.reader and put OSCAM-A & OSCAM-B ?
    and the same for the oscam.user?

    2015/04/09 18:46:56 8A666C0 p can't resolve b0mbay.dyndns.org, error: Name or service not known

Similar Threads

  1. Replies: 1
    Last Post: 01-04-2012, 21:58:19

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
  •